suche stoppen, wie?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
sen-me
Beiträge: 478
Registriert: 17.07.2005 16:02
Wohnort: Saarbrücken
Kontaktdaten:

Beitrag von sen-me »

kann mans nich irgendwie doch mit threads machen?
Bild
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag 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
Benutzeravatar
HeX0R
Beiträge: 3042
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Beitrag 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 ;)
Benutzeravatar
sen-me
Beiträge: 478
Registriert: 17.07.2005 16:02
Wohnort: Saarbrücken
Kontaktdaten:

Beitrag 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
Bild
Benutzeravatar
Konne
Beiträge: 764
Registriert: 30.03.2005 02:20
Kontaktdaten:

Beitrag 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:
Benutzeravatar
Tafkadasom2k5
Beiträge: 1578
Registriert: 13.08.2005 14:31
Kontaktdaten:

Beitrag 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..?
OpenNetworkConnection() hat geschrieben:Versucht eine Verbindung mit dem angegebenen Server aufzubauen. 'ServerName$' kann eine IP-Adresse oder ein voller Name sein (z.B.: "127.0.0.1" oder "ftp.home.net").
php-freak hat geschrieben:Ich hab die IP von google auch ned rausgefunden!
Antworten