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

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.007 c
15-1368647469
Rouse_
2013-05-15 23:51
2013.11.03
ВУЗ для IT специалиста: взгляд изнутри


11-1248443105
DevilDevil
2009-07-24 17:45
2013.11.03
Горизонтальный ScrollBar


15-1368966000
Interrupted++
2013-05-19 16:20
2013.11.03
Проблемы с внешним хардом.


15-1365950832
anikos
2013-04-14 18:47
2013.11.03
Взрыв при попадании


3-1293286581
caesar_88
2010-12-25 17:16
2013.11.03
База данных "План - рейтинг"