Setze beim Wechsel einfach eine private globale Variable, in der du einen Verweis auf das aktive Memo hast.
Delphi-Quellcode:
private
FActiveMemo: TMemo;
...
end;
Delphi-Quellcode:
procedure TForm1.PageControl2Change(Sender: TObject);
begin
// Setzen des Memos
FActiveMemo:= ActiveMemo;
end;
Deine Funktion ActiveMemo ist nicht so richtig sinnig und ich habe Sie nochmal überarbeitet.
Delphi-Quellcode:
function TForm1.ActiveMemo: TMemo;
var
i: Integer;
begin
Result := MainMemo;
with PageControl2 do
begin
for i:= 0 to Pred(ActivePage.ControlCount) do
begin
if ActivePage.Controls[i] is TMemo then
begin
Result := (TMemo(ActivePage.Controls[i]));
Break;
end;
end;
end;
end;
In der Speichernfunktion kennst du dann das zu speichernde Memo über FActiveMemo.
FActiveMemo.SaveToFile(Fn);
Die Memos könnte man für den direkten Zugriff noch in einer Objektliste (TObjectlist) oder ähnlichem zwischenspeichern. Der Zugriff wäre dann z.B. über den PageIndex möglich, z.B. FMemos[PageControl2.PageIndex].
Gruß,