On-line: гостей 1. Всего: 1 [подробнее..]
АвторСообщение
администратор




Пост N: 5714
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 14.06.16 15:52. Заголовок: Снова STATUSBAR


В главном окне программы заявлен Statusbar
 
DEFINE STATUSBAR OF Form_0 FONT 'Verdana' SIZE 8 BOLD
STATUSITEM "1" WIDTH 100
STATUSITEM "2" WIDTH 400
STATUSITEM "3" WIDTH 100
STATUSITEM "Проверка" WIDTH WidthWindow_MyApl/4 BACKCOLOR {212,212,212} FONTCOLOR BLACK CENTERALIGN
END STATUSBAR

По какому то событию хочу писать в первый ITEM статусбара
Делаю так
 
Form_0.StatusBar.Item(1):="Подключаюсь к серверу"
_SetStatusItemProperty( 1, { 255,255,0}, GetFormHandle("Form_0"), STATUS_ITEM_BACKCOLOR )
Form_0.StatusBar.Item(1):="Считываю данные" // вот это уже не отображается но если закоментить смену фона то работает.

При чем когда ITEM всего один то все работает как надо , если больше одного то
Что не так делаю ?

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 19 [только новые]


администратор




Пост N: 5715
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 14.06.16 16:15. Заголовок: Dima пишет: STATUS..


Dima пишет:

 цитата:
STATUSITEM "1" WIDTH 100
STATUSITEM "2" WIDTH 400
STATUSITEM "3" WIDTH 100


Проехали , надо почему то так (ХЗ зачем)
 
STATUSITEM "1" WIDTH 100 FONTCOLOR BLACK
STATUSITEM "2" WIDTH 400 FONTCOLOR BLACK
STATUSITEM "3" WIDTH 100 FONTCOLOR BLACK



Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 5716
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 14.06.16 16:44. Заголовок: До кучи При том же S..


До кучи
При том же Statusbar изменение ширины
вот так не работает
_SetStatusItemProperty( 1, WidthWindow_MyApl-2 , GetFormHandle("Form_0"), STATUS_ITEM_WIDTH )
вот так работает
Form_0.StatusBar.Width(1):=WidthWindow_MyApl-2
И для чего тогда _SetStatusItemProperty с параметром STATUS_ITEM_WIDTH если она не пашет ?

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 5717
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 14.06.16 17:32. Заголовок: Пара вопросов. 1. Мо..


Пара вопросов.
1. Можно ли сменить цвет бегунка в ProgressItem ?
2. Не собирается прога если в отдельном PRG живет функция которая обновляет StatusBar
Form_0.StatusBar.Item(3):= ntoc(nPercent)+" %" // валит ошибка при сборке
Хотя на эту строку не ругается Set StatusBar ProgressItem Of Form_0 Position To 0 ,
которая тоже использует Form_0
Если эту функцию поместить в тот же PRG где объявляется окно Form_0 то собирается.
Как лечить ?


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 5718
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 14.06.16 19:15. Заголовок: Dima пишет: Form_0...


Dima пишет:

 цитата:
Form_0.StatusBar.Item(3):= ntoc(nPercent)+" %" // валит ошибка при сборке


С этим вопрос решил через
SetProperty("Form_0","StatusBar","Item",3,ntoc(nPercent)+" %")

а вот этот вопрос в силе
Dima пишет:

 цитата:
1. Можно ли сменить цвет бегунка в ProgressItem ?



Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 953
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 15.06.16 10:16. Заголовок: Dima пишет: вот это..


Dima пишет:

 цитата:
вот этот вопрос в силе


Нет, т.к. цвет бегунка прязан к используемой в Винде теме.
Если изменишь тему Винды, то тогда изменится и цвет бегунка

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 5719
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 15.06.16 10:35. Заголовок: gfilatov2002 Понял ..


