Einzelnen Beitrag anzeigen

Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#1

Typecast ohne Typ zu kennen?

  Alt 24. Mai 2005, 10:08
Hallo,

ich habe wieder mal vor, die Delphi-Language ein bisschen zu vergewaltigen. Und zwar will ich diesmal einen Typecast durchführen, ohne den Typ zu kennen auf den ich caste

Aber ein paar Erklärungen: es geht um die Set-Routine eines Language-Systems, dem ich nur einen Eintrag sowie eine Komponente als TComponent übergebe. Der Eintrag enthält die Caption und einen evtl. Hint für die Komponente in der jeweiligen Sprache, sowie zwei Booleans die abspeichern, ob die Komponente eine Caption bzw. einen Hint erhalten soll.
Nun zu meinem Problem: Ich kann nicht davon ausgehn, dass ich alle Komponenten erfassen kann, und ich muss ja auf etwas casten. Jetzt dachte ich mir "ok, Caption ist in TControl deklariert, caste nach TControl und fertig is", aber ich hab die Rechnung wohl ohne Borlands geile Strategie gemacht, erstmal alles als protected zu deklarieren Was heißt das? Ja, dass erst TButton die property "Caption" als published deklariert, und man vorher keine Chance hat, drauf zuzugreifen.

Lange Rede kurzer Sinn: wie kann ich anhand von ClassName oder ClassType casten? Ich hab im Moment solche Konstrukte:
Delphi-Quellcode:
if Comp.ClassName = 'TButtonthen
begin
  TButton(Comp).Caption := '';
  TButton(Comp).Caption := '';
end
else if Comp.ClassName = //und so weiter
Kennt jemand einen anderen Weg? Ich lauf hier gegen eine Wand.

Greetz
alcaeus

PS: Den ClassName habe ich verwendet, da ich Probleme hatte, den ClassType auszulesen, wenn das Form aus einer DLL kommt (ja, da wären wir wieder bei meinem Standardproblem der letzten 2 Monate )
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat