![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как сделать listbox полосатым
buzb © (2008-12-20 18:01:00)Как сделать listbox полосатым
antonn (2008-12-21 21:46:00) [21]
> antonn © (20.12.08 21:50) [4]
>
> Удалено модератором
> Примечание: Offtopic
>
да неужели? а пост, к которому это было написано не оффтопик?
> Leonid Troyanovsky © (21.12.08 16:38) [24]
>
>
> > Denis__ © (21.12.08 16:31) [23]
>
> > Так не правильней будет, нет?
>
> Не знаю. Для правильности надо еще исследовать множественное
> выделение и т.д. и т.п. Но, эстетичней - да :)
Нет. Это не будет эстетичней. Потому что в списках текст обычно выравнивается по центру или по нижней границе.
KilkennyCat (2008-12-21 20:11:00) [22]
> Главное, чтобы он был понятен всем,
для этого придумали комментарии ;)
Leonid Troyanovsky (2008-12-21 17:25:00) [23]
> Denis__ © (21.12.08 17:14) [29]
> Пытаюсь писать код, чтобы он был красвее, понятнее чтоль))
Главное, чтобы он был понятен всем, а не только вам на двоих
с компилятором ;)
С помощью with можно создавать изящные конструкции (догоняя C
по возможности определить нечто нужное в нужном месте),
но, к сожалению, в оных местах не очень удобна отладка.
Да и воспринимаются они читающими не одинаково.
--
Regards, LVT.
Denis__ (2008-12-21 17:14:00) [24]
> Но, эстетичней - да :)
Пытаюсь писать код, чтобы он был красвее, понятнее чтоль))
> with TListBox(Control), Canvas do
Нам преподаватель отсоветовал так делать. Ну, я понимаю что это дело каждого, но так не пишу)
Leonid Troyanovsky (2008-12-21 17:12:00) [25]
> Smile (21.12.08 16:55) [27]
> FillRect(Rect);
> TextOut(Rect.Left+2, Rect.Top, Items[Index]);
> это лишнее, не вижу необходимости :(
А как же +2? Это ж удовлетворяет эстетические потребности :)
Насчет излишеств: отметил недавно у уважаемоего здравомыслящего
дельфера с солидным стажем обниление полей в конструкторе.
На что он резонно ответил: можете считать это проявлением
моей паранойи, но как делал, так и буду делать ;)
--
Regards, LVT.
Smile (2008-12-21 16:55:00) [26]А по мне, так в {RASkov} © (21.12.08 16:39) [25], да и ранее
FillRect(Rect);
TextOut(Rect.Left+2, Rect.Top, Items[Index]);
это лишнее, не вижу необходимости :(
Leonid Troyanovsky (2008-12-21 16:45:00) [27]
> {RASkov} © (21.12.08 16:39) [25]
> > Так не правильней будет, нет?
> if Control is TlistBox then
Так, конечно, правильней, а остальное, дейс-но, вкусовщина.
Я бы даже так сделал: with Control as TlistBox do,
дабы неповадно было.
--
Regards, LVT.
{RASkov} (2008-12-21 16:39:00) [28]> Так не правильней будет, нет?
А по мне вот так красивше:
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);
begin
if Control is TlistBox then
with TListBox(Control), Canvas do begin
if Odd(Index) then Brush.Color := clSilver
else Brush.Color := clWindow;
FillRect(Rect);
//Font.Color := clBlack; // Зачем?
TextOut(Rect.Left+2, Rect.Top, Items[Index]);
end;
end;
тут и в самом деле - разговор о фломастерах....)
Leonid Troyanovsky (2008-12-21 16:38:00) [29]
> Denis__ © (21.12.08 16:31) [23]
> Так не правильней будет, нет?
Не знаю. Для правильности надо еще исследовать множественное
выделение и т.д. и т.п. Но, эстетичней - да :)
--
Regards, LVT.
Denis__ (2008-12-21 16:31:00) [30]
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
begin
with TListBox(Control) do
begin
if Odd(Index) then
Canvas.Brush.Color := clSilver
else
Canvas.Brush.Color := clWindow;
Canvas.FillRect(Rect);
Canvas.Font.Color := clBlack;
Canvas.TextOut(Rect.Left+2,Rect.Top,Items[Index]);
end;
end;
Так не правильней будет, нет?
Leonid Troyanovsky (2008-12-21 16:23:00) [31]
> Тын-Дын © (21.12.08 16:18) [21]
> Смещение 1 - слишком близко к линиям грида... 2 - в самы
> раз.
Может в гриде и не залазит, а в listbox - в самый раз.
D6, TD with XP.
--
Regards, LVT.
Тын-Дын (2008-12-21 16:18:00) [32]
> +2 залезет на рамку фокуса, если по умолчанию.
Да вроде никуда ничего не залазит.
Смещение 1 - слишком близко к линиям грида... 2 - в самы раз.
Leonid Troyanovsky (2008-12-21 15:37:00) [33]
> Тын-Дын © (21.12.08 15:34) [18]
> С другим отступом отвратно выглядит.
Не знаю - на вкус и цвет фломастеры разные.
+2 залезет на рамку фокуса, если по умолчанию.
--
Regards, LVT.
Тын-Дын (2008-12-21 15:34:00) [34]Где-то в справке описано...
Тын-Дын (2008-12-21 15:34:00) [35]
> Кста, а на зачем такой отступ по умолчанию?
С другим отступом отвратно выглядит.
Leonid Troyanovsky (2008-12-21 15:30:00) [36]
> Тын-Дын © (21.12.08 15:23) [16]
> А в данном конкретном случае это принципиальный вопрос?
Отступ так отступ.
Просто интересуюсь, может чего пропустил из новых веяний.
Кста, а на зачем такой отступ по умолчанию?
--
Regards, LVT.
Тын-Дын (2008-12-21 15:23:00) [37]
> Leonid Troyanovsky © (21.12.08 15:13) [15]
> > Тын-Дын © (21.12.08 01:05) [5] > L.Canvas.TextOut(Rect.
> Left+2,Rect.Top+2,L.Items[Index]);+2 - это что?
Ну как что? Отступ по-умолчанию.
Если нужно другой - можно и другой сделать.
А в данном конкретном случае это принципиальныйвопрос?
Leonid Troyanovsky (2008-12-21 15:13:00) [38]
> Тын-Дын © (21.12.08 01:05) [5]
> L.Canvas.TextOut(Rect.Left+2,Rect.Top+2,L.Items[Index]);
+2 - это что?
--
Regards, LVT.
Riply (2008-12-21 06:08:00) [39]> [11] Игорь Шевченко © (21.12.08 03:39)
Игорь, а Вы тоже решили присоединиться к славному сообществу "полуночников" ?
Sorry за оффтоп, но уж очень любопытно стало :)
Германн (2008-12-21 04:10:00) [40]
> Тын-Дын © (21.12.08 02:53) [10]
>
>
> > Германн ©
>
>
> Извини, не выдержал.
> Постоянный флуд от тебя достаёт бывает.
>
Хотел было извинить, но передумал.
Примите и прочь!