Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Динамическое создание объекта 
:(
    Опции темы
EDuard
Дата 7.1.2006, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 331
Регистрация: 1.8.2005
Где: Синее нигде

Репутация: 2
Всего: 7



Всем привет!
На форме есть Panel1:Tpanel инамически создаю на ней check:Tcheckbox, После этого нужно создать на объекте check labelq:Tlabel. Но дельфи не дает установить ее родителем check. Как можно решить эту проблему?


--------------------

PM MAIL WWW ICQ   Вверх
Albinos_x
Дата 7.1.2006, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 26
Всего: 108



Цитата

После этого нужно создать на объекте check labelq:Tlabel

у Tcheckbox есть свой лабел... непонятно зачем тогда ещё лабел тебе нужен у Tcheckbox...
PS: поставь родителем Panel1:Tpanel


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
EDuard
Дата 7.1.2006, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 331
Регистрация: 1.8.2005
Где: Синее нигде

Репутация: 2
Всего: 7



Albinos_x, хотца smile .
Цитата(Albinos_x @ 7.1.2006, 13:24 Найти цитируемый пост)

PS: поставь родителем Panel1:Tpanel

Тогда labelq вылазит на panel1;



--------------------

PM MAIL WWW ICQ   Вверх
FRAGNATIC
Дата 7.1.2006, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


..::Свирепый Кодер::..
**


Профиль
Группа: Участник
Сообщений: 901
Регистрация: 17.10.2004
Где: ICQ

Репутация: 6
Всего: 11



Цитата(EDuard @ 7.1.2006, 13:42 Найти цитируемый пост)

Тогда labelq вылазит на panel1;

а где ей ещё вылазить =)
может координаты просто сменить чтобы казалось что она чекбоксу пренадлежит (на чекбокс наложить)
PM MAIL   Вверх
EDuard
Дата 7.1.2006, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 331
Регистрация: 1.8.2005
Где: Синее нигде

Репутация: 2
Всего: 7



FRAGNATIC, нет она по любому под check получается.


--------------------

PM MAIL WWW ICQ   Вверх
sexton
Дата 7.1.2006, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sexton=Пономарь (eng)
**


Профиль
Группа: Участник
Сообщений: 503
Регистрация: 5.5.2004
Где: Ульяновск

Репутация: 1
Всего: 9



Рисуй ручками Label поверх Checkbox через Canvas или просто юзай Checkbox.Caption smile
PM MAIL WWW ICQ   Вверх
EDuard
Дата 7.1.2006, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 331
Регистрация: 1.8.2005
Где: Синее нигде

Репутация: 2
Всего: 7



sexton, можно подробнее


--------------------

PM MAIL WWW ICQ   Вверх
FRAGNATIC
Дата 7.1.2006, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


..::Свирепый Кодер::..
**


Профиль
Группа: Участник
Сообщений: 901
Регистрация: 17.10.2004
Где: ICQ

Репутация: 6
Всего: 11



EDuard
CheckBox1.Canvas.TextOut();
ну и там ещё много всяких извращений можно с текстом и просто ещё рисовать)
PM MAIL   Вверх
EDuard
Дата 7.1.2006, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 331
Регистрация: 1.8.2005
Где: Синее нигде

Репутация: 2
Всего: 7



FRAGNATIC, + у стандартного checkbox'а нет канвы.


--------------------

PM MAIL WWW ICQ   Вверх
FRAGNATIC
Дата 7.1.2006, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


..::Свирепый Кодер::..
**


Профиль
Группа: Участник
Сообщений: 901
Регистрация: 17.10.2004
Где: ICQ

Репутация: 6
Всего: 11



EDuard
не знал=) не смотрел а так сразу
ну тогда на канве Panel рисуй =)
Добавлено @ 15:37
и всётаки чем Caption чекбокса не устраивает?
Добавлено @ 15:40
Код

var
  canva: Tcanvas;
begin
  canva:=TCanvas.Create;
  canva.Handle:=GetDC(CheckBox1.Handle);
  canva.TextOut(0,0,'lol');
end;

теперь есть канва)
не забываем тока освобождать всё)
PM MAIL   Вверх
Albinos_x
Дата 7.1.2006, 15:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 26
Всего: 108



Цитата(EDuard @ 7.1.2006, 13:42 Найти цитируемый пост)

Тогда labelq вылазит на panel1;

хочешь внутри квадратика писать ?


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
EDuard
Дата 7.1.2006, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 331
Регистрация: 1.8.2005
Где: Синее нигде

Репутация: 2
Всего: 7



Albinos_x, по сути проблема в том, что если у checkbox'а wordwrap=true; тогда если высота чекбокса больше чем высота текста(всего с учетом wordwrap) текст центрируется по высоте, мне нужно что бы текст выводился с верху без центрирования, поэтому хотел создать на чекбоксе лейбл. Если создаю на чекбоксе канву, то не могу вывести текст с переносом. так что пока все без результатно.
Может как-нибудь подругому можно вывести текст на чекбокс без центрирования по высоте?


--------------------

PM MAIL WWW ICQ   Вверх
Демо
Дата 7.1.2006, 19:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 3.11.2005

Репутация: 30
Всего: 50



Цитата(EDuard @ 7.1.2006, 17:08 Найти цитируемый пост)

