Главная страница
    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.041 c
2-1175788232
likenoother
2007-04-05 19:50
2007.04.29
опять несколько вопросов :)


2-1176183245
brothers
2007-04-10 09:34
2007.04.29
Функция DnsHostNameToComputerName


3-1170837868
AlexeyMir
2007-02-07 11:44
2007.04.29
Что в IBDatabase1.DatabaseName указать к удаленной базе


3-1170831533
Ламерок
2007-02-07 09:58
2007.04.29
Как вставить картинку в таблицу базы данных?


1-1172518078
KOSS
2007-02-26 22:27
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский