Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 19.02.2011, 18:17
iGeTT iGeTT вне форума
Прохожий
 
Регистрация: 23.12.2010
Адрес: Moscow
Сообщения: 38
Версия Delphi: 7 Lite
Репутация: 10
По умолчанию Глюки: 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;
Ответить с цитированием
  #2  
Старый 19.02.2011, 18:20
Аватар для v1s2222
v1s2222 v1s2222 вне форума
Продвинутый
 
Регистрация: 07.09.2010
Сообщения: 726
Репутация: 26711
По умолчанию

Перейди во вкладку Indy Clients и кинь на форму компонент IdTelnet.
__________________
Помогаю за Спасибо
Ответить с цитированием
  #3  
Старый 19.02.2011, 18:55
iGeTT iGeTT вне форума
Прохожий
 
Регистрация: 23.12.2010
Адрес: Moscow
Сообщения: 38
Версия Delphi: 7 Lite
Репутация: 10
По умолчанию

Код:
uses IdTelnet;
type IdTelnet1: TIdTelnet;
Разве не очевидно, что компонент присутствует на форме? И я сказал, что перенес проект с одного компа на другой, естественно с формами.
Ответить с цитированием
  #4  
Старый 19.02.2011, 19:11
Аватар для v1s2222
v1s2222 v1s2222 вне форума
Продвинутый
 
Регистрация: 07.09.2010
Сообщения: 726
Репутация: 26711
По умолчанию

Тогда возможно не та версия Indy компонент, раз компилятор не находит данного компонента. Выход из ситуации: переустановить Indy, либо Delphi
__________________
Помогаю за Спасибо
Ответить с цитированием
  #5  
Старый 19.02.2011, 19:14
iGeTT iGeTT вне форума
Прохожий
 
Регистрация: 23.12.2010
Адрес: Moscow
Сообщения: 38
Версия Delphi: 7 Lite
Репутация: 10
По умолчанию

Ну как... Я ставил одну и ту-же седьмую лайт, с одного дистрибутива, версия инди одинаковая.
Ответить с цитированием
  #6  
Старый 20.02.2011, 06:41
Аватар для artemavd
artemavd artemavd вне форума
Начинающий
 
Регистрация: 05.08.2008
Сообщения: 115
Репутация: 12
По умолчанию

Может не находится .pas или .dcu файл?
Ответить с цитированием
  #7  
Старый 20.02.2011, 09:39
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Цитата:
Сообщение от iGeTT
Компилятор ругался на IdTelnet1 везде, где он был.
ну выдай нам скрины ругани
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #8  
Старый 20.02.2011, 12:57
iGeTT iGeTT вне форума
Прохожий
 
Регистрация: 23.12.2010
Адрес: Moscow
Сообщения: 38
Версия Delphi: 7 Lite
Репутация: 10
По умолчанию

Все .pas и .dcu в папке с проектом.
Ругань в названии темы.
Ответить с цитированием
  #9  
Старый 20.02.2011, 13:09
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

удалить с формы TIdTelnet и кинуть заново? открыть это http://data.cod.ru/90004 ? создать новый проект с TIdTelnet?
какие ошибки?
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #10  
Старый 21.02.2011, 09:30
iGeTT iGeTT вне форума
Прохожий
 
Регистрация: 23.12.2010
Адрес: Moscow
Сообщения: 38
Версия Delphi: 7 Lite
Репутация: 10
По умолчанию

Пересоздавал, перекидывал.
Скачал проект, компилируется, но когда начинаю писать дальше:
Код:
function SendCommand(s: string): Boolean;
var i: Integer;
begin
  for i:=1 to Length(s) do
     IdTelnet1.SendCh(s[i]);
     IdTelnet1.SendCh(#13);
end;

  [Error] Unit1.pas(30): Undeclared identifier: 'IdTelnet1'
  [Error] Unit1.pas(31): Missing operator or semicolon
  [Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'
Ответить с цитированием
  #11  
Старый 21.02.2011, 09:35
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Так какого беса вы функцию вне контекста формы описываете? Вы же обращаетесь к компонентам формы, так извольте как-то их упомянуть.
Так:
Код:
function TForm1.SendCommand(s: string): Boolean;
или так:
Код:
Form1.IdTelnet1.SendCh(s[i]);
     Form1.IdTelnet1.SendCh(#13);
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #12  
Старый 21.02.2011, 17:01
iGeTT iGeTT вне форума
Прохожий
 
Регистрация: 23.12.2010
Адрес: Moscow
Сообщения: 38
Версия Delphi: 7 Lite
Репутация: 10
По умолчанию

Спасибо большое, помогло. Тему офф.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 12:24.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter