Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.025 c
2-1149146091
new_user
2006-06-01 11:14
2006.06.18
Пункт меню


15-1148562857
Вася Аникеев
2006-05-25 17:14
2006.06.18
Что делать, комп ругается?


2-1149241522
Elen
2006-06-02 13:45
2006.06.18
Исчезает новосозданный компонент


4-1142905761
powerchute
2006-03-21 04:49
2006.06.18
Управление настройками электропитания


1-1145037989
Wog
2006-04-14 22:06
2006.06.18
Кнопка произвольной формы




   Наверх