Sorry das ich nicht frühere antworten konnte war gestern so müde.
Ich habe jetzt das ausprobiert was hier steht, doch Delphi erkennt
die Anweisung '
override' nicht und meint das '
EM_GETSCROLLPOS' ein undefinierter Bezeichner ist.
Hier der Code:
Delphi-Quellcode:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TMyListBox =
class(TListBox)
public
procedure RePaint;
override;
end;
type
TForm1 =
class(TForm)
ListBox1: TListBox;
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TMyListbox.Repaint;
override;
var Pnt: TPoint;
H: Integer;
begin
inherited Repaint;
H:=Round( Height / Count * (Height / ItemHeight));
//Höhe des Scrollbalkens. Richtig?
Perform(EM_GETSCROLLPOS, 0, Integer(@Pnt));
Canvas.Brush.Color:=clSkyBlue;
Canvas.Rectangle(Width-10,Pnt.Y,Width,Pnt.Y+H);
Canvas.Brush.Color:=clBlue;
//In Pnt.Y steht drin, wie weit das Teil gescrollt ist. Aber wie der Rest gezeichnet wird, weiß ich //nicht.
end;
end.