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 Componentname in String umwandeln (https://www.delphipraxis.net/66444-componentname-string-umwandeln.html)

Andreas L. 29. Mär 2006 19:25


Componentname in String umwandeln
 
Hi,
der Titel sagt schon alles. Ich wollte mit einen Label etwas machen. Dieses Label hat immer folgendes Schema:

Headline_ExPanel1

Headline_ wird jedes Panel genannt.
ExPanel1 ist das Panel auf welchen das Label liegt

Da das Ganze variabl sein soll muss ich also den Namen des Senders heruafinden, in einen String umwandeln und ihn mit Headline_ verbinden. Mein Code sieht wie folgt aus:
Delphi-Quellcode:
FindComponent('Headline_'+(Sender as TPanel).Name).caption:='blubb';
Jetzt fehlt mir nur noch der Befehl um den Component-Name in einen String zu verwandeln ;-)

Hoffe ihr könnt mir helfen.

mirage228 29. Mär 2006 19:34

Re: Componentname in String umwandeln
 
Hi,

ist TComponentName (also die Eigenschaft "Name") einer Komponente nicht kompatbiel zu string? Wär' mir jetzt neu..

mfG
mirage228

Andreas L. 29. Mär 2006 19:43

Re: Componentname in String umwandeln
 
Hmm... das kann ich jetzt nicht festellen da mir "Undefinierter Bezeichner: FindComponent" gemeldet wird...

Nicolai1234 29. Mär 2006 20:25

Re: Componentname in String umwandeln
 
Muss man nicht auch FindComponent mit as TLabel oder was auch immer verwenden?

Hawkeye219 29. Mär 2006 20:39

Re: Componentname in String umwandeln
 
@Nicolai1605
Richtig! FindComponent liefert einen TComponent-Zeiger, der in den meisten Fällen mit einem TypeCast verwendet wird.

@onlinehome
FindComponent ist keine einfache Funktion sondern eine Methode von TComponent.
Du mußt also die FindComponent-Methode des Label-Besitzers (also Owner, nicht Parent!) aufrufen. Meistens ist dies das Formular, auf dem das Label liegt.

Gruß Hawkeye

Andreas L. 30. Mär 2006 16:54

Re: Componentname in String umwandeln
 
Zitat:

Zitat von Hawkeye219
@onlinehome
FindComponent ist keine einfache Funktion sondern eine Methode von TComponent.
Du mußt also die FindComponent-Methode des Label-Besitzers (also Owner, nicht Parent!) aufrufen. Meistens ist dies das Formular, auf dem das Label liegt.

Gruß Hawkeye

Und wie geht das?

Kinimod8 30. Mär 2006 17:11

Re: Componentname in String umwandeln
 
Delphi-Quellcode:
(FindComponent('Headline_'+(Sender as TPanel).Name) as TLabel).caption:='blubb';

Andreas L. 30. Mär 2006 17:14

Re: Componentname in String umwandeln
 
Zitat:

[Fehler] Unit1.pas(45): Undefinierter Bezeichner: 'FindComponent'
Welche Units brauche ich denn? In der Delphi-Hilfe steht davon nichts...

Die Muhkuh 30. Mär 2006 17:16

Re: Componentname in String umwandeln
 
Classes (da FindComponent eine Methode von TComponent und TComponent ist in Classes)

Andreas L. 30. Mär 2006 17:28

Re: Componentname in String umwandeln
 
Die habe ich eingebunden...

Also ich habs jetzt so gelöst:
Delphi-Quellcode:
(Sender as TPanel).FindComponent('Headline_'+(Sender as TPanel).Name).font.color:=clWhite;
Würde auch funktionieren wenn nicht "Undefinierter Bezeichner: Font" kommen würde...

Auch folgendes geht nicht:

Delphi-Quellcode:
(Sender as TPanel).FindComponent('Headline_'+(Sender as TPanel).Name as TLabel).font.color:=clWhite;


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