Scrollbalken der Listbox deaktivieren

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
mulcheo
Beiträge: 57
Registriert: Do 1. Aug 2013, 15:11

Scrollbalken der Listbox deaktivieren

Beitrag von mulcheo »

hallo,

ich möchte gerne aus meiner Listbox den vertikalen scrollbar entfernen

Code: Alles auswählen

ShowScrollBar(Listbox1.Handle, SB_Vert, false); 
funktioniert leider nur punktuell, d.h. wenn in der Listbox gescrollt wird, erscheint der bar automatisch wieder, bis ich ihn das nächste mal über showscrollbar() ausblende...

gibt es eine bessere Möglichkeit, den Scrollbar rauszuschmeißen?

[edit]:
ich habe nun, was ja nahe lag,

Code: Alles auswählen

procedure TForm2.ListBox1SelectionChange(Sender: TObject; User: boolean);
begin
  ShowScrollBar(Listbox1.Handle, SB_Vert, false);
end;
 
verwendet, das funktioniert zwar, scheint mir aber nicht die eleganteste Lösung zu sein...

Antrepolit
Beiträge: 340
Registriert: Di 12. Sep 2006, 08:57
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Kontaktdaten:

Re: Scrollbalken der Listbox deaktivieren

Beitrag von Antrepolit »

Warum willst du den Scrollbar denn rauswerfen? Er erfüllt einen für den Nutzer wichtigen Zweck; und zwar den, nicht sichtbare informationen sichtbar zu machen.
Grüße, Antrepolit

care only if your os is really burning

mulcheo
Beiträge: 57
Registriert: Do 1. Aug 2013, 15:11

Re: Scrollbalken der Listbox deaktivieren

Beitrag von mulcheo »

ich möchte die Listbox lieber mit den Pfeiltasten steuern... außerdem nimmt der scrollbar wertvollen Platz weg.
Zwar gibt es Schlimmeres als Scrollbalken, aber ich fände es gut, eine saubere Lösung für das Ausblenden in der Hinterhand zu haben.

Übrigens stört sich beim Memo ja auch niemand an der Möglichkeit, die scrollbars rauszunehmen ;)

Antrepolit
Beiträge: 340
Registriert: Di 12. Sep 2006, 08:57
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Kontaktdaten:

Re: Scrollbalken der Listbox deaktivieren

Beitrag von Antrepolit »

mulcheo hat geschrieben:ich möchte die Listbox lieber mit den Pfeiltasten steuern(...)
Das ist das einzige plausible Argument. Hast du bedacht, woher der Benutzer wissen soll, dass man das dann mit den pfeiltasten macht? Beim Scrollbar weiß er es aus Erfahrung, aber ich kenne viele Leute, die nicht wissen, dass man eine Scrollfunktion durch die pfeiltasten hat und diese Leute benutzen ihren PC jeden Tag zum arbeiten.
(...)außerdem nimmt der scrollbar wertvollen Platz weg.
Zwar gibt es Schlimmeres als Scrollbalken, aber ich fände es gut, eine saubere Lösung für das Ausblenden in der Hinterhand zu haben.
(...)
Wenn der Platz tatsächlich so knapp ist, dass du die 32 Pixel nicht entbehren kannst, liegt vermutlich ein Design-Problem in der GUI vor. Die muss ja mit Elementen überladen sein? Das solltest du nochmal überdenken. Was die Sauberkeit angeht, so ist es schon unsauber, eine Standardfunktion deaktivieren zu wollen. Deshalb gibt es dafür auch keine Möglichkeit. Deine Anwendung würde z.B. ohne Scrollbar nicht auf einem Tablet ohne Tastatur bedient werden können. Hast du das bedacht?
(...)
Übrigens stört sich beim Memo ja auch niemand an der Möglichkeit, die scrollbars rauszunehmen ;)
Weil bei einem memo die Cursor-Funktion durch den blinkeden Strich verdeutlich wird, bei der Listbox jedoch nicht. Und das Memo ist auch ohne Scrollbar noch irgendwie mit der Maus bedienbar. Du allerdings unterbindest die Möglichkeit und zwingst den Benutzer plötzlich, das Eingabegerät zu wechseln. Das kann man drehen wie man will...es ist schlichtweg keine elegante und schon gar keine saubere Lösung.

Dein Einzeiler erfüllt doch seinen Zweck. Nun musst du ihn bloß bei OnScroll() jedesmal wieder ausführen.
Grüße, Antrepolit

care only if your os is really burning

Antworten