Du möchtest in der Prozedure, abhängig vom Inhalte einer Zeichenfolge, auf einen Frame zugreifen, ohne ihr den Frame bekanntzumachen.
Ich vermute, das Problem ist, dass versucht wird, auf die automatisch angelegte globale Variable zuzugreifen, die aber nicht sichtbar ist.
Exakt das ist das Problem.
Nur wie löse ich das, wenn ich den Quelltext dazu nicht kenne.
Eventuell könnte eine Änderung der Prozedure in der Form
procedure FormMain.CNCCommandBox(H:String);
und ihre Aufnahme in die Private-Deklarationen der Formulars mit
procedure CNCCommandBox(H:String);
ausreichen. Dann wird sie (vermutlich) auch alle Frames auf dem Formular kennen.
Die Prozedure könnte dann eventuell so aussehen:
Delphi-Quellcode:
procedure FormMain.CNCCommandBox(H:String);
begin
if (H ='A') then begin
FrameA.visible:=true;
FrameA.Left:=1;
FrameA.Top:=2;
FrameA.EditX.Text := 'A';
end else
if (H ='B') then begin
FrameB.visible:=false;
FrameB.Left:=1;
FrameB.Top:=2;
FrameB.EditX.Text := 'A²';
end else
if (H ='H') then begin
FrameH.visible:=true;
FrameH.Left:=192;
FrameH.Top:=232;
FrameH.EditX.Text := 'A³';
end;