AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Einfache Frage zu einer Schleife

Ein Thema von sniffy · begonnen am 20. Jan 2005 · letzter Beitrag vom 20. Jan 2005
Antwort Antwort
Seite 1 von 3  1 23   
sniffy

Registriert seit: 1. Sep 2004
Ort: Niederrhein
37 Beiträge
 
Delphi 7 Enterprise
 
#1

Einfache Frage zu einer Schleife

  Alt 20. Jan 2005, 13:54
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!
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#2

Re: Einfache Frage zu einer Schleife

  Alt 20. Jan 2005, 13:59
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.
  Mit Zitat antworten Zitat
xman
(Gast)

n/a Beiträge
 
#3

Re: Einfache Frage zu einer Schleife

  Alt 20. Jan 2005, 14:00
Delphi-Quellcode:
var FPressed:Boolean=False;



Button1.OnClick

if fPressed then
showmessage('xxxxx');

fPressed:=True;
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#4

Re: Einfache Frage zu einer Schleife

  Alt 20. Jan 2005, 14:00
Zitat von sniffy:
Jo.
Hab eingetlich ne ganz billige Frage.
Sowas gibts nicht

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;
  Mit Zitat antworten Zitat
Benutzerbild von Steve
Steve

Registriert seit: 2. Mär 2004
Ort: Würzburg
730 Beiträge
 
Delphi 2006 Personal
 
#5

Re: Einfache Frage zu einer Schleife

  Alt 20. Jan 2005, 14:01
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
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
Stephan B.
Wer andern eine Grube gräbt ist Bauarbeiter!
Wer im Glashaus sitzt, sollte sich lieber im Dunkeln ausziehen!
Außerdem dieser Satz kein Verb...
  Mit Zitat antworten Zitat
Benutzerbild von Steve
Steve

Registriert seit: 2. Mär 2004
Ort: Würzburg
730 Beiträge
 
Delphi 2006 Personal
 
#6

Re: Einfache Frage zu einer Schleife

  Alt 20. Jan 2005, 14:03
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
Stephan B.
Wer andern eine Grube gräbt ist Bauarbeiter!
Wer im Glashaus sitzt, sollte sich lieber im Dunkeln ausziehen!
Außerdem dieser Satz kein Verb...
  Mit Zitat antworten Zitat
Benutzerbild von Aenogym
Aenogym

Registriert seit: 7. Mär 2004
Ort: Schwerin
1.089 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Einfache Frage zu einer Schleife

  Alt 20. Jan 2005, 14:03
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
Steffen Rieke
Was nicht buzzt, wird buzzend gemacht!
http://blog.base-records.de
http://www.base-records.de
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#8

Re: Einfache Frage zu einer Schleife

  Alt 20. Jan 2005, 14:04
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;
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#9

Re: Einfache Frage zu einer Schleife

  Alt 20. Jan 2005, 14:08
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)
  Mit Zitat antworten Zitat
Benutzerbild von freak4fun
freak4fun

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#10

Re: Einfache Frage zu einer Schleife

  Alt 20. Jan 2005, 14:09
ALso ich finde die Idee mit dem Tag am besten.

*Meine Antwort gelöscht hab weil schon so viele vor mir gepostet haben*

mfg
freak
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:18 Uhr.
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