Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Ansatz einer Procedure für mehrere Buttons [Property Tag] ? (https://www.delphipraxis.net/149728-ansatz-einer-procedure-fuer-mehrere-buttons-%5Bproperty-tag%5D.html)

RWarnecke 28. Mär 2010 18:28


Ansatz einer Procedure für mehrere Buttons [Property Tag] ?
 
Hallo zusammen,

ich habe auf einer Form 16 Speedbuttons. Jeder Button hat seinen eigenen Namen. Wenn ich jetzt für jeden Button eine Procedure schreiben würde, hätte ich 16 neue Proceduren, die sich lediglich nur in 1-2 Zeilen unterscheiden. Jetzt könnte ich alle Buttons umbenennen und mit einer fortlaufenden Zahl versehen. Das finde ich aber nicht so elegant, wegen der Lesbarkeit vom Sourcecode und der Zuordnung. Ich habe lieber aussagekräfigte Namen für die Komponenten.

Dann kam ich auf die Idee, mit der Eigenschaft Tag zu arbeiten. Dabei ist die Frage aufgekommen, wozu wird die Eigenschaft Tag eigentlich genutzt ?
Kann ich die Eigenschaft für dieses Vorhaben misbrauchen ?
Oder gibt es eine anderen Weg ?

Meflin 28. Mär 2010 18:30

Re: Ansatz einer Procedure für mehrere Buttons [Property Tag
 
Du kannst den Tag-Wert verwenden wofür immer du willst, er hat keine vordefinierte Bedeutung. Und ja, der Anwendungsfall, den du beschreibst, ist durchaus ein typischer für das Tag-Dingens...

Progman 28. Mär 2010 18:49

Re: Ansatz einer Procedure für mehrere Buttons [Property Tag
 
Tags bieten sich für sowas doch direkt an. Ich mach das selbst sehr oft:
Delphi-Quellcode:
procedure ButtonClick(Sender: TObject);
var t: Integer;
begin
  t:=(Sender as TSpeedButton).Tag;
  case t of
    1: ;
    ....
  end;
end;
Gerade bei sehr vielen Buttons mit nur geringfügig anderer Funktion rentiert sich das ;)

himitsu 28. Mär 2010 19:12

Re: Ansatz einer Procedure für mehrere Buttons [Property Tag
 
Zitat:

Zitat von RWarnecke
Ich habe lieber aussagekräfigte Namen für die Komponenten.

Man könnte natürlich auch TComponent(Sender).Name vergleichen/prüfen,

aber besser wäre es da die Objektinstanz (Sender) zu vergleichen.

Ja, und man könnte natürlich auch .Tag dafür verwenden.

RWarnecke 28. Mär 2010 19:20

Re: Ansatz einer Procedure für mehrere Buttons [Property Tag
 
Zitat:

Zitat von himitsu
Zitat:

Zitat von RWarnecke
Ich habe lieber aussagekräfigte Namen für die Komponenten.

Man könnte natürlich auch TComponent(Sender).Name vergleichen/prüfen,

Dann hätte ich aber lauter IF-Abfragen.

Zitat:

Zitat von Meflin
Du kannst den Tag-Wert verwenden wofür immer du willst, er hat keine vordefinierte Bedeutung. Und ja, der Anwendungsfall, den du beschreibst, ist durchaus ein typischer für das Tag-Dingens...

Das hört sich ja gut an. Ich glaube dann werde ich es über die Tag-Eigenschaft machen.

Danke nochmal an alle für Ihre Antworten.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:43 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-2025 by Thomas Breitkreuz