Einzelnen Beitrag anzeigen

nuclearping

Registriert seit: 7. Jun 2008
708 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: Pagecontrol kopieren

  Alt 12. Jul 2015, 06:26
Wie wäre es mit Delphi-Referenz durchsuchenTFrame 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;
  Mit Zitat antworten Zitat