Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.02.2013, 20:59   #11
Xaker_Two
Пользователь
 
Регистрация: 03.02.2013
Сообщений: 73
По умолчанию

Смотри я примерно понял(я просто что-то ступил) синтаксис и помотрел есть способ через процедуру(он мне подходит больше!!!) но у меня возникла маленькая проблемка он пишет ошибку:Unsatisfied forward or external declaration: 'TForm1.TimerProc' а написал я следующий код:

type
procedure TimerProc(wnd: HWND; Msg: UINT; idEvent: UINT; Time: DWORD); stdcall;
...
begin
...
c := SetTimer(0, 0, 1000, @TimerProc);
end;
end;
procedure TimerProc(wnd: HWND; Msg: UINT; idEvent: UINT; Time: DWORD); stdcall;
begin
...
KillTimer(0,c);
end;
Xaker_Two вне форума Ответить с цитированием
Старый 22.02.2013, 21:04   #12
ReportCube
Форумчанин
 
Аватар для ReportCube
 
Регистрация: 11.03.2011
Сообщений: 426
По умолчанию

Зачем и чем этот способ лучше? В любом случае отправляешь Handle окна, иначе работать не будет. Вот в этом окне и делаешь обработчик события WM_TIMER. Настоятельно советую полазить по исходникам - очень много полезного там найдёшь.
ReportCube вне форума Ответить с цитированием
Старый 22.02.2013, 21:21   #13
Xaker_Two
Пользователь
 
Регистрация: 03.02.2013
Сообщений: 73
По умолчанию

Хорошо посмотрю! А способ этот лучше тем что не надо писать АЙДИ таймера он задается на рандом! и такой таймер обращается к процедуре которая прописана тоесть несколько разных таймеров будут выполнять одно и тоже(это мне и надо!!!)!
Xaker_Two вне форума Ответить с цитированием
Старый 22.02.2013, 23:28   #14
Xaker_Two
Пользователь
 
Регистрация: 03.02.2013
Сообщений: 73
По умолчанию

Ребята можете посмотреть проект? я не понимаю почему стопается первый таймер когда активируется второй хотя ID у них разные!!!?
Вложения
Тип файла: zip Project002.zip (293.4 Кб, 5 просмотров)
Xaker_Two вне форума Ответить с цитированием
Старый 23.02.2013, 00:09   #15
ReportCube
Форумчанин
 
Аватар для ReportCube
 
Регистрация: 11.03.2011
Сообщений: 426
По умолчанию

В каком месте разные ID? Сказочник.
ID := 12; //21,22,1921 -- Назначай
SetTimer(Handle, ID, ...);
ReportCube вне форума Ответить с цитированием
Старый 23.02.2013, 00:12   #16
ReportCube
Форумчанин
 
Аватар для ReportCube
 
Регистрация: 11.03.2011
Сообщений: 426
По умолчанию

У тебя же в обработчике все параметры таймера приходят, убивай нужный не по ID, а по параметрам...
Создаёшь при каждом нажатии новый Img:= Timage... А где и как ты собираешься их освобождать, если у тебя одна переменная? Утечка памяти, которую никогда не проконтролируешь...

Последний раз редактировалось ReportCube; 23.02.2013 в 00:17.
ReportCube вне форума Ответить с цитированием
Старый 23.02.2013, 01:39   #17
Xaker_Two
Пользователь
 
Регистрация: 03.02.2013
Сообщений: 73
По умолчанию

Утечка памяти пока не главное! Вы запускали проэкт? там висит label1 в нем отображается ID текущего таймера! сами посмотрите!
Кстати а как удалить объект? Img:=TImage.Delete(Form1)??
Xaker_Two вне форума Ответить с цитированием
Старый 23.02.2013, 10:00   #18
ReportCube
Форумчанин
 
Аватар для ReportCube
 
Регистрация: 11.03.2011
Сообщений: 426
По умолчанию

Невнимательный я, извини. Все Img удаляться сами при закрытии формы.
По поводу таймера: посмотри предыдущий пост 10 и подставь вместо 13 свой ID
ReportCube вне форума Ответить с цитированием
Старый 23.02.2013, 11:55   #19
Xaker_Two
Пользователь
 
Регистрация: 03.02.2013
Сообщений: 73
По умолчанию

Если я подставлю свой ID(допустим рандомайзером или из массива при помощи счетчика) то как мне их удалять KillTimer(Handle,ID) не покатит если я вызову второй таймер до завершения первого! т.к. ID сменится! А что будет если я поставлю Interval на 0?(он помоему остановится!) но там помоему тоже нужен ID!
Xaker_Two вне форума Ответить с цитированием
Старый 23.02.2013, 12:05   #20
ReportCube
Форумчанин
 
Аватар для ReportCube
 
Регистрация: 11.03.2011
Сообщений: 426
По умолчанию

Откуда возьмёте ID - ваше дело. SetTimer(Handle, 121, 200, ...) будет исправно работать с интервалом в 200 миллисекунд до тех пор, пока не отправите команду KillTimer(Handle, 121). Здесь что-то непонятно?
ReportCube вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как обратиться к элементу массива (TASM)) Artur1992 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 26.05.2012 19:17
File1 .Дана строка S. Если S является допустимым именем файла, то создать пустой файл с этим именем и вывести True. Евгений1240 Помощь студентам 0 24.04.2012 14:26
CSS: как обратиться к элементу? Fenex HTML и CSS 1 02.03.2012 15:01
Обратиться к элементу страницы по имени тега в delphi webbrowser designer999 Работа с сетью в Delphi 9 15.09.2010 19:20
Как можно обратиться к элементу строки в двумерном массиве ? fermerius Помощь студентам 1 06.02.2010 19:14