Einzelnen Beitrag anzeigen

Benutzerbild von x000x
x000x

Registriert seit: 21. Jan 2004
Ort: Bei Hamburg
308 Beiträge
 
Delphi XE2 Professional
 
#1

Komponenten einer Form neu laden / Problem mit Frames

  Alt 20. Mär 2010, 14:03
Moin moin,

Ich muss die Standardwerte der Komponenten (Zur Zeit eigentlich nur die Captions) zur Laufzeit wieder einlesen.
Also die Werte, die die Komponenten beim erzeugen des Formulars bekommen.
z.B. Ich habe ein Label auf dem Formular mit Caption: 'Hallo Welt!' - Jetzt wird auf Grund von Benutzeraktionen etc. dieser Wert in 'Helo World!' (oder sonstiges) geändert. Jetzt muss ich auf z.B. einem klick wieder den Wert reinschreiben, den das Label
beim Programmstart hatte (Also hier: 'Hallo Welt!').

Diese Aufgabe konnte ich bereits lösen, in dem ich die Unit reinit.pas aus dem Demo-Projekt
(..\RAD Studio\5.0\Demos\DelphiWin32\VCLWin32\RichEdit) nutze.

Es scheitert jetzt daran, dass wenn Frames (TFrame) auf dem Formular liegen, diese (und die darin befindlichen Komponenten)
nicht wieder zurück gesetzt werden.
(Ehrlich gesagt liegt mein Problem beim Verständnis der TAsInheritedReader aus der Unit reinit.pas)

Was müsste ich umbauen, um dies auch realisieren zu können?

Ich habe versucht, die procedure ReinitializeForms anzupassen, was aber beim 2. aufruf in einer Zugriffsverletzung endete
(Auskommentierter Quelltext).
Ausserdem stimmt die Position des Frames nach dem neuladen nicht mehr.

Delphi-Quellcode:
procedure ReinitializeForms;
var
  Count: Integer;
  I,J: Integer;
  Form: TForm;
  Frame: TFrame;
begin
  Count := Screen.FormCount;
  for I := 0 to Count - 1 do
  begin
    Form := Screen.Forms[I];
    ReloadInheritedComponent(Form, TForm);
    //for J := 0 to Form.ComponentCount - 1 do begin
    // if Form.Components[J] is TFrame then begin
    // Frame := TFrame(Form.Components[J]);
    // ReloadInheritedComponent(Frame, TFrame);
    // end;
    //end;
  end;
end;
Ich hab mal ein Demoprojekt angehängt, welches das Problem verdeutlichen soll.

[edit=SirThornberry]Titel korrigiert - Mfg, SirThornberry[/edit]
Angehängte Dateien
Dateityp: rar reinittest_426.rar (3,2 KB, 9x aufgerufen)
Peter
-= Gruss Peter =-
-= alias x000x =-
  Mit Zitat antworten Zitat