Вверх ↑
Этот топик читают: Гость
Ответов: 37
Рейтинг: 5
#1: 2013-05-30 18:42:40 ЛС | профиль | цитата
Доброе время суток.
Появилось потребность в создании своего компонента на подобии Message но с чуть большем функционалом. Дочерняя форма это понятно, текст сообщения выводить в Label, но вот незадача, ширина Label подстраивается автоматически под содержимый текст а высота нет (если например выводимое сообщение из нескольких строк). Хотя в обычном Message работает на ура. Кто знает как решить? подскажите.
карма: 0

0
Ответов: 8961
Рейтинг: 824
#2: 2013-05-30 20:36:41 ЛС | профиль | цитата
Fidel, code_31135.txt
карма: 19

0
файлы: 1code_31135.txt [2.7KB] [228]
Ответов: 1536
Рейтинг: 176
#3: 2013-05-30 20:43:45 ЛС | профиль | цитата
Fidel, я например, не понимаю, что толком тебе нужно. Возьми тот же Memo и включи в нём свойство ReadOnly=True.

Add(MainForm,2953706,147,91)
{
Width=474
Height=547
}
Add(Label,9227543,322,77)
{
Left=235
Top=10
Width=205
Height=235
Color=15780518
AutoSize=1
}
Add(Memo,4377915,238,77)
{
Left=10
Top=10
Width=215
Height=230
ScrollBars=2
link(onChange,9391693:doEvent1,[])
}
Add(Memo,2434431,322,126)
{
Left=235
Top=255
Width=210
Height=245
ScrollBars=2
ReadOnly=0
}
Add(Hub,9391693,280,77)
{
link(onEvent1,9227543:doText,[])
link(onEvent2,2434431:doText,[(308,90)(308,153)])
}

карма: 1
Не так страшна ошибка, как опасность её не заметить.

0
Ответов: 16884
Рейтинг: 1239
#4: 2013-05-30 20:53:16 ЛС | профиль | цитата
Леонид,

или я чего-то не понял?
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1leon3.gif [21.2KB] [461]
Ответов: 8961
Рейтинг: 824
#5: 2013-05-30 22:16:08 ЛС | профиль | цитата
Tad, Label переносит по словам используя пробелы, поэтому точно подсчитать количество строк по имеющейся длине Label можно только перебирая строку в поисках пробелов и считая уместится/не уместится от пробела до пробела. А здесь приблизительно: "До чего же удивительный, пароход наш "Приблизительный"!)
карма: 19

0
Ответов: 16884
Рейтинг: 1239
#6: 2013-05-30 22:59:59 ЛС | профиль | цитата
Леонид, я про "Высота шрифта 18"
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 8961
Рейтинг: 824
#7: 2013-05-30 23:46:40 ЛС | профиль | цитата
Tad, естественно это не высота шрифта, а высота строки, и не 18, а 14
font_14.jpg
карма: 19

0
файлы: 1font_14.jpg [29.8KB] [403]
Ответов: 37
Рейтинг: 5
#8: 2013-05-31 16:51:01 ЛС | профиль | цитата
спс но немного не то, ща выложу примерчик, что бы понятней было

Add(MainForm,2953706,161,210)
{
Height=252
}
Add(Memo,1081302,217,210)
{
Left=30
Top=10
Width=335
Height=135
Strings=#70:Test Test Test Test Test Test Test Test Test Test Test Test Test Test |5:Test |5:Test |5:Test |5:Test |5:Test |
}
Add(Button,12274007,161,273)
{
Left=30
Top=165
Width=135
Caption="Message"
link(onClick,6038278:doMessage,[])
}
Add(Button,4790785,320,282)
{
Left=225
Top=165
Width=135
Caption="ChildFormEx+Label"
link(onClick,14194369:doData,[(358,288)(358,286)])
}
Add(Message,6038278,217,273)
{
link(Message,4688043:Var2,[])
}
Add(ChildFormEx,8138085,406,280)
{
Mode=1
}
BEGIN_SDK
Add(EditMultiEx,9563299,21,21)
{
WorkCount=#5:##add|
Point(##add)
link(##add,14357560:doEvent1,[(42,27)(42,55)])
}
Add(MainForm,10746696,189,105)
{
Left=35
Top=105
Width=112
Height=84
BorderStyle=3
Point(doWidth)
Point(doHeight)
}
Add(Button,6308973,70,126)
{
Left=5
Top=25
Caption="OK"
link(onClick,10746696:doClose,[])
}
Add(Label,7869910,105,49)
{
Width=0
Height=0
Caption=""
Point(Width)
Point(Height)
}
Add(Hub,14357560,63,49)
{
link(onEvent1,7869910:doText,[])
link(onEvent2,5038278:doData,[(95,62)(95,104)])
}
Add(DoData,5038278,112,98)
{
link(onEventData,10746696:doWidth,[(166,104)(166,139)])
link(Data,7869910:Width,[])
}
END_SDK
Add(DoData,14194369,364,280)
{
link(onEventData,8138085:##add,[])
link(Data,4688043:Var3,[(370,264)])
}
Add(GetDataEx,4688043,217,259)
{
link(Data,1081302:Text,[])
}


в нём две кнопки Message и ChildFormEx+Label
вот надо что бы при нажатии кнопки ChildFormEx+Label выдавалось сообщение один в один как при Message, всё не чего но текст состоит из 3 строк (но мжет и больше и меньше быть), как сделать что бы высота Label корректно автоматически выстраивалась?

ser_davkin, спасибо поправил
карма: 0

0
файлы: 1code_31143.txt [1.4KB] [150]
Ответов: 1536
Рейтинг: 176
#9: 2013-05-31 17:02:07 ЛС | профиль | цитата
Fidel, выкладывая ссылку, её же проверяй.
карма: 1
Не так страшна ошибка, как опасность её не заметить.

0
Ответов: 37
Рейтинг: 5
#10: 2013-06-01 11:58:21 ЛС | профиль | цитата
ну же люди, помогите
карма: 0

0
Ответов: 8961
Рейтинг: 824
#11: 2013-06-01 13:49:11 ЛС | профиль | цитата
Fidel, Фёдор, Ваш ник просто обязывает разбираться самому
code_31151.txt
карма: 19

1
файлы: 1code_31151.txt [3.4KB] [178]
Голосовали:Fidel
Ответов: 875
Рейтинг: 322
#12: 2013-06-01 14:15:48 ЛС | профиль | цитата
А если использовать панель?
code_31152.txt
карма: 1

1
файлы: 1code_31152.txt [2.1KB] [254]
Голосовали:Fidel
Ответов: 9906
Рейтинг: 351
#13: 2013-06-01 14:36:52 ЛС | профиль | цитата
А если GetTextExtentExPoint
карма: 9

0
Ответов: 8961
Рейтинг: 824
#14: 2013-06-01 15:09:55 ЛС | профиль | цитата
Galkov, как-то пробовал пиксели буковок считать, не получилось, наверное лыжи не ехали
карма: 19

0
Ответов: 9906
Рейтинг: 351
#15: 2013-06-01 15:26:47 ЛС | профиль | цитата
Эта сепулька наоборот поступает.
Считает, сколько буковок помещается в каждой строке при ограниченных пикселях по ширине. Или не пикселях: maximum allowable width, in logical units, of the formatted string
В общем, читаешь MSDM про эту сепульку, подставляешь ей, чего она просит, получаешь результат, и делаешь с ним, чего захочется

Недосуг, просто...

карма: 9

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)