Форум » GUI » Подскажите про TOOLBAR » Ответить

Подскажите про TOOLBAR

alex_II: На TOOLBAR'е есть несколько кнопок. Можно ли програмно нажать некоторые кнопки при открытии окна?

Ответов - 20

Andrey: alex_II пишет: Можно ли програмно нажать некоторые кнопки при открытии окна? Можно. При открытии окна есть всегда процедура инициализации окна. Пример: DEFINE WINDOW Form_5 ; ....................... FONT 'Tahoma' SIZE 14 ; ON INIT { || MyButton1(),MyPaintBook5() } или DEFINE WINDOW Form_5 ; ....................... FONT 'Tahoma' SIZE 14 ; ON INIT MyInitForm5() А там дальше эмулируй нажатие кнопок или просто вызов функции обработки кнопок.

alex_II: Этот метод не работает, уже проверил. Кнопки тулбара имеют параметр CHECK, и некоторые должны иметь изначально нажатый вид. От состояния кнопки зависит свойство Value, которое я анализирую. При создании кнопок они все отжаты и Value = F, выполнение метода OnClick DoMethod('Form_sogl', 'Bt_dt', 'OnClick') при старте, не изменяет ни вид кнопки ни её Value. Или я что-то неправильно делаю

Andrey: alex_II пишет: Или я что-то неправильно делаю Давай самодостаточный код примера. А то так трудно понять.


SergKis: alex_II пишет:при старте, не изменяет ни вид кнопки ни её Value так состоянием контролов и кнопок управляешь сам: SetProperty(cForm, cBtnToolBar1, "Enabled", .F. ) SetProperty(cForm, cBtnToolBar1, "Enabled", .T. ) если назначено SET KEY ... ACTION ..., то можно в OnInit делать PUSH KEY VK_F... или _PushKey(...) словом Andrey пишет:А там дальше эмулируй нажатие кнопок или просто вызов функции обработки кнопок

alex_II: SergKis пишет: SetProperty(cForm, cBtnToolBar1, "Enabled", .F. ) SetProperty(cForm, cBtnToolBar1, "Enabled", .T. ) Свойство Enabled мне не подходит, мне надо не отключать её, а отслеживать её два состояния, нажатое и отжатое. Команда вида: SetProperty('Form_sogl', 'Bt_dt', 'Value', .F. ) не утапливает кнопку Пример выложу завтра

Andrey: alex_II пишет: Команда вида: SetProperty('Form_sogl', 'Bt_dt', 'Value', .F. ) не утапливает кнопку И не будет ! SergKis пишет: SetProperty(cForm, cBtnToolBar1, "Enabled", .F. )

alex_II: Выкладываю рабочий пример. Цель: при старте 3 кнопка должна быть нажата #include "minigui.ch" FUNCTION main DEFINE WINDOW FormTest AT 0,0 WIDTH 400 HEIGHT 200 MAIN DEFINE SPLITBOX DEFINE TOOLBAR TBar_1 BUTTONSIZE 24,18 BUTTON Bt_Exit CAPTION ' 1 ' ACTION ThisWindow.Release END TOOLBAR DEFINE TOOLBAR TBar_2 BUTTONSIZE 24,18 //CAPTION Space(20) BUTTON Bt_ls CAPTION ' 2 ' SEPARATOR ACTION NIL CHECK BUTTON Bt_dt CAPTION ' 3 ' SEPARATOR ACTION nil CHECK END TOOLBAR END SPLITBOX END WINDOW CENTER WINDOW FormTest ACTIVATE WINDOW FormTest RETURN

gfilatov2002: alex_II пишет: Цель: при старте 3 кнопка должна быть нажата У меня сработало так [pre]#include "minigui.ch" FUNCTION main DEFINE WINDOW FormTest AT 0,0 WIDTH 400 HEIGHT 200 MAIN DEFINE SPLITBOX DEFINE TOOLBAR TBar_1 BUTTONSIZE 24,18 BUTTON Bt_Exit CAPTION ' 1 ' ACTION ThisWindow.Release END TOOLBAR DEFINE TOOLBAR TBar_2 BUTTONSIZE 24,18 //CAPTION Space(20) BUTTON Bt_ls CAPTION ' 2 ' SEPARATOR ACTION NIL CHECK BUTTON Bt_dt CAPTION ' 3 ' SEPARATOR ACTION nil CHECK END TOOLBAR END SPLITBOX END WINDOW FormTest.TBar_2.Bt_dt.value := .T. CENTER WINDOW FormTest ACTIVATE WINDOW FormTest RETURN NIL[/pre]

Andrey: А этот TOOLBAR внизу сделать можно ?

gfilatov2002: Andrey пишет: TOOLBAR внизу сделать можно ? Да, можно [pre]#include "minigui.ch" FUNCTION main DEFINE WINDOW FormTest AT 0,0 WIDTH 400 HEIGHT 200 MAIN //DEFINE SPLITBOX //DEFINE TOOLBAR TBar_1 BUTTONSIZE 24,18 bottom //END TOOLBAR DEFINE TOOLBAR TBar_2 BUTTONSIZE 24,18 bottom //CAPTION Space(20) BUTTON Bt_Exit CAPTION ' 1 ' ACTION ThisWindow.Release BUTTON Bt_ls CAPTION ' 2 ' SEPARATOR ACTION NIL CHECK BUTTON Bt_dt CAPTION ' 3 ' SEPARATOR ACTION nil CHECK END TOOLBAR //END SPLITBOX END WINDOW FormTest.TBar_2.Bt_dt.value := .T. CENTER WINDOW FormTest ACTIVATE WINDOW FormTest RETURN NIL[/pre]

Andrey: gfilatov2002 пишет: Да, можно Спасибо Григорий ! И еще один вопрос по TOOLBAR - цвет менять его можно ? По хелпу не нашел.

gfilatov2002: Andrey пишет: еще один вопрос по TOOLBAR - цвет менять его можно ? Нет, для TOOLBAR используются системные цвета

alex_II: Спасибо за помощь Григорий

Softlog86: А что , TOOLBAR поддерживает картинки для кнопок только из файлов ? из ресурса не отображает :(

SergKis: Softlog86 пишет А что , TOOLBAR поддерживает картинки для кнопок только из файлов ? из ресурса не отображает :( из ресурса работает (без расширения используете в кнопке и в rc файле прописываете) и из DEFINE IMAGELIST тоже

gfilatov2002: Softlog86 пишет: из ресурса не отображает Ну, рассмешил В базовом примере CONTACTOS от автора библиотеки, который написан еще в 2003 году, используются 3 (три) тулбара, и все они берут картинки из ресурсов программы. P.S. Еще одно доказательство того, что примеры никто не смотрит...

Dima: gfilatov2002 пишет: примеры никто не смотрит... Это не так !

Softlog86: Звиняйте , люди добрые :) Там этих примеров просто МОРЕ .... аж глаза разбегаются . А вот только не хочет картинку на кнопке отображать .... никак . :(

gfilatov2002: Softlog86 пишет: этих примеров просто МОРЕ Накопилось за 13 лет, однако... Softlog86 пишет: не хочет картинку на кнопке отображать Прежде всего проверь, чтобы картинка для кнопки тулбара имела 256 цветов (8 бит/пикс). Если цветность выше, то ее надо уменьшить Ну, и как обычно: пример - в студию...

Softlog86: Всем спасибо . как всегда дело было не в бобине .... , а в .RC файле



полная версия страницы