Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
| IKh |
9.10.2011 7:30
Сообщение
#1
|
|
Новичок ![]() Группа: Пользователи Сообщений: 11 Пол: Мужской Реальное имя: Игорь Репутация: 0 |
Здравстуйте.
Объясните пожалуйста, можно ли создать панель инструментов в окне прииложения созданного на Delphi средствами Win API - CreateWindowEx. В описании говориться, что для создания панели инструментов без кнопок можно использовать функцию CreateWindowEx указывая имя класса окна TOOLBARCLASSNAME. Подскажите как можно это сделать в приложении на Delphi. |
![]() ![]() |
| IUnknown |
9.10.2011 9:33
Сообщение
#2
|
![]() a.k.a. volvo877 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: 627 |
С английским проблем нет? Тогда: App Part 3: Tool and Status bars
|
| IKh |
11.10.2011 15:25
Сообщение
#3
|
|
Новичок ![]() Группа: Пользователи Сообщений: 11 Пол: Мужской Реальное имя: Игорь Репутация: 0 |
Спасибо за ссылку. Изучаю, на данный момент панель управления получена и теперь нужно добавить кнопки на панель управления посредством отправки сообщения TB_ADDBUTTONS с указанием числа добавляемых кнопок и указателя на массив кнопок заданных структурой TTBBUTTON. При компилировании выдается сообщение:
Application_Error.bmp ( 182.97 килобайт )
Кол-во скачиваний: 491Массив кнопок для добавления определил так: . Кнопки добавляю так: . Пожалуйста подскажите, где ошибаюсь. Спасибо. |
| IUnknown |
11.10.2011 16:49
Сообщение
#4
|
![]() a.k.a. volvo877 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: 627 |
Цитата Пожалуйста подскажите, где ошибаюсь. Без понятия. Взял стандартный пример чисто WinAPI-шного приложения из FPC (Дельфи запускать - лень), добавил то, о чем говорится в статье по ссылке и в твоем посте. Откомпилировал, запустил. Вот:Ничего не валится, все работает... Сам исходник тоже прилагаю:
winhello_1.pas ( 3.44 килобайт )
Кол-во скачиваний: 490 |
| IKh |
11.10.2011 17:25
Сообщение
#5
|
|
Новичок ![]() Группа: Пользователи Сообщений: 11 Пол: Мужской Реальное имя: Игорь Репутация: 0 |
Без понятия. Взял стандартный пример чисто WinAPI-шного приложения из FPC (Дельфи запускать - лень), добавил то, о чем говорится в статье по ссылке и в твоем посте. Откомпилировал, запустил. Вот: Ничего не валится, все работает... Сам исходник тоже прилагаю:
winhello_1.pas ( 3.44 килобайт )
Кол-во скачиваний: 490Больше Вам спасибо. Я начал сравнивать ваш код и свой и нашел - глупая ошибка, даже не знаю как сказать - невнимательность! Отправлял сообщение на добавление кнопок, до создания экземпляров кнопок. Вот, что получилось: |
| IKh |
24.10.2011 16:22
Сообщение
#6
|
|
Новичок ![]() Группа: Пользователи Сообщений: 11 Пол: Мужской Реальное имя: Игорь Репутация: 0 |
Пожалуйста подскажите, как можно избежать перерисовки клиентской области окна при вызове диалоговых окон "Открыть" или "Сохранить" функциями GetOpenFileName и GetSaveFileName.
До вызова любого из диалоговых окон, родительское окно имеет вид: После вызова диалогового окна, окно принимает вид: то есть клиентская часть окна перерисовывается - надпись Заготовка находится под диалоговым окном. Далее при перемещении диалогового окна, родительское принимает вид: то есть надпись Заготовка перерисовывается во все тех участках основного окна, куда было перемещено диалоговое окно. Надпись занимает свое исходное положение после изменения размера окна (стиль класса окна: CS_HRedraw or CS_VRedraw) или же при посылке сообщения WM_PAINT после закрытия диалогового окна. |
| IUnknown |
24.10.2011 17:25
Сообщение
#7
|
![]() a.k.a. volvo877 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: 627 |
Не воспроизводится (WinXP SP3 + Dephi2009/FPC 2.4.4, проверял окном GetOpenFileName, тягал его во все стороны - не получилось добиться артефактов). Можешь прикрепить минимальный тестовый проект (просто отрисовка главного окна с надписью + запрос имени файла), который воспроизводит проблему? Чтоб можно было откомпилировать, запустить и посмотреть, есть ли проблема, и как от нее избавиться.
|
| IKh |
25.10.2011 0:16
Сообщение
#8
|
|
Новичок ![]() Группа: Пользователи Сообщений: 11 Пол: Мужской Реальное имя: Игорь Репутация: 0 |
Не воспроизводится (WinXP SP3 + Dephi2009/FPC 2.4.4, проверял окном GetOpenFileName, тягал его во все стороны - не получилось добиться артефактов). Можешь прикрепить минимальный тестовый проект (просто отрисовка главного окна с надписью + запрос имени файла), который воспроизводит проблему? Чтоб можно было откомпилировать, запустить и посмотреть, есть ли проблема, и как от нее избавиться. Вот текст, оставил отрисовку окна с надписью и вызов диалогового окна.
Результат тот же самый: |
| IUnknown |
25.10.2011 1:49
Сообщение
#9
|
![]() a.k.a. volvo877 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: 627 |
Цитата {Прорисовка окна}
Цитата A RECT structure that specifies the upper left and lower right corners of the rectangle in which the painting is requested, in device units relative to the upper-left corner of the client area. Мало ли, что запросит перерисовать система... Сообщение должно быть в центре окна, а не в центре перерисовываемой области:WM_PAINT: Сообщение отредактировано: IUnknown - 25.10.2011 1:50 |
| IKh |
25.10.2011 4:18
Сообщение
#10
|
|
Новичок ![]() Группа: Пользователи Сообщений: 11 Пол: Мужской Реальное имя: Игорь Репутация: 0 |
Спасибо! Ошибку понял.
|
![]() ![]() |
|
Текстовая версия | 10.12.2025 3:54 |