新手请教,delphi怎么建立,使用function和 procedure。象VB的function 和SUB那样。
function DBGridAutoSize(mDBGrid: TDBGrid; mOffset: Integer = 15): Boolean;
var
I: Integer;
begin
Result := False;
if not Assigned(mDBGrid) then
Exit;
if not Assigned(mDBGrid.DataSource) then
Exit;
if not Assigned(mDBGrid.DataSource.DataSet) then
Exit;
if not mDBGrid.DataSource.DataSet.Active then
Exit;
for I := 0 to mDBGrid.Columns.Count - 1 do
begin
if not mDBGrid.Columns[I].Visible then
Continue;
DBGridRecordSize(mdbgrid.Columns[i]);
if Assigned(mDBGrid.Columns[I].Field) then
mDBGrid.Columns[I].Width := Max(mDBGrid.Columns[I].Field.Tag,
mDBGrid.Canvas.TextWidth(mDBGrid.Columns[I].Title.Caption)) + mOffset
else
mDBGrid.Columns[I].Width :=
mDBGrid.Canvas.TextWidth(mDBGrid.Columns[I].Title.Caption) + mOffset;
mDBGrid.Refresh;
// Application.ProcessMessages;
end;
Result := True;
end; { DBGridAutoSize }
这个函数是别人给写的,关于给表格自动列宽的,这时我想用它的话,要怎么写?
我用的时候老是不通过
[解决办法]
象你这样把abc函数变成form1窗体的成员函数,是一种办法,但一般应该放在private或public中
第二种办法,不把abc变成窗体的成员函数,只要把
function abc():string ;
begin
abc = "123"
end;
放在procedure TForm1.Button1Click(Sender: TObject);这一行之前就行。
还有,根据你的意思,abc函数应该写成这样:
function abc:string;
begin
Result:='123';
end;