gfilatov2002
Понял , спасибо.
Еще не большой вопрос.
Индексирую базу , и все бегунки живут в статус баре главного окна.
Как заморозить действия пользователя в этом окне , пока не закончится индексация ?
Запретить юзать меню и другие контролы окна.

Видел пример и найти не могу теперь :)

Пробовал WaitWindow но оно замораживает и вывод в окно средствами программы.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 5720
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 15.06.16 12:09. Заголовок: Вопрос решил модальн..


Вопрос решил модальным окном и NOWAIT

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 998
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 15.06.16 12:29. Заголовок: Dima пишет:Запретить..


Dima пишет:
 цитата:
Запретить юзать меню и другие контролы окна.


Считываешь со всех контролов (и меню) окна (по handle) состояние Enabled в массив
У тех, что .T., ставишь .F., запоминаешь (помечаешь) их
После завершения операции, для тех что менял возвращаешь состояние Enabled .T.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 5721
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 15.06.16 13:44. Заголовок: SergKis пишет: Счит..


SergKis пишет:

 цитата:
Считываешь со всех контролов (и меню) окна (по handle) состояние Enabled в массив
У тех, что .T., ставишь .F., запоминаешь (помечаешь) их
После завершения операции, для тех что менял возвращаешь состояние Enabled .T.


Идея понятна , только я новенький и как замутить эту процедуру без понятия а курить мильон
примеров нет времени.

По ходу косяк нашел.
Есть главное окно программы , в нем живут Statusbar и главное меню.
Из этого меню вызываю функцию которая создает новое CHILD окно.
Если окно существует то делаю
 
IF IswindowDefined("TMP")
DoMethod("TMP", "Restore")
DoMethod("TMP", "Setfocus")
return nil
endif

Все работает нормально , пока это CHILD окно не свернули. После описанного
выше поднятия окна , портится StatusBar в том месте где это окно полежало в
свернутом виде , (портится фон , затираются надписи)

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 999
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 15.06.16 15:33. Заголовок: Dima пишет: как заму..


Dima пишет:
 цитата:
как замутить эту процедуру без понятия а курить мильон примеров нет времени.


Думаю за "рыбу" сойдут пара функций:
Скрытый текст

Список _HMG_... переменных для версии 2.07, возможно надо сверить с текущим из h_init.prg


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 5722
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 15.06.16 15:43. Заголовок: SergKis Спасибо !..


SergKis
Спасибо !

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 32
Зарегистрирован: 18.06.15
ссылка на сообщение  Отправлено: 06.02.17 08:44. Заголовок: Мужики, помогите разобраться ...


Мужики, помогите разобраться ... Имеем Окно в нем DEFINE TBROWSE

DEFINE WINDOW Form_1 AT 0,0 WIDTH 1320 HEIGHT 580;
TITLE ' test' MAIN FONT 'ARIAL' SIZE 12

DEFINE STATUSBAR PARENT Form_1
STATUSITEM 'Номер текущей записи : 1' + ' Записей всего : ' + Str( LastRec(), 10)
END STATUSBAR

DEFINE TBROWSE Browse_1 AT 30, 30 OF Form_1 ALIAS 'a1342' WIDTH 1250 HEIGHT 430
........
END TBROWSE

Суть проблемы ... как только мышка входит в поле TBROWSE стока STATUSITEM исчезает.
При прокрутку стрелкой появляется, при малейшем перемещение мышки исчезает снова ...
Как уйти этой беды ?

На ... @ 30, 30 BROWSE Browse_1 PARENT Form_1_3 все нормально, поднял старые сборки
проблема та же.




Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 1065
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 06.02.17 10:47. Заголовок: Alex_Cher пишет: Ка..


Alex_Cher пишет:

 цитата:
Как уйти этой беды ?


TSBROWS первый элемент стстусбара приватизирует себе безусловно под выводы сообщений.
Надо или выводить в статусбар через TSBrows или тупо первый элемент установить в ноль а выводить во второй

