Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Einfache Frage zu einer Schleife (https://www.delphipraxis.net/38524-einfache-frage-zu-einer-schleife.html)

sniffy 20. Jan 2005 13:54


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!

jfheins 20. Jan 2005 13:59

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.

xman 20. Jan 2005 14:00

Re: Einfache Frage zu einer Schleife
 
Delphi-Quellcode:
var FPressed:Boolean=False;



Button1.OnClick

if fPressed then
showmessage('xxxxx');

fPressed:=True;

malo 20. Jan 2005 14:00

Re: Einfache Frage zu einer Schleife
 
Zitat:

Zitat von sniffy
Jo.
Hab eingetlich ne ganz billige Frage.

Sowas gibts nicht :zwinker:

Zitat:

Zitat von sniffy
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!

Erstell doch eine Variable in deinem OnClick-Ereignes, die beim OnClick auf true gesetzt wird , also so:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var KLick: boolean;
begin
 if Klick = true then
   ShowMessage('schon geklickt!');
 Klick := true;
end;

Steve 20. Jan 2005 14:01

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:

Steve 20. Jan 2005 14:03

Re: Einfache Frage zu einer Schleife
 
Zitat:

Zitat von malo
Erstell doch eine Variable in deinem OnClick-Ereignes, die beim OnClick auf true gesetzt wird , also so:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var KLick: boolean;
begin
 if Klick = true then
   ShowMessage('schon geklickt!');
 Klick := true;
end;

Wenn die Variable lokal ist, geht die Änderung verloren.

Gruß
Stephan :dance:

Aenogym 20. Jan 2005 14:03

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:
//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;
Aenogym

toms 20. Jan 2005 14:04

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;

malo 20. Jan 2005 14:08

Re: Einfache Frage zu einer Schleife
 
Zitat:

Zitat von toms
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;

So gehts nicht, da man Konstanten nicht ändern kann ;)

@Steve: ich dachte, die Variable wird im ganzen Event beibehalten (also auch beim 2. und 3. mal aufrufen) :gruebel:

freak4fun 20. Jan 2005 14:09

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


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:15 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz