Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   >100 Button mit gleichen Aufgaben ... einfacher machen???? (https://www.delphipraxis.net/18509-100-button-mit-gleichen-aufgaben-einfacher-machen.html)

tr4ever 19. Mär 2004 22:42


>100 Button mit gleichen Aufgaben ... einfacher machen???
 
Delphi-Quellcode:
procedure Hallo;
begin
label1.caption:='LOOOL';
label2.caption:='KEWL';
label3.caption:=':D';
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
edit1.text:='jhuuu';
Hallo;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
label5.caption:='Nix';
Hallo;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
edit9.text:='was..weiß..ich';
Hallo;
end;
wie kann ich das einfacher machen, also das ich ned bei jedem Button die Procedure Hallo jedesmal eintragen muss, obwohl sie bei jedem Button vorkommt..aber jeder button hat eben zusätzlich noch verschiedene Aufgaben
Das ist halt nur Bsp- das mit dem Label- und die Anzahl der Button ist im dreistelligen Bereich.

ich will so wenig wie möglich als Code schreibe .. man kann sowas doch bestimmt mit Schleifen machen oder wie sonst??
ich könnte ja nur ein button mit der Procedure Hallo machen und die andere mit dem OnKlick auf Button1 verweisen ..aber wie macht man dass wenn ich dazu noch verschiedene aufgaben für jeden button habe... außerdem müsste ich dann immer im OnKlick Ereignis die Verweise auf Button1 eintragen ...und das mehr als 100 mal .... das ist doch doof ..wie gehts schneller??

Und dazu würde es mich interessieren wie ich die Button ohne sie einzeln von der Symbolleiste holen muss in die Form einfügen kann .. mit definiert Position....

Wheelie 19. Mär 2004 22:52

Re: >100 Button mit gleichen Aufgaben ... einfacher mache
 
Denkbar wäre eine Prozedur, welche als OnClick-Ereignis der Buttons aufgerufen wird und welche anschließend anhand des Buttons, der die Prozedur aufgerufen hat ("Sender"), die Individualisierung vornimmt.

Beispiel:

Delphi-Quellcode:
procedure ButtonsClick(Sender: TObject);
var s: String;
begin
  case (Sender as TButton).Name of
    'Button1': s := 'Test';
    'Button2': s := 'Hey';
  end;
  Edit1.Text := s;
end;

dizzy 19. Mär 2004 22:57

Re: >100 Button mit gleichen Aufgaben ... einfacher mache
 
Delphi-Quellcode:
if (Sender as TButton).Name = 'Button1' then ...
if (Sender as TButton).Name = 'Button2' then ...
if (Sender as TButton).Name = 'Button3' then ...
.
.
.
Oder du nutzt die Eigenschaft "Tag" von TButton und machst es eleganter:
Delphi-Quellcode:
case (Sender as TButton).Tag of
  1: ...
  2: ...
  3: ...
  .
  .
  .
end;

Bei beiden Varianten musst du jedem Button die SELBE OnClick-Prozedur zuweisen.

gruss,
dizzy

\edit: Aber Wheelie... mit strings kann man doh keine case-Anweisung füttern... nur ordinale Typen :roll: :zwinker:

\edit2+3: Warum zum Henker ist "Name" ein Keyword bei den Delphi-Tags!?!? :?: Hat Gérome wieder nix ordentliches zu rauchen bekommen, oder vergisst mein Delphi immer nur das auch fett zu drucken? ;)

Wheelie 20. Mär 2004 12:25

Re: >100 Button mit gleichen Aufgaben ... einfacher mache
 
Zitat:

Zitat von dizzy
[delphi]
\edit: Aber Wheelie... mit strings kann man doh keine case-Anweisung füttern... nur ordinale Typen :roll: :zwinker:

:oops:


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