偶学会计的,客串写点小程序,别笑我的问题菜啊!
想自己写个
porcedure createexcel(filename:TStringList;n:integer);//这个过程要用到2个参数,不知道这样定义有没有问题。
begin
showmessage('got it!');
end;
还有,这一段 过程应该放在什么地方。
unit Unit1;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, ADODB, StdCtrls,comobj;type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    ADOConnection1: TADOConnection;
    ADOQuery1: TADOQuery;
    OpenDialog1: TOpenDialog;
    SaveDialog1: TSaveDialog;
    Button5: TButton;
    ADOQuery2: TADOQuery;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  Form1: TForm1;implementation{$R *.dfm}//主程序
procedure TForm1.Button4Click(Sender: TObject);
var
FList: TStringList;
n:integer;
begin
  createexcel(Flist,n);
end;

解决方案 »

  1.   

    1定义:过程或函数要定义在private(私用,只在本单元内可用)或public(公用可以被其它单元引用)根据你的需要。
    如在:private中定义
      private
        { Private declarations } 
        porcedure createexcel(filename:TStringList;n:integer);
    2.实现:在implementation 中实现其功能代码,以上面的为例:
    porcedure TForm1.createexcel(filename:TStringList;n:integer);//这个过程要用到2个参数,不知道这样定义有没有问题。
    begin
      showmessage('got it!');
    end;
      

  2.   

     private
      { Private declarations }
       porcedure createexcel(filename:TStringList;n:integer);  public
        { Public declarations }
      end;var
      Form1: TForm1;implementation
      porcedure createexcel(filename:TStringList;n:integer);//这个过程要用到2个参数,不知道这样定义有没有问题。
    begin
     showmessage('got it!');
    end;
     {$R *.dfm}报错
    [Error] Unit1.pas(28): ',' or ':' expected but identifier 'createexcel' found
    [Error] Unit1.pas(28): ',' or ':' expected but '(' found
    [Error] Unit1.pas(28): ',' or ')' expected but ';' found
    [Error] Unit1.pas(38): Declaration expected but identifier 'porcedure' found
    [Error] Unit1.pas(40): Illegal character in input file: ' ' ($A1A1)
    [Error] Unit1.pas(41): '.' expected but ';' found
    [Error] Unit1.pas(57): '..' expected but ';' found
    [Error] Unit1.pas(64): Missing operator or semicolon
    [Error] Unit1.pas(65): Record, object or class type required
    [Error] Unit1.pas(195): Record, object or class type required
    [Hint] Unit1.pas(28): Private symbol 'porcedure' declared but never used
    [Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'还有,楼上的回复中用了porcedure TForm1.createexcel,我觉得有没有必要前面加Tform1
      

  3.   

    unit UFrmMain;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, ExtCtrls, ImgList, ActnList, StdStyleActnCtrls, ActnMan,
      ComCtrls, StdCtrls, jpeg, cxStyles, cxCustomData, cxGraphics, cxFilter,
      cxData, cxDataStorage, cxEdit, DB, cxDBData, cxGridCustomTableView,
      cxGridTableView, cxGridDBTableView, ADODB, cxGridLevel, cxClasses,
      cxControls, cxGridCustomView, cxGrid, Buttons, cxGridBandedTableView,
      Menus, UDM;type
      TFrmMain = class(TForm)
        Shape1: TShape;
        Image3: TImage;
        Title_Pal: TPanel;
        Image1: TImage;
        Title_R_Pal: TPanel;
        Image2: TImage;
        Label4: TLabel;
        Label3: TLabel;
        ImageList1: TImageList;
        Timer1: TTimer;
        cxGrid1DBTableView1: TcxGridDBTableView;
        cxGrid1Level1: TcxGridLevel;
        cxGrid1: TcxGrid;
        Panel1: TPanel;
        DataSource1: TDataSource;
        cxGrid1DBTableView1typename: TcxGridDBColumn;
        cxGrid1DBTableView1username: TcxGridDBColumn;
        cxGrid1DBTableView1phone: TcxGridDBColumn;
        cxGrid1DBTableView1tel_phone1: TcxGridDBColumn;
        cxGrid1DBTableView1tel_phone2: TcxGridDBColumn;
        cxGrid1DBTableView1email: TcxGridDBColumn;
        cxGrid1DBTableView1address: TcxGridDBColumn;
        cxGrid1DBTableView1postcode: TcxGridDBColumn;
        cxGrid1DBTableView1note: TcxGridDBColumn;
        TreeView1: TTreeView;
        Splitter2: TSplitter;
        Label1: TLabel;
        ComboBox1: TComboBox;
        Label2: TLabel;
        Edit1: TEdit;
        Label5: TLabel;
        Edit2: TEdit;
        BitBtn2: TBitBtn;
        BitBtn3: TBitBtn;
        BitBtn4: TBitBtn;
        BitBtn9: TBitBtn;
        BitBtn6: TBitBtn;
        BitBtn5: TBitBtn;
        StyleRepository: TcxStyleRepository;
        cxStyle1: TcxStyle;
        cxStyle2: TcxStyle;
        cxStyle3: TcxStyle;
        cxStyle4: TcxStyle;
        cxStyle5: TcxStyle;
        cxStyle6: TcxStyle;
        cxStyle7: TcxStyle;
        cxStyle8: TcxStyle;
        cxStyle9: TcxStyle;
        cxStyle10: TcxStyle;
        cxStyle11: TcxStyle;
        cxStyle12: TcxStyle;
        cxStyle13: TcxStyle;
        cxStyle14: TcxStyle;
        cxStyle15: TcxStyle;
        cxStyle16: TcxStyle;
        cxStyle17: TcxStyle;
        cxStyle18: TcxStyle;
        cxStyle19: TcxStyle;
        cxStyle20: TcxStyle;
        cxStyle21: TcxStyle;
        cxStyle22: TcxStyle;
        cxStyle23: TcxStyle;
        cxStyle24: TcxStyle;
        cxStyle25: TcxStyle;
        cxStyle26: TcxStyle;
        cxStyle27: TcxStyle;
        cxStyle28: TcxStyle;
        cxStyle29: TcxStyle;
        cxStyle30: TcxStyle;
        cxStyle31: TcxStyle;
        cxStyle32: TcxStyle;
        cxStyle33: TcxStyle;
        cxStyle34: TcxStyle;
        cxStyle35: TcxStyle;
        cxStyle36: TcxStyle;
        cxStyle37: TcxStyle;
        cxStyle38: TcxStyle;
        cxStyle39: TcxStyle;
        cxStyle40: TcxStyle;
        cxStyle41: TcxStyle;
        cxStyle42: TcxStyle;
        cxStyle43: TcxStyle;
        cxStyle44: TcxStyle;
        cxStyle45: TcxStyle;
        cxStyle46: TcxStyle;
        GridTableViewStyleSheetDevExpress: TcxGridTableViewStyleSheet;
        GridBandedTableViewStyleSheetDevExpress: TcxGridBandedTableViewStyleSheet;
        PopupMenu1: TPopupMenu;
        N1: TMenuItem;
        N2: TMenuItem;
        N3: TMenuItem;
        ActionList1: TActionList;
        new_type: TAction;
        edit_type: TAction;
        del_type: TAction;
        ImageList2: TImageList;
        procedure BitBtn6Click(Sender: TObject);
        procedure new_typeExecute(Sender: TObject);
        procedure edit_typeExecute(Sender: TObject);
        procedure FormShow(Sender: TObject);
      private
        { Private declarations }
        procedure refreshTreeView;
        procedure createexcel(filename:TStringList;n:integer);//这个过程要用到2个参数,不知道这样定义有没有问题。
      public
        { Public declarations }
      end;var
      FrmMain: TFrmMain;implementationuses UFrmTypeInput, UCommon;{$R *.dfm}procedure TFrmMain.BitBtn6Click(Sender: TObject);
    begin
      Close;
    end;procedure TFrmMain.new_typeExecute(Sender: TObject);
    begin
      if not Assigned(FrmTypeInput) then
        FrmTypeInput := TFrmTypeInput.Create(Application);
      FrmTypeInput.tag := 1;
      FrmTypeInput.ShowModal;
      FrmTypeInput.Free;
      FrmTypeInput := Nil;
      refreshTreeView;
    end;procedure TFrmMain.edit_typeExecute(Sender: TObject);
    begin
      if not Assigned(FrmTypeInput) then
        FrmTypeInput := TFrmTypeInput.Create(Application);
      FrmTypeInput.tag := 2;
      FrmTypeInput.vTypeID := FType.TypeID;
      FrmTypeInput.ShowModal;
      FrmTypeInput.Free;
      FrmTypeInput := Nil;
      refreshTreeView;
    end;procedure TFrmMain.refreshTreeView;
    var
      Node1,Node2: TTreeNode;
    begin
      TreeView1.Items.Clear;
      Node1:=TreeView1.Items.Add(nil,'所有类别');
      Node1.ImageIndex := 0;
      with DMImpl.ADOQuery2 do
      begin
        Close;
        SQL.Text := ' Select typeid,typename from usertype order by typeid';
        Open;
        while not eof do
        begin
          New(FType);
          FType.typeid := Fields[0].AsString;
          FType.typename := Fields[1].AsString;
          Node2 := TreeView1.Items.AddChild(Node1,FType.typename);
          Node2.Data := FType;
          Node2.ImageIndex := 1;
          Next;
        end;
      end;
    end;procedure TFrmMain.FormShow(Sender: TObject);
    begin
      refreshTreeView;
    end;procedure TFrmMain.createexcel(filename:TStringList;n:integer);//这个过程要用到2个参数,不知道这样定义有没有问题。
    begin
      showmessage('got it!');
    end;end.