| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Динамическое создание объекта |
| Автор: EDuard 7.1.2006, 13:02 |
| Всем привет! На форме есть Panel1:Tpanel инамически создаю на ней check:Tcheckbox, После этого нужно создать на объекте check labelq:Tlabel. Но дельфи не дает установить ее родителем check. Как можно решить эту проблему? |
| Автор: Albinos_x 7.1.2006, 13:24 | ||
у Tcheckbox есть свой лабел... непонятно зачем тогда ещё лабел тебе нужен у Tcheckbox... PS: поставь родителем Panel1:Tpanel |
| Автор: EDuard 7.1.2006, 13:42 | ||
Albinos_x, хотца
Тогда labelq вылазит на panel1; |
| Автор: EDuard 7.1.2006, 14:31 |
| FRAGNATIC, нет она по любому под check получается. |
| Автор: sexton 7.1.2006, 14:44 |
| Рисуй ручками Label поверх Checkbox через Canvas или просто юзай Checkbox.Caption |
| Автор: EDuard 7.1.2006, 14:50 |
| sexton, можно подробнее |
| Автор: FRAGNATIC 7.1.2006, 14:56 |
| EDuard CheckBox1.Canvas.TextOut(); ну и там ещё много всяких извращений можно с текстом и просто ещё рисовать) |
| Автор: EDuard 7.1.2006, 15:33 |
| FRAGNATIC, + у стандартного checkbox'а нет канвы. |
| Автор: FRAGNATIC 7.1.2006, 15:40 | ||
| EDuard не знал=) не смотрел а так сразу ну тогда на канве Panel рисуй =) Добавлено @ 15:37 и всётаки чем Caption чекбокса не устраивает? Добавлено @ 15:40
теперь есть канва) не забываем тока освобождать всё) |
| Автор: Albinos_x 7.1.2006, 15:46 | ||
хочешь внутри квадратика писать ? |
| Автор: EDuard 7.1.2006, 16:08 |
| Albinos_x, по сути проблема в том, что если у checkbox'а wordwrap=true; тогда если высота чекбокса больше чем высота текста(всего с учетом wordwrap) текст центрируется по высоте, мне нужно что бы текст выводился с верху без центрирования, поэтому хотел создать на чекбоксе лейбл. Если создаю на чекбоксе канву, то не могу вывести текст с переносом. так что пока все без результатно. Может как-нибудь подругому можно вывести текст на чекбокс без центрирования по высоте? |
| Автор: Демо 7.1.2006, 19:01 | ||
Ну кроме TextOut есть еще и DrawText, который позволяет делать перенос. |
| Автор: EDuard 7.1.2006, 19:31 |
| Демо, можно примерчик? |
| Автор: Albinos_x 7.1.2006, 21:29 |
| пишешь canva.DrawText( наводишь мышку и тебе показываются параметры... |
| Автор: EDuard 7.1.2006, 22:31 |
| Albinos_x у канвы нет Drawtext'а, ф-ия содержиться в модуле windows. С мышкой все понятно, вот только не прорисовывается текст. |
| Автор: Albinos_x 7.1.2006, 22:43 | ||
ну да... там первый параметр нужно передать Хандле твоего канваса, второй строку, потом (наверно) количество строк, размеры надписи в параметре TRect, и последний формат текста (Cardinal) |
| Автор: Демо 8.1.2006, 04:32 | ||||
DrawTExt надо использовать апишный.
В параметре uFormat использовать значение DT_WORDBREAK... Добавлено @ 04:36 А пример... Ну вот такой пусть будет:
|
| Автор: Albinos_x 8.1.2006, 05:04 | ||||||
значит я всё таки ошибся, енто длина текста...
енто тот же самый про который мы говорили...судя по данному тобой описанию |
| Автор: EDuard 8.1.2006, 13:09 |
| Все понял, после создания у чекбокса пришлось еще написать refresh, ато нехотел показывать ни в какую че он там пишет. Демо, а можно еще задать шрифт и его размер? |
| Автор: Albinos_x 8.1.2006, 13:44 | ||||
попробуй перед рисованием на канве:
|
| Автор: FRAGNATIC 8.1.2006, 17:02 | ||||
вот писал когда-то
|