Текущий архив: 2003.01.20;
Скачать: CL | DM;
Вниз
Кнопка в TStringGrid Найти похожие ветки
← →
MsGuns (2003-01-09 12:23) [0]Добрый день и удачи Мастерам !
Простой вопрос, но не получается. Надо программно в зависимости от режима (только при разрешенном редактировании, которым я сам и управляю) в случае, если активна определенная колонка грида (допустим, 2-я или 3-я), рисовать в правой части только активной ячейки кнопку "Справочник" (кнопка есть). Помогите, пожалуйста, в факах только примеры с раскраской и картинками.
← →
Song (2003-01-09 12:30) [1]Ну дык в TStringGrid.onDrawCell сравнивай ACol/ARow с той ячейкой что тебе нужно и рисуй там кнопку, устанавливая TButton.Left/Top
← →
MsGuns (2003-01-09 12:42) [2]>Song © (09.01.03 12:30)
В том то и дело, что не рисуется ! Вернее, рисуется, но почему-то ЗА стринггридом. Использую именно Top и Left кнопки !
← →
MBo (2003-01-09 12:46) [3]>MsGuns
Сделай кнопке bringtofront (если она Tbutton или Tbitbtn, а вот c TSpeedBtn так не получится). В принципе, достаточно положить кнопку на форму ПОСЛЕ StringGrid
← →
MsGuns (2003-01-09 12:53) [4]>MBo © (09.01.03 12:46)
TButton не катит. А вот с TBitBtn попробую
Но все же..
Если создать кнопку программно, а потом просто нарисовать ее по заданным координатам. Знаю, что можно, но вот неполучается..;(((
Если можно, код, пожалуйста. Что-то типа Canvas....
← →
REA (2003-01-09 12:56) [5]В DBGrid есть элипсис (...). Можно посмотреть как сделано там. Или вообще использовать DBGrid.
← →
MBo (2003-01-09 13:00) [6]procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean);
begin
if ACol=2 then begin
BitBtn1.Left:=StringGrid1.Left+StringGrid1.CellRect(ACol,ARow).Right-30;
BitBtn1.Top:=StringGrid1.Top+StringGrid1.CellRect(ACol,ARow).Top+3;
end;
end;
← →
MsGuns (2003-01-09 13:30) [7]>REA © (09.01.03 12:56)
DBGrid не получится, т.к. в гриде надо редактировать записи автономно от НД, а потом запросом старые записи в таблице заменять новыми (речь идет о проводках по документу). При этом сама таблица проводок может быть открыта через другой датасет и совершенно по другим условиям выборки.
>MBo © (09.01.03 13:00)
Спасибо большое. Но это все же не TSpeedButton. (Дело в том, что в зависимости от контекста, рисунок на кнопке выбирается из списка имиджев, а BitBtn требует глиф. Определение же глифа через список требует также некоторых геморроев в коде). Буду пробовать.
← →
MsGuns (2003-01-09 13:33) [8]Блин, совсем затрахался с этими кнопками,- в SpeedButton тоже только глиф. Буду геморройничать с извлечением глифа из списка и использовать BitBtn.
← →
MBo (2003-01-09 13:47) [9]imagelist1.getbitmap(0,BitBtn1.Glyph);
← →
reonid (2003-01-09 15:00) [10]Посмотри здесь - может, пригодится.
http://delphi.mastak.ru/cgi-bin/download.pl?get=1036924792&n=0
Правда, кнопки там без глифов, но нарисовать глиф вещь тривиальная:
ImgList.Draw(Canvas, Rect.Left+2, Rect.Top+2, ImgIndex)
Страницы: 1 вся ветка
Текущий архив: 2003.01.20;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.012 c