Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как остановить таймер в его событии ontimer? [D7, XP]


Сергей ©   (2011-01-21 18:27:00) 

После выполнения процедуры PrintDilogeSetNamePrinter нужно остановить
таймер, в такой вариации выдает ошибку.
: Not enough actual parameters

procedure TForm_ControllerPdf.Timer_PrintPdfTimer(Sender: TObject);
begin
PrintDilogeSetNamePrinter ('Print','ComboBox',ComboBoxNamePrinter.Text,Timer_PrintPdfTimer);
Timer_PrintPdfTimer.enabled:=false;
end;


DVM   (2011-01-22 15:44:00) [1]


> DiamondShark ©

Поставил бы смайлик что ли, а то выглядело как наезд :) Причем наезд как на отвечающих так и на делфи сразу :)


DiamondShark   (2011-01-22 15:40:00) [2]


> DVM ©   (22.01.11 15:30) [17]

Извините, я не подумал, что столь откровенный стёб над классическими претензиями Начинающих может быть быть воспринят с такой нечеловечески чудовищной серьёзностью.
Извините, это было жестоко с моей стороны.


DVM   (2011-01-22 15:30:00) [3]


> DiamondShark ©   (22.01.11 15:23) [16]

Серьезно. А ты? Какое отношение синатаксис и семантика Delphi (пусть и кривая и какая угодно неважно) имеет к тому, что среда автоматически генерирует обработчики событий так, что в них используется имя экземпляра к которому они относятся и человек перепутал. Я не понимаю вообще смысл твоей реплики в [13].


DiamondShark   (2011-01-22 15:23:00) [4]


> DVM ©   (22.01.11 15:14) [14]

Вы это серьёзно?


DVM   (2011-01-22 15:20:00) [5]


> Сергей   (21.01.11 20:35) [8]


> procedure TForm_ControllerPdf.Timer_PrintPdfTimer(Sender:
>  TObject);
> begin
> // любая процедура
> // хочу отключить таймер Timer_PrintPdf
> Timer_PrintPdfTimer.enabled:=false;
> end;


Если ты хочешь отключить таймер, то и обращайся к свойству таймера, причем тут процедура то. Таймер у тебя называется как?

procedure TForm_ControllerPdf.Timer_PrintPdfTimer(Sender: TObject);
begin
// любая процедура
Timer_PrintPdf.enabled:=false;
end;


DVM   (2011-01-22 15:14:00) [6]


> DiamondShark ©   (22.01.11 15:00) [13]


> Человек всё правильно написал. Ему же надо запретить срабатывание
> процедуры обработки таймера.

Чтоб запретить срабатываение именно процедуры обработки таймераписать надо совсем другое, типа Timer_PrintPdf.OnTimer := nil, ему же надо остановить таймер, что он и делает, просто перепутал имя. И Делфи тут не причем и уж точно синтаксис и семантикатут тем более не причем.
Можно подумать, в C# это же самое будет выглядеть по другому? Практически один в один будет.


DiamondShark   (2011-01-22 15:00:00) [7]

Человек всё правильно написал. Ему же надо запретить срабатывание процедуры обработкитаймера. И он не виноват, что у дельфи такие нелогичные синтаксис и семантика.
Всегда у вас так. Вместо того, чтобы объяснить неочевидные вещи, гыгыкать и тыкать пальцами.


Anatoly Podgoretsky   (2011-01-21 21:35:00) [8]

> Ega23  (21.01.2011 20:20:06)  [6]

Так и есть и достаточно только чуть чуть поднять глаза - procedure
TForm_ControllerPdf.Timer_PrintPdfTimer(Sender: TObject);


Anatoly Podgoretsky   (2011-01-21 21:32:00) [9]

> Сергей  (21.01.2011 20:15:05)  [5]

Тогда у тебя Timer_PrintPdfTimer это процедура, а не таймер. Проверяй текст
поиском по данному слову


Styx   (2011-01-21 21:17:00) [10]


> Имя таймера: Timer_PrintPdf

Ну так и пиши - Timer_PrintPdf.enabled := false;


Германн   (2011-01-21 20:42:00) [11]

Напиши так:
Timer_PrintPdfTimer(Self).enabled:=false;
Ошибка пропадет :)


Сергей   (2011-01-21 20:35:00) [12]

Имя таймера: Timer_PrintPdf

процедура вызывается по событию таймера OnTimer:

procedure TForm_ControllerPdf.Timer_PrintPdfTimer(Sender: TObject);
begin
// любая процедура
// хочу отключить таймер Timer_PrintPdf
Timer_PrintPdfTimer.enabled:=false;
end;


Styx   (2011-01-21 20:23:00) [13]

Что-то я не догоняю... Вы дали одно и то же имя объекту и функции? И как компилятор определит, где кто?


Ega23   (2011-01-21 20:20:00) [14]

procedure TForm_ControllerPdf.Timer_PrintPdfTimer(Sender: TObject);
begin
// нужная процедура.
Timer_PrintPdfTimer.enabled:=false; Not enough actual parameters
end;


Timer_PrintPdfTimer- это не объект, это метод класса TForm_ControllerPdf.
А объект - скорее всего Timer_PrintPdf


Сергей   (2011-01-21 20:15:00) [15]


procedure TForm_ControllerPdf.Timer_PrintPdfTimer(Sender: TObject);
begin
// нужная процедура.
Timer_PrintPdfTimer.enabled:=false; Not enough actual parameters
end;


Anatoly Podgoretsky   (2011-01-21 19:17:00) [16]

> Сергей  (21.01.2011 18:27:00)  [0]

// Timer_PrintPdfTimer.enabled:=false;

Что?


Ega23   (2011-01-21 18:53:00) [17]

Уй, ё....
Timer_PrintPdf Timer.enabled:=false;


Leonid Troyanovsky   (2011-01-21 18:31:00) [18]


> Ega23 ©   (21.01.11 18:29) [1]

> На какой строке-то выдаёт?  :)

В другой нет параметров.

Тоже путают кислое с мягким.

--
Regards, LVT.


Ega23   (2011-01-21 18:29:00) [19]


> : Not enough actual parameters

На какой строке-то выдаёт?  :)


Наверх

Титульная страница Поиск, карта сайта Написать письмо