![]() |
Abfragen von Komponenten Eigenschaften
Hallo !
Ich möchte mit einer Komponente die auf einem Form liegt auf die Eigenschaften der anderen Komponenen zugreifen um deren Inhalt z.B in der Registry zu Speichern. Mit dieser Procedur kann ich zwar alle Komponenten auslesen, allso Ihren Type und Namen ermitteln aber nicht auf Ihre Eigenschaften wie Text,Checked etc. zugreifen!! Wo liegt der Fehler oder bin ich mit meinem Lösungsansatz auf dem Holzweg !
Delphi-Quellcode:
MFG Hotti
procedure TEasy.Write;
var I: Integer; Formy:TForm; Checking:Boolean; Edit:TEdit; begin T:=''; Formy:=TForm(self.owner); for I:= 0 to Formy.ComponentCount -1 do begin If Formy.Components[i].ClassName = 'TEdit' then begin if Formy.FindComponent(Formy.Components[i].Name)<>nil then begin Edit:=TEDit(Formy.Components[i].Controls[i]); WriteString(Formy.Components[i].Name,Edit.text); end; end; If Formy.Components[i].ClassName = 'TCheckBox' then begin Checking:=TCheckBox(Formy.Components[i]).Checked; WriteBoolean(Formy.Components[i].Name,Checking); end; end; end; end; |
Hi, bin durch einen Bruch des Schlüsselbeins lädiert, deswegen nur
kurz einen Ansatz Beispiel: Formular mit drei labeln, namen label1,label2,label3
Delphi-Quellcode:
Wenn du das mal austestest, und verstanden hast, ist es ein leichtes für dich, deinen Quelltext funktionell zu ändern.
procedure teasy.test;
VAR fcomp:tcomponent; begin fcomp:=findcomponent([color=#ff0000]'label2'[/color]); if (fcomp <> nil) then begin (fcomp as Tlabel).color:=clred; // Farbe invers auf rot (fcomp as Tlabel).text:=[color=#ff0000]'Neuer text'[/color]; // und anderer text end; end; hoffe geholfen zu haben [edit=Daniel B]Delphi-Tags eingefügt und Code ausgerichtet. MfG Daniel B.[/edit] |
Hi :)
Danke für die schnelle Antwort. Dieser Tip mit der Typenunwandlung war mir zwar schon bekannt, aber die Sache funktioniert immer noch nicht. Ich vermute es hängt an der Zeile "Formy:=TForm(self.owner)". Da Formy anschließend den Wert eines leeren Forms ohne die auf ihn befindlichen Komponenten erhält. Das einfach zuteilen von Formy:=Form1 hängt auch da die Komponente das Form ja noch nicht kennt auf welches jemals arbeiten soll. Wer kennt die Lösung :?: :oops: MFG Hotti |
Moin Hotti,
sagen wir mal so: Wenn ich die Fragen verstehen würde, könnte ich vielleicht die Antwort geben ;-) Ich versuch's mal soweit ich's verstanden hab'. Zitat:
Zitat:
Was spricht denn dagegen, dieses Formular als Parameter zu übergeben? Dann steht man auch nicht vor dem Problem, dass der Owner eventuell gar kein Formular ist. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:27 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 by Thomas Breitkreuz