Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Посоветуйте плз при помощи какого компонента сделать? [D7, XP]


Страницы:   1 2

advise ©   (2011-02-28 14:59:00) 

Добрый день, подскажите плз на каком компоненте реализовать такую задачу.
Есть таблица (размер задается пользователем) также пользователь может задать цвет каждой ячейки таблицы , при помощи смешения трех цветов(допустим будет вводить их 0-255 в поле Edit) , а выбранная ячейка изменять цвет.


Тяни-Толкай   (2011-03-01 09:50:00) [1]

Хотя нет, все же 42


Тяни-Толкай   (2011-03-01 09:50:00) [2]

47


Тяни-Толкай   (2011-03-01 09:49:00) [3]

>> В итоге работы программы цвет выбранной ячейки не меняется

procedure TForm1.TrackBar1Change(Sender: TObject);
begin
 Edit1.Text:=(Inttostr(TrackBar1.Max-TrackBar1.Position));
 StringGrid1.Invalidate; // Это заставит систему перерисовать весь StringGrid1 заново
 // Но лучше перерисовывать только текущую ячейку, используя InvalidateRect(StringGrid1.Handle, ...)
end;


>> то у ней появляется цвет первой ячейки

Он не "появляется", ты его сам рисуешь в TForm1.StringGrid1OnDrawCell().

>> а у первой ячейки цвет не сохраняется.

А почему он должен сохраняться? И где он должен храниться?

>> 1). Как сделать чтобы при снятии выделения с ячейки ее цвет сохранялся?

Он сам сохраняться не будет. Сохранять цвет ячейки - твоя задача.

>> 3). На сколько мои вопросы тупые?

42


Германн   (2011-03-01 02:56:00) [4]


> В итоге работы программы цвет выбранной ячейки не меняется

А чему равен DefaultDrawing?


Германн   (2011-03-01 02:50:00) [5]


> Юрий Зотов ©   (28.02.11 23:38) [19]
>
> О!  Я тоже в 15 лет не знал, что такое Delphi. Коллега!
>

:)


advise   (2011-03-01 00:47:00) [6]

Посоветуйте в чем может быть дело? Написал программу изменение цвета выбранной ячейки StringGrid в зависимости от положения трех trackBaroв на каждый цвет RGB. Цвет ячейки stringGrid меняется в обработчике StringGrid1OnDrawCell


Обработка первого трэк бара , остальные два также
procedure TForm1.TrackBar1Change(Sender: TObject);
begin
Edit1.Text:=(Inttostr(TrackBar1.Max-TrackBar1.Position));
end;

Обработчик StringGrid1OnDrawCell
procedure TForm1.StringGrid1OnDrawCell(Sender: TObject; ACol,
 ARow: Integer; Rect: TRect; State: TGridDrawState);
var i:integer;
begin
i:=1;
form1.Memo1.Lines.Append('i='+inttostr(i)+'  '); // печать, попал в обработчик

if (gdSelected in State) then  // выбрана ячейка
                    begin
    StringGrid1.Canvas.Brush.color:=RGB(
TrackBar1.Max-TrackBar1.Position+TrackBar1.Min,
TrackBar2.Max-TrackBar2.Position+TrackBar2.Min,
TrackBar3.Max-TrackBar3.Position+TrackBar3.Min);
    StringGrid1.Canvas.FillRect(Rect);
    StringGrid1.Canvas.TextOut(Rect.Left,Rect.Top,StringGrid1.Cells[ACol,ARow]);
                    end;
end;



В итоге работы программы цвет выбранной ячейки не меняется , но если выбрать следующую ячейку , то у ней появляется цвет первой ячейки, а у первой ячейки цвет не сохраняется.
Вопрос
1). Как сделать чтобы при снятии выделения с ячейки ее цвет сохранялся?
2). Как сделать чтобы изменялся цвет текущей выбранной ячейки?
3). На сколько мои вопросы тупые?


Amoeba_   (2011-03-01 00:12:00) [7]


> Может книжку посоветуете

Посоветую:
http://podgoretsky.com/ddp/OtherDDP.aspx

P.S. Анатолий, неужели так трудно быть милосердным и сразу  послать несчастного "чайника" на свой сайт за умом-разумом?


Юрий Зотов   (2011-02-28 23:38:00) [8]

О!  Я тоже в 15 лет не знал, что такое Delphi. Коллега!


Германн   (2011-02-28 23:26:00) [9]


> Может книжку посоветуете

http://www.delphimaster.ru/books/1656145/


advise   (2011-02-28 23:09:00) [10]


> парадигма компонентокидательского подхода все портит...
> не умеет он писать, не научится, пусть платит, фикли

Может книжку посоветуете , те книги что у меня есть, рассматривают работу с готовыми компонентами , не объясняя как на основе этих компонентов создать новый с новыми св-ми и методами.
Просто описан компонент его методы и св-ва.


Palladin   (2011-02-28 19:05:00) [11]

парадигма компонентокидательского подхода все портит... не умеет он писать, не научится, пусть платит, фикли


И. Павел   (2011-02-28 18:56:00) [12]

В событии OnDrawColumnCell StringGrid можно что угодно делать:
http://www.sql.ru/forum/actualthread.aspx?tid=322349

http://www.google.ru/search?sourceid=chrome&ie=UTF-8&q=StringGrig%D1%80%D0%B0%D1%81%D0%BA%D1%80%D0%B0%D1%81%D0%B8%D1%82%D1%8C#q=StringGrid+%D1%80%D0%B0%D1%81%D0%BA%D1%80%D0%B0%D1%81%D0%B8%D1%82%D1%8C&hl=ru&newwindow=1&prmd=ivnsfd&ei=68JrTefGJMiAOvyTvJEL&start=10&sa=N&fp=7171aac799310be8

PS: Автору вопроса 15 лет, если не притворяется. Я в 15 лет что такое Delphi-то не знал. И даже традиционное высшее образование в анкете не поставил. Поощрять надо :)


Игорь Шевченко   (2011-02-28 18:47:00) [13]

У меня готовый компонент есть, даже писать не надо. Продам дорого


Anatoly Podgoretsky   (2011-02-28 16:37:00) [14]

> advise  (28.02.2011 16:06:05)  [5]

Его нет на вкладках


Противный   (2011-02-28 16:27:00) [15]

advise ©   (28.02.11 16:22) [11] спасибо!

Успел таки! Молодец!

А теперь отправь СМС с текстом Advise© на короткий номер 1234567890, и стань участником розыгрыша модуля Unit1.pas! Спеши! Разыгрывается всего 2 экземпляра!


advise   (2011-02-28 16:22:00) [16]

спасибо!


Dennis I. Komarov   (2011-02-28 16:20:00) [17]


> Противный   (28.02.11 16:12) [9]

Сгинь, нечистый...


Противный   (2011-02-28 16:12:00) [18]

В grids он

Даня, я же тебя просил, не пали гешефт, вечно ты со своим альтруизмом...


Dennis I. Komarov   (2011-02-28 16:10:00) [19]

В grids он


Противный   (2011-02-28 16:09:00) [20]

advise ©   (28.02.11 16:06) [5] Где TCustomGrid находится , облазил все вкладки D7, не нашел?

Пошли СМС с текстом TCustomGrid на короткий номер 1234567890, и получишь код разблокировки секретной вкладки с TCustomGrid!
Внимание! Акция! Отправившему СМС в течение 10 минут - бесплатная разблокировка вкладки с TComponent!


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо