![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 17.07.2008
Сообщений: 26
|
![]()
Вопрос первый (не подготовленный, а потому кратко и по сути).
Есть такой компонент Stringgrid (ещё есть drawgrid, но стрин наверное лучше и проще). У него есть такое явление cells[столбец,строка] А ещё бывают двумерные массивы mas1: array[1..n,1..m] of integer; где n,m - заранее заданные константы. (Есть ещи и какие-то динамические - здесь на форуме прочитал. Но доходчиво- простым человеческим языком с простыми примерами этого тут никто не объяснял). Так вот. Вопрос: 1. Как задать цвет отдельной ячейке (или 2 группе ячеек заданных массивом в котором заранее неизвестно ни m ни n (они будут формирвться в процессе нажимания пользователем кнопочек) ??? Есть идея: Stringgrid1.Cells[столбец,строка].brush.color := red ; // Указывается компонент,его элемент, свойство элемент := присваивается значение. Чего же тут не логично ? Stringgrid1.Cells[столбец,строка из массива].brush.color := red ; Однако Delphi такую лексику не распознает как логическую. Хелп к дельфи доходчивых ответов мне не показал. Прошу написать несколько простых примеров с пояснениями к каждой строчке. Для того чтобы я мог лучше разобораться. С уважением к Вам и Вашему времени. Альберт. ![]() |
![]() |
![]() |
![]() |
#2 |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 15,778
|
![]()
На обработчике события OnDrawCell для StringGrid напишите примерно следующее:
Код:
E-Mail: arigato.freelance@gmail.com
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 17.07.2008
Сообщений: 26
|
![]()
Простой, а главное показательный пример.
Но в нём все же не освещенно применение двумерного (а лучше динамического) массива с перечнем ячеек. Кроме того: procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); begin if (ACol = 1) and (ARow = 1) then // Чем отличается Acol,Arow От Col, Row ??? можноли написать Acol = mas1[n,m] ??? Если да, то где лучше задать эот массив (цыклы for) begin StringGrid1.Canvas.Brush.Color := clRed;//Кисти присовили красный цвет. StringGrid1.Canvas.FillRect (Rect); //Что такое Fillrect и для чего он нужен ? StringGrid1.Canvas.TextRect (Rect, Rect.Left + 2, Rect.Top + 2, StringGrid1.Cells[ACol,ARow]); //Вообще не ясно что здесь происходит. 9. end; {if} 10. end; ![]() |
![]() |
![]() |
![]() |
#4 | |||||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
I'm learning to live...
|
|||||
![]() |
![]() |
![]() |
#5 |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 15,778
|
![]()
Вот сейчас глянул свой пример...
Можно и без этого: StringGrid1.Canvas.FillRect (Rect); Т.к. TextRect все равно закрасит тот же самый прямоугольник. E-Mail: arigato.freelance@gmail.com
|
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работа с многомерными массивами в функции. Очередной вопос начинающего (#005) | Albert2008 | Компоненты Delphi | 14 | 13.08.2008 22:03 |
Stringgrid, Procedure, cells[m,n]:=DynMas[a,b]. Очередной вопрос начинающего (#003) | Albert2008 | Компоненты Delphi | 4 | 04.08.2008 12:00 |
Procedure,function,Stringgrid (#004) Очередной вопрос начинающего. | Albert2008 | Компоненты Delphi | 4 | 01.08.2008 21:30 |
Видимо очередной вопрос по БД... | Amaranth | Помощь студентам | 1 | 16.12.2007 00:56 |