Chertenok.ru - все о программировании
Вход  |  Регистрация  |  Поиск 
Праздник
Завтра :

День славянской письменности и культуры


Окно кансольного преложения... =) =)


Новая тема  Ответить  Печать Предыдущая тема  Следующая тема
Автор Сообщение
Пол:Муж TuXAPuK
Великий гонщик

Предупреждений : 1
Возраст: 26
Знак зодиака: Рыбы
Зарегистрирован: 12.09.2005
Сообщения: 714
Откуда: Великий город Рига... =Ъ
СообщениеПн, 12-Сен-2005 1:33    Заголовок сообщения: Окно кансольного преложения... =) =)
Цитата

Под делфи 6

Код:
Program ConsoleMenu;
{$APPTYPE CONSOLE}
{$R ResHackRc\MenuResource.res}
{$R ResHackRc\IconResource.res}

Uses
    SysUtils, Windows, Messages ;

Var
    hAppWindow: hWnd;
    pMessage: tagMSG;
    hConsoleOutput: Cardinal;
//  DebugResult: Variant;

Const
    c_sApplicationCaption: String = 'Console Application He! He!';

Begin
    // SetTitle, FindHandle, SetIcon, SetMenu
    SetConsoleTitle(PChar(c_sApplicationCaption));
    hAppWindow := FindWindow(Nil, PChar(c_sApplicationCaption));
    SendMessage(hAppWindow, WM_SETICON, ICON_SMALL, LParam(LoadIcon(hInstance, 'MAINICON')));
    SetMenu(hAppWindow, LoadMenu(hInstance, 'MNU_MAIN'));
    // Find STD_OUTPUT_HANDLE
    hConsoleOutput := GetStdHandle(STD_OUTPUT_HANDLE);

    SetConsoleTextAttribute(hConsoleOutput, FOREGROUND_RED Or FOREGROUND_GREEN Or FOREGROUND_INTENSITY);

    WriteLn(PChar(c_sApplicationCaption));

    While GetMessage(pMessage, 0, 0, 0) Do
    Begin
        TranslateMessage(pMessage);
        DispatchMessage(pMessage);
    End;

End.


Изучили???

Так вот у меня вооопросик возник... Почему Менюшка и иконка через раз поевляются... Счастлив Счастлив Сколько я над данной темой думал нефига в голову не лезет......

И кстате... Некак немогу вспомнить как CallBack обрабатывать которые MainMenu отсылает Wink Скромный Скромный
В начало
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Пол:Муж TuXAPuK
Великий гонщик

Предупреждений : 1
Возраст: 26
Знак зодиака: Рыбы
Зарегистрирован: 12.09.2005
Сообщения: 714
Откуда: Великий город Рига... =Ъ
СообщениеПн, 12-Сен-2005 2:15    Заголовок сообщения: Нуу я с этого проосто убиваюсь..
Цитата

Вот так она у меня запускается с 1-й попытки

И наконец-то на пятый раз...
В начало
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Пол:Муж NikotiN
Розовый мамонт


Возраст: 26
Знак зодиака: Овен
Зарегистрирован: 18.03.2005
Сообщения: 2137

СообщениеПн, 12-Сен-2005 7:12 
Цитата

попробуй update сделать, может поможет...
В начало
Посмотреть профиль Отправить личное сообщение
Пол:Муж TuXAPuK
Великий гонщик

Предупреждений : 1
Возраст: 26
Знак зодиака: Рыбы
Зарегистрирован: 12.09.2005
Сообщения: 714
Откуда: Великий город Рига... =Ъ
СообщениеПн, 12-Сен-2005 8:28    Заголовок сообщения: Будь проклят тот день когда я стал паршивым чайником...
Цитата

Вообщем попробывал я UpdateWindow(hAppWindow); ситуация крайне изменилась в лучшую сторону.. Но всёравно каждый 5й раз менюшка НЕ поевляется :( :( я от этих багов скоро с ума сойду.. LOL
_________________
В начало
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Пол:Муж NikotiN
Розовый мамонт


Возраст: 26
Знак зодиака: Овен
Зарегистрирован: 18.03.2005
Сообщения: 2137

СообщениеПн, 12-Сен-2005 17:23 
Цитата

ну тогда update и refresh/repaint ))))
В начало
Посмотреть профиль Отправить личное сообщение
Пол:Муж TuXAPuK
Великий гонщик

Предупреждений : 1
Возраст: 26
Знак зодиака: Рыбы
Зарегистрирован: 12.09.2005
Сообщения: 714
Откуда: Великий город Рига... =Ъ
СообщениеСр, 28-Сен-2005 21:48    Заголовок сообщения: Голова человеку нужна не только что-бы шапку носить
Цитата

Так вот... Отвечаю сам на свой вопрос!!
Меню не поевляется потому-что! при поиске Caption
Код:
 hAppWindow := FindWindow(Nil, PChar(c_sApplicationCaption));

Ещё не успевает появится окно кансольного приложения!

То-есть надо было всего-лиш зделать Write(' '); до поиска.. Что-бы окно появилось... А уж потом его находить =) =)

_________________
В начало
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Пол:Муж TuXAPuK
Великий гонщик

Предупреждений : 1
Возраст: 26
Знак зодиака: Рыбы
Зарегистрирован: 12.09.2005
Сообщения: 714
Откуда: Великий город Рига... =Ъ
СообщениеПн, 03-Окт-2005 9:11 
Цитата

Воот опять карректирую... На очень старых компах и этого не хватает :( :( пришлось выкручиваться в редиску... и зделать так...
Код:

 hAppWindow := 0;
 While (hAppWindow = 0) Do
 Begin
   Application.ProcessMessages;
   hAppWindow := FindWindow(Nil, PChar(c_sApplicationCaption));
 End;


LOL ok

_________________
В начало
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
DrPass
Знающий :)
/Почетный Модератор/


Возраст: 31
Знак зодиака: Лев
Зарегистрирован: 02.05.2002
Сообщения: 5709
Откуда: Донецк
СообщениеПн, 03-Окт-2005 22:01 
Цитата

А ты не жди, когда винда тебе консоль выдаст, а сам ее создавай - AllocConsole в начале программы
_________________
Да пребудет с вами Сила!
В начало
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Страница 1 из 1
Перейти:  
Новая тема  Ответить  Печать

Вы можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете присоединять файлы в этом форуме
Вы можете скачивать файлы в этом форуме
хостинг от .masterhost 
Rambler's Top100