Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - BUTTONKLICKS <-- 1,2,3 mit anderem Ereignis


schneemännchen - So 04.01.04 21:42
Titel: BUTTONKLICKS <-- 1,2,3 mit anderem Ereignis
hi, hoffe hier bin ich richtig mit der Frage. ich wollte folgendes realisieren:
wenn ich in meinem proggy auf einen button klicke, sollte er 3 sachen hintereinander bearbeioten. z.b. ungefähr so:

KLICK ->
1. Website laden....
2. nachdem website FERTIG ist auf Link klicken....
3. Nachdem der Link fertig geladen wurde, text ausgeben an textbox.

so, die sachen hab ich ja alle scho realisiert, allerdings weis ich net wie man des macht das man nur auf einen button klickt und er die 3 sachen automatisch macht ohne das man nochmal klicken muss...
hat jemand neahnung?


toms - So 04.01.04 21:45

Zitat:
Website laden....


Hi,

Wo wird denn die Webseite geladen?


schneemännchen - So 04.01.04 21:48
Titel: ho
geht des net? ich hab mal sowas gesehen mit einem klick 3 ereignisse behandeln...


Wolff68 - Mo 05.01.04 13:10

Hallo Schneemännchen.

Ich denke der Grund zur Frage WO Du die Webseite lädst ist folgender:
Wenn Du zB den TWebBrowser verwendest hat dieser ein Ereigniss OnNavigateCompleate2.
Diese wird ausgeführt nachdem die Webseite FERTIG aufgebaut ist, und somit das richtige Ereignis für Dein "Link klicken"
Das klicken des Links ruft wieder eine neue Webseite auf. Also kommt OnNavigateCompleate2 NOCHMAL, wobei Du nun den Text auslesen kannst.

Wenn Du ein externes Programm zum öffnen der Webseite verwendest musst Du dieses überwachen um herauszufinden wann die Seite fertig geladen ist.


jaenicke - Mo 05.01.04 13:54
Titel: Vorschlag:
Hallo!

Du brauchst ja eine Unterscheidung, in welchem Zustand sich Dein Programm gerade befindet.

Dafür könnstest Du zum Beispiel die Tag-Eigenschaft des Buttons verwenden.

Dann könntest Du in OnClick schreiben:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
Case Button1.Tag of
  1begin
       (...)
     end;
  2begin
       (...)
     end;
  3begin
       (...)
     end;
end;


Den Status müsstest Du entsprechend nach Abschluss der jeweiligen Operation setzen.

Alternativ könntest Du mehrere Prozeduren für OnClick schreiben und diese zur Laufzeit mit

Delphi-Quelltext
1:
Button1.OnClick:=Button1ClickAfterLoad;                    

etc.
zuweisen.

Ich benutze zur Statusunterscheidung allerdings eine eigene Variable um nicht aus Versehen die Tag-Eigenschaft mehrfach zu benutzen und Fehler zu provozieren...

MfG,
S.J.