Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.10.24;
Скачать: CL | DM;

Вниз

Работа с DrawGrid.   Найти похожие ветки 

 
Cosinus ©   (2002-10-15 09:57) [0]

Доброе утро. Есть задача написать редактор циклограмм. Наиболее удобное решение, по-моему, это использование DrawGrid. Алгоритм работы следующий: в какой-либо ячейке я нажимаю кнопку мыши и веду ее вправо, выделяя таким образом некоторое количество ячеек. После того, как я отпускаю кнопку мыши все выделенные ячейки заполняются другим цветом и где-либо запоминаются изменения. Не подскажите ли, как отследить это Selected и заполнить их цветом. В книге по Delphi, которая у меня есть очень сумбурно описана работа с таблицами, в Help-e и FAQ не нашел. Подозреваю, что задача очень похожа на программы для решения японских кросвордов(в реализации визуализации), но ни одного исходника по japcross я так и не нашел.


 
MBo ©   (2002-10-15 10:10) [1]

>исходника по japcross
algolist.manual.ru


 
cosinus ©   (2002-10-15 10:20) [2]

>MBo
Спасибо за ссылку - довольно полезный ресурс.
Но там выложен алгоритм (поверьте, меня совсем не интересует как решить яп. кроссворд), а не исходник, а меня как раз интересует как ЗАПРОГРАММИРОВАТЬ, а не как придумать.
P.S. деествительно интересный сайт :)


 
MBo ©   (2002-10-15 10:39) [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 11:06) [4]

>MBo
Это немного не то. Предложенный Вами кусок кода просто меняет принятый по умолчанию цвет выделенных ячеек(синий) на какой-либо другой(красный). Возможно я плохо объяснил, что хочу сделать. Грубо говоря мне нужно реализовать возможность рисования в таблице, где в качестве еденичного пикселя выступает одна ячейка(без потери данных, например, при прокрутке).


 
MBo ©   (2002-10-15 14:16) [5]

Я же говорю - возьми StringGrid, записывай в помеченные cells[i,j] любую строку, а в OnDrawCell

if Cells[Acol,arow]<>"" then begin
DrawGrid1.Canvas.Brush.Color:=clRed;
DrawGrid1.Canvas.FillRect(Rect);
end;




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

Текущий архив: 2002.10.24;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.037 c
1-78338
Новенький в Делфи
2002-10-14 03:55
2002.10.24
Загрузить файл в память и работать там с ним


1-78407
DAXg
2002-10-11 23:45
2002.10.24
Ув. Мастера, как можно узнать, запущена ли программа C: proga pro


1-78444
mav13
2002-10-15 20:47
2002.10.24
Результат запроса из базы данных (string) надо запуститьв winexec


1-78345
Dr. TOP
2002-10-14 16:56
2002.10.24
Поиск в TreeView


8-78542
vic_774N
2002-06-25 11:33
2002.10.24
ключ к MMTools