![]() |
Delphi Button mehrmals klicken
Hallo,
ich will gerne über einen Button eine Actionliste ansteuern, dies funktioniert über Action1.execute auch sehr gut, nun möchte ich gerne über ein Edit.Text Feld in dem Zahlen Werte stehen, dem Button sagen,wenn ich auf den Button klicke soll er 1,2 oder was an Zahlen im Textfeld stehen, das Action1.execute hintereinander ausführen. Wie funktioniert das ? Code: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ActnList; type TForm1 = class(TForm) Edit1: TEdit; ActionList1: TActionList; Action1: TAction; Button1: TButton; procedure Action1Execute(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Action1Execute(Sender: TObject); begin showmessage('test') end; procedure TForm1.Button1Click(Sender: TObject); begin Action1.execute end; end. |
AW: Delphi Button mehrmals klicken
Stichwort Schleife.
|
AW: Delphi Button mehrmals klicken
Stichwort Code-Tags
|
AW: Delphi Button mehrmals klicken
Stichwort Delphi-Tags :tongue:
|
AW: Delphi Button mehrmals klicken
Immer wieder gut:
![]() Zitat:
![]() Grüße, Steku |
AW: Delphi Button mehrmals klicken
Naja, while ginge auch. Mir ging es ja nur darum, dass man für sich wiederholende Blöcke Schleifen verwendet/verwenden sollte.
|
AW: Delphi Button mehrmals klicken
Hi vielen Dank für die Infos, hmm nur bekomme ich einige Dinge nicht hin.
habe versucht zwei Abläufe hintereinander durchlaufen zu lassen. Aber egal wie ich es auch probiere es klappt nicht. procedure TForm1.Action43Execute(Sender: TObject); var link,s:string; I:integer; mylink:olevariant; begin s:=''; mylink:=''; for I := 0 to WebBrowser1.OleObject.Document.links.Length - 1 do begin s:=WebBrowser1.OleObject.Document.links.Item(I).In nerText; if s='in Bearbeitung' then mylink := WebBrowser1.OleObject.Document.links.Item(I); end; webbrowser1.Navigate(mylink); repeat; Application.ProcessMessages; Sleep(1000); until WebBrowser1.ReadyState = READYSTATE_COMPLETE; Webbrowser1.Navigate(Edit23.Text); // Filter öffnen WebBrowser1.OleObject.document.forms.item(0).eleme nts.item(12).click; //aktiv 1 WebBrowser1.OleObject.document.forms.item(0).eleme nts.item(16).click; //aktiv 2 end; procedure TForm1.Action45Execute(Sender: TObject); var ovElements: OleVariant; i: Integer; begin ovElements := WebBrowser1.OleObject.Document.forms.item(0).eleme nts; for i := 0 to (ovElements.Length - 1) do if (ovElements.item(i).tagName = 'INPUT') and (ovElements.item(i).type = 'submit') and (ovElements.item(i).Value = 'Filter setzen') then ovElements.item(i).Click; end; Diese beiden muß ich hintereinander mit einer kleinen Pause durchlaufen lassen. Aber irgendwie macht er nur die Action43.execute führt er aus, die andere muß ich immer noch von Hand anstupsen habe mir auch mal nen Wait eingebaut als procedure aber klappt auch nicht, selbst mit dem Command Sleep z.B. in der Form procedure Button1 begin Action43.execute; sleep(500) Action45.execute; end; auch mittels folgender procedure versucht procedure Wait(eWebBrowser: TWebBrowser); begin repeat Sleep(50); // 50ms warten Application.ProcessMessages; // Andere Events verarbeiten until (eWebBrowser.ReadyState = READYSTATE_COMPLETE) or (Application.Terminated); end; procedure ladeSeite; begin while ((Form1.Webbrowser1.ReadyState <> ReadyState_complete) or (Form1.Webbrowser1.Document = nil) or ((Form1.Webbrowser1.Document AS IHTMLDocument2).readyState <> 'complete')) do begin Application.ProcessMessages; if Application.Terminated then halt; sleep (400); end; end; selbst wenn ich die Wait oder ladeseite mit hintersetze keine chance, was mache ich falsch ? |
AW: Delphi Button mehrmals klicken
Also mittlerweile solltest du aber die Delphi Tags beim schreiben von Beiträgen kennen, deswegen benutze sie auch bitte.
|
AW: Delphi Button mehrmals klicken
Du hast natürlich F7 benutzt um die Codestelle zu finden, die nicht tut was sie soll.
Könntest Du uns da informieren?
Delphi-Quellcode:
Gruß
soist Delpi-Code besser lesbar
K-H |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:14 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz