AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

FindComponent auch für property ???

Ein Thema von Martin K · begonnen am 29. Apr 2006 · letzter Beitrag vom 30. Apr 2006
Antwort Antwort
Seite 3 von 3     123   
Benutzerbild von jim_raynor
jim_raynor

Registriert seit: 17. Okt 2004
Ort: Berlin
1.251 Beiträge
 
Delphi 5 Standard
 
#21

Re: FindComponent auch für property ???

  Alt 30. Apr 2006, 13:35
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:
var
  PropInfo: PPropInfo;
begin
  PropInfo:=GetPropInfo(Form1,'Caption');
  showmessaege(String(Pointer(PropInfo.Default));
end;
Keine Ahnung ob es klappt.
Christian Reich
Schaut euch mein X-COM Remake X-Force: Fight For Destiny ( http://www.xforce-online.de ) an.
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#22

Re: FindComponent auch für property ???

  Alt 30. Apr 2006, 13:45
Danke!
Bei Integer- und Boolean-Typen klappt's wunderbar (ordinale Typen).
Wenn man eben String() durch IntToStr() ersetzt.

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?
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
Benutzerbild von jim_raynor
jim_raynor

Registriert seit: 17. Okt 2004
Ort: Berlin
1.251 Beiträge
 
Delphi 5 Standard
 
#23

Re: FindComponent auch für property ???

  Alt 30. Apr 2006, 13:55
Ha, wenn du mal in der Hilfe zu default schaust steht da:

Zitat:
default und nodefault werden nur für Ordinal- und Mengentypen unterstützt
Ergo. Gibts für Strings keinen Default wert.
Christian Reich
Schaut euch mein X-COM Remake X-Force: Fight For Destiny ( http://www.xforce-online.de ) an.
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#24

Re: FindComponent auch für property ???

  Alt 30. Apr 2006, 14:00
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?
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#25

Re: FindComponent auch für property ???

  Alt 30. Apr 2006, 14:01
guck mal in die hilfe zu [oh]nodefault[/oh]

Zitat:
Mithilfe des Bezeichners nodefault kann ein geerbter default-Wert ohne Angabe eines neues Wertes außer Kraft gesetzt werden. Die Direktiven default und nodefault werden nur für Ordinal- und Mengentypen unterstützt, bei denen die Ober- und Untergrenze des Basistyps einen Ordinalwert zwischen 0 und 31 hat. Enthält eine Eigenschaftsdeklaration weder default noch nodefault, gilt sie als mit nodefault definiert. Für Real-, Zeiger- und String-Typen gilt der implizite default-Wert 0 bzw. nil und '' (leerer String).

Hinweis: Sie können den ordinalen Wert 2147483648 nicht als Standardwert verwenden. Dieser Wert wird intern für die Darstellung von nodefault verwendet.
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#26

Re: FindComponent auch für property ???

  Alt 30. Apr 2006, 14:08
Aha.

Ich sollte wohl doch mal ab und zu wieder in die Hilfe schauen

Danke nochmal!
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:19 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