(Gast)
n/a Beiträge
|
AW: UnterForm mit Daten aus Hauptform versorgen
8. Mai 2015, 22:23
Also ich weiß nicht ob du das meinst, aber ich hab verstanden, dass du das Haupt-Formular (z. B. Unit1) hast und ein zweites Formular (z. B. Unit2). Wenn das so ist, kannst du natürlich auch über Kreuz aufeinender zugreifen:
Delphi-Quellcode:
unit Unit1;
interface
...
implementation
uses Unit2; //hier
{$R *.dfm}
und
Delphi-Quellcode:
unit Unit2;
interface
uses
Windows, ..., Unit1;
...
implementation
{$R *.dfm}
Das klappt.
Eine andere Möglichkeit wären Messages. Du schickst eine Message an das Hauptform und bekommst etwas zurück:
Delphi-Quellcode:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
const
MSG_TEST = WM_USER + 1;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private-Deklarationen }
procedure MsgTest( var Msg: TMessage); message MSG_TEST;
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
uses Unit2;
{$R *.dfm}
procedure TForm1.MsgTest( var Msg: TMessage);
var
s: String;
begin
s := ' Hallö Welt';
Msg.Result := Integer(PChar(s));
end;
und
Delphi-Quellcode:
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
const
MSG_TEST = WM_USER + 1;
type
TForm2 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
procedure TForm2.Button1Click(Sender: TObject);
var
iResult: Integer;
s: String;
begin
iResult := SendMessage(Application.MainForm.Handle, MSG_TEST, 0, 0);
s := PChar(iResult);
ShowMessage(s);
end;
|
|
Zitat
|