Hallo,
ich habe folgendes Problem.
Ich möchte bei einigen DBGrid die Spaltenbreite einstellen mittles einer Einstellungsdatei.
Die DBGrids sind in verschiedenen Formularen.
Dazu habe ich eine Funktion in dem Hauptformular geschrieben, wo die Einstellungen in eine Einstellungsdatei geschrieben und gelesen werden.
Nun habe ich versucht, die Componente mittels FindComponent zu suchen und die Einstellungen zu lesen und schreiben.
Dies hat aber nur bei dem Hauptformular funktionert.
Auch den Aufruf über Application.FindComponent hat leider nicht zum gewünschten Ziel geführt.
ich bekomme immer die Fehlermeldung, das die Komponente nicht gefunden wurde.
Hat jemand eine Idee?
Danke.
Gruß
FindComponent - Komponenten auf verschiedenen Formularen
-
- Beiträge: 90
- Registriert: Do 23. Dez 2010, 19:10
- OS, Lazarus, FPC: Windows 10/11 32/64bit, L 2.2.0 32bit, FPC 3.2.2 32bit
- CPU-Target: 32Bit
Re: FindComponent - Komponenten auf verschiedenen Formularen
Du könntest sowas machen:
Ich für meinen Teil halte eigentlich nichts davon Komponenten zu suchen. Ich arbeite viel mit Frames. Diese haben eine Initalisierungs- und Finalisierungsmethode bekommen. Die Initalisierungsmethode wird aufgerufen, wenn die erste Ansicht erfolgt. Die Finalisierungsmethode wird bei Programmende aufgerufen, wenn das entsprechende Frame einmal angezeigt wurde (und dort möglicherweise vom User verändert). Dort werden die jeweiligen Breiten, Höhen, Positionen etc. gespeichert und weggeschrieben.
Lazarus bietet auch die Möglichkeit der TIni- oder TXMLPropStorage (http://wiki.freepascal.org/TXMLPropStorage/de). Mit dieser könntest du in der IDE die speichernden Properties festlegen.
Code: Alles auswählen
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
begin
for i := 0 to Application.ComponentCount - 1 do
if Application.Components[i].FindComponent('SomeComponent') <> nil then
begin
ShowMessage('Gefunden');
Break;
end;
end;
Ich für meinen Teil halte eigentlich nichts davon Komponenten zu suchen. Ich arbeite viel mit Frames. Diese haben eine Initalisierungs- und Finalisierungsmethode bekommen. Die Initalisierungsmethode wird aufgerufen, wenn die erste Ansicht erfolgt. Die Finalisierungsmethode wird bei Programmende aufgerufen, wenn das entsprechende Frame einmal angezeigt wurde (und dort möglicherweise vom User verändert). Dort werden die jeweiligen Breiten, Höhen, Positionen etc. gespeichert und weggeschrieben.
Lazarus bietet auch die Möglichkeit der TIni- oder TXMLPropStorage (http://wiki.freepascal.org/TXMLPropStorage/de). Mit dieser könntest du in der IDE die speichernden Properties festlegen.
Code: Alles auswählen
type
TLiveSelection = (lsMoney, lsChilds, lsTime);
TLive = Array[0..1] of TLiveSelection;