Wie wäre es mit
TFrame als Vorschlag?
Du packst die
TPageControl
in einen neuen
TFrame
und dann jeweils einen
TFrame
auf
TForm1
und
TForm2
.
Wenn es dir darum geht, dass das Bild dann "synchronisiert" wird, kannst du ja eine Synchronize-Funktion schreiben:
Delphi-Quellcode:
unit F_MeinPageControlFrame;
interface
uses
...;
const
WM_SYNCHRONIZE_PAGECONTROLFRAME = WM_USER + 100;
type
TMeinPageControlFrame =
class(TFrame)
Image_Picture: TImage;
public
// Self.Image_Picture mit ASource.Image_Picture aktualisieren
procedure Synchronize(ASource: TMeinPageControlFrame);
// Self.Image_Picture setzen und Synchronisierung durchführen
procedure SetImage;
end;
implementation
uses
Forms,
Unit1
{Enthält TForm1};
// Self.Image_Picture mit ASource.Image_Picture aktualisieren
procedure TMeinPageControlFrame.Synchronize(ASource: TMeinPageControlFrame);
begin
Image_Picture.Picture.Assign(ASource.Image_Picture.Picture);
end;
// Self.Image_Picture setzen und Synchronisierung durchführen
procedure TMeinPageControlFrame.SetImage;
begin
Image_Picture.Picture.Bitmap.LoadFromFile('
C:\Temp\TestBild1.bmp');
// Methode 1: TForm1 direkt ansprechen.
Form1.MeinPageControlFrame.Synchronize(Self);
// Methode 2: Synchronize in TForm1 per PostMessage an Hauptform aufrufen, die eine
// procedure DoSynchronize(var Msg: TMessage); message WM_SYNCHRONIZE_PAGECONTROLFRAME;
// implementiert und die Parameter an den TFrame weiterleitet.
//PostMessage(Application.MainForm.Handle, WM_SYNCHRONIZE_PAGECONTROLFRAME, Integer(Self), 0);
end;