Sender as
Jeg har en MainForm hvorpå der er placeret en PageControl, med et antal sider (Tabs).På hver Tabs er der placeret en Frame for at få delt koden ud i nogle under units (Frames) afht. mit overblik over programmeringen.
Når der klikkes på TabSheet1 på MainFormen vil jeg gerne have afviklet noget kode i den Frame som hører til, for at løse dette har jeg brugt eventet OnShow til at kalde eventet OnEnter på den tilforordnede Frame på følgende måde:
procedure TMainForm.TabSheet1Show(Sender: TObject);
begin
Frame1.FrameEnter(Sender);
end;
og i Frame1 har jeg så følgegende kode:
procedure TFrame1.FrameEnter(Sender: TObject);
begin
//Koden for det som skal gøres
end;
mit problem er nu at hvergang der klikkes med musen osv. på den pågældende frame så afvikles hele koden, hvilket jeg ikke er interesseret i.
Det bedste havde selvfølgelig været hvis der fandtes et OnShow evetn til den pågældende Frame og mit spørgsmål går derfor på om det er muligt at oprette et sådant event, noget arv eller lignede ?
En anden mulighed er vel at tjekke på hvem der er sender, det har jeg forsøgt med følgende kode
procedure TFrame1.FrameEnter(Sender: TObject);
begin
if Sender as MainForm.TabSheet1Show then
begin
// Koden for det som skal gøres
end;
end;
Hvilket desværre ikke kan compileres
(giver fejlen Not enough actual parameters)
Så har jeg prøvet at ændre til
if Sender as MainForm.TabSheet1Show(Sender) then
(giver fejlen operator not applicabel to this operand type)
Håber nogen har en god ide, til ovenstående
