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

Вниз

StringGrid   Найти похожие ветки 

 
Rise   (2003-05-28 14:27) [0]

как в StringGrid изменить шрифт какой либо ячеки


 
Skier   (2003-05-28 14:28) [1]

OnDrawCell


 
Rise   (2003-05-28 14:39) [2]

Но проблема в том что я некоторые ячейки окрашиваю fillrect...
но тогда невидно введеную строку, неужели нужно заново в процедуре OnDrawCell заново заполнять ячейку?


 
Skier   (2003-05-28 14:41) [3]

fillrect + TextOut(...,Cells[ACol, ARow])


 
McSimm2   (2003-05-28 14:45) [4]




procedure TFrm_search.StringGrid1DrawCell(Sender: TObject; ACol,
ARow: Integer; Rect: TRect; State: TGridDrawState);
var
R,R1,R2:TRect;
GR: TGridRect;

procedure BrushCell(fPen,fBrush : TColor;fRect: TRect);
begin
with StringGrid1 do
begin
Canvas.Pen.Color := fPen;
Canvas.Brush.Color := fBrush;
Canvas.Rectangle(frect);
end;
end;
procedure BrushText(fFontCol: TColor; Value: String; fRect: TRect);
begin
with StringGrid1 do
begin
SetBkMode(Canvas.Handle,TRANSPARENT);
Canvas.Font.Color := fFontCol;
DrawText(Canvas.Handle,pchar(value),-1,fRect,DT_CENTER or DT_VCENTER or DT_SINGLELINE);
SetBkMode(Canvas.Handle,OPAQUE);
end;
end;

begin
r.left := rect.left+2;
r.top := rect.top+2;
r.right := rect.right-2;
r.bottom := rect.bottom-2;

GR:=Frm_search.StringGrid1.Selection;

with Frm_search.StringGrid1 do
if ((ACol=GR.Right) and (ARow=GR.Bottom)) then
begin
BrushCell(clWhite,RGB(25,25,225),Rect);
BrushCell(clWhite,RGB(200,200,225),Rect);
BrushText(clBlack,Cells[ACol,ARow],r);
end else
begin
BrushCell(RGB(229,229,229),RGB(229,229,229),Rect);
BrushText(clBlack,StringGrid1.Cells[ACol,ARow],Rect);
end;
end;


 
Rise   (2003-05-28 14:47) [5]

Вот процедура обработки но хоть текс в яейке есть но его не видно. Что я сделал нетак подскажите пожалуйста

Canvas.Brush.Color := clblue;
Canvas.FillRect(Rect);
Canvas.Font.Color:=clWhite;
Canvas.TextOut(Round(rect.Right/2),Round(rect.Top/2),Cells[ACOL,AROW]);


 
MBo   (2003-05-28 14:51) [6]

а так?
(rect.Left+2,rect.Top+2


 
Skier   (2003-05-28 14:52) [7]

Canvas.TextOut( Round(rect.Right/2),Round(rect.Top/2),Cells[ACOL,AROW]);



 
Rise   (2003-05-28 14:56) [8]

Спасибо, McSimm2 (28.05.03 14:45)
там все класно работает
Но вот только поясните почему не работал
Canvas.TextOut(Round(rect.Right/2),Round(rect.Top/2),Cells[ACOL,AROW]);



 
McSimm2   (2003-05-28 14:59) [9]

Ты точно обращался к канве стринггирида у тебя перед кодом есть
with StringGrig1 do begin... если нет то ты рисовал на канве формы....


 
Skier   (2003-05-28 15:01) [10]


> Но вот только поясните почему не работал

Имеет место быть неправильное вычисление координат
при выводе текста ячейки.


 
McSimm2   (2003-05-28 15:03) [11]

Координаты ты он криво высчитывает, но текст отражается (хоть и не там где надо)....


 
Palladin   (2003-05-28 15:04) [12]

Угу, ровно в середину ячейки, че почем..


 
Rise   (2003-05-28 15:08) [13]

McSimm2 (28.05.03 14:59)
присутствует with StringGrig1 do begin...
и я пробовал Round(rect.Right/2) и 0 и 100 и 50 но текста небыло...


 
McSimm2   (2003-05-28 15:12) [14]

Просто подход вычисления координат необычен... Ты делаешь как то сложно.... ещё и округление ставишь...
Поиграйся с DrawText() - там всё проще... И можно форматить текст как хочешь - без всяких вычислений....


 
Rise   (2003-05-28 15:13) [15]

Да все дело в координатах.
Канва для все таблицы одна(а я думал для каждой ячейки)
в процедуру оказываеться передаеться rect только самой ячейки

(rect.Left+2,rect.Top+2



 
McSimm2   (2003-05-28 15:14) [16]

угу



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

Форум: "Основная";
Текущий архив: 2003.06.09;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.014 c
4-26832
Scorp
2003-04-10 19:20
2003.06.09
Перехват изменения системного реестра


7-26816
denick
2003-04-04 19:01
2003.06.09
Люди как просканировать всё железо на компе?


14-26678
Song
2003-05-24 10:29
2003.06.09
http://coolbaranoff.narod.ru/ :))


14-26765
JibSkeart
2003-05-22 16:40
2003.06.09
Возрадуйся Superme2


14-26681
Сергей Чурсин
2003-05-06 23:55
2003.06.09
---|Ветка была без названия|---





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