Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi ARGH... Buttonproblem (https://www.delphipraxis.net/85370-argh-buttonproblem.html)

LDericher 29. Jan 2007 21:34


ARGH... Buttonproblem
 
Ich wollte einen Button programmieren, der beim ersten Draufklicken zB "Hallo" und bei weiterem Draufklicken zB "Tschüss" in ein Textfeld schreibt. Eigentlich ist mir alles klar, aber ich weiß nicht, wie ich diese "Verzögerung" einbaue...

HILFE!

Superwinger

TBx 29. Jan 2007 21:36

Re: ARGH... Buttonproblem
 
Hallo!

Erst mal herzlich willkommen in der DP!

Du schreibst, Dir sei eigentlich alles klar ...

... mir ist nicht klar, was Du für ein Problem hast.
Erläutere es doch bitte näher

Gruß

onlinekater

Michael Habbe 29. Jan 2007 21:43

Re: ARGH... Buttonproblem
 
Ist doch ganz einfach:

Delphi-Quellcode:
var
  beschriftung: String;

procedure TForm1.FormCreate(...);
begin
  beschriftung := 'Hallo';
end;

procedure TForm1.Button1Click(...);
begin
  Edit1.Text := beschriftung;
  beschriftung := 'Tschüss';
end;
mfg
Michael

LDericher 29. Jan 2007 21:51

Re: ARGH... Buttonproblem
 
Das klappt...

Aber: kann man noch eine dritte, vierte... Stufe einbauen?

So wie zB:

"Hallo!"
"Tach auch!"
"Tschüss!"
"Auf Wiedersehen!"

:gruebel:

Superwinger

LDericher 29. Jan 2007 22:02

Re: ARGH... Buttonproblem
 
Habe selbst was erarbeitet:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  beschriftung:string;
  I:integer;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  I:=1;
  beschriftung := 'Hallo';
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Edit1.Text := beschriftung;
  if(I=1)then
  beschriftung := 'Tach auch';
  if(I=2)then
  beschriftung := 'Tschüss';
  if(I=3)then
  beschriftung := 'Auf Wiedersehn!';
  I:=I+1;
end;

end.

blablab 29. Jan 2007 22:04

Re: ARGH... Buttonproblem
 
nimm doch als variable einen integer.

Delphi-Quellcode:
var
 int: integer;

procedure TForm1.FormCreate(...);
begin
  int := 0;
end;

procedure TForm1.Button1Click(...);
begin
  int := int + 1;
  case int of
    1: Edit1.Text := 'Hallo';
    2: Edit1.Text := 'Bla';
    3: ...
end;

alzaimar 29. Jan 2007 22:17

Re: ARGH... Buttonproblem
 
Noch einer:
Delphi-Quellcode:
Const
  AnzahlBeschriftungen = 5;
  Beschriftungen : Array [0..AnzahlBeschriftungen-1] of String =
   ('Hallo',
    'Tschüss',
    'Einer geht noch',
    'Einer geht nocht rein',
    'Bums Fallera'
   );

Procedure TForm1.SetzeEditText;
Begin
  Edit1.Text := Beschriftungen [Button1.Tag]
End;

Procedure TForm1.FormCreate (Sender :TObject);
Begin
  Button1.Tag := 0;
  SetzeEditText;
End;

Procedure TForm1.Button1Click (Sender : TObject);
Begin
  Button1.Tag := (Button1.Tag + 1) mod AnzahlBeschriftungen;
  SetzeEditText
End;
Vorteil: Übersichtlicher, leichter zu warten (mehr Beschriftungen etc.). Die 'Tag' Eigenschaft kann man durch einen dedizierte Zähler in Form eines privaten Feldes der TForm1-Klasse ersetzen, muss man aber nicht.

LDericher 29. Jan 2007 22:20

Re: ARGH... Buttonproblem
 
:gruebel: Geht net sowas wie das?

Delphi-Quellcode:
wartebis(KLICKAUFBUTTON)then
Edit1.Text := 'Hallo';
wartebis(KLICKAUFBUTTON)then
Edit1.Text := 'Blah';
wartebis(KLICKAUFBUTTON)then
Edit1.Text := '...';
wartebis(KLICKAUFBUTTON)then
Edit1.Text := 'Tschüs';
...
??? :gruebel:

Superwinger

TBx 29. Jan 2007 22:27

Re: ARGH... Buttonproblem
 
Zitat:

Zitat von "Superwinger
Geht net sowas wie das?
Delphi-Quellcode:
if(KLICK)then
Edit1.Text := 'Hallo';
if(KLICK)then
Edit1.Text := 'Blah';
if(KLICK)then
Edit1.Text := '...';
if(KLICK)then
Edit1.Text := 'Tschüs';
...

Prinzipiell geht das, wenn KLICK einen boolschen Wert zurückgibt.
Das hilft Dir hier aber nicht weiter, da die Bedingung in jeder Zeile WAHR bleibt.
Es würde also immer 'Tschüs' in Dein Edit-Feld geschrieben.

Ich denke die eleganteste Lösung hat dir bis jetzt alzaimar angeboten.

Gruß

Thomas

LDericher 29. Jan 2007 22:32

Re: ARGH... Buttonproblem
 
Zitat:

Zitat von Ich selbst
:gruebel: Geht net sowas wie das?

Delphi-Quellcode:
wartebis(KLICKAUFBUTTON)then
Edit1.Text := 'Hallo';
wartebis(KLICKAUFBUTTON)then
Edit1.Text := 'Blah';
wartebis(KLICKAUFBUTTON)then
Edit1.Text := '...';
wartebis(KLICKAUFBUTTON)then
Edit1.Text := 'Tschüs';
...
??? :gruebel:

Superwinger

Habe es nochmal editiert(siehe oben)


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:54 Uhr.
Seite 1 von 2  1 2      

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