AGB  ·  Datenschutz  ·  Impressum  







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

Property Typ ermitteln

Ein Thema von moelski · begonnen am 27. Mär 2009 · letzter Beitrag vom 27. Mär 2009
Antwort Antwort
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#1

Property Typ ermitteln

  Alt 27. Mär 2009, 13:15
Moin !

Ich habe da ein Stück Code (C = TComponent):
Delphi-Quellcode:
    if IsPublishedProp(C, 'Items') then begin
      SubNode := XMLDoc.SelectSingleNode('/Language/' + Form.Name + '/' + C.Name + '/Items');
      ...
      SetCDataChild(SubNode, (GetObjectProp(C, 'Items') as TStrings).Text);
    end;
Das funzt auch ganz gut. Allerdings gibts da ein kleines Problem. Items kann vom Typ TStrings sein aber ein Popupmenü hat auch eine Items Property die ist aber nicht vom Typ TStrings. Das kanllt natürlich.

Wie kann ich nun überprüfen ob Items auch wirklich vom Typ TStrings ist?
Geht das irgendwie mit PropType? Folgendes geht jedenfalls mal nicht:
PropType(C, 'Items') = TStrings Ist aber auch klar, weil PropType was ganz anderes zurück liefert ...

Any hints ?
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
quendolineDD

Registriert seit: 19. Apr 2007
Ort: Dresden
781 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Property Typ ermitteln

  Alt 27. Mär 2009, 13:21
Wie wär's mit Items.ClassNameIs('TStrings')
Lars S.
Wer nicht mit der Zeit geht, geht mit der Zeit.
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#3

Re: Property Typ ermitteln

  Alt 27. Mär 2009, 13:24
Du könntest es besser mit "is TStrings" und danach bei Erfolg mit einem "harten" Cast machen ( TStrings(Objekt) ). ClassNameIs() würde Nachfahren von TStrings, welche auch die Text-Property ausschliefen afaik.

Viele Grüße
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.142 Beiträge
 
Delphi 12 Athens
 
#4

Re: Property Typ ermitteln

  Alt 27. Mär 2009, 13:28
vermutlich so?
GetPropInfo(C, 'Items').PropType.Kind = tkString
[add]
PropType(C, 'Items') = tkString PS: kannte diese Funktion vorher auch nicht, aber wenn man mal nachsieht, was alles statt nur IsPublishedProp existiert .....


[add2] er wollte es ja andersrum .. dann siehe weiter unten
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#5

Re: Property Typ ermitteln

  Alt 27. Mär 2009, 13:30
Moin !

Delphi-Quellcode:
    if IsPublishedProp(C, 'Items') then begin
      if GetObjectProp(C, 'Items') is TStrings then begin
        SubNode := XMLDoc.SelectSingleNode('/Language/' + Form.Name + '/' + C.Name + '/Items');
        if SubNode = NIL then begin
          Knoten := XMLDoc.CreateElement('Items');
          SubNode := Node.AppendChild(Knoten);
        end;
        SetCDataChild(SubNode, (GetObjectProp(C, 'Items') as TStrings).Text);
      end;
    end;
So tut das.

Wie immer stehe ich tief in eurer Schuld. Danke
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.142 Beiträge
 
Delphi 12 Athens
 
#6

Re: Property Typ ermitteln

  Alt 27. Mär 2009, 13:51
GetObjectProp will hier aber nur Objekte und keine Klasse (C = TComponent)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#7

Re: Property Typ ermitteln

  Alt 27. Mär 2009, 13:57
Zitat von himitsu:
GetObjectProp will hier aber nur Objekte und keine Klasse (C = TComponent)
Wenn die Variable C vom Typ TComponent ist, dann passt es doch...
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.142 Beiträge
 
Delphi 12 Athens
 
#8

Re: Property Typ ermitteln

  Alt 27. Mär 2009, 14:02
hmmm *nochmalüberleg* ... OK, wenn C wie TComponent und nicht C wie Class bzw. O wie Object ... dann könntest du doch Recht haben
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Antwort Antwort


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 23:42 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