Главная страница
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.48 MB
Время: 0.026 c
14-78595
cyborg
2002-09-29 22:52
2002.10.24
---|Ветка была без названия|---


1-78317
lLoHh
2002-10-11 17:40
2002.10.24
Уменя такой глюк: Прога имеет несколько окон но только главная ..


8-78541
Exploited
2002-06-24 15:07
2002.10.24
Регулятор громкости.


7-78698
Сережа
2002-08-16 09:27
2002.10.24
Закрытие Windows


1-78454
borg
2002-10-12 13:07
2002.10.24
Получить данные из другой программы(НО это не так просто)