Форум: "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