Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
Dimas93
0 / 0 / 0
Регистрация: 21.01.2016
Сообщений: 5
1

Ошибка: E2003 undeclared identifier

02.07.2018, 12:28. Просмотров 1857. Ответов 9
Метки нет (Все метки)

Код
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;
 
type
  TForm1 = class(TForm)
    btn5: TButton;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
 
    procedure btn5Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
 
  private
    fRestore: Boolean;
  public
  end;
 
 
 
   //Здесь необходимо описать класс TMyThread:
  TMyThread = class(TThread)
    private
    { Private declarations }
  protected
    procedure Execute; override;
  end;
 
 
 
var
  Form1: TForm1;
  MyThread: TMyThread;
  _PluginProc: function(Code: Cardinal; p1, p2, p3: widestring): widestring; stdcall;
implementation
 
{$R *.dfm}
 
// создание приостановленного потока
constructor TMyThread.Create(CreateSuspended: boolean);
begin
  inherited Create(CreateSuspended);
  FreeOnTerminate:= true;
end;
  // приостановить поток
procedure TForm1.Button2Click(Sender: TObject);
begin
 Thread.Suspend;
end;
 //  возобновить поток
procedure TForm1.Button3Click(Sender: TObject);
begin
Thread.Resume;
end;
 // остановить поток
procedure TForm1.Button4Click(Sender: TObject);
begin
Thread.Terminate;
end;
// запуск потока
procedure TForm1.Button1Click(Sender: TObject);
begin
with TMyThread.Create(True) do
        FreeOnTerminate:=true;
end;
 
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := caNone;
  Hide;
end;
 
 
function PluginProc(Code: Cardinal; p1: widestring = ''; p2: widestring = ''; p3: widestring = ''): widestring;
begin
  Result := _PluginProc(Code, p1, p2, p3);
end;
 
 // поток
    procedure TMyThread.Execute();
   begin
   while 1<>2 do begin  if not Terminated then
   begin
    PluginProc(0);
    sleep(6000) ;
    end;
   end;
   end;
 
 
 
  // закрытие окна
procedure TForm1.btn5Click(Sender: TObject);
begin
  Close;
end;
 
 
end.
Подскажите где скрывается ошибка, пожалуйста (см. приложение)
0
Миниатюры
Ошибка: E2003 undeclared identifier  
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.07.2018, 12:28
Ответы с готовыми решениями:

При запуске ошибка [dcc32 Error] Project1.dpr(12): E2003 Undeclared identifier: 'Form1'
Доброго времени суток! :) Пытаюсь написать электронный учебник с тестом. Пока только с тестом...

E2003 Undeclared identifier: 'FileSaveDialog'
Научите пожалуйста объявлять диалоги......или не объявлять а делать так чтобы таких ошибок не было...

Ошибка: Undeclared identifier
program Project1; {$APPTYPE CONSOLE} uses SysUtils,windows; type letters = set of...

Ошибка: Undeclared identifier
Помогите исправить

Ошибка: Undeclared identifier 'i'
begin t:=TStringList.Create; if OpenDialog1.Execute then t.LoadFromFile(OpenDialog1.FileName);...

9
Flip
153 / 105 / 55
Регистрация: 25.02.2018
Сообщений: 456
02.07.2018, 12:52 2
Лучший ответ Сообщение было отмечено Dimas93 как решение

Решение

В 51 строке ты создаешь процедуру "constructor TMyThread.Create(CreateSuspended: boolean);", а потом, в Button 2-4 ты вызываешь не пойми что.

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
procedure TForm1.Button2Click(Sender: TObject);
begin
   MyThread.Suspend;
end;
 //  возобновить поток
procedure TForm1.Button3Click(Sender: TObject);
begin
   MyThread.Resume;
end;
 // остановить поток
procedure TForm1.Button4Click(Sender: TObject);
begin
   MyThread.Terminate;
end;
Ошибка: E2003 undeclared identifier
1
Dimas93
0 / 0 / 0
Регистрация: 21.01.2016
Сообщений: 5
02.07.2018, 14:01  [ТС] 3
Подскажи как исправить, а то я не пойму до конца что ты хотел сказать. Спасибо.
0
Matan!
Delphi/Java/DB Dev + Math
631 / 541 / 166
Регистрация: 31.05.2013
Сообщений: 4,416
Записей в блоге: 6
Завершенные тесты: 2
02.07.2018, 14:15 4
Лучший ответ Сообщение было отмечено Dimas93 как решение

Решение

Dimas93, тебе показали уже.. Замени Thread на MyThread. Хотя вряд ли это решит все проблемы..
1
02.07.2018, 14:15
Dimas93
0 / 0 / 0
Регистрация: 21.01.2016
Сообщений: 5
02.07.2018, 14:24  [ТС] 5
Решены проблемы с кнопками, осталось только эта
inherited Create(CreateSuspended);
зарание спасибо
0
Dimas93
0 / 0 / 0
Регистрация: 21.01.2016
Сообщений: 5
02.07.2018, 14:30  [ТС] 6
Теперь выделяет CreateSuspended (см. приложение), не пойму в чем причина. Заранее спасибо.
0
Миниатюры
Ошибка: E2003 undeclared identifier  
krapotkin
3968 / 3325 / 1131
Регистрация: 14.04.2014
Сообщений: 15,942
Записей в блоге: 17
02.07.2018, 15:11 7
еще осталось то что поток никогда не кончит )

Добавлено через 1 минуту
вам не кажется странным что в implementation конструктор есть а в interface его нет?
1
Dimas93
0 / 0 / 0
Регистрация: 21.01.2016
Сообщений: 5
02.07.2018, 16:14  [ТС] 8
А не подскажите где в интерфейсе конструктор должен находиться?
0
krapotkin
3968 / 3325 / 1131
Регистрация: 14.04.2014
Сообщений: 15,942
Записей в блоге: 17
02.07.2018, 16:41 9
про потоки
с примерами
http://www.cyberforum.ru/blogs/469693/blog4875.html
1
Matan!
Delphi/Java/DB Dev + Math
631 / 541 / 166
Регистрация: 31.05.2013
Сообщений: 4,416
Записей в блоге: 6
Завершенные тесты: 2
02.07.2018, 17:07 10
Цитата Сообщение от Dimas93 Посмотреть сообщение
А не подскажите где в интерфейсе конструктор должен находиться?
В private
1
02.07.2018, 17:07
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.07.2018, 17:07

Ошибка: Undeclared identifier: 'this'
как обратиться к экземпляру класса из метода этого экземпляра? this не знает что такое

ошибка Undeclared identifier
В процедуру DrawGraph необходимо передавать ту или иную функцию. Ругается в 21 строке. Как...

Ошибка Undeclared Identifier
Помогите пожалуйста. При компиляции выводит ошибку Undeclared Identifier: &quot;AddXY&quot;. Что делать?...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru