![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Цвет в StringGrid [D5, Win95/98]
Schummi © (2002-04-02 07:44:00)Мастера, доброе время суток! Скажите, как в TStringGrid изменить цвет выделения? Спасибо!
panov (2002-04-04 09:45:00) [1]>Schummi © (04.04.02 07:51)
OFFTOPIC
MBo (2002-04-04 09:05:00) [2]Tcolor=Integer
байты со старшего
вспомогательный B G R
т.е. $00FF00FF - синий и красный без зеленого
используй функцию RGB
Selection менял?
DrawCell рисовал?
Schummi (2002-04-04 08:38:00) [3]2MBo А как ты так узнаешь цвета? А, например, светло-светло-розовый?
Так как там убрать выделение? Что-то у мя не получается!
MBo (2002-04-04 08:13:00) [4]const clVeryLightGreen=$00C0FFC0;
Schummi (2002-04-04 07:51:00) [5]Да, пасиба. Теперь тогда такой вопрос: как определять свои цвета в Delphi? Допустим надо нарисовать выделение в TStringGrid не одним из имеющихся цветов, а например, светло-светло-зелёным.
Johnmen (2002-04-03 10:25:00) [6]>ilysha © : With влияет на компактность скомпиленного кода и на быстродействие...хотя точно сказать, насколько быстрее - проблематично...
Anatoly Podgoretsky (2002-04-03 10:15:00) [7]Song © (03.04.02 08:37)
Я думаю это борланд стиль, тип + номер
Schummi + Grid + 1 = sg1
Song © (03.04.02 08:49)
Хотя это дело вкуса, но первая конструкция воспринимается тяжелее, надо напрягаться что бы понять к чему относится SelStart, Text - конечно речь не об этом простом случае, а о более сложном, а сколько при этом бывает ошибок, особенно в извращенных садомазохистких случаях
With a,b,c или with a with b with c
Вторая конструкция не оставляет пути для неверной интерпритации, как человеком, так и компилятором.
А вот первую форму применяю в особых случаях для работы с анонимными объектами.
with TFormX.Create(Self) do
try
ShowModal;
finally
Free;
end;
ilysha (2002-04-03 09:46:00) [8]Конечно, это не по теме вопроса, но Song прав - хотя на скорость выполнения вид
> With Edit1 Do SelStart:=Length(Text);
или
> Edit1.SelStart:=Length(Edit1.Text);
не влияют, но логигу программы лучше понимать в первом случае. В конце-концов, не зря же придумали конструкцию with.
Но всё это так...
Song (2002-04-03 08:49:00) [9]2MBo © (03.04.02 08:45)
Не знаю, мне кажется наоборот, что с With лучше.
А хотя, наверно это всё идёт из-за лени.. С With писать меньше :))
Извиняюсь за offtopic, но все-равно, мне нравится, ИМХО так:
With Edit1 Do SelStart:=Length(Text);
чем
Edit1.SelStart:=Length(Edit1.Text);
MBo (2002-04-03 08:45:00) [10]да я всегда для себя так делаю, чтобы поменьше писать, а
with затрудняет восприятие ;)
Song (2002-04-03 08:37:00) [11]2MBo © (03.04.02 06:05)
Вы спецом назвали грид Sg1 чтобы он разбирался подольше? :))
MBo (2002-04-03 06:05:00) [12]procedure TForm1.sg1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
if gdSelected in State then begin
sg1.canvas.fillrect(rect);
sg1.canvas.TextOut(rect.left+2,rect.top+2,sg1.cells[acol,arow]);
end;
end;
Schummi (2002-04-02 21:03:00) [13]Plz, объясните, как вот
> в DrawCell рисовать самому при gdSelected
MBo (2002-04-02 08:02:00) [14]убрать выделение -
установить Selection в -1,-1,-1,-1
изменить цвет - в DrawCell рисовать самому при gdSelected
Schummi (2002-04-02 07:56:00) [15]Да, и ещё. Как при старте(запуске) программы, убрать енто самое выделение ячеек?