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

Вниз

цвет фона шрифта в StGrd   Найти похожие ветки 

 
Golem   (2007-11-25 18:13) [0]

пытаюсь заполнять StGrd (портированный StringGrid) текстом с разным цветом шрифта и фона.
Пишу:

procedure TForm1.StGrd1DrawCell(Sender: PControl; Cnv: PCanvas; ACol,
 ARow: Integer; Rect: TRect; State: TGridDrawState);
begin
StGrd1.Canvas.Brush.Color:=clRed;
StGrd1.Canvas.Font.Color:=clWhite;

StGrd1.Canvas.FillRect(Rect);
StGrd1.Canvas.TextOut(Rect.Left,Rect.Top,StGrd1.Cells[ACol,ARow]);
end;

procedure TForm1.GRushButton2Click(Sender: PObj);
begin
StGrd1.Cells[StGrd1.Selection.TopLeft.X,StGrd1.Selection.TopLeft.Y]:="newText";
end;

но это не работает, то есть тест выводится, но дефаулт шрифтом.
Вразумите, как заставить это работать...


 
Дмитрий К ©   (2007-11-25 22:04) [1]

Пример. Pure KOL sans MCK.
Надеюсь поможет.

program stgrd_tst;

uses
 Windows,
 Messages,
 Kol,
 KOLStGrd;

type
 PForm1 = ^TForm1;
 TForm1 = object(TObj)
   Form, Btn: PControl;
   Sg: PStGrd;
 public
   procedure DoClick(Sender: PObj);
   procedure DoDrawCell(Sender: PControl; Cnv: PCanvas; ACol, ARow: Longint;
     Rect: TRect; State: TGridDrawState);
 end;

var
 Form1: PForm1;

procedure NewForm1(var Result: PForm1; AParent: PControl);
begin
 New(Result, Create);
 with Result^ do
 begin
   Form := NewForm(AParent, "Form1");
   Form.Add2AutoFree(Result);
   Applet := Form;
   SG := PStGrd(NewStGrd(Form,5,5,0,0,50,20,[goFixedVertLine, goFixedHorzLine],
     False,True,True,ssNone).SetClientSize(254,104).ResizeParentRight);
   SG.OnDrawCell := DoDrawCell;
   Btn := NewButton(Form, "Button1").PlaceUnder.ResizeParentBottom;
   Btn.OnClick := DoClick;
 end;
end;

{ TForm1 }

procedure TForm1.DoClick(Sender: PObj);
begin
 SG.Cells[SG.Selection.TopLeft.X,SG.Selection.TopLeft.Y]:="Text";
end;

procedure TForm1.DoDrawCell(Sender: PControl; Cnv: PCanvas; ACol,
 ARow: Integer; Rect: TRect; State: TGridDrawState);
begin
 if gdSelected in State then
 begin
   Cnv.Brush.Color:=clYellow;
   Cnv.Font.Color:=clBlue;
   Cnv.FillRect(Rect);
   Cnv.TextOut(Rect.Left,Rect.Top,SG.Cells[ACol,ARow]);
 end
 else begin
   Cnv.Brush.Color:=clRed;
   Cnv.Font.Color:=clWhite;
   Cnv.FillRect(Rect);
   Cnv.TextOut(Rect.Left,Rect.Top,SG.Cells[ACol,ARow]);
 end;

 if gdFocused in State then
 begin
   Cnv.DrawFocusRect(Rect);
 end;
end;

begin
 NewForm1(Form1, nil);
 Run(Applet);
end.


 
Golem   (2007-11-26 21:22) [2]

создал на форме 2 StGrd. Один в ручную, как в примере, второй с использованием MCK. создал идентичные обработчики для обоих, по образцу из примера. так работает только тот, что создан вручную. что создан с MCK не пашет...я плакаль...


 
Golem   (2007-11-27 00:29) [3]

А цвет линий сетки можно менять? если можно то как?


 
Дмитрий К ©   (2007-11-27 07:40) [4]

Чтобы заработало в MCK нужно DefaultDrawing выставить в False.

> А цвет линий сетки можно менять? если можно то как?

Самому рисовать или подправить KOLStGrd.pas, более простого способа я не знаю.


 
Golem   (2007-11-27 18:16) [5]

спасибо, буду пробавать.



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

Форум: "KOL";
Текущий архив: 2008.12.07;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.006 c
2-1225113127
Nil
2008-10-27 16:12
2008.12.07
Зашифровать содержимое TStringList


2-1225283474
MC87
2008-10-29 15:31
2008.12.07
Drag&Drop


2-1225101843
Petr
2008-10-27 13:04
2008.12.07
Поиск ссылок на странице в окне Internet Explorer


2-1225181892
Начинающий92
2008-10-28 11:18
2008.12.07
Сортировка StringList


2-1225199547
Михаил2
2008-10-28 16:12
2008.12.07
Turbo Pascal + засечь время исполнения





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