Главная страница
    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.47 MB
Время: 0.037 c
2-1176159599
frog33
2007-04-10 02:59
2007.04.29
Цвет выделения ListView


15-1175817678
trigle
2007-04-06 04:01
2007.04.29
Существуют ли


15-1175342248
Kerk
2007-03-31 15:57
2007.04.29
Вот вам и результаты селекции


3-1170692540
s_t_d
2007-02-05 19:22
2007.04.29
MS SQL , BDE и драйвер ODBC


3-1171014579
Punik
2007-02-09 12:49
2007.04.29
<b>Возможна ли преобразование .Log-ов в таблицы .dbe, db.</b>





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