Ich habe berücksichtigt, dass die Formulare erst erstellt werden müssen.
Dazu habe ich im frmMain.Activate die Formulare erst created, dann einem Tab des OfficePagers von TMS zugewiesen und danach erst das Show und LoadKunden mit dem InitFormControls ausgeführt.
Bei Ausführung von LoadKunden bzw. InitFormControls(frmKunden As TForm) tritt dann die
Exception:
"Zugriffsverletzung an Adresse xxxx in Modul 'Programm.exe' (Offset(xxx)). Lesen von Adresse 00000010."
Code:
procedure TfrmMain.FormActivate(Sender: TObject);
var
frmTabKunden: TfrmKunden;
frmTabInteressent: TfrmInteressent;
frmTabPartner: TfrmPartner;
frmTabAngestellte: TfrmAngestellte;
frmTabKassen: TfrmKassen;
PagerHeight: Integer;
begin
// --------------------------------------------
// Größe und Positionierung des Hauptformulars
PagerHeight := 540; // Höhe des inneren Tabs bis vor das Grid
frmMain.Top := 20; // Main Formular Position Top und Left
frmMain.Left := 20;
frmMain.Height := 1000; // Größe des Main Formulars
frmMain.Width := 1830;
// --------------------------------------------
OfficePager.Height := PagerHeight;
// --------------------------------------------
// Formulare in das OfficePager Element einbinden
// --------------------------------------------
// TabKunden
frmTabKunden := TfrmKunden.Create(TabKunden);
frmTabKunden.Parent := TabKunden;
frmTabKunden.Align := alClient;
frmTabKunden.BorderStyle := bsNone;
frmTabKunden.Show;
LoadKunden;
// --------------------------------------------
.
.
.
OfficePager.ActivePage := TabKunden;
end;
procedure TfrmMain.LoadKunden;
var
s:string;
i, sp: Integer;
begin
s:='-----------Kunden----------';
DebugOut(s);
InitFormControls(frmKunden); // Hier tritt das Problem auf
frmKunden.InitFormKunden;
.
.
.
end;