Wie Callback aufrufen?

Für allgemeine Fragen zur Programmierung mit PureBasic.
Sven
Beiträge: 374
Registriert: 23.09.2004 12:01

Wie Callback aufrufen?

Beitrag von Sven »

Hallo, ich habe mir ein Beispiel zum zyklischen Aufruf über den Windows-Timer genommen und zu untenstehenden Code modifiziert. Das läuft soweit. Nun habe ich festgestellt, dass es erstmal egal ist, ob ich die Callback-Prozedur direkt im SetTimer_ oder über die folgende SetWindowCallback aufrufe. Da ich aber nicht glauben will, dass es wirklich egal ist, könnt ihr mir vielleicht sagen:

Worin liegt der Unterschied / Vorteil von SetWindowCallback zum direkten Aufruf?
Welcher Aufruf ist zu bevorzugen? Bei welchem sind event. Probleme zu erwarten?
Oder ist es wirklich egal?

(Initialisierung aller Variablen / Konstanten und Killtimer am Ende ist natürlich im Quellcode dabei.)

Sven

Code: Alles auswählen

Procedure TimerCallback(WindowID.l, Message.l, wParam.l, lParam.l)  
  Select Message 
    Case #WM_Timer 
      StatusBarText(#idstatusbar, 0, FormatDate("%hh:%ii:%ss", Date()))
  EndSelect  
  ProcedureReturn #PB_ProcessPureBasicEvents 
EndProcedure
  
SetTimer_(WindowID(#idwdmain), #idtimer, 100, @TimerCallback()) 

oder 

SetTimer_(WindowID(#idwdmain), #idtimer, 100, 0) 
SetWindowCallback(@TimerCallback())
Sven
Beiträge: 374
Registriert: 23.09.2004 12:01

Beitrag von Sven »

Nun kommt schon! Das habt ihr doch auch schonmal gemacht. Keiner eine Idee? Ich würd's halt gerne richtig machen...

Sven
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Ist wirklich egal. Solltest Du noch anderweitig Callbacks-Funktionen verwenden, ist die 2-te Variante wohl vorzuziehen.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Antworten