Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.49 MB
Время: 0.016 c
14-62766
Zhirnov Maxim
2002-12-30 12:57
2003.01.20
Ищу реферат (на немецком). Помогите


1-62639
de
2003-01-08 17:42
2003.01.20
Порядок активицации кнопок на форме


8-62675
Юрий К
2002-09-30 22:45
2003.01.20
Одновременное воспроизведение звуков


3-62416
stoper
2002-12-25 18:12
2003.01.20
ASCII&Delphi


4-62950
Alexec
2002-12-02 10:16
2003.01.20
Jpeg