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

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

Как сделать listbox полосатым


Страницы:   1 2 3

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]
>
>
> > Германн ©
>
>
> Извини, не выдержал.
> Постоянный флуд от тебя достаёт бывает.
>

Хотел было извинить, но передумал.
Примите и прочь!


Страницы:   1 2 3

Наверх

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