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

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

ПРОСТО ! Быстрый, тупой, вопрос ! [D5, Win95/98, NT4, Win2k]


IronHawk ©   (2002-02-12 15:37:00) 

Как в ListBox убрать вертикальные скролы ???


IronHawk   (2002-02-14 17:30:00) [1]

>>> Alx2 ©

Спасибо !

>>> MBo ©

Тоже вариат токо он чёт глюкавит,
узнаю почему скажу !


MBo   (2002-02-14 13:49:00) [2]

type tLboxnoscroll=class(tcustomlistbox)
procedure CreateParams(var Params: TCreateParams);override;
end;
procedure tLboxnoscroll.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
Params.Style := params.Style and (not WS_VSCROLL)
end;
или, как Alx2 сказал, через SetWindowLong


Alx2   (2002-02-14 12:50:00) [3]

Посмотри SetWindowLong. Копать там, кажется, надо.


IronHawk   (2002-02-14 12:33:00) [4]

>>> Alx2 ©

НАШЕЛСЯ ТРАБЛ !

> procedure TForm1.Button1Click(Sender: TObject);
> Var k : integer;
> begin
> for k := 0 to ComponentCount-1 do
> if Components[k] is TListBox then
> with Components[k] as TListBox do
> ShowScrollBar(Handle,sb_both,false);
> end;


При обновлении или смене Item-а
СКРОЛЫ опять появляються !!!
как их убить с концами ???


IronHawk   (2002-02-13 12:41:00) [5]

>>> Alx2 ©
СПАСИБО !!!! ОГРОМНОЕ !


Alx2   (2002-02-13 11:06:00) [6]


procedure TForm1.Button1Click(Sender: TObject);
Var k : integer;
begin
for k := 0 to ComponentCount-1 do
if Components[k] is TListBox then
with Components[k] as TListBox do
ShowScrollBar(Handle,sb_both,false);
end;



IronHawk   (2002-02-13 10:44:00) [7]

... СПАСИБО ВСЕМ !
>>> Alx2 ©
Вот это само оно !


Есть ещё вопрос !
У меня на форме 20-ть ListBox-ов
Как мне одной строкой (без обьявления это го свойства каждому)
обьеденить их, и присвоить им это свойство ???

... заранее благодарен !


Alx2   (2002-02-13 08:11:00) [8]

>IronHawk © (12.02.02 15:37)
>Как в ListBox убрать вертикальные скролы ???

ShowScrollBar(ListBox1.Handle,sb_both,false);


Dimk   (2002-02-13 02:15:00) [9]

Это процедура которая готовит разные параметры перед созданием
собственно окна листбокса. К сожалению ( я выделил см ниже) в стиль всегда добавляются WS_HSCROLL or WS_VSCROLL. Из за этого то всегда есть скроллбары. Можно конечно создать свой компонент
который будет отличаться от оригинального всего одним свойством которое позволит включать или не включать скроллбары- то есть
if ВключатьСкроллбары then Style := Style or WS_HSCROLL or WS_VSCROLL; И вся вселенная у твоих ног!

procedure TCustomListBox.CreateParams(var Params: TCreateParams);
type
PSelects = ^TSelects;
TSelects = array[Boolean] of DWORD;
const
Styles: array[TListBoxStyle] of DWORD =
(0, LBS_OWNERDRAWFIXED, LBS_OWNERDRAWVARIABLE, LBS_OWNERDRAWFIXED,
LBS_OWNERDRAWFIXED);
Sorteds: array[Boolean] of DWORD = (0, LBS_SORT);
MultiSelects: array[Boolean] of DWORD = (0, LBS_MULTIPLESEL);
ExtendSelects: array[Boolean] of DWORD = (0, LBS_EXTENDEDSEL);
IntegralHeights: array[Boolean] of DWORD = (LBS_NOINTEGRALHEIGHT, 0);
MultiColumns: array[Boolean] of DWORD = (0, LBS_MULTICOLUMN);
TabStops: array[Boolean] of DWORD = (0, LBS_USETABSTOPS);
CSHREDRAW: array[Boolean] of DWORD = (CS_HREDRAW, 0);
Data: array[Boolean] of DWORD = (LBS_HASSTRINGS, LBS_NODATA);
var
Selects: PSelects;
begin
inherited CreateParams(Params);
CreateSubClass(Params, "LISTBOX");
with Params do
begin
Selects := @MultiSelects;
if FExtendedSelect then Selects := @ExtendSelects;
Style := Style or ( WS_HSCROLL or WS_VSCROLLor
Data[Self.Style in [lbVirtual, lbVirtualOwnerDraw]] or
LBS_NOTIFY) or Styles[FStyle] or Sorteds[FSorted] or
Selects^[FMultiSelect] or IntegralHeights[FIntegralHeight] or
MultiColumns[FColumns <> 0] or BorderStyles[FBorderStyle] or
TabStops[FTabWidth <> 0];
if NewStyleControls and Ctl3D and (FBorderStyle = bsSingle) then
begin
Style := Style and not WS_BORDER;
ExStyle := ExStyle or WS_EX_CLIENTEDGE;
end;
WindowClass.style := WindowClass.style and not (CSHREDRAW[UseRightToLeftAlignment] or CS_VREDRAW);
end;
end;


IronHawk   (2002-02-12 18:28:00) [10]

НЕКАТИТ !


Cobalt   (2002-02-12 18:06:00) [11]

Попробуй посмотреть свойства ( все )


IronHawk   (2002-02-12 17:59:00) [12]

НУ подожду !
ВСЁРАВНО ЗНАТЬ НАДО !
Буду ждать !


Johnmen   (2002-02-12 16:42:00) [13]

Если подождешь до завтра, то отвечу, раз никто не хочет.


Наверх

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