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

Вниз

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

 
lyudmila   (2007-03-05 08:46) [0]

Добрый день. Пишу программку, которая использует StringGrid. Не получается сделать следующее:
1. необходимо выделять рамку ячейки в зависимости от условия: либо черная рамка, либо красная. Писала в DrawCell:
...
StringGrid.Canvas.Pen.Color:=clBlack;
...
Отключала опции: GoVertLine:= false; GoHorzLine:=false;
Ничего не выходит :(
2. надо, чтобы в некоторые ячейках текст мигал. Такое вообще возможно реализовать?
Подскажите, пожалуйста, как это сделать.
Заранее спасибо.


 
Virgo_Style ©   (2007-03-05 08:50) [1]

lyudmila   (05.03.07 8:46)
StringGrid.Canvas.Pen.Color:=clBlack;


А рамку рисовать кто будет?)


 
lyudmila   (2007-03-05 09:27) [2]

надо прописать:
...
StringGrid.Canvas.Pen.Color:=clBlack;
SGRid.Canvas.Rectangle(Rect);
...
Я правильно поняла?
Если да, то так я уже делала - не помогло :(


 
Elen ©   (2007-03-05 09:39) [3]


>  не помогло :(

А где прописывала?


 
lyudmila   (2007-03-05 09:45) [4]

Код следующий:

procedure TForm1.SGridDrawCell(Sender: TObject; ACol, ARow: Integer;
 Rect: TRect; State: TGridDrawState);
...
begin
...
 if ARow=2 then SGrid.Canvas.Pen.Color:=clRed
                else SGrid.Canvas.Pen.Color:=clBlack;
 SGRid.Canvas.Rectangle(Rect);
 r:=KdnRect(Rect,0,2,-3,0);
 DrawText(SGrid.Canvas.Handle,PChar(SGRid.Cells[ACol,ARow]),Length  (SGrid.Cells[ACol,ARow]),r,SGrid.DrawTextBiDiModeFlags(DT_LEFT));
...
end;


 
Elen ©   (2007-03-05 10:06) [5]


> lyudmila   (05.03.07 09:45) [4]

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
 Rect: TRect; State: TGridDrawState);
begin
if acol=2 then begin
StringGrid1.Canvas.Pen.Color:=clred;
StringGrid1.Canvas.Rectangle(rect);
StringGrid1.Canvas.TextOut(Rect.Left+5,Rect.Top+5,StringGrid1.Cells[acol,arow]);
end;
end;


Пробуй.


 
ЮЮ ©   (2007-03-05 10:31) [6]

DefaultDrawing отключила? Что делает KdnRect?


 
lyudmila   (2007-03-05 10:37) [7]

DefaultDrawing зависит от выбора ячейки.
KdnRect нужен для DrawText, чтобы выровнять текст в ячейке.
Может из-за DrawText у меня как раз и не работает рамка?
Как тогда выравнить текст в ячейке?


 
ЮЮ ©   (2007-03-05 10:49) [8]

DefaultDrawing - свойство StringGrid-а и не может зависит от ячейки
Выравнивают текст с помощью флагов (последнмй параметр):
DT_LEFT - по левому краю
DT_CENTER - по центру
и т.д.
Перед DrawText Rect, естественно, надо уменьшить, чтобы не затереть границы. Поэтому я и просил код  KdnRect, чтобы увидеть, что там делается с исходным Rect.


 
lyudmila   (2007-03-05 10:59) [9]

DefaultDrawing изменяется при выборе ячейки (OnSelectCell).
Код KdnREct:
function KdnRect(Rect: TRect; DLeft,DTop,DRight,DBottom: Integer): TRect;
begin
 with Result do
 begin
  Left:= Rect.Left + DLeft;
  Top:= Rect.Top + DTop;
  Right:= Rect.Right + DRight;
  Bottom:= Rect.Bottom + DBottom;
 end;
end;


 
ЮЮ ©   (2007-03-05 11:07) [10]

> DefaultDrawing изменяется при выборе ячейки (OnSelectCell)
> .

Рекоиендую отключить совсем.

Ну и слева/снизу сделать отступы:
r:=KdnRect(Rect,1,2,-3,-1);


 
lyudmila   (2007-03-05 11:12) [11]

Получилось :)
Большое спасибо всем :))



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

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

Наверх




Память: 0.46 MB
Время: 0.05 c
15-1175778255
Ega23
2007-04-05 17:04
2007.04.29
Правила сортировки строк


2-1176170835
minutka17
2007-04-10 06:07
2007.04.29
While:найти номер эл-та последовательности


15-1175376233
Gero
2007-04-01 01:23
2007.04.29
Всем, кому интересна судьба DMClient


2-1176276094
tytus
2007-04-11 11:21
2007.04.29
Как перевести текст из Unix кодировки в Windows?


9-1148897218
аматор
2006-05-29 14:06
2007.04.29
каким образом создать модель?





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