Главная страница
    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.48 MB
Время: 0.003 c
8-1233235167
iworm
2009-01-29 16:19
2013.11.03
Line in


15-1368995402
Юрий
2013-05-20 00:30
2013.11.03
С днем рождения ! 20 мая 2013 понедельник


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


2-1360298852
Andrey K
2013-02-08 08:47
2013.11.03
Вкладка Diagram


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





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