PureBasic 3.93 beta 3 for Windows released

Ankündigungen PureBasic oder die Community betreffend.
Benutzeravatar
sharkpeter
Beiträge: 474
Registriert: 29.08.2004 16:18
Wohnort: Dresden
Kontaktdaten:

Beitrag von sharkpeter »

@TS-Soft, (hi Thomas), warum denn aber nicht hierbei:
aus der PB-Hlfe:

Die folgenden EventType() werden vom ButtonGadget unterstützt, wenn AdvancedGadgetEvents() vor dem Erstellen des Gadgets aktiviert wird.
#PB_EventType_LeftClick : Klick mit linker Maustaste
#PB_EventType_RightClick : Klick mit rechter Maustaste
#PB_EventType_LeftDoubleClick : Doppelklick mit linker Maustaste
#PB_EventType_RightDoubleClick : Doppelklick mit rechter Maustaste
#PB_EventType_Focus : Schalter erhielt den Fokus für die Eingabe
#PB_EventType_LostFocus : Schalter verlor den Fokus für die Eingabe
mit einfügen, wäre doch sicher sinnvoll und wie schon gesagt einfach schön,
weil auch für Nicht-Profi-Progger besser beherschbar. Gleiches gilt für
den von Kiffi angesprochenen Cancel mit ESC, hätte glatt von mir sein
können. Außerdem ist es ja auch nur ein Wunsch :)

Gruß Jens
PB3.94 bis 6.xx / (Win98/98SE/ME/XPProSP3/WINVista-X32)/WIN7HP-X64/WIN8PRO-X32/WIN10-64

Nichts wissen macht nichts, sich dumm stellen aber schon.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

also, ich erinnere mich 'dunkel' an meine VB zeiten, und wenn ich mich recht entsinne,

betätigt ENTER den Button mit dem Flag IS_DEFAULT
und ESC den Button mit dem Flag IS_CANCEL

ausserdem wird der default button durch den dickeren Rand hervorgehoben.

egal wie das Fenster ansonsten aussieht.

natürlich wird in kaum einer Anwendung ein fenster mit 100 Buttons
einen Default und einen Cancel button haben, aber es geht...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
computerkranker
Beiträge: 66
Registriert: 12.10.2004 21:21

Beitrag von computerkranker »

Kleinen Fehler habe ich gefunden(glaube ich :mrgreen: )

Code: Alles auswählen

