Главная страница
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.046 c
2-1148978248
Belorus
2006-05-30 12:37
2006.06.18
TListBox


2-1148988561
wsih
2006-05-30 15:29
2006.06.18
Как пробежаться по всем веткам узла


15-1148329988
DillerXX
2006-05-23 00:33
2006.06.18
Скажите, ну почему?


2-1149211621
VitalikS
2006-06-02 05:27
2006.06.18
Формат строки


3-1145552720
olevacho_
2006-04-20 21:05
2006.06.18
внешнее соединение 3 таблиц