Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];

Вниз

Нужно подобие 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.04 c
7-1081509968
Wistler
2004-04-09 15:26
2004.05.23
Как узнать количество страниц отправленных на принтер


4-1080663058
Дмитрий
2004-03-30 20:10
2004.05.23
Как при помощи WinAPI заморозить значение в памяти игры?


7-1080805581
Sergey N
2004-04-01 11:46
2004.05.23
Как сделать Hook на выключение компьютера


1-1083754763
uuuh
2004-05-05 14:59
2004.05.23
Простой вопрос.


1-1084295059
vertal
2004-05-11 21:04
2004.05.23
В меню у формы вместо русских букв знаки вопроса





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский