Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi mehrsprachigkeit (https://www.delphipraxis.net/40171-mehrsprachigkeit.html)

Snoop007 11. Feb 2005 18:28


mehrsprachigkeit
 
Hi,
ich habe bereits die Suche benutzt aber leider trifft sie nicht mein problem.
ich würde gern meine anwendung multilingual machen problem ist, das es schon fertig ist
und es sich doch um paar komponenten handelt -> soll heissen alles von hand ändern bzw. anpassen ist eine echt blöde arbeit

ich habe schon bissel mit findcomponent und components[x] rumgespiel, verläuft auch soweit ganz gut
problem ist nur, das programm klatsch mir bei dialogen weg

Delphi-Quellcode:
  for i := 0 to ComponentCount -1 do
  begin
       writeln(f,Components[i].Name+'='+ TButton(FindComponent(Components[i].Name)).Caption );
  end;
  closefile(f);
komischerweise gibt er mir sonst die caption ?! :gruebel:

vielleicht hat einer ne bessere idee / lösung
wäre echt super ! danke !!!

alcaeus 11. Feb 2005 18:31

Re: mehrsprachigkeit
 
Moin Snoop007,

du machst einen Typecast auf TButton, egal was kommt. Wenn nun Components[i] aber vom Typ TPanel ist, dann wird dir dein Code gewaltig huebsch abschmieren, weil TPanel nicht auf TButton gecastet werden kann... Du solltest so arbeiten:

Delphi-Quellcode:
for i := 0 to ComponentCount -1 do
begin
  if Components[i] is TButton then
    writeln(f,Components[i].Name+'='+ TButton(FindComponent(Components[i].Name)).Caption )
  else if Components[i] is TEdit then
    writeln(f,Components[i].Name+'='+ TEdit(FindComponent(Components[i].Name)).Caption )
  else if ...
end;
closefile(f);
Dabei kannst du dich kreuz und quer durch die Klassenstruktur arbeiten, und mal nachsehn welche Kompos du zusammenfuegen kannst...

Greetz
alcaeus

mirage228 11. Feb 2005 18:37

Re: mehrsprachigkeit
 
Hi,

hier wäre es doch besser mit der RTTI zu arbeiten
und mit IsPublishedProp zu prüfen, ob die Komponente die Eigenschaften "Name" und "Caption" hat und diese mittels GetStrProp auslesen.

mfG
mirage228

[edit]Die Methoden befinden sich in der Unit TypInfo[/edit]

mfG
mirage228

Snoop007 11. Feb 2005 18:59

Re: mehrsprachigkeit
 
super vielen vielen dank !!!!


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