Форум: "Начинающим";
Текущий архив: 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