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

Вниз

Работа с 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.007 c
3-78264
Alexander_K
2002-10-02 16:45
2002.10.24
Проблемы с BDE


3-78232
kalliopiy
2002-10-01 16:48
2002.10.24
Файлы и БД


14-78657
SemFLY
2002-10-04 21:00
2002.10.24
Есть ли такой компонент, что-то вроде секундомера ?


3-78260
Nikitenko
2002-10-02 11:10
2002.10.24
ADO


1-78386
dix mod
2002-10-15 09:28
2002.10.24
Двоичные деревья





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