![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ПРОСТО ! Быстрый, тупой, вопрос ! [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]Если подождешь до завтра, то отвечу, раз никто не хочет.