TListBox - ohne WS_VSCROLL

Rund um die LCL und andere Komponenten
Antworten
Cargo_03
Beiträge: 10
Registriert: Sa 8. Mai 2010, 14:42
OS, Lazarus, FPC: WIN 1.4.4 / 1.8.4
CPU-Target: 64 Bit

TListBox - ohne WS_VSCROLL

Beitrag von Cargo_03 »

Hallo zusammen,

ich möchte gerne die Eingabe von Uhrzeiten in meiner Software so gestalten, das es sich so "anfühlt" wie auf einem IPhone. Hintergrund ist die intuitive gute Eingabe und die
Endanwender sind im Umgang mit der Eingabe vertraut. Dazu habe ich mir nun die Listbox ausgesucht, da diese sich mit dem Mausrad scrollen lässt.

Nun stört dabei aber der automatische Scrollbalken auf der rechten Seite. Ich habe versucht eine neue Komponente auf Basis der TListbox zu erstellen, bei der "WS_VScroll" ausgeschaltet ist.

Nur leider bleibt die Scrollbar weiterhin sichtbar.

Anbei der Quellcode.

Code: Alles auswählen

unit listboxjr;
 
{$mode objfpc}{$H+}
 
interface
 
uses
  Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls,
  LCLType;
 
type
  TListBoxJR = class(TListBox)
  private
    { Private declarations }
  protected
    { Protected declarations }
  procedure CreateParams(var Params:TCreateParams); override;
 
  public
    { Public declarations }
  published
    { Published declarations }
  end;
 
procedure Register;
 
implementation
 
procedure TListBoxJR.CreateParams (var Params:TCreateParams);
begin
  inherited CreateParams(Params);
  Params.Style := Params.Style and not WS_VSCROLL;
// with Params do
// Style:= Style and not (WS_VSCROLL or WS_HSCROLL);
// Style:= Style and not WS_HSCROLL;
// Style:= Style and not WS_VSCROLL;
end;
 
 
procedure Register;
begin
  RegisterComponents('JRTools',[TListBoxJR]);
end;
 
 
END.

Wer kann helfen??? :?

Gruß Cargo_03

Antworten