ich habe ein Problem mit Notify-Events und wollte das an einem einfachen Programm studieren. Das Programm besteht aus 2 Units (uMainForm, uSpecialForm) mit jeweils einer Form gleichen Namens (MainForm, SpecialForm).
- MainForm hat einen Button und ein Edit-Feld Edit
- SpecialForm nur das Edit-Feld SpecialEdit
- Ein Klick auf den Button von MainForm öffnet die SpecialForm - das klappt
Ein Ändern im SpecialEdit-Feld sollte in MainForm.Edit gespiegelt werden. Das klappt aber nicht, weil es bei der Zuordnung des Edit.OnChange-Events zu einem Notify-Event
in Mainform den Fehler gibt
"Wrong Number of parameters specified for call to xyz"
Code: Alles auswählen
unit uMainform;
{$mode objfpc}{$H+}
interface
uses
Classes
, uSpecialForm
, SysUtils
, Forms
, StdCtrls
;
type
{ TMainForm }
TMainForm = class(TForm)
Button : TButton;
Edit : TEdit;
procedure FormShow(Sender: TObject);
procedure ButtonClick(Sender: TObject);
private
procedure SpecialFormEditChange (Sender:TObject); // TNotify-Event
public
end;
var
MainForm: TMainForm;
implementation
{$R *.lfm}
procedure TMainForm.FormShow(Sender: TObject);
begin
SpecialFormEditChange := SpecialForm.SpecialEdit.OnChange; //<-------
{ Hier passiert der Fehler: Wrong Number of Parameters
specified to call to "SpecialFormEditChange"}
end;
procedure TMainForm.ButtonClick(Sender: TObject);
var
SpecialForm : TSpecialForm;
begin
SpecialForm := TSpecialForm.Create(nil);
try
SpecialForm.ShowModal;
finally
SpecialForm.Free;
end;
end;
procedure TMainForm.SpecialFormEditChange ( Sender : TObject );
begin
Edit.Text:=SpecialForm.SpecialEdit.Text;
end;
end.
Code: Alles auswählen
unit uSpecialForm;
{$mode delphi}
interface
uses
Classes
, SysUtils
, Forms
, StdCtrls
;
type
TSpecialForm = class(TForm)
SpecialEdit : TEdit;
end;
var
SpecialForm: TSpecialForm;
implementation
{$R *.lfm}
end.
Vielen Dank für Eure Hilfe
RudiRatlos
PS Das Programm ist eine vereinfachte Version von
https://www.delphipraxis.net/154363- ... agen.html
aber da sehe ich unter Lazarus den gleichen Fehler