Такая проблема: писал проект под Delphi 7 Lite на одном компе. После того как он накрылся, пересел за ноут, поставил ту же сборку делфии и попытался скомпилировать проект.
Компилятор ругался на IdTelnet1 везде, где он был.
Перепробовал уже все, даже переписывал заного с копированием кода - все тоже самое.
Часть кода:
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
IdTelnet, StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Button1: TButton;
Memo1: TMemo;
Edit2: TEdit;
Button2: TButton;
IdTelnet1: TIdTelnet;
Label2: TLabel;
Edit3: TEdit;
Button3: TButton;
Label3: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure IdTelnet1DataAvailable(Sender: TIdTelnet;
const Buffer: String);
procedure FormCreate(Sender: TObject);
procedure Edit2KeyPress(Sender: TObject; var Key: Char);
procedure IdTelnet1Connect(Sender: TObject);
procedure IdTelnet1Connected(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
function SendCommand(s: string): boolean;
var i: integer;
begin
for i := 1 to length(s) do
IdTelnet1.SendCh(s[i]);
IdTelnet1.SendCh(#13);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Button1.Enabled := False;
IdTelnet1.Host := Edit1.Text;
IdTelnet1.Connect;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if IdTelnet1.Connected then
begin
SendCommand(Edit2.Text);
Edit2.Clear;
Edit2.SetFocus;
end;
end;
procedure TForm1.IdTelnet1DataAvailable(Sender: TIdTelnet;
const Buffer: String);
const
CR = #13;
LF = #10;
var
Start, Stop : Integer;
begin
if Memo1.Lines.Count = 0 then
Memo1.Lines.Add('');
Start := 1;
Stop := Pos(CR, Buffer);
if Stop = 0 then
Stop := Length(Buffer) + 1;
while Start <= Length(Buffer) do begin
Memo1.Lines.Strings[Memo1.Lines.Count - 1] :=
Memo1.Lines.Strings[Memo1.Lines.Count - 1] +
Copy(Buffer, Start, Stop - Start);
if Buffer[Stop] = CR then begin
Memo1.Lines.Add('');
{$IFNDEF Linux}
SendMessage(Memo1.Handle, WM_KEYDOWN, VK_UP, 1);
{$ENDIF}
end;
Start := Stop + 1;
if Start > Length(Buffer) then
Break;
if Buffer[Start] = LF then
Start := Start + 1;
Stop := Start;
while (Buffer[Stop] <> CR) and (Stop <= Length(Buffer)) do
Stop := Stop + 1;
end;
end;