Autor Beitrag
aequitas
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 16

Win XP Pro; Win 7 Pro
Delphi
BeitragVerfasst: So 05.12.10 17:28 
Hallo,

ich habe ein Problem bei einem kleinen Chat, den ich gerade zur Übung bastele.
Ich möchte den Text, den ein Client empfangen hat, in einem Memo-Feld anzeigen.
Allerdings wird mein "MemoClient.Lines.Add" (MemoClient ist der Name des Memos) rot unterstrichen und es kommt der Fehler:

[Pascal Fehler] Unit1.pas(107): E2003 Undefinierter Bezeichner: 'MemoClient'

Hier mal die Procedure:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure ServerSocketClientRead (Sender: TObject; Socket: TCustomWinSocket);
var
  Nachricht: string;
begin
  Nachricht := Socket.ReceiveText;
  MemoClient.Lines.Add := (Nachricht);
end;


Hoffe mir kann jemand erklären, wieso das Memo-Feld nicht erkannt wird.
Danke und Grüße


Moderiert von user profile iconMartok: Topic aus Sonstiges (Delphi) verschoben am So 05.12.2010 um 19:11
platzwart
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1054
Erhaltene Danke: 78

Win 7, Ubuntu 9.10
Delphi 2007 Pro, C++, Qt
BeitragVerfasst: So 05.12.10 17:45 
Kein Wunder! Die Prozedur "ServerSocketClientRead" gehört nicht zur Form. Daher werden alle Komponenten bzw. Funktionen, die zur Form gehören, nicht erkannt, wenn du die Form nicht explizit angibst. Korrekt wäre es also so:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure ServerSocketClientRead (Sender: TObject; Socket: TCustomWinSocket);
var
  Nachricht: string;
begin
  Nachricht := Socket.ReceiveText;
  Form1.MemoClient.Lines.Add := (Nachricht);
end;


Anders wäre es, wenn du die Prozedur als Member der Form anlegst. Dann schaut das ganze so aus:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure Form1.ServerSocketClientRead (Sender: TObject; Socket: TCustomWinSocket);
var
  Nachricht: string;
begin
  Nachricht := Socket.ReceiveText;
  MemoClient.Lines.Add := (Nachricht);
end;

_________________
Wissenschaft schafft Wissenschaft, denn Wissenschaft ist Wissenschaft, die mit Wissen und Schaffen Wissen schafft. (myself)
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19314
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 05.12.10 18:13 
Und was die Begrifflichkeiten angeht:
Der Titel sagt es schon: Du hast eine Prozedur, brauchst aber eine Methode des Formulars.
aequitas Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 16

Win XP Pro; Win 7 Pro
Delphi
BeitragVerfasst: So 05.12.10 18:17 
War wohl ein ganz doofer Fehler :-(. Aber wieder mal was gelernt.
Dann mal vielen Dank...