Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Wofür ist das Attribute "Tag" (https://www.delphipraxis.net/65104-wofuer-ist-das-attribute-tag.html)

klaus.meyer 12. Mär 2006 13:46


Wofür ist das Attribute "Tag"
 
Hallo liebe DPler,

ich habe mich eben gefragt warum jedes Objekt das Attribute "Tag"
hat.

Kann mir einer von euch bitte sagen wofür dieses Attribute da ist?

Vielen Dank im Voraus

Klaus Meyer

Muetze1 12. Mär 2006 13:48

Re: Wofür ist das Attribute "Tag"
 
Zur freien Verwendung. Du kannst es z.B. verwenden um Objekte generell ab TComponent zu unterscheiden oder du legst irgendwelche anderen Daten darin ab. Betrachte es als andere Möglichkeit wie auch das Objects[] Array bei TStrings Derivaten oder der Data Eigenschaft bei TListItem/TTreeItem.

klaus.meyer 12. Mär 2006 13:51

Re: Wofür ist das Attribute "Tag"
 
mal sehen ob ich das richtig verstanden habe:

ich habe also 2 images:

image1.tag:=1;
image2.tag:=2;

dann kann ich also so darauf zugreifen

timage[1].height:=100;

Oder ist das schmarrn??

Waldteufel 12. Mär 2006 13:53

Re: Wofür ist das Attribute "Tag"
 
Hi Klaus. :hi:

Zitat:

Zitat von klaus.meyer
Oder ist das schmarrn??

Ja. ;-)

Tag ist imho eher dafür gedacht, abzuspeichern, wie oft der Benutzer schon auf das Bild geklickt hat, oder in wieviel Sekunden der Button seine Farbe wechseln soll, damit man eben nicht noch ne Variable dafür einführen muss.

/edit: Es heißt mann :oops:

3_of_8 12. Mär 2006 13:54

Re: Wofür ist das Attribute "Tag"
 
Tag ist englisch für "Anhängsel". Tag ist einfach nur zur freien Verwendung bestimmt. Du kannst damit zum Beispiel eine Reihe von Buttons mit aufsteigenden Tags versehen und bei allen Buttons dann eine Prozedur aufrufen, die folgendes macht:

Delphi-Quellcode:
PageControl1.ActivePage:=findcomponent('TabSheet'+inttostr((Sender as TComponent).Tag));

dummzeuch 12. Mär 2006 13:54

Re: Wofür ist das Attribute "Tag"
 
Zitat:

ich habe mich eben gefragt warum jedes Objekt das Attribute "Tag"
hat.
Das ist eine der Absonderlichkeiten, die Delphi von Visual Basic uebernommen hat (VB 3 gab es vor Delphi 1). In VB handelt es sich bei dieser Property allerdings um ein Variant, so dass sie da deutlich nuetzlicher ist als in Delphi. In Delphi braeuchte man sie aber eigentlich nicht, da man dort bessere Moeglichkeiten zur Verfuegung hat, dasselbe zu erreichen.

Der langen Rede kurzer Sinn: Benutze sie, um was auch immer darin zu speichern. Interessant ist sie z.B. wenn mehrere Controls denselben Eventhandler haben. Dann kann man den Tag als Index in ein Array oder eine Liste verwenden.

twm

Pr0g 12. Mär 2006 13:55

Re: Wofür ist das Attribute "Tag"
 
Es ist einfach nur ein Integerwert, den du zuweisen kannst. Dies kann bspw. sinnvoll sein, wenn du mehrere Menüeinträge hast, aber nur einen OnClick Event, welchem diese alle zugeordnet sind. Nun kannst du per Tag leicht eine Auswahl treffen, welcher Menüeintrag angeklickt wurde.

Matze 12. Mär 2006 13:55

Re: Wofür ist das Attribute "Tag"
 
Moin

Zitat:

Zitat von klaus.meyer
Oder ist das schmarrn??

Ich würde sagen ja.

Du kannst beispielweise Tag nutzen, um zu ermitteln, auf welches TImage von vielen geklickt wurde:

Delphi-Quellcode:
case (Sender as TImage).Tag of

...
oder solche Dinge. Ein gutes Beispiel fällt mir gerade nicht ein, das ist auch je nach Anwendung sehr verschieden. Möchtest du zum Beispiel eine Zusatzinfo (einen Index) bei irgendeiner Komponente mit angeben, kannst du das auch in das Attribut Tag schreiben.


Nachtrag: :shock: Es kam kein roter Kasten.

phXql 12. Mär 2006 13:57

Re: Wofür ist das Attribute "Tag"
 
Zitat:

Zitat von Pr0g
Es ist einfach nur ein Integerwert, den du zuweisen kannst. Dies kann bspw. sinnvoll sein, wenn du mehrere Menüeinträge hast, aber nur einen OnClick Event, welchem diese alle zugeordnet sind. Nun kannst du per Tag leicht eine Auswahl treffen, welcher Menüeintrag angeklickt wurde.

Oder du missbrauchst das Feld und stopfst einen Pointer rein, dann kannst du auf beliebiges zeigen lassen ;)

klaus.meyer 12. Mär 2006 13:58

Re: Wofür ist das Attribute "Tag"
 
Axo dann sag ich mal danke.
Schon wieder was dazu gelernt und das am Wochenende ;-)

[edit]Naja mit Pointern hat ich in Delphi noch nix zu tun nur in C und C++[/edit]


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