Niestety ja muszę teraz napisać ten temat:
wyskakuje mi błąd:
[Error] Unit1.pas(15): Undeclared identifier: 'TPackage'
wiem, wiem nie zadeklarowałem typu, tylko że błąd wyświetla się właśnie na deklaracji!
Źrudło programu:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
StdCtrls;
type
TClientOnReceive = class(TThread)
private
ActiveP: TPackage;[tu się wyświetla błąd]
procedure Action;
protected
procedure Execute;
override;
end;
TForm1 = class(TForm)
wiadomosci: TMemo;
dowyslania: TMemo;
IP: TEdit;
port: TEdit;
nick: TEdit;
polacz: TButton;
IdTCPClient1: TIdTCPClient;
procedure polaczClick(Sender: TObject);
procedure dowyslaniaKeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TClientOnReceive.Action;
begin
glowna.wiadomosci.Lines.Add ('[' + ActiveP.UserNick + ']: ' + ActiveP.Txt);
end;
procedure TClientOnReceive.Execute;
begin
while not Terminated do
begin
if not glowna.IdTCPClient1.Connected then
Terminate
else
try
glowna.IdTCPClient1.ReadBuffer(ActiveP, SizeOf (ActiveP));
Synchronize(Action);
except
end;
end;
end;
procedure TForm1.polaczClick(Sender: TObject);
begin
try
IdTCPClient1.Host := ip.Text;
IdTCPClient1.Port:= StrToInt(port.Text);
IdTCPClient1.Connect(10000);
ClientRecive := TClientOnReceive.Create(True);
ClientRecive.FreeOnTerminate:=True;
ClientRecive.Resume;
except
on E: Exception do MessageDlg ('polaczenie niemozliwe: '+#13+E.Message, mtError, [mbOk], 0);
end;
end;
procedure TForm1.dowyslaniaKeyPress(Sender: TObject; var Key: Char);
var
SendPackage:TPackage;
begin
if (key = #13) then
begin
wyslij.BevelOuter:=bvRaised;
SendPackage.UserNick := nick.Text;
SendPackage.Txt := dowyslania.Text;
IdTCPClient1.WriteBuffer (SendPackage, SizeOf (SendPackage), true);
dowyslania.text:='';
end;
end;
end.
proszę o pomoc, a nie o komentarze :(