Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Procedure Hilfe


mietzekotze - So 12.06.11 21:24
Titel: Procedure Hilfe
Hallo Community,

ich habe mich hier mal registriert, nachdem ich auf ein paar Probleme gestoßen bin.
Erstmal vor weg: Ich bin absoluter Anfänger in Delphi, und wollte mich jetzt an einem kleinen Projekt versuchen.
Zu meinem Problem:
Ich habe eine kleine GUI gebastelt, mit einem Memofeld. in dieses Memofeld soll dann der Log geschrieben werden, in folgender Form:
Zitat:
[DD.MM.YYYY - HH:MM] Text

Da das öfter passieren sollte, wollte ich mir dafür ne procedure anlegen, die so aussieht:

Delphi-Quelltext
1:
2:
3:
4:
procedure AddLog(text: string);
begin
  Memo1.Lines.Add('['+ DateToStr(Date) + '-' + TimeToStr(Time) + '] ' + text);
end;


Leider gibt mir Delphi 2010 immer Fehler aus, dass Memo1, Lines & Add Undeklarierte Bezeichner sind. Wenn ich aber einen Button auf die GUI mache, und dem denselben Code zuweise funktioniert alles.

Hier mal der gesamte Quelltext:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    StringGrid1: TStringGrid;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Memo1: TMemo;
    Button1: TButton;



  private
    { Private-Deklarationen }
  public
    procedure AddLog(text: string);



end.
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure AddLog(text: string);
 begin
  Memo1.Lines.Add('['+ DateToStr(Date) + '-' + TimeToStr(Time) + '] ' + text);
 end;


end;


Danke schonmal im Vorraus :)


ALF - So 12.06.11 21:59

Schreib mal

Delphi-Quelltext
1:
2:
3:
4:
procedure TForm1.AddLog(text: string);
begin
  Memo1.Lines.Add('['+ DateToStr(Date) + '-' + TimeToStr(Time) + '] ' + text);
end;

dann sollte es passen.

Gruss Alf


mietzekotze - So 12.06.11 22:20

Klasse, so funktionierts! Danke!


Delete - So 12.06.11 23:27

Und zur Erklärung: Deine Prozedur ist keine Methode deiner Formklasse und kennt so mit die Komponenten deines Formulares nicht.