Форум: "Основная";
Текущий архив: 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