Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Verkürzen?? (https://www.delphipraxis.net/30500-verkuerzen.html)

Durg 25. Sep 2004 18:10


Verkürzen??
 
Hallo,

wollte mal fragen ob man das irgendwie verkürzen kann:

Delphi-Quellcode:
procedure TTR.Bt1Click(Sender: TObject);
begin
  if Anzeige.Text = '0' then
    Anzeige.Text := '1'
  else
    Anzeige.Text := Anzeige.Text + '1'
end;

procedure TTR.Bt2Click(Sender: TObject);
begin
  if Anzeige.Text = '0' then
    Anzeige.Text := '2'
  else
    Anzeige.Text := Anzeige.Text + '2'
end;

...

procedure TTR.Bt8Click(Sender: TObject);
begin
  if Anzeige.Text = '0' then
    Anzeige.Text := '8'
  else
    Anzeige.Text := Anzeige.Text + '8'
end;

procedure TTR.Bt9Click(Sender: TObject);
begin
  if Anzeige.Text = '0' then
    Anzeige.Text := '9'
  else
    Anzeige.Text := Anzeige.Text + '9'
end;

procedure TTR.Bt0Click(Sender: TObject);
begin
  if Anzeige.Text = '0' then
    Anzeige.Text := '0'
  else
    Anzeige.Text := Anzeige.Text + '0'
end;

Nikolas 25. Sep 2004 18:16

Re: Verkürzen??
 
Ja, das kann man. :mrgreen:
Delphi-Quellcode:
procedure KLICK(Sender: TObject; var str: string;);
begin
  if str = '0' then
    str := inttostr(sender.tag);
  else
    str := str + inttostr(sender.tag)
end;

procedure TTR.Bt1Click(Sender: TObject);
begin
KLICK(self, anzeige.Text);
end;
Jetzt musst du nur bei jedem Button den Tag richtig setzen. Ich hab's nicht getestet, aber es müsste iegntlich so klappen :spin2:

jfheins 25. Sep 2004 19:00

Re: Verkürzen??
 
Meine Version:
Delphi-Quellcode:
procedure TTR.BtnClick(Sender: TObject);
begin
  if Anzeige.Text = '0' then
    Anzeige.Text := Str (Sender.Tag)
  else
    Anzeige.Text := Anzeige.Text + Str (Sender.Tag);
end;
Auch hier: Tags richtig setzen (Button1: 1, Button2: 2, usw.)

Durg 25. Sep 2004 19:58

Re: Verkürzen??
 
Mit der Methode von Toxman gehts nachdem mir das jemand erkärt und gezeigt hat ;)
Bin halt noch wirklich anfänger.

Thx @ all

Nikolas 25. Sep 2004 20:20

Re: Verkürzen??
 
Du erstellst eine Procedure ('Klick') der du ein Control (den Button) und einen String (Anzeige.Text) übergibst. Je nach Tag des übergebenen Controls wird der String anders verändert. Da der var-Parameter da steht, darf der übergebene String in der procedure verändert werden.

Die Deklaration muss aber so lauten:
Delphi-Quellcode:
procedure Klick(Sender: Tcontrol; var Str: string); //Control statt Component
Bei der Implementierung kannst du dann mit dem Tag arbeiten:
Delphi-Quellcode:
procedure TForm1.Klick(Sender: Tcontrol; var Str: string);
begin
  if str = '0' then
    str := inttostr(sender.tag) // kein ';' vor 'else' !!
  else
    str := str + inttostr(sender.tag);

   showmessage(str);
end;
Beim Aufruf übergibst du dann den Button und der String der verändert werden soll. (Self ist falsch, damit würdest du das Form übergeben :wall: ).

Also
Delphi-Quellcode:
Klick(Button1,Anzeige.text);
So funzt es erstmal.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:21 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