![]() |
Ist while in verbindung mit einem Button nicht möglich?
ich habe einen Button, der heisst Bwert. Dann habe ich eine Prozedur, die ein paar Sachen durchläuft. jetzt will ich, aber die Prozedur an einer STelle anhalten, um einen Parameter einzugeben. Aber irgendwie will er das nicht akzeptieren. Hier der Quellcode:
Delphi-Quellcode:
if(t=2)AND(Feld[t]<>'NULL')THEN begin
while not BWert.Click do begin Edit1.Enabled:=true; Bwert.Enabled:=true; end; end; |
Re: Ist while in verbindung mit einem Button nicht möglich?
ich glaub nicht, dass das geht, arbeite doch mit dem OnClick-Ereigniss des Buttons.
|
Re: Ist while in verbindung mit einem Button nicht möglich?
Und wie kann ich da solange die schleife anhalten?!
|
Re: Ist while in verbindung mit einem Button nicht möglich?
Delphi-Quellcode:
var
BWertClicked : boolean; // ... procedure TForm1.BWertClick(Sender: TObject); begin BWertClicked := true; end; // ... begin BWertClicked := false; if(t=2)AND(Feld[t]<>'NULL')THEN begin while not BWertClicked do begin Edit1.Enabled:=true; Bwert.Enabled:=true; Application.ProcessMessages; end; end; BWertClicked := false; end; |
Re: Ist while in verbindung mit einem Button nicht möglich?
'Click' ist eine virtuelle methode...keine property! Ausserdem ist delphi ereigniss-orientiert und deshalb solltest OnClick benutzen :wink: ...echt jetzt.
cui. |
Re: Ist while in verbindung mit einem Button nicht möglich?
Hallo.
Auszug aus Delphi-Hilfe:
Delphi-Quellcode:
Ich weiss nicht wie du Dein Kontrukt programmiert hast, aber kann nach der Hilfe nicht so funktionieren, so wie ich das Verstanden habe.
Die Methode Click simuliert einen Mausklick durch den Benutzer auf eine Schaltfläche.
procedure Click; override; Beschreibung Ein Aufruf von Click weist dem übergeordneten Formular den Wert der Eigenschaft ModalResult der Schaltfläche zu und erzeugt dann das Ereignis OnClick. Weise Deinem Button mal die Eigenschaft: ModalResult := mrOK zu. Deine Schleife änderst Du folgendermassen:
Delphi-Quellcode:
while self.modalResult<>mrOK do
begin Edit1.Enabled:=true; Bwert.Enabled:=true; Application.ProcessManages; end; |
Re: Ist while in verbindung mit einem Button nicht möglich?
Zitat:
|
Re: Ist while in verbindung mit einem Button nicht möglich?
leg deine prozedur doch einfach auf nen timer und disable den auf knopfdruck.
|
Re: Ist while in verbindung mit einem Button nicht möglich?
@Zyro
In meinem Beispiel habe ich eine Variable definiert, deshalb kann sie janicht undeclared sein. Du darfst nicht BWert.Clicked schreiben, sondern nur BWertClicked, ohne Punkt. |
Re: Ist while in verbindung mit einem Button nicht möglich?
@Zyro!
Du solltest Dein Code mal gründlich überdenken. Dieses Konstrukt sieht echt verboten aus. Anhalten gibt es bei Windows nicht. wenn ein Codeabschnitt nicht erreichbar sein soll, lässt sich das über Variablen leicht handhaben. Rechenzeitintensive Geschichten gehören in einen Thread. Alles andere ist gezwackel. Dieses Application.Processmessages sollte verboten werden. Sorry, meine Meinung OLLI |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:06 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