![]() |
Re: FindComponent auch für property ???
Bei GetPropInfo bekommst du einen Pointer auf einen Record TPropInfo zurück, der ein Feld Default hat. Da der allerdings nur ein LongInt ist, weiß ich net, was bei einer String-Property drin steht. Vielleicht garnichts, vielleicht aber auch der richtige String, bei einem entsprechende Cast:
Delphi-Quellcode:
Keine Ahnung ob es klappt.
var
PropInfo: PPropInfo; begin PropInfo:=GetPropInfo(Form1,'Caption'); showmessaege(String(Pointer(PropInfo.Default)); end; |
Re: FindComponent auch für property ???
Danke!
Bei Integer- und Boolean-Typen klappt's wunderbar (ordinale Typen). Wenn man eben String() durch IntToStr() ersetzt.
Delphi-Quellcode:
IntToStr(GetPropInfo(Self,'Caption').Default
Bei einem String: Mit IntToStr() wird -2147483648 zurückgeliefert, String() löst eine AV aus. Weiß jemand, wie man sonst noch -2147483648 in einen ordentlichen String umwandeln kann? |
Re: FindComponent auch für property ???
Ha, wenn du mal in der Hilfe zu default schaust steht da:
Zitat:
|
Re: FindComponent auch für property ???
Okay, der normale Default-Wert eines Strings ist ja eigentlich auch immer '' (leerer String).
Wenn man mal in der dfm-Datei eines Projekts ein wenig rumspielt und hier ein paar Zeilen, wo irgendwelche Strings stehen einfach löscht (z.B.: Caption = 'Form1') - wenn man dann das Projekt in Delphi lädt wird man feststellen, dass an dieser Stelle überall leere Strings stehen. Ergo: Der Default-String ist immer '' Aber was ist dann mit -2147483648 ??? Ist das irgendwie der Integer-Wert eines leeren Strings? |
Re: FindComponent auch für property ???
guck mal in die hilfe zu [oh]nodefault[/oh] ;)
Zitat:
|
Re: FindComponent auch für property ???
Aha.
Ich sollte wohl doch mal ab und zu wieder in die Hilfe schauen :wink: Danke nochmal! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:10 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