Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi TListbox -> Scrollbar visible? (https://www.delphipraxis.net/36175-tlistbox-scrollbar-visible.html)

Jens Schumann 16. Dez 2004 19:19


TListbox -> Scrollbar visible?
 
Hallo,
mit folgendem Code möchte ich den vertikalen Scrollbar einer TListbox
abfragen. GetLastError liefert jedoch 1447. Was bedeutet:
The window does not have scroll bars.

Die TListbox hat aber einen vertikalen Scrollbar. Ich kann ihn sehen.

Delphi-Quellcode:
procedure TForm1.ListBox1DblClick(Sender: TObject);
var
  ScrollBarInfo : TSCROLLBARINFO;
begin
  FillChar(ScrollBarInfo,SizeOf(TScrollBarInfo),0);
  ScrollBarInfo.cbSize:=SizeOf(TSCROLLBARINFO);
  GetScrollBarInfo(ListBox1.Handle,OBJID_VSCROLL,ScrollBarInfo);
end;
Letztendlich möchte ich feststellen ob der Scrollbar sichtbar ist oder nicht.

APP 17. Dez 2004 08:39

Re: TListbox -> Scrollbar visible?
 
Hallo Jens,
an anderer Stelle habe ich einen Code zum Verstecken der Scrollbar gepostet,
mit
Delphi-Quellcode:
  style := GetWindowLong( handle, GWL_STYLE );
  if (style and WS_VSCROLL) <> 0 then
solltest Du die Abfrage machen können.

Jens Schumann 17. Dez 2004 16:01

Re: TListbox -> Scrollbar visible?
 
Hallo,
Zitat:

Zitat von APP
Hallo Jens,
an anderer Stelle habe ich einen Code zum Verstecken der Scrollbar gepostet,
mit
Delphi-Quellcode:
  style := GetWindowLong( handle, GWL_STYLE );
  if (style and WS_VSCROLL) <> 0 then
solltest Du die Abfrage machen können.

Ich wollte nicht wissen, wie man den Scrollbar unterdrückt, sondern ob er sichtbar ist?

Der folgende Code funktioniert.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  ScrollBarInfo : TSCROLLBARINFO;
  Ok           : Boolean;
begin
  FillChar(ScrollBarInfo,SizeOf(TScrollBarInfo),0);
  ScrollBarInfo.cbSize:=SizeOf(TSCROLLBARINFO);
  Ok:=GetScrollBarInfo(ListBox1.Handle,OBJID_VSCROLL,ScrollBarInfo);
  If Not Ok then
    Label1.Caption:=IntToStr(GetLastError);
  If ScrollBarInfo.rgstate[0] AND STATE_SYSTEM_INVISIBLE=STATE_SYSTEM_INVISIBLE then
    Label2.Caption:='Unsichtbar'
      else
        Label2.Caption:='Sichtbar';
end;

APP 18. Dez 2004 20:13

Re: TListbox -> Scrollbar visible?
 
Hallo Jens,
Zitat:

Zitat von Jens Schumann
Ich wollte nicht wissen, wie man den Scrollbar unterdrückt, sondern ob er sichtbar ist?

das war mir schon klar, aber ich dachte Du siehst im Code wie Du es benutzen kannst:

Delphi-Quellcode:
VAR
  Style                           : Integer;
BEGIN
  Style := GetWindowLong(Listbox1.Handle, GWL_STYLE);
  IF (Style AND WS_VSCROLL) <> 0 THEN
    ShowMessage('Scrollbar ist sichtbar')
  ELSE
    ShowMessage('Scrollbar ist unsichtbar');

Jens Schumann 20. Dez 2004 06:29

Re: TListbox -> Scrollbar visible?
 
Hallo,
Zitat:

Zitat von APP
Hallo Jens,
Zitat:

Zitat von Jens Schumann
Ich wollte nicht wissen, wie man den Scrollbar unterdrückt, sondern ob er sichtbar ist?

das war mir schon klar, aber ich dachte Du siehst im Code wie Du es benutzen kannst:

Delphi-Quellcode:
VAR
  Style                           : Integer;
BEGIN
  Style := GetWindowLong(Listbox1.Handle, GWL_STYLE);
  IF (Style AND WS_VSCROLL) <> 0 THEN
    ShowMessage('Scrollbar ist sichtbar')
  ELSE
    ShowMessage('Scrollbar ist unsichtbar');

oh - das habe ich so gar nicht bemerkt. Ich dachte mit dem Code legt man grundsätzlich fest, ob der Scrollbar sichtbar sein soll oder nicht.

Danke

[edit]Oh - man. Ich habe gerade in meinen Datensicherunge gesucht und genau Deinen Codevorschlag darin gefunden. Dateidatum ist vom 02.06.2001. Da bin ich wieder auf mein altes Problem gestoßen.
Ich habe mittlerweile so viel programmiert und in meinen Datensicherungen, dass ich machmal gar
nicht mehr weiss, dass ich ein Problem schon einmal gelöst hatte.[/edit]


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:29 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz