Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.008 c
3-36936
Karbo
2002-12-17 12:11
2003.01.13
Сохранить результат запроса в новой таблице


14-37383
stas_a
2002-12-25 14:32
2003.01.13
StringGrid с компонентами внутри ячеек


1-37007
Delphi Maniak
2003-01-01 10:13
2003.01.13
Вопрос про реестр


3-36989
Fishka
2002-12-18 16:11
2003.01.13
Заполнение Мемо-поля через DBMemo


14-37296
pavelsinicinv
2002-12-23 09:40
2003.01.13
Build





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский