Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2013.11.03;
Скачать: [xml.tar.bz2];

Вниз

TImage над TStringGrid   Найти похожие ветки 

 
denkop   (2011-09-22 14:44) [0]

Как нибудь возможно показать TImage над TStringGrid? Сейчас он уходит под грид, а очень хочется чтобы он был сверху.


 
MBo ©   (2011-09-22 14:45) [1]

Положи его на панель


 
denkop   (2011-09-22 14:51) [2]

Часть картинки прозрачная, а у панели нет свойства Transparent..


 
denkop   (2011-09-22 14:56) [3]

а почему вообще так происходит? может подскажете как доработать TImage класс чтобы появилась возможность поднять его над TStringGrid?


 
MBo ©   (2011-09-22 15:02) [4]

Потому что TStringGrid - TWinControl, а TImage - TGraphicControl, т.е. в сущности - картинка, участок на родительском оконном компоненте, который отрисовывается раньше, чем грид.


 
denkop   (2011-09-22 15:13) [5]

Конкретно в моей задаче, нужно сделать так чтобы в строках грида были кнопки. Стандартный TButton не подходит, кнопка графическая с прозрачными скруглениями углов (PNG c альфа каналом). Может есть другие мысли как это реализовать?


 
ProgRAMmer Dimonych ©   (2011-09-22 15:21) [6]

А кнопка случайно не расширяет функциональность грида? М.б. логичнее унаследоваться от TStringGrid и реализовать желаемое там?


 
pointerman   (2011-09-22 16:34) [7]

Возможно, но может есть менее трудоёмкие способы? Помимо события OnClick ещё нужны события OnMouseEnter, OnMouseLeave, OnMouseDown, OnMouseUp.. Я пока с трудом представляю как такое реализовать даже если доработать TStringGrid.


 
ProgRAMmer Dimonych ©   (2011-09-22 16:38) [8]

> [7] pointerman   (22.09.11 16:34)
> Возможно, но может есть менее трудоёмкие способы? Помимо
> события OnClick ещё нужны события OnMouseEnter, OnMouseLeave,
> OnMouseDown, OnMouseUp.. Я пока с трудом представляю как
> такое реализовать даже если доработать TStringGrid.

Ну, для отрисовки отдельных ячеек так и вовсе не нужно ничего наследовать - OnDrawCell или как его там. Если кнопка должна быть частью грида и её можно привязать к ячейкам - это тоже вариант. Вопрос только в том, насколько легко будет рассчитать необходимые координаты и отрисовать на канву загруженную картинку.


 
wisekaa ©   (2011-10-05 23:35) [9]

+1 к предыдущему оратору. а уж примеров от рисовки компонент в гриде полно в рунете.


 
Бездомный   (2011-10-06 13:37) [10]

Если все-таки хочется странного:

Image1.Parent := StringGrid1

в runtime.


 
denkop   (2011-10-07 11:05) [11]

Сейчас реализовано через OnDrawCell, обрабатывается также OnMouseMove чтобы ловить OnMouseEnter, OnMouseLeave, OnMouseDown, но есть проблема с OnMouseUp.. когда кнопку мыши зажал и выводишь в зажатом состоянии за пределы грида, то OnMouseUp уже не срабатывает. Отсюда и пошёл вопрос о контролах на гриде.

Image1.Parent := StringGrid1 тоже спасает. я изначально в runtime создавал все картинки и родителем ставил грид, не помогает, картинка под гридом остаётся..


 
Cobalt ©   (2011-10-07 12:02) [12]

Есть такое поведение у кнопок - если мышка не над кнопкой в нажатом виде - то кнопка не считает себя "нажатой".
Т.е. если нажать на TButton "левой кнопкой мышки", зажать и увести её с TButton - то OnClick не произойдёт.

У тебя такое поведение поддерживается?


 
denkop   (2011-10-07 12:11) [13]

Но и OnMouseUp тоже не вызывается.. В том что OnClick не происходит и есть проблема. У кнопки есть 3 состояния, когда курсор попал в область кнопки, ставлю картинку активной кнопки, когда кнопка мыши нажата он же OnMouseDown, ставлю картинку утопленной кнопки, потом кнопка отпускается и ставлю изначальную картинку. Так вот если нажать на кнопку и увести курсор за пределы грида, то на кнопке останется картинка утопленная, а нужно вернуть картинку которая была изначально..


 
Cobalt ©   (2011-10-07 15:42) [14]

Дык, я на то и намекаю - отлавливай OnMouseLeave?



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2013.11.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.003 c
4-1268135204
somio
2010-03-09 14:46
2013.11.03
Как узнать права текущего пользователя Windows


15-1368728640
Cynic
2013-05-16 22:24
2013.11.03
Разработчик интерфейсов


2-1360138340
Lonsdale
2013-02-06 12:12
2013.11.03
multi edit records


2-1360068267
vlad
2013-02-05 16:44
2013.11.03
Bass.dll


15-1368879134
wl
2013-05-18 16:12
2013.11.03
плата за ПО





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский