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

Вниз

Цвет ячейки StringGrid по условию   Найти похожие ветки 

 
Германн ©   (2011-11-26 00:41) [40]


> Т.е. как правильно объявлять, присваивать значение объекту
> ячейки, очищать и т.д.

Присваивать:
StringGrid.Objects[X, Y] := TObject(clYellow);
Очищать:
StringGrid.Objects[X, Y] := TObject(0);
Это лишь пример. Но создавать специальный класс TCellsColor для раскраски  грида это измышления воспаленного мозга.

P.S.
Остался вопрос. А для чего в топике существуют:
var
 A_Col: longint absolute ACol;
 A_Row: longint absolute ARow;

?


 
Плохиш ©   (2011-11-26 00:50) [41]


> Laguna ©   (25.11.11 22:52) [37]


> Посмотри как там уничтожается объект и ничего за собой больше
> не подчищает.

Ты, наверное, обратил внимание, где объекты уничтожаются?

PS. А статья первокласника. Прикольно, создать объект, присвоить массиву и вместо того, что бы использовать полученную при создании ссылку, несколько раз выбирать этот объект из массива, да ещё и дважды проверять его тип...


 
Германн ©   (2011-11-26 01:28) [42]


> А статья первокласника.

А автор по какой-то причине других и не находит. Боится что-ли, что не поймет?


 
Laguna ©   (2011-11-26 01:44) [43]


> PS. А статья первокласника. Прикольно, создать объект, присвоить
> массиву и вместо того, что бы использовать полученную при
> создании ссылку, несколько раз выбирать этот объект из массива,
>  да ещё и дважды проверять его тип...

Вот в том то и дело, что не всему писаному можно верить(в [20] я убирал двойные проверки на тип), поэтому на форуме и хочется уточнить у мастеров.

> P.S.Остался вопрос. А для чего в топике существуют:var  A_Col:
>  longint absolute ACol;  A_Row: longint absolute ARow;

Я уже отвечал, взято из DelphiWord.

подправил после ликбеза

  begin
    InfoStringGrid.Cells[X, Y] := S;
    if FlagObj then
     InfoStringGrid.Objects[X, Y] := TObject(clAqua);
  end
.....

procedure TMainFrm.InfoStringGridDrawCell(Sender: TObject; ACol,
                  ARow: Integer; Rect: TRect; State: TGridDrawState);
begin
 with (Sender as TStringGrid), Canvas do
  begin
    if Objects[ACol, ARow] <> nil then
     Brush.Color := TColor(Objects[ACol, ARow])
    else
     Brush.Color := clBtnFace;
    FillRect(Rect);
    DrawText(Handle, PChar(Cells[ACol, ARow]), length(Cells[ACol, ARow]),
             Rect, DT_CENTER or DT_SINGLELINE or DT_VCENTER or DT_NOCLIP);
  end;
end;

Сейчас все правильно? Или еще какой лоск нужно навести?


 
Laguna ©   (2011-11-26 01:46) [44]


> А автор по какой-то причине других и не находит. Боится
> что-ли, что не поймет?

Зря вы так, уважаемый, просто первое что попалось на глаза, подходящее под решаемую задачу ;) . А по правде говоря нэт пестрит попугайской переписью одного и того же кода в разной цветовой гамме...


 
Германн ©   (2011-11-26 02:26) [45]


> Я уже отвечал, взято из DelphiWord.

Дык тебе уже сказали.
Код работает, но это код разработан в эпоху Д1.
Да к тому же он глючный даже на Д1.
Ну нельзя осваивать "любой язык программирования", да и вообще "программирование" только на примерах из И-нета!


 
Laguna ©   (2011-11-26 03:59) [46]


> Ну нельзя осваивать "любой язык программирования", да и
> вообще "программирование" только на примерах из И-нета!

Это понятно. Литературу тоже почитываю. Кстати, спасибо за [40], работает как положено.


 
megavoid ©   (2011-11-26 10:53) [47]

Велосипеды - это хорошо, но гугл - ещё лучше.

Ищем ZColorStringGrid (странно, первая ссылка ведёт куда надо), качаем юнит, используем его:
uses ZColorStringGrid;

заменяем
InfoStringGrid: TStringGrid;
на:
InfoStringGrid: TZColorStringGrid;

Далее в программе всё становится просто:
if (условие) then InfoStringGrid[7.15].BGColor := clAqua;
плюс множество дополнительных плюшек...


 
Laguna ©   (2011-11-26 16:47) [48]

>megavoid ©   (26.11.11 10:53) [47]

Компонент интересный, но ради того, чтобы зарисовать цветом ячейку включать в прогу дополнительный компонент я думаю не стоит. Тем более он может затеряться при переносе кода на другую машину и т.д. Однако за информацию спасибо, возьму на заметку.



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

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

Наверх





Память: 0.53 MB
Время: 0.005 c
2-1322133672
1234567890
2011-11-24 15:21
2012.03.04
проверить пуст ли датасет


2-1322202217
Dennis I. Komarov
2011-11-25 10:23
2012.03.04
D2010 string -> AnsiString


2-1322346386
я
2011-11-27 02:26
2012.03.04
Описание признаков символа


1-1287517747
christoforov
2010-10-19 23:49
2012.03.04
Прозрачная картинка


2-1322210432
LDV
2011-11-25 12:40
2012.03.04
установить курсор в датасете после insert





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