Форум: "Основная";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];
ВнизВставка визуального коспонента в StringGrid/DrawGrid Найти похожие ветки
← →
phan (2003-10-29 23:18) [0]Привет всем.
?Как добавить в StringGrid/DrawGrid
компонентe - например ComboBox/Image.
Здесь есть примерчик, но он из области обмануть юзверя
а мне бы пример как бы компоненту туда засунуть
или хотябы куда копать
(property or any free components library).
← →
Ломброзо (2003-10-30 00:31) [1]Комбобокс "засовывать" в StringGrid - выйдет очень некрасиво, потому что 3D Border у него не снимается. Комбобокс имитируют примерно так: отрисовывают кнопку со стрелкой вниз в ячейке (DrawFrameControl); выпадающий список - это листбокс со стилями WS_EX_TOOLWINDOW и WS_EX_TOPMOST и имеющий родительским окном рабочий стол, подгоняющийся динамически под нижний и левый края ячейки и динамически же меняющий видимость.
← →
Спрашивающий_ (2003-10-30 01:32) [2]А Image вставить можно примерно так
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
If (ACol=1) and (ARow=1) Then StringGrid1.Canvas.StretchDraw(Rect,Image1.Picture.Graphic);
end;
← →
phan (2003-10-30 13:22) [3]To Ломброзо: Vеня интересует именно встроить его(не обязательно комбобокс например RxSpinEdit) туда, чтоб не занимать отслеживанием куда ткнули мышку.
To Спрашивающий_: Не совсем подходит, картинку мне вставить нужно не саму по себе, а в виде чекбокса точнее
RxSwitch.
Всем спасибо за ответы.
← →
ZEE (2003-10-30 13:35) [4]
> phan (30.10.03 13:22) [3]
> To Ломброзо: Vеня интересует именно встроить его(не обязательно
> комбобокс например RxSpinEdit) туда, чтоб не занимать отслеживанием
> куда ткнули мышку.
а что значит встроить - это ж как раз создать и показать в нужном месте - и куда мышку ткнули (всмысле какая ячейка выделена) все-таки понадобится
> To Спрашивающий_: Не совсем подходит, картинку мне вставить
> нужно не саму по себе, а в виде чекбокса точнее
> RxSwitch.
а чекнутая/нечекнутая картинка не проще чем еще один компонент навешивать...
← →
phan (2003-10-30 14:09) [5]>а что значит встроить - это ж как раз создать и показать в >нужном месте - и куда мышку ткнули (всмысле какая ячейка >выделена) все-таки понадобится
Хочется создать что-то вроде метода InsertRow
в котором несколько Create нужных мне компонент
и что они там и жили и не отслеживать преремещение/изменение размеров окна. Я просто слышал что непример в VC++ StringGrid-а
вообще нет, а он создается из едитов, вот я и хочу вместо этих едитов вставить другие компоненты.
← →
ZEE (2003-10-30 15:01) [6]
> phan (30.10.03 14:09) [5]
> Я просто слышал что непример в VC++ StringGrid-а
> вообще нет, а он создается из едитов, вот я и хочу вместо
> этих едитов вставить другие компоненты.
так кто тебе мешает сделать свой грид по аналогии с ВЦ++ и вставляй туда вместо едитов то что надо...
← →
pasha_golub (2003-10-30 15:08) [7]Для начала посмотри как реализуется "вставка" InplaceEditor, то есть стандартного окна редактирования текста в гриде. Не все так просто, прийдется чуток ручками
← →
phan (2003-10-31 17:23) [8]To pasha_golub:
Ручками можно, вот только по подробнее можно.
Заранее спасибо.
← →
phan (2003-10-31 17:27) [9]Re: To pasha_golub:
Ручками можно, вот только по подробнее можно.
Заранее спасибо.
Как я понял под ручками подразумевалось пере определить
function CreateEditor: TInplaceEdit; virtual;
← →
phan (2003-10-31 17:28) [10]Re: To pasha_golub:
Ручками можно, вот только по подробнее можно.
Заранее спасибо.
Как я понял под ручками подразумевалось пере определить
function CreateEditor: TInplaceEdit; virtual;
← →
pasha_golub (2003-10-31 18:08) [11]Можно и переопределить, можно добавить свое. Советовал взглянуть на взаемодействие ИнпласеЭдитора и Грида, на основе этого потом ручками очень просто.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.037 c