Автор | Сообщение |
|
| |
Пост N: 28
Зарегистрирован: 22.04.15
|
|
Отправлено: 17.05.19 13:22. Заголовок: LABEL проблема
если в LABEL подключить VCENTERALIGN @ 010,010 LABEL lbl_EXM VALUE 'abcdef abcdef abcdef abcdef abcdef' WIDTH 100 HEIGHT 070 CENTERALIGN VCENTERALIGN то не происходит автоперенос текста, если убрать VCENTERALIGN то текст переносится без проблем возможно кто-то не доделал централизацию мультитекста по вертикали Пожалуйста допилите пожалуйста.
|
|
|
Ответов - 14
[только новые]
|
|
|
| постоянный участник
|
Пост N: 6287
Зарегистрирован: 12.09.06
|
|
Отправлено: 17.05.19 13:28. Заголовок: Новичок пишет: кто-..
Новичок пишет: цитата: | кто-то не доделал централизацию мультитекста по вертикали |
| Я задавал такой вопрос. На него ответили - делать нужно самостоятельно ! Ручками, ручками и вперед.
|
|
|
|
| постоянный участник
|
Пост N: 2568
Зарегистрирован: 17.02.12
|
|
Отправлено: 17.05.19 13:54. Заголовок: Andrey пишет На него..
Andrey пишет цитата: | На него ответили - делать нужно самостоятельно ! |
| Ответь, что такое VCENTERALIGN ?
|
|
|
|
| постоянный участник
|
Пост N: 6288
Зарегистрирован: 12.09.06
|
|
Отправлено: 17.05.19 21:33. Заголовок: Текст по центру. Есл..
Текст по центру. Если есть несколько строчек, то всё равно получается одна строка по центру. Т.е. нет центрирования несколько строчек в заданных координатах. Центрироваться может только одна строка, которая входит по данным координатам.
|
|
|
|
| постоянный участник
|
Пост N: 2569
Зарегистрирован: 17.02.12
|
|
Отправлено: 17.05.19 23:28. Заголовок: Новичок пишет возмож..
Новичок пишет цитата: | возможно кто-то не доделал централизацию мультитекста по вертикали |
| Андрей, думаю, полностью ответил поставленный вопрос о доделках, т.е. на сколько подстрок не дели строку, они лягут поверх первой части. цитата: | Пожалуйста допилите пожалуйста. |
| Как сказал Андрей "Ручками, ручками и вперед." В помощь пример BASIC\COLORED_LABEL - вывод текста с помощью Label и возможные решения разные
|
|
|
|
| постоянный участник
|
Пост N: 7022
Зарегистрирован: 12.09.06
|
|
Отправлено: 23.08.21 14:34. Заголовок: Возник вопрос такой ..
Возник вопрос такой - как убрать у объекта свойство VCENTERALIGN ? Т.е. изначально выводиться одна строка, а когда нужно вывести две строки, то нужно убрать это свойство. Как это сделать ? Нашел по подсказке Сергея функцию: FUNCTION _SetAlign ( ControlName , ParentForm , cAlign ) *-----------------------------------------------------------------------------* LOCAL i IF ( i := GetControlIndex ( ControlName , ParentForm ) ) > 0 DO CASE CASE cAlign == "LEFT" ChangeStyle ( _HMG_aControlHandles , , ES_CENTER + ES_RIGHT ) CASE cAlign == "RIGHT" ChangeStyle ( _HMG_aControlHandles , ES_RIGHT , ES_CENTER + ES_RIGHT ) CASE cAlign == "CENTER" ChangeStyle ( _HMG_aControlHandles , ES_CENTER , ES_CENTER + ES_RIGHT ) CASE cAlign == "VCENTER" ChangeStyle ( _HMG_aControlHandles , SS_CENTERIMAGE ) ENDCASE _Refresh ( i ) ENDIF RETURN Nil Но эта функция ставит это свойство, а как убрать ?
|
|
|
|
| moderator
|
Пост N: 1911
Зарегистрирован: 11.02.10
|
|
Отправлено: 23.08.21 17:35. Заголовок: Andrey пишет: как у..
Andrey пишет: IF IsWindowHasStyle ( GetControlHandle ( Arg2 , Arg1 ) , SS_CENTERIMAGE ) ChangeStyle ( _HMG_aControlHandles [ i ] , , SS_CENTERIMAGE ) ENDIF
|
|
|
|
| постоянный участник
|
Пост N: 7024
Зарегистрирован: 12.09.06
|
|
Отправлено: 23.08.21 17:45. Заголовок: Спасибо БОЛЬШОЕ !!! ..
Спасибо БОЛЬШОЕ !!! Только непонятно как это применить к конкретному LABEL ? IF nLine == 1 _SetAlign ( ControlName , ParentForm , "VCENTER" ) ELSE ??????? ENDIF
|
|
|
|
| постоянный участник
|
Пост N: 3835
Зарегистрирован: 17.02.12
|
|
Отправлено: 23.08.21 17:58. Заголовок: Andrey пишет Только ..
Andrey пишет цитата: | Только непонятно как это применить к конкретному LABEL ? |
| А если присмотреться ты делал это много раз, в коде исп. handle твоего, нужного LABEL
|
|
|
|
| постоянный участник
|
Пост N: 7025
Зарегистрирован: 12.09.06
|
|
Отправлено: 23.08.21 18:02. Заголовок: SergKis пишет: А ес..
SergKis пишет: цитата: | А если присмотреться ты делал это много раз |
| Что делал уже забыл... Памяти нет совсем... Пишу теперь подсказки себе. SergKis пишет: цитата: | в коде исп. handle твоего, нужного LABEL |
| Это где я делал ?
|
|
|
|
| moderator
|
Пост N: 1912
Зарегистрирован: 11.02.10
|
|
Отправлено: 23.08.21 18:06. Заголовок: Andrey пишет: как э..
Andrey пишет: цитата: | как это применить к конкретному LABEL ? |
| Лови рабочий пример использования: /* * MINIGUI - Harbour Win32 GUI library Demo * */ #include "minigui.ch" #include "i_winuser.ch" Function Main DEFINE WINDOW Form_1 ; AT 0,0 ; WIDTH 400 ; HEIGHT 300 ; TITLE "MiniGUI Label Demo" ; MAIN ; FONT "Arial" SIZE 10 @ 010,10 LABEL Label_1 VALUE "Label_1" ; WIDTH 120 HEIGHT 60 TOOLTIP "Label 1" ; CENTERALIGN BACKCOLOR SILVER @ 100, 10 BUTTON Button_1; CAPTION "Remove VCENTER" ; ON CLICK ( RemoveAlign("Label_1", "Form_1"), ; Form_1.Label_1.Value := 'New Value' + CRLF + 'New Value2' + CRLF + 'New Value3' ) ; WIDTH 120 ; HEIGHT 25 END WINDOW Form_1.Label_1.Alignment := 'VCenter' Form_1.Label_1.Value := 'New Value' CENTER WINDOW Form_1 ACTIVATE WINDOW Form_1 Return Nil Function RemoveAlign( ControlName, ParentForm ) local i := GetControlIndex( ControlName, ParentForm ) IF IsWindowHasStyle ( _HMG_aControlHandles [ i ] , SS_CENTERIMAGE ) ChangeStyle ( _HMG_aControlHandles [ i ] , , SS_CENTERIMAGE ) ENDIF Return Nil
|
|
|
|
| постоянный участник
|
Пост N: 3836
Зарегистрирован: 17.02.12
|
|
Отправлено: 23.08.21 18:18. Заголовок: gfilatov2002 пишет Л..
gfilatov2002 пишет цитата: | Лови рабочий пример использования: |
| Тогда может что то такое *-----------------------------------------------------------------------------* FUNCTION _SetAlign ( ControlName , ParentForm , cAlign, lVCenter ) *-----------------------------------------------------------------------------* LOCAL i, j IF ( i := GetControlIndex ( ControlName , ParentForm ) ) > 0 DO CASE CASE cAlign == "LEFT" ChangeStyle ( _HMG_aControlHandles [ i ] , , ES_CENTER + ES_RIGHT ) CASE cAlign == "RIGHT" ChangeStyle ( _HMG_aControlHandles [ i ] , ES_RIGHT , ES_CENTER + ES_RIGHT ) CASE cAlign == "CENTER" ChangeStyle ( _HMG_aControlHandles [ i ] , ES_CENTER , ES_CENTER + ES_RIGHT ) CASE cAlign == "VCENTER" lVCenter := !Empty(lVCenter) .or. lVCenter == NIL j := IsWindowHasStyle ( _HMG_aControlHandles [ i ] , SS_CENTERIMAGE ) IF j .and. lVCenter ELSEIF j .and. !lVCenter ChangeStyle ( _HMG_aControlHandles [ i ] , , SS_CENTERIMAGE ) ELSE ChangeStyle ( _HMG_aControlHandles [ i ] , SS_CENTERIMAGE ) ENDIF ENDCASE _Refresh ( i ) ENDIF RETURN Nil
|
|
|
|
|
| moderator
|
Пост N: 1913
Зарегистрирован: 11.02.10
|
|
Отправлено: 23.08.21 18:54. Заголовок: SergKis пишет: може..
SergKis пишет: Добавил новое свойство NoVCenter Теперь можно сделать то же самое проще: #include "minigui.ch" Function Main DEFINE WINDOW Form_1 ; AT 0,0 ; WIDTH 400 ; HEIGHT 300 ; TITLE "MiniGUI Label Demo" ; MAIN ; FONT "Arial" SIZE 10 @ 010,10 LABEL Label_1 VALUE "Label_1" ; WIDTH 120 HEIGHT 60 TOOLTIP "Label 1" ; CENTERALIGN BACKCOLOR SILVER @ 100, 10 BUTTON Button_1; CAPTION "Remove VCENTER" ; ON CLICK ( Form_1.Label_1.Alignment := 'NoVCenter', ; Form_1.Label_1.Value := 'New Value' + CRLF + 'New Value2' + CRLF + 'New Value3' ) ; WIDTH 120 ; HEIGHT 25 @ 130, 10 BUTTON Button_2; CAPTION "Add VCENTER" ; ON CLICK ( Form_1.Label_1.Alignment := 'VCenter', ; Form_1.Label_1.Value := 'New Value' ) ; WIDTH 120 ; HEIGHT 25 END WINDOW Form_1.Label_1.Alignment := 'VCenter' Form_1.Label_1.Value := 'New Value' CENTER WINDOW Form_1 ACTIVATE WINDOW Form_1 Return Nil
|
|
|
|
| постоянный участник
|
Пост N: 7026
Зарегистрирован: 12.09.06
|
|
Отправлено: 23.08.21 20:04. Заголовок: gfilatov2002 пишет: ..
gfilatov2002 пишет: цитата: | Добавил новое свойство NoVCenter |
| Это просто ОТЛИЧНО ! Спасибо БОЛЬШОЕ !!! А когда в библиотеке это будет ?
|
|
|
|
| moderator
|
Пост N: 1914
Зарегистрирован: 11.02.10
|
|
Отправлено: 23.08.21 20:10. Заголовок: Andrey пишет: когда..
Andrey пишет: цитата: | когда в библиотеке это будет ? |
| В третьем апдейте сборки 21.07, который выйдет на этой неделе
|
|
|
|