![]() |
Einfache Frage zu einer Schleife
Jo.
Hab eingetlich ne ganz billige Frage. Ich hab ein Button auf meiner Form. Ich würde gerne wenn ich das zweite Mal hintereinander auf den Button klicke, das ne Meldung kommt. (ShowMessage) z.B. 'Du hast schon gedrückt' usw. Danke! |
Re: Einfache Frage zu einer Schleife
Schau dir mal TButton.Enabled, wenn du möchtest, dass man den nur einmal drücken kann.
Sonst:
Delphi-Quellcode:
if TButton.Tag = 1 then Beep
else TButton.Tag := 1; // usw. |
Re: Einfache Frage zu einer Schleife
Delphi-Quellcode:
var FPressed:Boolean=False;
Button1.OnClick if fPressed then showmessage('xxxxx'); fPressed:=True; |
Re: Einfache Frage zu einer Schleife
Zitat:
Zitat:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var KLick: boolean; begin if Klick = true then ShowMessage('schon geklickt!'); Klick := true; end; |
Re: Einfache Frage zu einer Schleife
Hi,
das hat nix mit ner Schleife zu tun ;) Gib Deinem TForm im private-Abschnitt ne Variable (boolean, Byte, was auch immer *g* - was für Deine Zwecke halt benötigt wird) und setze diese im FormCreate auf False, 0 was auch immer :D Beim Click auf den Button prüfst Du diese Variable (false, 0 ...), änderst sie (auf true, hochzählen..) Somit erkennst Du beim zweiten Click, dass sie nicht mehr im Ausgangszustand (false/0...) ist und kannst darauf reagieren. edit: Warum tipp ich immer so viel nd bin dadurch so lahm... :? Gruß Stephan :dance: |
Re: Einfache Frage zu einer Schleife
Zitat:
Gruß Stephan :dance: |
Re: Einfache Frage zu einer Schleife
hi,
ist wirklich ganz einfach ;) du musst nur eine variable deklarieren, die speichert, ob schon geklickt wurde. möglichst nicht global, das thema hatten wir hier ja schon oft. also:
Delphi-Quellcode:
Aenogym
//uses usw.
type TForm1 = class(TForm) //... private gedrueckt: boolean; end; //... procedure TForm1.FormCreate(Sender: TObject); begin gedrueckt := false; //bin mir jetzt nicht sicher, ob die variable automatisch false ist end; procedure TForm1.Button1Click(Sender: TOJbect); begin if gedrueckt then showmessage('Du hast schon gedrückt') else //dein code end; |
Re: Einfache Frage zu einer Schleife
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
const {$j+} bClicked: Boolean = False;{$j-} begin if bClicked then ShowMessage('Du hast schon geklickt') else bClicked := True; end; |
Re: Einfache Frage zu einer Schleife
Zitat:
@Steve: ich dachte, die Variable wird im ganzen Event beibehalten (also auch beim 2. und 3. mal aufrufen) :gruebel: |
Re: Einfache Frage zu einer Schleife
ALso ich finde die Idee mit dem Tag am besten. :zwinker:
*Meine Antwort gelöscht hab weil schon so viele vor mir gepostet haben* :| mfg freak |
Re: Einfache Frage zu einer Schleife
@malo: geht doch. denn der compiler schalter {$j+} aktiviert, dass man typisierte konstanten ändern kann. ist eigentlich nur noch zur abwärtskompatibilität drin, da fürher alle konstanten variabel waren...
Aenogym |
Re: Einfache Frage zu einer Schleife
Zitat:
//edit: oder hab ich da was GANZ falsch verstanden? :wall: |
Re: Einfache Frage zu einer Schleife
Zitat:
Gruß Stephan :dance: |
Re: Einfache Frage zu einer Schleife
Ja aber da {$} ein $ zeichen vorsteht werden sie doch beachtet.
Mfg MrScholz |
Re: Einfache Frage zu einer Schleife
Zitat:
Delphi-Quellcode:
:zwinker:
procedure TForm1.FormClick(Sender: TObject);
var i : byte; begin ShowMessage(inttostr(i)); inc(i); end; Gruß Stephan :dance: |
Re: Einfache Frage zu einer Schleife
Mit solchen Gemeinheiten geht mir Delphi aber tierisch auf den Keks :wall:
Naja, wieder was gelernt :) Kann mir vielleicht mal jemand ein Tutorial o.Ä. zu diesen {$...}-Sachen geben? Weil ich die irgendwie nich wirklich kapiere :wall: |
Re: Einfache Frage zu einer Schleife
Vielen, vielen Dank Leute!
Ich bin begeistert von eurer Hilfsbereitschaft! :spin: :spin: :spin: |
Re: Einfache Frage zu einer Schleife
malo,
diese {$...} sachen nennen sich "compiler-anweisungen". einfach mal die hilfe nachschlagen dazu ;) außerdem kanst du sie nicht mit kommentaren verwechseln, da delphi die (standardmäßig) anders hervorhebt. bei mir sind kommentare blau und compiler-direktiven grün :) compiler-direktiven sind dazu da, um dem compiler anweisungen zu geben, wie er sich verhalten soll. so kannst du zum beispiel kurzzeitig die "hinweise" für bestimmte code-zeilen abschalten, die beim compilieren manchmla unter dem code fenster erscheinen. in der hlfe hast du eine komplette liste mit allen direktiven und was diese tun. Aenogym |
Re: Einfache Frage zu einer Schleife
Hi,
zum Thema {$abc} liefert die Delphi-Hilfe was unter dem Stichpunkt ![]() ![]() Gruß Stephan :dance: |
Re: Einfache Frage zu einer Schleife
Zitat:
das gilt erst ab Delphi 6 oder 7. Bei Delphi 5 werden sie bei der Hervorhebung nicht unterschieden ;) Gruß Stephan :dance: |
Re: Einfache Frage zu einer Schleife
Zitat:
Trotzdem danke nochmal, ich frag die bekannte OH nochmal danach :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:08 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 by Thomas Breitkreuz