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

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

получение сообщений в консольном приложении [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]

Решил проблему созданием нового юнита.. опять же сорри


Наверх

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