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



Пост 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 то текст переносится без проблем
возможно кто-то не доделал централизацию мультитекста по вертикали
Пожалуйста допилите пожалуйста.

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


постоянный участник




Пост N: 6287
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.05.19 13:28. Заголовок: Новичок пишет: кто-..


Новичок пишет:

 цитата:
кто-то не доделал централизацию мультитекста по вертикали


Я задавал такой вопрос.
На него ответили - делать нужно самостоятельно !
Ручками, ручками и вперед.

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




Пост N: 2568
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 17.05.19 13:54. Заголовок: Andrey пишет На него..


Andrey пишет
 цитата:
На него ответили - делать нужно самостоятельно !


Ответь, что такое VCENTERALIGN ?

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




Пост N: 6288
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.05.19 21:33. Заголовок: Текст по центру. Есл..


Текст по центру. Если есть несколько строчек, то всё равно получается одна строка по центру.
Т.е. нет центрирования несколько строчек в заданных координатах.
Центрироваться может только одна строка, которая входит по данным координатам.

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




Пост N: 2569
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 17.05.19 23:28. Заголовок: Новичок пишет возмож..


Новичок пишет
 цитата:
возможно кто-то не доделал централизацию мультитекста по вертикали


Андрей, думаю, полностью ответил поставленный вопрос о доделках, т.е. на сколько подстрок не дели строку, они лягут поверх первой части.

 цитата:
Пожалуйста допилите пожалуйста.


Как сказал Андрей "Ручками, ручками и вперед."
В помощь пример BASIC\COLORED_LABEL - вывод текста с помощью Label и возможные решения разные

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




Пост 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

Но эта функция ставит это свойство, а как убрать ?

Спасибо: 0 
ПрофильЦитата Ответить
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


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




Пост N: 7024
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 23.08.21 17:45. Заголовок: Спасибо БОЛЬШОЕ !!! ..


Спасибо БОЛЬШОЕ !!!
Только непонятно как это применить к конкретному LABEL ?
IF nLine == 1 
_SetAlign ( ControlName , ParentForm , "VCENTER" )
ELSE
???????
ENDIF


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




Пост N: 3835
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 23.08.21 17:58. Заголовок: Andrey пишет Только ..


Andrey пишет
 цитата:
Только непонятно как это применить к конкретному LABEL ?


А если присмотреться ты делал это много раз, в коде исп. handle твоего, нужного LABEL

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




Пост N: 7025
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 23.08.21 18:02. Заголовок: SergKis пишет: А ес..


SergKis пишет:

 цитата:
А если присмотреться ты делал это много раз


Что делал уже забыл... Памяти нет совсем... Пишу теперь подсказки себе.

SergKis пишет:

 цитата:
в коде исп. handle твоего, нужного LABEL


Это где я делал ?

Спасибо: 0 
ПрофильЦитата Ответить
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


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




Пост 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


Спасибо: 0 
ПрофильЦитата Ответить
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


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




Пост N: 7026
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 23.08.21 20:04. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Добавил новое свойство NoVCenter


Это просто ОТЛИЧНО !
Спасибо БОЛЬШОЕ !!!
А когда в библиотеке это будет ?

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




Пост N: 1914
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 23.08.21 20:10. Заголовок: Andrey пишет: когда..


Andrey пишет:

 цитата:
когда в библиотеке это будет ?


В третьем апдейте сборки 21.07, который выйдет на этой неделе

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

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