Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Работа с Unit [D7, XP]


romanln ©   (2010-07-03 12:31:00) 

Есть форма Form1: TForm1;
На ней объект  MATRIX1: TStringGrid;
Убираю выделение на MATRIX1
procedure TForm1.MATRIX_1(Sender: TObject; ACol, ARow: Integer; Rect: TRect;
 State: TGridDrawState);
begin
with MATRIX1 do
 begin
   if gdSelected in state then
   begin
     Canvas.Brush.Color:=clwhite;
     Canvas.FillRect(Rect);
     Canvas.Font:=Font;
     DrawText(canvas.Handle, PChar(Cells[ACol, ARow]), -1, Rect,
     DT_NOPREFIX or DT_SINGLELINE);
   end;
 end;
end;

добавил новый файл:StringGrid.pas
uses
 Forms,
 matrix in 'matrix.pas' {Form1},
 StringGrid in 'StringGrid.pas';


Цель: сделать оформление объектов формы в новом файле, в данном случае убирать выделение с StringGrid в файле StringGrid.pas, как это сделать?


Германн   (2010-07-05 01:22:00) [1]


> Цель: сделать оформление объектов формы в новом файле

Ищи в Гугле plugins, плагины и т.п. В противном случае вопрос не имеет смысла.


romanln   (2010-07-04 20:08:00) [2]

Спасибо
Жаль что воплатить в код я это врятли смогу )


Leonid Troyanovsky   (2010-07-04 11:00:00) [3]


> romanln   (03.07.10 12:31)  

> Цель: сделать оформление объектов формы в новом файле, в
> данном случае убирать выделение с StringGrid в файле StringGrid.

Для того, чтобы снабдить класс дополнительной функциональностью
создают потомка: TMyStringGrid = class(TStringGrid), перекрывая (override) нужный метод класса, в данном случае - procedure DrawCell.

Потомка описывают в отдельном модуле (юните, pas), который включают
(uses) в нужных местах. При желании можно установить новый контрол
в палитру компонентов.

>      DrawText(canvas.Handle, PChar(Cells[ACol, ARow]), -
> 1, Rect,
>      DT_NOPREFIX or DT_SINGLELINE);

Здесь достатчно Canvas.TextOut.

--
Regards, LVT.


Наверх

Титульная страница Поиск, карта сайта Написать письмо