Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Objekt mit bestimmtem Tag finden (https://www.delphipraxis.net/172619-objekt-mit-bestimmtem-tag-finden.html)

Dennis07 14. Jan 2013 16:41

Delphi-Version: 7

Objekt mit bestimmtem Tag finden
 
Hallo,
ich habe mal wieder eine kleine Frage, und mir fällt auf Anhieb keine wirklich geschickte Lösung ein.
Folgendes Problem: Ich habe meinen Objekten Tags zugewiesen (inklusive des Formulars).
Diese Tags entsprechen in einer externen Sprachdatei einem bestimmten Wert (Lokalisierung).
Wie kann ich dem Programm sagen, es soll alle Tags von 0000 bis 9999 durchgehen, und falls es ein Objekt mit der Property "Caption" gibt, das diesen Tag besitzt, soll es die Caption entprechend anpassen?
Wie ich die Caption am Ende auslese und ändere, weiß ich schon.

Danke für eure Hilfe schonmal im vorraus, habe gute Erfahrungen in diesem Forum gemacht ;)

MFG Dennis

Sir Rufo 14. Jan 2013 16:51

AW: Objekt mit bestimmtem Tag finden
 
Die Komponenten einer Form kannst du über die Owner Beziehung Delphi-Referenz durchsuchenTComponent.Components oder die Controls über die Parent Beziehung Delphi-Referenz durchsuchenTControl.Parent herausfinden.

Mit Delphi-Referenz durchsuchenIsPublishedProp kann man abfragen, ob es eine Property "Caption" gibt und mit Delphi-Referenz durchsuchenGetPropValue bzw. Delphi-Referenz durchsuchenSetPropValue diese auch auslesen und verändern.

DeddyH 14. Jan 2013 16:56

AW: Objekt mit bestimmtem Tag finden
 
Hier sind auch RTTI-Beispiele (lustigerweise genau für die Caption-Property) zu finden: http://www.delphipraxis.net/123356-a...tml#post841761

Dennis07 14. Jan 2013 17:02

AW: Objekt mit bestimmtem Tag finden
 
hm.... und haben die Forms denn auch einen Parent?
Weil ich habe nämlich mehrere Formulare die unterschiedliche Tags haben.
Falls ja, wie lautet dieser Parent-Component?

Danke;

DeddyH 14. Jan 2013 17:04

AW: Objekt mit bestimmtem Tag finden
 
Einen Parent vermutlich nicht, aber im Normalfall Application als Owner IIRC. Es sei denn, Du erstellst die zur Laufzeit, dann kannst Du den Owner ja selbst feslegen.

Sir Rufo 14. Jan 2013 17:08

AW: Objekt mit bestimmtem Tag finden
 
Zitat:

Zitat von Dennis07 (Beitrag 1199010)
hm.... und haben die Forms denn auch einen Parent?
Weil ich habe nämlich mehrere Formulare die unterschiedliche Tags haben.
Falls ja, wie lautet dieser Parent-Component?

Danke;

Eine Form hat nicht zwangsläufig (und idR auch nicht) einen Parent (kann aber).
Einen Owner hat eine Form idR
Delphi-Quellcode:
Application
Delphi-Referenz durchsuchenTApplication (muss aber auch nicht).

Insgesamt gesehen ist es sinnvoller (und leichter umzusetzen) ein Basis-Formular zu nehmen und dort diese Funktionalität zu programmieren. Alle weiteren Formulare dann von diesem ableiten und schon spart man sich das Suchen und Finden ;)


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