// Auf einem Splitter wird ein Text und ein Ornament (Bitmap) ausgegeben.
// Ich habe dafür ein Beispiel aus der Delphi-Hilfe etwas umgestrickt.


// Getestet mit D4 unter WinME


type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private-Deklarationen }
public
procedure SplitterPaint(Sender: TObject);
end;

var

Form1: TForm1;

implementation

{$R *.DFM}

uses extctrls,filectrl;

type
TNeuSplitter=class(TSplitter)
public
property canvas;
end;

var

mysplit:TNeuSplitter;
s:string;
h:integer;
b:TBitmap;

procedure TForm1.FormCreate(Sender: TObject);
var
filibox:TFileListBox;
dilibox:TDirectoryListBox;
begin
b:=TBitmap.create;
b.loadfromfile('c:\bilder\schlange.bmp');
dilibox:=TDirectoryListBox.Create(Form1);
dilibox.Parent:=Form1;
dilibox.Align:=alLeft;
mysplit:=TNeuSplitter.Create(Form1);
mysplit.Parent:=Form1;
mysplit.Left:=dilibox.Left + dilibox.Width;
mysplit.Align:=dilibox.Align;
mysplit.width:=17;
mysplit.MinSize:=10;
filibox:=TFileListBox.Create(Form1);
filibox.Parent:=Form1;
filibox.Align:=alClient;
dilibox.FileList:=filibox;
mysplit.color:=clred;
mysplit.canvas.font.name:='Courier New';
mysplit.onpaint:=Splitterpaint;
s:='Test';
h:=mysplit.canvas.textheight(s);
end;

procedure
TForm1.SplitterPaint(Sender: TObject);
var x:integer;
begin
for
x:=1 to length(s) do
mysplit.canvas.textout(5,x*h-h,s[x]);
mysplit.canvas.draw(0,mysplit.canvas.penpos.y+h+5,b);
end;

procedure
TForm1.FormDestroy(Sender: TObject);
begin
b.free;
end;


 

Zugriffe seit 6.9.2001 auf Delphi-Ecke