Seite 3 von 3

Verfasst: 22.12.2005 20:35
von sen-me
kann mans nich irgendwie doch mit threads machen?

Verfasst: 22.12.2005 20:52
von Kiffi
HeX0R hat geschrieben:/:->
*mit nächstem der irre genug ist mich hier abzulösen abklatsch*
:lol:

Sorry, HeX0R, aber die Sache hast Du jetzt angefangen und nun musst
Du es auch zu Ende bringen :-)

Bin im Gedanken bei Dir! :allright:

Grüße ... Kiffi

Verfasst: 22.12.2005 21:21
von HeX0R
MIST :mrgreen:

Also gut, ich versuchs jetzt mal anders:

Wobei vorneweg:
Ja klar, das geht auch in nem Thread. Wird nur etwas umständlicher, da du dort keine Strings verwenden darfst und auch wegen anderer Dinge.

Sodele, aber nun nochmal zu einer Kurzerklärung (mir scheint, du hast da einige Verständigungsprobleme):

In deiner Hauptschleife rufst du SearchFile() auf, sobald dein Toolbarbutton gedrückt wurde.
Ich hab so das Gefühl, du bist dir nicht im klaren, dass der Programmablauf ab diesem Zeitpunkt nicht mehr zu deiner Hauptschleife zurückkehrt ?
Erst wenn der komplette Suchvorgang abgeschlossen ist!

Soll heissen:
Deine ganze lustige Schleife (inklusive der Auswertung des Search-Stop-Buttons), die die WindowsEvents abfängt und verarbeitet ist ab diesem Moment für einige Sekunden/Minuten wirkungslos.

Soweit klar ?

Also , du willst aber den Suchvorgang abbrechen.
Wie machst du das, wenn keine Windows Events mehr ausgewertet werden ?

Richtig!
Du bastelst dir einfach eine MickyMaus-Event-Handle-Funktion IN deine Search-Routine (wie ich oben ja gezeigt habe).

Besser wäre übrigens (so würde ich es machen) du machst ein kleineres Search-Fenster, vielleicht noch mit ProgressBalken, und deaktivierst dein Hauptfenster.
Das hat den Vorteil, dass du nur z.B. auf den Window-Close-Event des kleineren Fensters in der Search-Schleife achten musst.

Puuhh...
ich scheine doch masochistisch veranlagt zu sein ;)

Verfasst: 23.12.2005 23:36
von sen-me
hmmm

wie müsste ich denn das machen wenn ich nen Fenster (neues) öffnen müsste und dann überprüfe ob es geschlossen wird

Verfasst: 24.12.2005 13:39
von Konne
Also du öffnest ein neues Fenster, schreibst einen Eventloop und wenn das Event #PB_Event_Closewindow kommt, dann schaust du in welchem Fenster gedrückt wurde mit EventWindowID() und dann schließt du es Fertig :allright:

Verfasst: 24.12.2005 14:34
von Tafkadasom2k5
OK ich veruschs auch nochmal ;)
Damit deine Toolbar merkt, dass die Suchfunktion gestoppt werden muss
brauchste eine Eventloop IN der Such-Prozedur:

Code: Alles auswählen

Global HoerAuf.l

Procedure Searchpath(Path.s)

 
Hier kommt der Code von deiner Suchroutine rein...

 EventID = WindowEvent()

 If EventMenuID = #ButtonStop  (also der MenuButton der stoppen soll)
  HoerAuf = 1
 Endif
 If Hoerauf = 0 and Gefunden = 0
   searchpath(path)
 endif

Hoffe das war verständlich..?