DEFINE STATUSBAR PARENT Form_0
STATUSITEM "Item 1" WIDTH 0
STATUSITEM 'Номер текущей записи : 1' + ' Записей всего : ' + Str( LastRec(), 10)
END STATUSBAR

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 1356
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 06.02.17 11:23. Заголовок: Haz пишет TSBROWS пе..


Haz пишет
 цитата:
TSBROWS первый элемент стстусбара приватизирует себе безусловно под выводы сообщений


Если сделать так:
 
CLASS TControl
...
DATA lNoStatusMsg AS LOGICAL

METHOD SetMsg( cText, lDefault ) CLASS TControl
Local cOldText, cParentWnd

If ::lNoStatusMsg
RETURN Nil
EndIf

...

то можно этой приватизацией управлять, т.е.
oBrw:lNoStatusMsg := .T. // отключили вывод
oBrw:lNoStatusMsg := .F. // включили вывод


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 1066
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 06.02.17 13:24. Заголовок: SergKis пишет: Если..


SergKis пишет:

 цитата:
Если сделать так:


Если модифицировать исходник - то да отключать можно будет.
Если не трогать исходник то первый элемент стстусбара либо загонять в нулевую длинну , либо застявлять его показывать то что надо примерно так
oBrw:cMsg := "эта строка будет в статусе первым элементом"
PS в исходник не лез , строка выше по памяти


Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 33
Зарегистрирован: 18.06.15
ссылка на сообщение  Отправлено: 06.02.17 13:39. Заголовок: SergKis пишет: Если..


SergKis пишет:

 цитата:
Если сделать так: CLASS TControl



Получилось, SergKis огромное спасибо .... может попросим gfilatov2002 включить это в следующую сборку ..?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 1357
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 06.02.17 15:36. Заголовок: Alex_Cher пишет може..


Alex_Cher пишет
 цитата:
может попросим gfilatov2002 включить это в следующую сборку ..?


В сборку включать, возможно, надо такой вариант:
 
CLASS TControl
DATA nStatusItem INIT 1
...
METHOD SetMsg( cText, lDefault ) CLASS TControl

Local cOldText, cParentWnd

If ::nStatusItem < 1
RETURN Nil
EndIf

DEFAULT lDefault := .F. , cText := ""

cParentWnd := IF( _HMG_MainClientMDIHandle == 0, ::cParentWnd, _HMG_MainClientMDIName )

if _IsWindowActive (cParentWnd)
if _IsControlDefined ( "StatusBar" , cParentWnd )
if !lDefault
cOldText := GetItemBar( _HMG_ActiveStatusHandle , ::nStatusItem )
if !(AllTrim(cOldText) == AllTrim(cText))
SetProperty( cParentWnd, "StatusBar", "Item", ::nStatusItem, cText )
endif
elseif valtype ( _HMG_DefaultStatusBarMessage ) == "C"
SetProperty( cParentWnd, "StatusBar", "Item", ::nStatusItem, _HMG_DefaultStatusBarMessage )
endif
endif
endif

return nil

т.е.
oBrw:nStatusItem := 0 // отключили вывод
oBrw:nStatusItem := 1 // вкл. в 1-ый item вывод
oBrw:nStatusItem := 2 // вкл. во 2-ой item вывод
...



Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 1358
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 06.02.17 16:22. Заголовок: PS сообщения 2-х тсб..


PS
сообщения 2-х тсб можно разделить в разные item StatusBar

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 1064
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 07.02.17 14:47. Заголовок: SergKis пишет: В сб..


SergKis пишет:

 цитата:
В сборку включать


Благодарю за помощь!

Добавил эту переменную в класс TControl с таким комментарием:

 цитата:
* Updated: Adaptation FiveWin Class TSBrowse 9.0 in HMG:
- New: added handling of the variable :nStatusItem to TControl class.
Contributed by SergKis.



Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 1
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет