powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Определить label.width при autosize
8 сообщений из 8, страница 1 из 1
Определить label.width при autosize
    #38447936
glamis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Form.init:

This.label21.Caption=stroka1
This.label22.Caption=stroka2
This.label23.Caption=stroka3
This.label24.Caption=stroka4
This.label25.Caption=stroka5

This.label21.Refresh
rs=this.Width-this.container1.Left-this.container1.Width
maxw=MAX(This.label21.Width, This.label22.Width,This.label23.Width,This.label24.Width,This.label25.Width)
WAIT WINDOW STR(This.label21.width)+' - '+STR(maxw)
This.width=This.label21.Left+maxw+rs

Wait пишет 41-41, а при нажатии кнопки на форме wait wind str(Thisform.label21.width) пишет 173.

Как бы правильно определить ширину label'ов?
...
Рейтинг: 0 / 0
Определить label.width при autosize
    #38447975
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
glamisWait пишет 41-41, а при нажатии кнопки на форме wait wind str(Thisform.label21.width) пишет 173.
Значит за это время ширина меняется. Или в коде дальше или Anchor используется.
...
Рейтинг: 0 / 0
Определить label.width при autosize
    #38447984
glamis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,

Нет, больше ничего не меняется. В init засылается длинная строка и refresh не отрабатывает. Показывает ширину label до засылки.
а кнопка только для того, чтоб показать ширину label. там только один wait...

В результате форма получается очень узкая.
...
Рейтинг: 0 / 0
Определить label.width при autosize
    #38448111
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Упс, не правильно понял, не заметил про autosize, не пользуюсь никогда

Скорее всего изменение размера происходит позже, при отрисовке формы.
Я подобные проблемы порешал таймером. В ините запускается, при сработке (это после инициализации всех объектов формы) происходит все изменения и таймер останавливается.
...
Рейтинг: 0 / 0
Определить label.width при autosize
    #38448328
glamis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,

некрасиво получится - форма отрисуется, а потом дернется - перерисуется.
...
Рейтинг: 0 / 0
Определить label.width при autosize
    #38448470
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интервал 1 мс. Дерганий не замечал. Попробуй
This.Init()
Код: sql
1.
2.
3.
This.AddProperty('tmrResize', NewObject('Timer'))
BINDEVENT(This.tmrResize, "Timer", This, "ResizeByTimer") 
This.tmrResize.Interval = 1


This.ResizeByTimer()
Код: sql
1.
2.
3.
4.
5.
6.
7.
if vartype(This.tmrResize) = 'O'
	UNBINDEVENT(This.tmrResize, "Timer", This, "ResizeByTimer") 
	This.tmrResize = .F.
else
	return
endif
... свой код
...
Рейтинг: 0 / 0
Определить label.width при autosize
    #38448540
XAndy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
glamis,

Autosize сработает, только если Visible = истина
Код: sql
1.
2.
3.
4.
.Visible = .t.
.Autosize = .t.
.Caption = "Тра-ля-ля"
? .Width, .Height



Если же показать нет возможности/нельзя/рано, то можно сделать класс на базе невизуального Custom c Label внутри для определения размеров строки: http://forum.foxclub.ru/read.php?29,574323,574339#msg-574339
...
Рейтинг: 0 / 0
Определить label.width при autosize
    #38449801
glamis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Положил на форму такой метод:

LPARAMETERS oLabel
WITH this
.FontName=oLabel.FontName
.FontSize=olabel.FontSize
.FontBold=olabel.FontBold
.FontItalic=oLabel.FontItalic
.FontStrikethru=oLabel.FontStrikethru
.FontUnderline=oLabel.FontUnderline
ENDWITH
RETURN This.TextWidth(oLabel.caption+' ')

и вроде все получилось.
Хотел прописать Textwidth:
...
retu dodefault(olabel.caption)

дает ошибку - пишет не строка.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Определить label.width при autosize
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]