Speziell möchte ich gerne ein TPanel auf Form1 anzeigen bz. verstecken lassen - je nach Checkbox1.checked.
Momentan habe ich noch einen Record in Benutzung, um die Setup-Struktur zu verwalten, aber davon bekommt die Form1 ja nix mit.
Meine Überlegung wäre, dass es
A) per SendMessage lösbar wäre - aber das habe ich noch nie gemacht
B) in Form1 public Proceduren/Functionen deklariert sind, die ich dann aufrufe, wenn CheckBox1 sich ändert.
Ich würde dazu einen Event oder Callback verwenden (eigentlich unterscheiden die sich nur darin, wie die aufzurufende Methode übergeben wird):
Delphi-Quellcode:
type
TForm1 = ...
private
procedure HandleConfigChanged(_Sender: TObject; const _CurrentConfig: TConfigRecord);
end;
// und
type
TOnConfigChanged = procedure(_Sender: TObject; const _CurrentConfig: TConfigRecord) of object;
type
TForm2 = ...
procedure Checkbox1Click(Sender: TObject);
private
FOnConfigChanged: TOnConfigChanged;
public
property OnConfigChanged: TOnConfigChanged read FOnConfigChanged write FOnConfigChanged;
end;
// und
procedure TForm1.ConfigButtonClick(Sender: TObject);
begin
form2 := TForm2.Create;
Form2.Init;
Form2.OnConfigChanged := HandleConfigChanged;
Form2.ShowModal;
end;
// und
procedure TForm2:Checkbox1Click(Sender: TObject);
begin
FormToConfigRecord;
if Assigned(FOnConfigChanged)
FOnConfigChanged(Self, FConfigRecord);
end;
Ich hoffe, das ist einigermaßen verständlich.