Если создаю на чекбоксе канву, то не могу вывести текст с переносом.


Ну кроме TextOut есть еще и DrawText, который позволяет делать перенос.


--------------------
    
PM MAIL ICQ Skype   Вверх
EDuard
Дата 7.1.2006, 19:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 331
Регистрация: 1.8.2005
Где: Синее нигде

Репутация: 2
Всего: 7



Демо, можно примерчик? smile


--------------------

PM MAIL WWW ICQ   Вверх
Albinos_x
Дата 7.1.2006, 21:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 26
Всего: 108



пишешь canva.DrawText(
наводишь мышку и тебе показываются параметры...


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
EDuard
Дата 7.1.2006, 22:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 331
Регистрация: 1.8.2005
Где: Синее нигде

Репутация: 2
Всего: 7



Albinos_x у канвы нет Drawtext'а, ф-ия содержиться в модуле windows.
С мышкой все понятно, вот только не прорисовывается текст.


--------------------

PM MAIL WWW ICQ   Вверх
Albinos_x
Дата 7.1.2006, 22:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 26
Всего: 108



Цитата(EDuard @ 7.1.2006, 22:31 Найти цитируемый пост)

Albinos_x у канвы нет Drawtext'а, ф-ия содержиться в модуле windows.
С мышкой все понятно, вот только не прорисовывается текст.

ну да... там первый параметр нужно передать Хандле твоего канваса, второй строку, потом (наверно) количество строк, размеры надписи в параметре TRect, и последний формат текста (Cardinal)


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Демо
Дата 8.1.2006, 04:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 3.11.2005

Репутация: 30
Всего: 50



DrawTExt надо использовать апишный.

Код

int DrawText(
  HDC hDC,          // handle to DC
  LPCTSTR lpString, // text to draw
  int nCount,       // text length
  LPRECT lpRect,    // formatting dimensions
  UINT uFormat      // text-drawing options
);



В параметре uFormat использовать значение DT_WORDBREAK...
Добавлено @ 04:36
А пример...
Ну вот такой пусть будет:

Код

procedure TForm1.Button1Click(Sender: TObject);
var
    R: TRect;
    s: String;
begin
    R.Left := 0;
    R.Top := 0;
    R.Right := 50;
    R.Bottom := 150;
    s := 'У попа была cобака, он ее любил';
    DrawText(
        Form1.Canvas.Handle,
        PChar(s),
        Length(s),
        R,
        DT_WORDBREAK);
end;




--------------------
    
PM MAIL ICQ Skype   Вверх
Albinos_x
Дата 8.1.2006, 05:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 26
Всего: 108



Цитата(Демо)
Length(s)

Цитата(Albinos_x @ 7.1.2006, 22:43 Найти цитируемый пост)
потом (наверно) количество строк

значит я всё таки ошибся, енто длина текста...
Цитата(Демо @ 8.1.2006, 04:32 Найти цитируемый пост)
DrawTExt надо использовать апишный.

енто тот же самый про который мы говорили...судя по данному тобой описанию


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
EDuard
Дата 8.1.2006, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 331
Регистрация: 1.8.2005
Где: Синее нигде

Репутация: 2
Всего: 7



Все понял, после создания у чекбокса пришлось еще написать refresh, ато нехотел показывать ни в какую че он там пишет.
Демо, а можно еще задать шрифт и его размер?


--------------------

PM MAIL WWW ICQ   Вверх
Albinos_x
Дата 8.1.2006, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 26
Всего: 108



Цитата(EDuard @ 8.1.2006, 13:09 Найти цитируемый пост)

а можно еще задать шрифт и его размер?

попробуй перед рисованием на канве:
Код

Form1.Canvas.Font.Name:='Arial';



--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
FRAGNATIC
Дата 8.1.2006, 17:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


..::Свирепый Кодер::..
**


Профиль
Группа: Участник
Сообщений: 901
Регистрация: 17.10.2004
Где: ICQ

Репутация: 6
Всего: 11



Цитата(EDuard @ 8.1.2006, 13:09 Найти цитируемый пост)

Демо, а можно еще задать шрифт и его размер?

вот писал когда-то
Код

procedure draw;
var
  r: TRect;
  DC: HDC;
  LogFont : TLogFont;
  GDIOBJ : HGDIOBJ;
begin
 DC:=GetDc(0);

 SetTextColor(dc,RGB(0,0,0));

 LogFont.lfItalic:=0;
 LogFont.lfUnderline:=1;
 LogFont.lfStrikeOut:=0;
 LogFont.lfWidth:=50;
 logFont.lfEscapement:=0;
 LogFont.lfHeight:=100;
 LogFont.lfOutPrecision:=OUT_TT_ONLY_PRECIS ;
 LogFont.lfClipPrecision:=CLIP_DEFAULT_PRECIS;
 LogFont.lfQuality:=ANTIALIASED_QUALITY;

 GDIOBJ:= CreateFontIndirect(LogFont);
 SelectObject(dc, GDIOBJ);

 r.Left := 200;
 r.Top := 200;
 r.Right := 800;
 r.Bottom := 800;
 DrawText(dc,'!!! texttt !!!',14,r, DT_NOCLIP or  DT_WORDBREAK);
 DeleteObject(GDIOBJ);
 ReleaseDC(0,dc);
end;

PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

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

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0641 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.