Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.01.13;
Скачать: CL | DM;

Вниз

не могу добавить рисунок в 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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.015 c
14-37288
trotski
2002-12-25 06:50
2003.01.13
Ваша взяла


14-37273
ledzzz
2002-12-25 11:24
2003.01.13
barcode-компоненты для delhi5


3-36986
Oxy
2002-12-18 13:25
2003.01.13
Проблема с TField.SetData


4-37446
AndrewVolkov
2002-11-22 19:01
2003.01.13
Объясните пожалуйста, как можно посмотреть этот массив???


1-37138
Yurko
2002-12-29 03:22
2003.01.13
IconChange