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

Вниз

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

 
Квэнди ©   (2005-10-13 16:43) [0]

Здравствуйте, интересует следующий вопрос: возможно ли сделать так, чтобы после того, как я один раз прорисовал все необходимые цвета и шрифты в stringgrid, таблица больше не перерисовывалась ? Попробую объяснить подробней: положим так :
       
procedure Tfstart.tabtermDrawCell(Sender: TObject; ACol, ARow: Integer;
 Rect: TRect; State: TGridDrawState);
begin
tabterm.Canvas.Brush.Color:=clred;
       tabterm.Canvas.Font.Color:=clwhite;
       tabterm.Canvas.Font.Size:=18;
       tabterm.Canvas.FillRect(rect);
       tabterm.Cells[2,1]:="AM11";
       tabterm.Canvas.TextOut(rect.Left,rect.top,tabterm.Cell[acol,arow]);
end;

Разумеется, эта строчка будет мерцать, так как постоянно будет перерисовываться... можно ли этот эффект как- нибудь убрать ?


 
MBo ©   (2005-10-13 16:56) [1]

>Разумеется, эта строчка будет мерцать, так как постоянно будет перерисовываться

???
Вовсе не мерцает, поскольку OnDrawCell вызывается только при необходимости перерисовки ячейки


 
Квэнди ©   (2005-10-13 16:59) [2]

Попробуйте испытать просто данный текст в Stringgrid и увидите, что будет именно это, потому что ячейки перерисовываются постоянно


 
han_malign ©   (2005-10-13 17:02) [3]


> можно ли этот эффект как- нибудь убрать ?

- ага - убрав tabterm.Canvas.FillRect(rect);, а TextOut(rect.Left,rect.top,tabterm.Cell[acol,arow]); заменив на TextRect(Rect, Rect.Left+2, Rect.Top+2,tabterm.Cell[acol,arow]);

> Вовсе не мерцает, поскольку OnDrawCell вызывается только
> при необходимости перерисовки ячейки

- tabterm.Cells[2,1]:="AM11"; - вот эта будет постоянно мерцать - видать такова воля аффтара...


 
Квэнди ©   (2005-10-13 17:12) [4]

К сожалению не помогло, видимо все же придется отказаться от
tabterm.Cells[2,1]:="AM11"
и писать текст в
TextOut, чего бы не хотелось (


 
Amoeba ©   (2005-10-13 17:19) [5]


> К сожалению не помогло, видимо все же придется отказаться
> от
> tabterm.Cells[2,1]:="AM11"

Не то, что придется, а просто необходимо. И нечего жалеть! Недопустимо делать присвоение текста ячейке при  ее отрисовке. Просто передавай "AM11" в TextOut.


 
Defunct ©   (2005-10-13 17:25) [6]

Квэнди ©   (13.10.05 17:12) [4]

От TextOut тоже откажись. Есть TextRect


 
Квэнди ©   (2005-10-13 17:40) [7]

Ок, большое спасибо!


 
han_malign ©   (2005-10-13 17:42) [8]


> К сожалению не помогло, видимо все же придется отказаться от
> tabterm.Cells[2,1]:="AM11"

- а какого... это вообще делать? Редактирование ячейки запретить не судьба? А если дело не в on place редактировании, то надо стереть Delphi, поставить какую нибудь игрушку, и расслабиться...


 
Amoeba ©   (2005-10-13 17:51) [9]

> tabterm.Cells[2,1]:="AM11"
нужно делать в каком-нибудь другом месте, но никак не в DrawCell.


 
Квэнди ©   (2005-10-14 08:20) [10]

Спасибо еще раз, действительно сразу не сообразил ( есть еще один вопрос, а как сделать , чтобы активная строка, т.е. на которой фокус подсвечивалась другим цветом и при этом, разумеется, созранялся текст, пробовал так :
if (gdFocused in State) then
 begin
   tabterm.Canvas.Brush.Color := clBlack;
   tabterm.Canvas.Font.Color := clWhite;
 end


 
ЮЮ ©   (2005-10-14 08:35) [11]

>чтобы активная строка, т.е. на которой фокус

(gdFocused in State) = The cell has input focus, т.е. ячейка получила фокус ввода и сама при этом обычно не видна, т.к. перекрыта окном встоенного редактора

а "активная строка", это когда tabterm.Row = ARow (параметр обработчика)



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

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

Наверх




Память: 0.47 MB
Время: 0.046 c
4-1125854024
Ландграф Павел
2005-09-04 21:13
2005.11.06
рисовать на канве то, что находится под ней (под формой)


2-1129453062
antoxa2005
2005-10-16 12:57
2005.11.06
Для соритировки ADOTable я использую его св-во IndexFieldNames, а


4-1125315752
Shopot
2005-08-29 15:42
2005.11.06
Подскажите пожалуйста ссылки на учебники по работе с Com - портом


1-1129635122
Max Zyuzin
2005-10-18 15:32
2005.11.06
проблемма с созданием форм в MDI-child формах


9-1118910515
Xenon
2005-06-16 12:28
2005.11.06
Вопросик по PD





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