Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.06.18;
Скачать: CL | DM;

Вниз

TMethod   Найти похожие ветки 

 
GanibalLector ©   (2006-05-11 22:16) [0]

Имеется и работает :

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
 Rect: TRect; State: TGridDrawState);
 var Buff: array [0..255] of Char;
begin
 with (Sender as TStringGrid),(Sender as TStringGrid).Canvas do
 begin
   StrPCopy(Buff,Cells[ACol, ARow]);
   SetTextAlign(Handle,GetTextAlign(Handle) and not (ta_Left or ta_Center) or (ta_Right));
   ExtTextOut(Handle,Rect.Right-2,Rect.Top+2,ETO_CLIPPED or ETO_OPAQUE,@Rect,Buff,StrLen(Buff),nil)
 end;
end;


В виду того,что гридов много и разбросаны они в разных формах хотелось бы сделать так :

...
var M:TMethod;
begin
 M.Code := @MyCode;
 M.Data  := StringGrid1;// или другой
 StringGrid1.OnDrawCell := TDrawCellEvent(M);
end;
...
// некий модуль,который подключен ко всем формам
procedure MyCode(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
 var Buff : Array [0..255] of Char;
begin
 with (Sender as TStringGrid) do
 begin
   StrPCopy(Buff,Cells[ACol, ARow]);
   SetTextAlign(Canvas.Handle,
                GetTextAlign(Canvas.Handle) and not (ta_Left or ta_Center) or (ta_Right));
   ExtTextOut(Canvas.Handle,Rect.Right-2,Rect.Top+2,
            ETO_CLIPPED or ETO_OPAQUE,@Rect,Buff,StrLen(Buff),nil);
 end;
end;


Тект в грид вводится,но не отображается(по непонятным мне причинам). Что не так,что проглядел???


 
TUser ©   (2006-05-11 22:33) [1]

Первое, что пришло в голову, - все эти гриды сделать наследниками общего предка, в котром перекрыть соотв. метод. Или я не правильно понял задачу?


 
Leonid Troyanovsky ©   (2006-05-11 22:39) [2]


> GanibalLector ©   (11.05.06 22:16)  

> хотелось бы сделать так :


Извини, конечно, но "так" совсем непонятно.
Если же, скажем, хочется назначать вместо метода регулярную
процедуру, то первым (зависит от..) д.б. ASelf: TObject.

--
Regards, LVT


 
GanibalLector ©   (2006-05-11 22:46) [3]

> то первым (зависит от..) д.б. ASelf: TObject.
Спасибо,помогло. Только я смыла толком не понял...а на кой ее добавлять? Ведь она даже нигде не используется.


 
Leonid Troyanovsky ©   (2006-05-11 22:53) [4]


> GanibalLector ©   (11.05.06 22:46) [3]

> Спасибо,помогло. Только я смыла толком не понял...а на кой


RTFM: Delphi help: Method calling conventions.

--
Regards, LVT.



Страницы: 1 вся ветка

Текущий архив: 2006.06.18;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.045 c
2-1149249027
XTD
2006-06-02 15:50
2006.06.18
Unsatisfied forward or external declaration: ????


15-1148359025
egert
2006-05-23 08:37
2006.06.18
Отправка письма через прокси


3-1145866815
Alex Romanskiy
2006-04-24 12:20
2006.06.18
Заголовки в DbGrid


2-1148821711
Ray
2006-05-28 17:08
2006.06.18
Нарисованную картинку - в файл


1-1147103040
Андрей Молчанов
2006-05-08 19:44
2006.06.18
Управление тултипами TTreeView