|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Глюки: Undeclared Identifier
Такая проблема: писал проект под 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; |