Einzelnen Beitrag anzeigen

hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#1

ScrollBox mit permanenter vertikaler Scrollbar

  Alt 7. Dez 2017, 07:46
Hallo,
das Thema ist wohl so alt wie Delphi selbst ...

Der unten stehende Code funktioniert, solange die Scrollbar nicht dynamisch erzeugt wird.
Packe ich den FormCreate-Code mit ins FormActivate (oder FormShow), klappt es nicht.
Das liegt wohl daran, dass das eigentliche Window-Handle dann schon erzeugt ist.

Was kann ich tun?

PS: Eine abgeleitete Klasse will ich nicht verwenden.


Delphi-Quellcode:
procedure TForm115.FormActivate(Sender: TObject);
begin
  ShowScrollBar(ScrollBox1.Handle, SB_VERT, True);
  ShowScrollBar(ScrollBox1.Handle, SB_HORZ, False);
end;

procedure TForm115.FormCreate(Sender: TObject);
var
  iStyle: Integer;
begin
  iStyle:=GetWindowLong(ScrollBox1.Handle,GWL_STYLE);
  SetWindowLong(ScrollBox1.Handle,GWL_STYLE,iStyle or WS_HSCROLL or WS_VSCROLL);

  ScrollBox1.VertScrollBar.Visible := True;
  ScrollBox1.HorzScrollBar.Visible := True;

  ScrollBox1.AutoScroll := True;
end;
Heiko

Geändert von hoika ( 7. Dez 2017 um 07:49 Uhr)
  Mit Zitat antworten Zitat