Главная страница
    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.035 c
14-1128411337
dr Tr0jan
2005-10-04 11:35
2005.11.06
Измерение сопротивления с помощью осциллографа


2-1129444064
Бродяга_
2005-10-16 10:27
2005.11.06
Как в DBGrid перебрать все строки


3-1127889170
Scorpio
2005-09-28 10:32
2005.11.06
Помогите организовать поиск по базе


1-1129278586
Prohodil Mimo
2005-10-14 12:29
2005.11.06
Как установить фокус на компонент?


14-1129623533
pazitron_brain
2005-10-18 12:18
2005.11.06
Что такое BBS?





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