procedure TForm1.FormCreate(Sender: TObject);
begin
tabset1.Tabs.AddObject('hello',map);end;
procedure TForm1.TabSet1MeasureTab(Sender: TObject; Index: Integer;
var TabWidth: Integer);
var
bitmapwidth:integer;
begin
bitmapwidth:=tbitmap(tabset1.tabs.Objects[index]).Width;
inc(tabwidth,2+bitmapwidth);end;procedure TForm1.TabSet1DrawTab(Sender: TObject; TabCanvas: TCanvas;
R: TRect; Index: Integer; Selected: Boolean);
var
bitmap:tbitmap;
begin
bitmap:=tbitmap(tabset1.Tabs.Objects[index]);
with tabcanvas do
begin
draw(r.Left,r.Top+4,bitmap);
textout(r.left+2+bitmap.Width,r.Top+2,tabset1.tabs[index]);
end;end;
功能就是在tabset上加图标!
我运行的时候老是报内存出错的问题??!!!!
是方法不对吗?
begin
tabset1.Tabs.AddObject('hello',map);end;
procedure TForm1.TabSet1MeasureTab(Sender: TObject; Index: Integer;
var TabWidth: Integer);
var
bitmapwidth:integer;
begin
bitmapwidth:=tbitmap(tabset1.tabs.Objects[index]).Width;
inc(tabwidth,2+bitmapwidth);end;procedure TForm1.TabSet1DrawTab(Sender: TObject; TabCanvas: TCanvas;
R: TRect; Index: Integer; Selected: Boolean);
var
bitmap:tbitmap;
begin
bitmap:=tbitmap(tabset1.Tabs.Objects[index]);
with tabcanvas do
begin
draw(r.Left,r.Top+4,bitmap);
textout(r.left+2+bitmap.Width,r.Top+2,tabset1.tabs[index]);
end;end;
功能就是在tabset上加图标!
我运行的时候老是报内存出错的问题??!!!!
是方法不对吗?
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, Tabs;type
TMainForm = class(TForm)
TabSet1: TTabSet;
procedure FormCreate(Sender: TObject);
procedure TabSet1MeasureTab(Sender: TObject; Index: Integer;
var TabWidth: Integer);
procedure TabSet1DrawTab(Sender: TObject; TabCanvas: TCanvas; R: TRect;
Index: Integer; Selected: Boolean);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
MainForm: TMainForm;implementation{$R *.dfm}procedure TMainForm.FormCreate(Sender: TObject);
var
bm: TBitmap;
begin
bm := TBitmap.Create;
bm.LoadFromFile('abort.bmp');
TabSet1.Tabs.AddObject('Hello', bm); bm := TBitmap.Create;
bm.LoadFromFile('alarm.bmp');
TabSet1.Tabs.AddObject('World', bm);
end;procedure TMainForm.TabSet1MeasureTab(Sender: TObject; Index: Integer;
var TabWidth: Integer);
var
BitmapWidth: Integer;
begin
BitmapWidth := TBitmap(TabSet1.Tabs.Objects[Index]).Width;
Inc(TabWidth, BitmapWidth + 2); end;procedure TMainForm.TabSet1DrawTab(Sender: TObject; TabCanvas: TCanvas;
R: TRect; Index: Integer; Selected: Boolean);
var
Bitmap: TBitmap;
begin
Bitmap := TBitmap(TabSet1.Tabs.Objects[Index]);
with TabCanvas do
begin
Draw(r.Left,r.Top+4,bitmap);
TextOut(r.left+2+bitmap.Width,r.Top+2,tabset1.tabs[index]);
end;
end;procedure TMainForm.FormDestroy(Sender: TObject);
var
i: Integer;
bmp: TBitmap;
begin
for i := 0 to TabSet1.Tabs.Count - 1 do
begin
bmp := TBitmap(TabSet1.Tabs.Objects[i]);
if bmp <> nil then
bmp.Free;
end;
end;end.