#AW_ACTIVATE=$20000
#AW_CENTER=$10
CreateImage(0,20,20)
OpenWindow(0,0,0,500,100,#PB_Window_ScreenCentered|#WS_VISIBLE,"test")
CreateGadgetList(WindowID(0))
For t=0 To 20
  ImageGadget(t,0+(t*21),0,0,0,UseImage(0))
Next
AnimateWindow_(WindowID(0),2000,#AW_ACTIVATE|#AW_CENTER)
;RedrawWindow_(WindowID(0),0,0,#RDW_INVALIDATE); damit ist es natürlich wieder da, aber leider erst nach der Animation
Repeat
Until WindowEvent()=#PB_Event_CloseWindow
vorher ging der Aufbau ohne probs.
Benutzeravatar
AndyX
Beiträge: 1272
Registriert: 17.12.2004 20:10
Wohnort: Niederösterreich
Kontaktdaten:

Beitrag von AndyX »

bluejoke hat geschrieben:Der SmartUpdater macht keine Beta-Updates, der ist nur für die Gamma-Teile da :D
:lol:

:mrgreen:

Ich weiß. Hab ich ja auch aber nicht per SmartUpdate versucht.

Mfg,
AndyX
Benutzeravatar
nco2k
Beiträge: 892
Registriert: 08.09.2004 23:13

Beitrag von nco2k »

@Kaeru Gaman
natürlich wird in kaum einer Anwendung ein fenster mit 100 Buttons
einen Default und einen Cancel button haben, aber es geht...
doch kann schon vorkommen... wenn ein button den focus erhält, sollte dieser dann als default gesetzt werden. wenn man dann enter drückt, sollte der momentane als default gesetzte button ausgelöst werden. wenn das fenster inaktiv wird, wird der default button wieder "normal" und wenn das fenster wieder aktiv wird, wird der letzte als gesetzte default button, wieder als default markiert, es sei den man klickt einen anderen button an, dann wird logischerweise der neue button als default gesetzt. so einfach ist das. :wink:

beim pb-editor und co, hat man einfach nur einen default button hingeklatscht, welcher nicht auf den dafür vorgesehenen verhaltensregeln aufbaut. schlimmer wirds, wenn eine anwendung gleich mehrere default buttons hat. :roll: ist einfach nicht "korrekt" aber jedem das seine.

c ya,
nco2k
~|__/
..o.o.. <--- This is Einkaufswagen. Copy Einkaufswagen into your signature to help him on his way to world domination.
Benutzeravatar
AndyX
Beiträge: 1272
Registriert: 17.12.2004 20:10
Wohnort: Niederösterreich
Kontaktdaten:

Beitrag von AndyX »

Ähhhm Kann mir jetzt jemand sagen wieso das nicht geht?

Mfg,
AndyX
Benutzeravatar
nco2k
Beiträge: 892
Registriert: 08.09.2004 23:13

Beitrag von nco2k »

@AndyX
nö.

du solltest schon die sache näher erläutern. es kann an tausend verschiedenen sachen liegen. einfach so in die runde zu schreien, es geht nicht, warum geht es nicht? bringt dich auch nicht weiter. zur not deinstallierst du einfach pb und installierst es neu, darfst nur nicht vergessen das pb3.93b3 keine vollversion ist, sondern nur ein update und du davor die pb3.92 vollversion installieren musst.

c ya,
nco2k
~|__/
..o.o.. <--- This is Einkaufswagen. Copy Einkaufswagen into your signature to help him on his way to world domination.
Benutzeravatar
Falko
Admin
Beiträge: 3535
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit)
Kontaktdaten:

Beitrag von Falko »

Hallo Andy,
mach nochmal Smartupdate zu 3.92 und prüfe ob alles läuft. Dann gehst du
hin und kopierst den kompletten PB-Ordner z.B. in einen Ordner Namens
PurebasicBeta. Jetzt hast du 2 PB's die du getrennt starten kannst. Wenn du
die BetaVersion 3.93 Beta 3 direkt von Purebasic.com runtergeladen hast,
und auf deinem Rechner entpackt hast, kannst du das Installprogramm
ausführen. Wichtig, ändere den Pfad darin jetzt auf dein
PurebasicBeta-Verzeichnis. Sollte da was nicht starten, entferne erstmal alle
userlibrarys die du dir sicherst, und probiere es nocheinmal. Jetzt kannst du
nach und nach die einzelnen libs nachundnach reinkopieren und
zwischendurch ausprobieren. Damit weist du dann, fals eine Lib mit dem
neuen PB nicht richtig arbeitet.

MfG Falko
Bild
Win11 Pro 64-Bit, PB_6.11b1
Benutzeravatar
sharkpeter
Beiträge: 474
Registriert: 29.08.2004 16:18
Wohnort: Dresden
Kontaktdaten:

Beitrag von sharkpeter »

nco2k hat geschrieben:@Kaeru Gaman
natürlich wird in kaum einer Anwendung ein...
- doch kann schon vorkommen...
- wenn ein button den focus erhält, sollte ...
- beim pb-editor und co, hat man einfach nur einen ...

c ya,
nco2k
Da es ja nun so aussieht, das da mehrere Interesse dran haben, wie wäre es
denn, wenn sich mal freak oder Andre dazu äußern könnten, einfach nur als
Information warum es so nicht ist oder nicht geht oder ob es demnächst mit
eingeplant ist sowas zu machen.

Und nun bitte nicht gleich wieder auf mich draufhauen, habe es freundlich und
formvollendet formuliert.

Gruß Jens
PB3.94 bis 6.xx / (Win98/98SE/ME/XPProSP3/WINVista-X32)/WIN7HP-X64/WIN8PRO-X32/WIN10-64

Nichts wissen macht nichts, sich dumm stellen aber schon.
Benutzeravatar
nco2k
Beiträge: 892
Registriert: 08.09.2004 23:13

Beitrag von nco2k »

@sharkpeter
ich vermute mal, weil nicht jeder das so haben will. die sache an sich, ist aber kein problem. das lässt sich mit einem callback ganz simpel lösen. :wink:

hier ganz auf die schnelle, ein beispiel wie man es in etwa hinkriegen könnte. der code ist sicherlich noch verbesserungswürdig, aber es zeigt deutlich das prinzip auf was man achten sollte.

Code: Alles auswählen

;/ Default-Button Example by nco2k

#Button_A = 0
#Button_B = 1
#Button_Exit = 2

#Shortcut_Escape = 0
#Shortcut_Return = 1

Global DefaultButton.l

Procedure WndProc(hWnd, Msg, wParam, lParam)
  If Msg = #WM_ACTIVATE
    If hWnd = WindowID(0)
      If (wParam & $FFFF) = #WA_INACTIVE
        SendMessage_(GadgetID(#Button_A), #BM_SETSTYLE, 0, #True)
        SendMessage_(GadgetID(#Button_B), #BM_SETSTYLE, 0, #True)
        SendMessage_(GadgetID(#Button_Exit), #BM_SETSTYLE, 0, #True)
      Else
        If DefaultButton = #Button_A
          SendMessage_(GadgetID(#Button_A), #BM_SETSTYLE, #BS_DEFPUSHBUTTON, #True)
        ElseIf DefaultButton = #Button_B
          SendMessage_(GadgetID(#Button_B), #BM_SETSTYLE, #BS_DEFPUSHBUTTON, #True)
        ElseIf DefaultButton = #Button_Exit
          SendMessage_(GadgetID(#Button_Exit), #BM_SETSTYLE, #BS_DEFPUSHBUTTON, #True)
        EndIf
      EndIf
    EndIf
  EndIf
  ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure

If OpenWindow(0, 0, 0, 320, 95, #PB_Window_TitleBar | #PB_Window_SystemMenu | #PB_Window_ScreenCentered, "Default-Button Example")
  If CreateGadgetList(WindowID(0))
    AdvancedGadgetEvents(#True)
    ButtonGadget(#Button_A, 110, 5, 100, 25, "A")
    ButtonGadget(#Button_B, 110, 35, 100, 25, "B", #PB_Button_Default)
    DefaultButton = #Button_B
    ActivateGadget(#Button_B)
    ButtonGadget(#Button_Exit, 110, 65, 100, 25, "Exit")
  EndIf
  AddKeyboardShortcut(0, #PB_Shortcut_Escape, #Shortcut_Escape)
  AddKeyboardShortcut(0, #PB_Shortcut_Return, #Shortcut_Return)
  SetWindowCallback(@WndProc())
EndIf

Repeat
  Select WaitWindowEvent()
    Case #PB_Event_Menu
      Select EventMenuID()
        Case #Shortcut_Escape
          End
        Case #Shortcut_Return
          If DefaultButton = #Button_A
            Debug "A"
          ElseIf DefaultButton = #Button_B
            Debug "B"
          ElseIf DefaultButton = #Button_Exit
            End
          EndIf
      EndSelect
    Case #PB_Event_Gadget
      Select EventGadgetID()
        Case #PB_Event_Gadget
          Case #Button_A
            Select EventType()
              Case #PB_EventType_Focus
                SendMessage_(GadgetID(#Button_B), #BM_SETSTYLE, 0, #True)
                SendMessage_(GadgetID(#Button_Exit), #BM_SETSTYLE, 0, #True)
                SendMessage_(GadgetID(#Button_A), #BM_SETSTYLE, #BS_DEFPUSHBUTTON, #True)
                DefaultButton = #Button_A
              Case #PB_EventType_LeftClick
                Debug "A"
            EndSelect
          Case #Button_B
            Select EventType()
              Case #PB_EventType_Focus
                SendMessage_(GadgetID(#Button_A), #BM_SETSTYLE, 0, #True)
                SendMessage_(GadgetID(#Button_Exit), #BM_SETSTYLE, 0, #True)
                SendMessage_(GadgetID(#Button_B), #BM_SETSTYLE, #BS_DEFPUSHBUTTON, #True)
                DefaultButton = #Button_B
              Case #PB_EventType_LeftClick
                Debug "B"
            EndSelect
          Case #Button_Exit
            Select EventType()
              Case #PB_EventType_Focus
                SendMessage_(GadgetID(#Button_A), #BM_SETSTYLE, 0, #True)
                SendMessage_(GadgetID(#Button_B), #BM_SETSTYLE, 0, #True)
                SendMessage_(GadgetID(#Button_Exit), #BM_SETSTYLE, #BS_DEFPUSHBUTTON, #True)
                DefaultButton = #Button_Exit
              Case #PB_EventType_LeftClick
                End
            EndSelect
      EndSelect
    Case #PB_Event_CloseWindow
      End
  EndSelect
ForEver

End
hoffe nur, daß keine bugs drin sind. hab grad nicht so viel zeit um mich darum zu kümmern. ansonsten viel spass! :wink:

c ya,
nco2k
~|__/
..o.o.. <--- This is Einkaufswagen. Copy Einkaufswagen into your signature to help him on his way to world domination.
Antworten