Hi MorrisF
Das kannst du dir sparen:
Delphi-Quellcode:
procedure TFrame_ButtonTest.BtnClickMeClick(Sender: TObject);
begin
try
Self.OnClick(Self);
except
on e:
Exception do
begin
ShowMessage('
Fehler in BtnClickMeClick(): ' + e.
Message);
end;
end;
end;
TFrame_ButtonTest ist der Basisframe, den du dir unter <Datei=>Neu=>weiter=>(??)Frame erstellt hast. Wenn du nun diesen Frame auf die Form legen willst, findest du ihn (sofern eer zum Projekt gehört) im
OI unter Standard=>Frames. Wenn du ihn hier anklickst und anschliessend auf die Form klickst, öffnet sich ein Dialog, in dem sämtliche für dieses Projekt definierten Frames aufgeführt sind. Klich ihn hier an, und er wird dir auf der Form eingefügt - allerdings nicht der Basisframe, den du entwickelt hast, sondern eine Instanz davon, zB. DeinFrame1.
Diese Instanz erbt vom Basisframe alle public deklarierten Methoden, also auch dein Button.OnClick.
Startest du nun dein Programm, siehst du diese Instanz, inklusive dem Button, den du auf dem Basisframe eingefügt hast. Klicke ihn, um den Code auszuführen, den du für den Button definiert hast. Es reicht also vollkommen, wenn du im OnClick des Basisframes folgenden Code einfügst:
Delphi-Quellcode:
procedure TFrame_ButtonTest.BtnClickMeClick(Sender: TObject);
begin
if FBoolean then
Mainfrm.Edit1.Color := clred
else
Mainfrm.Edit1.Color := clyellow;
end;
FBoolean solltest du in diesem Fall als privates Feld des Basisframes deklarieren.
Gruss
Delbor
PS: Sehe gerade, dass du deine Frameinstanz dynamisch erstellst:
Delphi-Quellcode:
try
tmpFrame := TFrame_ButtonTest.Create(self);
TFrame_ButtonTest darf hier allerdings nicht der Name deines Basisframes sein. Ansonsten bleibt sich alles gleich.