![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа с DrawGrid.
Cosinus © (2002-10-15 09:57:00)Доброе утро. Есть задача написать редактор циклограмм. Наиболее удобное решение, по-моему, это использование DrawGrid. Алгоритм работы следующий: в какой-либо ячейке я нажимаю кнопку мыши и веду ее вправо, выделяя таким образом некоторое количество ячеек. После того, как я отпускаю кнопку мыши все выделенные ячейки заполняются другим цветом и где-либо запоминаются изменения. Не подскажите ли, как отследить это Selected и заполнить их цветом. В книге по Delphi, которая у меня есть очень сумбурно описана работа с таблицами, в Help-e и FAQ не нашел. Подозреваю, что задача очень похожа на программы для решения японских кросвордов(в реализации визуализации), но ни одного исходника по japcross я так и не нашел.
MBo (2002-10-15 14:16:00) [1]Я же говорю - возьми StringGrid, записывай в помеченные cells[i,j] любую строку, а в OnDrawCell
if Cells[Acol,arow]<>"" then begin
DrawGrid1.Canvas.Brush.Color:=clRed;
DrawGrid1.Canvas.FillRect(Rect);
end;
cosinus (2002-10-15 11:06:00) [2]>MBo
Это немного не то. Предложенный Вами кусок кода просто меняет принятый по умолчанию цвет выделенных ячеек(синий) на какой-либо другой(красный). Возможно я плохо объяснил, что хочу сделать. Грубо говоря мне нужно реализовать возможность рисования в таблице, где в качестве еденичного пикселя выступает одна ячейка(без потери данных, например, при прокрутке).
MBo (2002-10-15 10:39:00) [3]не очень понятно,что нужно. Если закрашивать выделенное, то (для того, чтобы focused тоже закрашивалась) так:
procedure TForm1.DrawGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
if gdSelected in State then begin
DrawGrid1.Canvas.Brush.Color:=clRed;
DrawGrid1.Canvas.FillRect(Rect);
end;
end;
Если надо хранить какие-то признаки отметок ячеек, то удобнее будет TStringGrid - у него есть Cells, в которых и можно записывать информацию
cosinus (2002-10-15 10:20:00) [4]>MBo
Спасибо за ссылку - довольно полезный ресурс.
Но там выложен алгоритм (поверьте, меня совсем не интересует как решить яп. кроссворд), а не исходник, а меня как раз интересует как ЗАПРОГРАММИРОВАТЬ, а не как придумать.
P.S. деествительно интересный сайт :)
MBo (2002-10-15 10:10:00) [5]>исходника по japcross
algolist.manual.ru