Форум: "Основная";
Текущий архив: 2003.01.13;
Скачать: [xml.tar.bz2];
Внизне могу добавить рисунок в RadioGroup Найти похожие ветки
← →
patrol (2002-12-31 12:13) [0]В форме нужно напротив каждой радиоточки, кроме надписи, иметь еще и рисунок. Добавляю рисунок, он скрывается под этой группой. Наверх вытащить не получается.
Подскажите, можно это сделать? Я только учусь.
← →
boby_g (2002-12-31 12:52) [1]Попробуй следующий метод:
если этот рисунок называется Image1,
напиши следующая строка в процедуре
Form1.Create(Sender: TObject):
begin
Image1.BringToFront;
end;
Я надеюсь что ты поймишь мое объяснение. Я говорю очень плахо русский язык
← →
Patrol (2002-12-31 14:45) [2]это не помогает
← →
patrol (2002-12-31 14:47) [3]язык программистов транснационален! :)
Мы всегда поймем друг друга
← →
Rouse_ (2002-12-31 14:52) [4]На сообщение WM_PAINT делай так
inherited;
AC:= TCanvas.Create;
AC.Handle := GetWindowDC(RadioGroup.Handle);
Далее рисуешь на самом канвасе AС
Не забудь его освободить
Желаю успехов
← →
patrol (2002-12-31 15:09) [5]Я же чайник! Ничего не поняла.
Какое сообщение WM_PAINT ?
Где этот код писать надо? Что такое АС? ...
Можно подробней в Аське обсудить #93947180
← →
patrol (2003-01-04 09:10) [6]Ну кто-нибудь мне толком объяснит?
← →
Юрий Зотов (2003-01-04 09:37) [7]> patrol
> Ну кто-нибудь мне толком объяснит?
Все контролы Delphi делятся на две группы - графические (потомки TGraphicControl) и оконные (потомки TWinControl). Первые, по своей сути - это просто рисунки, о которых Windows ничего не знает (потому что в Windows нет графических контролов) и поэтому их прорисовку никак не поддерживает. Вторые - это по сути окна, о которых Windows все известно и которая поэтому поддерживает их самопрорисовку, посылая этим окнам нужные сообщения.
Представьте, что форма - это крышка стола. Тогда графические контролы можно сравнить с рисунками на этой крышке, а оконные - с предметами, лежащими на ней. Теперь скажите - может ли рисунок на крышке стола оказаться НАД предметом, который лежит на той же крышке? Очевидно, не может, предмет всегда закроет рисунок.
Так вот, TImage - это графический контрол (рисунок), а TRadioGroup1 - оконный (предмет). Поэтому и не срабатывает совет boby_g. Он и не может сработать.
Чтобы рисунок был виден, его надо рисовать не на поверхности стола, а на поверхности самого предмета. Грубо говоря, такая поверхность в Delphi называется Canvas (холст), а в Windows - DC (device context, контекст устройства). Чтобы добиться именно такой прорисовки, можно рисовать рисунок "ручками" (как посоветовал Rouse_), но можно сделать и проще. В обработчике OnShow формы напишите одну строку:
Image1.Parent := RadioGroup1;
и тогда в run-time (но не в deign-time!) Image1 будет "сам собой" рисоваться на "поверхности" RadioGroup1.
← →
patrol (2003-01-04 10:23) [8]Юрий, огромное Вам спасибо!
Очень доходчиво объяснили. Буду пробовать.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.01.13;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c