Es funktioniert leider nicht, gremlin
...
Hier mal der komplette code des Formulars:
Delphi-Quellcode:
unit rahmen_aendern;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, main;
type
TForm5 =
class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Memo1: TMemo;
Label4: TLabel;
Button1: TButton;
Button2: TButton;
procedure FormClose(Sender: TObject;
var Action: TCloseAction);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
class function Execute(
var EditParam:IR_Rahmen):Boolean;
end;
type
IR_Rahmen =
record
name :
string[50];
geraeteaddy :
string[5];
befehl :
string[7];
beschreibung :
string[150];
end;
var
Form5: TForm5;
implementation
{$R *.dfm}
//class function TForm5.Execute(var EditParam:IR_Rahmen):Boolean;
//-> FEHLER: Deklaration von 'Execute' unterscheidet sich von vorheriger Deklaration
class function Execute(
var EditParam:IR_Rahmen):Boolean;
begin
with Form5.Create(Application)
do begin
Edit1.Text := EditParam.
Name;
Edit2.Text := EditParam.geraeteaddy;
Edit3.Text := EditParam.befehl;
Memo1.Text := EditParam.beschreibung;
Result := (ShowModal=mrOK);
if Result
then begin
EditParam.
Name := Edit1.Text;
EditParam.geraeteaddy := Edit2.Text;
EditParam.befehl := Edit3.Text;
EditParam.beschreibung := Memo1.Text;
end;
end;
end;
// OK-Button
procedure TForm5.Button1Click(Sender: TObject);
begin
close;
// Eigenschaft: ModalResult = mrOk
end;
// Abbrechen-Button
procedure TForm5.Button2Click(Sender: TObject);
begin
close;
// Eigenschaft: ModalResult = mrCancel
end;
procedure TForm5.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
if (ModalResult=mrOK)
then begin
// Hier die Werte prüfen auf plausibiblität
end;
end;
end.
Wenn ich
class function TForm5.Execute(var EditParam:IR_Rahmen):Boolean;
Bei der funktions-def. angebe kommt die Fehlermeldung:
Deklaration von 'Execute' unterscheidet sich von vorheriger Deklaration
Wenn ich es dann so ändere, wie es oben steht ist die Fehlermeldung zwar weg, aber eine andere bleibt:
Delphi-Quellcode:
[
Pascal Fehler] rahmen_aendern.pas(28): E2065 Ungenügende
Forward- oder
External-Deklaration: '
TForm5.Execute'
[
Pascal Fataler Fehler] main.pas(109): F2063 Verwendete
Unit '
rahmen_aendern.pas' kann nicht compiliert werden
Dabei wird mir dann die Zeile 28 knallrot angestrichen, also dort, wo die Deklaration von der function ist...
Was habe ich falsch gemacht?
Nebenbei noch die Frage: Kann ich die Button-proceduren so stehen lassen?
Ich habe bei den Buttons einfach die Eigenschaft ModalResult geändert.
Wird dann beim Schließen des Formulars automatisch der Wert des Buttons, dass gedrückt wurde zurück gegeben?
Die Plausibilitätsprüfungen habe ich im "IR-Rahmen erstellen"-Button über onKeyPress-Ereignisse gelöst.