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

Вниз

Нужно подобие StringGrid с возможностью задавать цвет...   Найти похожие ветки 

 
Artur   (2004-05-09 20:42) [0]

Нужно подобие StringGrid с возможностью задавать цвет отдельным ячейкам.


 
Anatoly Podgoretsky ©   (2004-05-09 20:51) [1]

Ты хочешь написать или достать?


 
pasha_golub ©   (2004-05-09 20:53) [2]

TStringGrid.OnDrawCell+F1

а если вспомнить про название конференции, то


type

TMySuperGrid = class(TStringGrid)
...


 
Artur   (2004-05-10 09:24) [3]

Мне нужно достать


 
SergP ©   (2004-05-10 09:45) [4]

>Artur   (10.05.04 09:24)
>Мне нужно достать

Зачем? неужели 5-6 строчек кода в OnDrawCell труднее написать чем найти, скачать и поставить новый компонент?


 
Artur   (2004-05-10 11:10) [5]

С огромным удовольствием напишу, вы только подскажите как...


 
TUser ©   (2004-05-10 11:40) [6]

Ну вот у меня завалялось
unit uMyStringGrid;

interface

uses
 SysUtils, Classes, Controls, Grids, Graphics, types, windows;

type
 TOnCanFill = procedure (Sender:TObject; ACol, ARow:longint; var Fill:boolean) of object;

 TMyStringGrid = class(TStringGrid)
 private
   FFillColor:TColor;
   FOnCanFill:TOnCanFill;
 protected
   procedure DrawCell(ACol, ARow: Longint; ARect: TRect;
     AState: TGridDrawState); override;
 published
   property FillColor:TColor read FFillColor write FFillColor;
   property OnCanFill:TOnCanFill read FOnCanFill write FOnCanFill;
 end;

procedure Register;

implementation

procedure Register;
begin
 RegisterComponents("Aksianov", [TMyStringGrid]);
end;

procedure TMyStringGrid.DrawCell(ACol, ARow: Longint; ARect: TRect;
     AState: TGridDrawState);
var CanFill:boolean;
begin
  CanFill:=false;
  if assigned (FOnCanFill) then
     FOnCanFill(Self,ACol,ARow,CanFill);
  if CanFill then
     with Self.Canvas do
        Brush.Color:=FFillColor;
  inherited;
  if CanFill then
     Brush.Color:=clWhite;
end;

end.



 
Anatoly Podgoretsky ©   (2004-05-10 11:55) [7]

Artur   (10.05.04 11:10) [5]
А поиск по слову OnDrawCell хотя бы на этом сайте ты сделал?
На Королевство Дельфи ходил.

Этих двух сайтов достаточно.


 
Artur   (2004-05-10 12:48) [8]

TUser - спасибо, попробую разобраться
Anatoly Podgoretsky - хорошая идея :-)


 
Rouse_ ©   (2004-05-10 14:54) [9]

> TUser ©   (10.05.04 11:40)
Ну, тогда уж:

procedure TMyStringGrid.DrawCell(ACol, ARow: Longint; ARect: TRect;
    AState: TGridDrawState);
var CanFill:boolean;
 FCurrentColor: TColor;
begin
 CanFill:=false;
 FCurrentColor := Brush.Color;
 if assigned (FOnCanFill) then
    FOnCanFill(Self,ACol,ARow,CanFill);
 if CanFill then
    with Self.Canvas do
       Brush.Color:=FFillColor;
 inherited;
 if CanFill then
    Brush.Color:=FCurrentColor;
end;


А то некрасиво получится если цвет по умолчанию не clWhite в цветовой схеме


 
pasha_golub ©   (2004-05-10 15:32) [10]

Rouse_ ©   (10.05.04 14:54) [9]
Верно подметил. На этом часто люди валятся.



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

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

Наверх




Память: 0.46 MB
Время: 0.037 c
1-1084173767
Master Paleva
2004-05-10 11:22
2004.05.23
Как освободить память?


1-1083749914
Alkmas
2004-05-05 13:38
2004.05.23
Создание TButton из DLL


14-1083533521
Blackgrin
2004-05-03 01:32
2004.05.23
Pocket PC


3-1082720520
Sam Stone
2004-04-23 15:42
2004.05.23
Длинный SQL запрос


1-1084103981
iudjen
2004-05-09 15:59
2004.05.23
Пару вопросов про ListBox





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский