Einzelnen Beitrag anzeigen

Popov
(Gast)

n/a Beiträge
 
#4

AW: Knopfdruck Formübergreifend behandeln

  Alt 4. Mai 2014, 12:19
Das mit den Events ist schon eine gute Richtung. Eine Möglichkeit über alle Formen zu agieren wäre z. B. es mit Messages zu machen. Hier ein kleines Beispiel:
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

const
  WM_FORM2_BTN1_MSG = WM_USER + 1; //<<<<<<<<<

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
    procedure WMForm2Btn1(var Msg : TMessage); message WM_FORM2_BTN1_MSG; //<<<<<<<<<
...

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.WMForm2Btn1(var Msg : TMessage); //<<<<<<<<<
begin
  ShowMessage('Hallo, hier ist Form2');
end;
Nun der Aufruf aus der Form2
Delphi-Quellcode:
unit Unit2;

...

implementation

{$R *.dfm}

uses
  Unit1;

procedure TForm2.Button1Click(Sender: TObject);
begin
  SendMessage(Form1.Handle, WM_FORM2_BTN1_MSG, 0, 0); //<<<<<<<<<
end;
Du kannst bei einem Event eine Message mit abschicken. Unter normalen Umständen kann sie ignoriert werden, wenn du aber im Tutorial-Modus bist, kannst du sie auswerten.
  Mit Zitat antworten Zitat