![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
получение сообщений в консольном приложении [D7, XP]
DillerXX © (2005-11-17 21:51:00)Как получать сообщения в консольном приложении, я опять же всё забыл, где здесь сделать объявление процедуры, чтобы можно было включить директиву message?
Leonid Troyanovsky (2005-11-18 14:05:00) [1]
> Digitman © (18.11.05 13:54) [7]
> доп.поток вовсе не обязален ... "умелые руки" с леккостью
> приспособят ReadConsoleInput() вместо блокирующего Read[Ln],
> из-за которого, собссно, и возникает сиюминутная идея вынести
> "оконные дела" в доп.поток
У меня, глядя на такие гибриды, всплывает лишь одна (вечная) мысль:
каждому - свое. Т.е., разлить лучше в разные флаконы.
--
Regards, LVT.
Leonid Troyanovsky (2005-11-18 14:05:00) [2]
> Digitman © (18.11.05 13:54) [7]
> доп.поток вовсе не обязален ... "умелые руки" с леккостью
> приспособят ReadConsoleInput() вместо блокирующего Read[Ln],
> из-за которого, собссно, и возникает сиюминутная идея вынести
> "оконные дела" в доп.поток
У меня, глядя на такие гибриды, всплывает лишь одна (вечная) мысль:
каждому - свое. Т.е., разлить лучше в разные флаконы (приложения).
--
Regards, LVT.
Digitman (2005-11-18 13:54:00) [3]
> Leonid Troyanovsky © (18.11.05 13:41) [5]
доп.поток вовсе не обязален ... "умелые руки" с леккостью приспособят ReadConsoleInput() вместо блокирующего Read[Ln], из-за которого, собссно, и возникает сиюминутная идея вынести "оконные дела" в доп.поток
Digitman (2005-11-18 13:44:00) [4]
> неужели без создания нового type нельзя ловить сообщения?
можно.
но к декларации дельфийских классов это отношения не имеет - консольные приложения прекрасно живут и работают и безо всяких ООП-премудростей
касаемо же директивы message в справке черным по белому сказано :
A message method is created by including the message directive in a methoddeclaration
у тебя ГДЕ декларация метода ? ГДЕ декларация класса, в котором этот метод объявлен ?
нет у тебя никаких классов в твоем коде) ... ну так а что же ты тогда хочешь ? компилятор поэтому и дает тебе отлуп) .. и поделом ..
Leonid Troyanovsky (2005-11-18 13:41:00) [5]
> DillerXX © (18.11.05 12:54) [2]
> нет, я перепутал, ничего я не решил...
Сделай вторичный поток, а в нем окно (но, лучше невидимое).
Только учти, что синхронизировать с первичным надо в том числе
и вывод в консоль, скажем через критическую секцию.
Пример невидимого окна во вторичном потоке:
http://rsdn.ru/?Forum/?mid=883505
--
Regards, LVT.
DillerXX (2005-11-18 13:35:00) [6]А что, неужели без создания нового type нельзя ловить сообщения?
Digitman (2005-11-18 13:19:00) [7]книжки бы умные тебе почитать, барин .. по ООП в Делфи ..
DillerXX (2005-11-18 12:54:00) [8]нет, я перепутал, ничего я не решил...
unit Unit1;
interface
uses Windows, Messages;
procedure WndProc(var Msg: TMessage); message WM_DISPLAYCHANGE;
implementation
procedure WndProc(var Msg: TMessage);
begin
writeln('Message!');
end;
end.
Ругается на message "[Error] Unit1.pas(5): Unknown directive: 'message'". Помогите...
DillerXX (2005-11-17 21:55:00) [9]Решил проблему созданием нового юнита.. опять же сорри