📄 uapimoduleform.pas
字号:
unit uApiModuleForm;
//{$I directives.inc}
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uCustomModuleForm, StdCtrls, ExtCtrls, Buttons, ComCtrls, DB,
ADODB, DBCtrls;
type
TApiDialog = class;
TApiModuleForm = class(TCustomModuleForm)
DataSource1: TDataSource;
daoqApi: TADOQuery;
daoqApiDSDesigner: TWideStringField;
daoqApiDSDesigner2: TMemoField;
daoqApiDSDesigner3: TWideStringField;
daoqApiDSDesigner4: TWideStringField;
daoqApiwin95: TBooleanField;
daoqApiwinNT: TBooleanField;
daoqApiDSDesigner5: TMemoField;
daoqApiDSDesigner6: TMemoField;
daoqApiDSDesigner7: TMemoField;
daoqApiDSDesigner8: TMemoField;
daoqApifunname: TADOQuery;
DataSource2: TDataSource;
dbmFullName: TDBMemo;
dbchnt: TDBCheckBox;
dbch95: TDBCheckBox;
dbmparameter: TDBMemo;
dbmother: TDBMemo;
dbmreturn: TDBMemo;
dbmexplain: TDBMemo;
mmShowdata: TMemo;
lbShowname: TListBox;
Panel1: TPanel;
Label1: TLabel;
sbSearch: TSpeedButton;
rgSearchtype: TRadioGroup;
edtSearch: TEdit;
Splitter1: TSplitter;
Timer1: TTimer;
procedure FormCreate(Sender: TObject);
procedure lbShownameClick(Sender: TObject);
procedure edtSearchChange(Sender: TObject);
procedure rgSearchtypeClick(Sender: TObject);
procedure sbSearchClick(Sender: TObject);
procedure edtSearchKeyPress(Sender: TObject; var Key: Char);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
ApiDialog: TApiDialog;
procedure loaddata;
procedure showdata(const funname: string);
public
{ Public declarations }
end;
TApiDialog = class(TCustomModuleDialog)
private
FModuleForm: TApiModuleForm;
FPageIndex: Integer;
protected
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
function Execute: Boolean; override;
published
property PageIndex: Integer read FPageIndex write FPageIndex
default 0;
end;
var
ApiModuleForm: TApiModuleForm;
implementation
{$R *.dfm}
resourcestring
SDefultFuntionDialogTitle = 'Api函数中文说明';
{ TMessageBoxDialog}
constructor TApiDialog.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FModuleForm := TApiModuleForm.Create(Self);
FModuleForm.ApiDialog := Self;
FModuleForm.FDialogModule := Self;
FModuleForm.Caption := SDefultFuntionDialogTitle;
FWindowForm := FModuleForm;
FPageIndex := 0;
end;
destructor TApiDialog.Destroy;
begin
if FModuleForm.Visible then FModuleForm.Close;
FModuleForm.Free;
inherited Destroy;
end;
function TApiDialog.Execute: Boolean;
begin
inherited Execute;
Result := FModuleForm.ShowModal = mrOK;
end;
procedure TApiModuleForm.showdata(const funname: string);
var
name, libname, alias, os: string;
I: integer;
tempstrlist: tstringlist;
begin
daoqApi.Close;
os := '';
daoqApi.SQL.Clear;
daoqApi.SQL.Add('select * from apifun');
daoqApi.SQL.Add('where 函数="' + funname + '"');
daoqApi.Open;
daoqApifunname.SQL.Clear;
daoqApifunname.SQL.Add('select FullName from funclass');
daoqApifunname.SQL.Add('where Name="' + funname + '"');
daoqApifunname.Open;
name := daoqApi.FieldByName('函数').asstring;
libname := daoqApi.FieldByName('库名').asstring;
alias := daoqApi.FieldByName('别名').asstring;
if dbch95.Checked then
os := os + '95/98/ME';
if dbchnt.Checked then
os := os + '/NT/2000/XP';
tempstrlist := tstringlist.Create;
mmShowdata.Clear;
tempstrlist.Add('');
tempstrlist.Add('【函数名】');
tempstrlist.Add(name);
tempstrlist.Add('');
tempstrlist.Add('【库名】');
tempstrlist.Add(libname);
if alias <> '' then
begin
tempstrlist.Add('');
tempstrlist.Add('【别名】');
tempstrlist.Add(alias);
end;
tempstrlist.Add('');
tempstrlist.Add('【适用范围】');
tempstrlist.Add(os);
tempstrlist.Add('');
tempstrlist.Add('【VB声明】');
for I := 0 to dbmexplain.Lines.Count do
tempstrlist.Add(dbmFullName.Lines[I]);
if trim(dbmexplain.Text) <> '' then
begin
tempstrlist.Add('');
tempstrlist.Add('【说明】');
for I := 0 to dbmexplain.Lines.Count do
tempstrlist.Add(dbmexplain.Lines[I]);
end;
if trim(dbmreturn.Text) <> '' then
begin
tempstrlist.Add('');
tempstrlist.Add('【返回值】');
for I := 0 to dbmreturn.Lines.Count do
tempstrlist.Add(dbmreturn.Lines[I]);
end;
if trim(dbmother.Text) <> '' then
begin
tempstrlist.Add('');
tempstrlist.Add('【备注】');
for I := 0 to dbmother.Lines.Count do
tempstrlist.Add(dbmother.Lines[I]);
end;
if trim(dbmparameter.Text) <> '' then
begin
tempstrlist.Add('');
tempstrlist.Add('【参数】');
for I := 0 to dbmparameter.Lines.Count do
tempstrlist.Add(dbmparameter.Lines[I]);
end;
mmShowdata.lines := tempstrlist;
tempstrlist.free;
end;
procedure TApiModuleForm.loaddata;
var I: integer;
begin
daoqApi.Open;
lbShowname.Items.Clear;
daoqApi.First;
for I := 0 to 60 do
begin
if (I < 60) and (not daoqApi.Eof) then
lbShowname.Items.Add(daoqApi.FieldByName('函数').asstring);
daoqApi.Next;
end;
end;
procedure TApiModuleForm.FormCreate(Sender: TObject);
var
FileName: string;
begin
inherited;
FileName := ExtractFilePath(Application.ExeName) + 'delphi.dll';
if FileExists(FileName) then
begin
if daoqApi.Active = True then daoqApi.Active := False;
daoqApi.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + FileName + ';Persist Security Info=False;jet OLEDB:Database Password=VB6STKIT.DLLsoftpb;';
daoqApifunname.ConnectionString := daoqApi.ConnectionString;
Timer1.Enabled := true;
end
else
messagebox(handle, '数据库文件没找到!', 'Delphi函数工厂', 48);
end;
procedure TApiModuleForm.lbShownameClick(Sender: TObject);
begin
inherited;
edtSearch.Text := lbShowname.Items[lbShowname.ItemIndex];
showdata(edtSearch.Text);
end;
procedure TApiModuleForm.edtSearchChange(Sender: TObject);
begin
inherited;
if edtSearch.Focused then
begin
daoqapi.Close;
daoqapi.SQL.Clear;
daoqapi.SQL.Add('select * from Apifun');
if rgSearchtype.ItemIndex = 0 then
daoqapi.SQL.Add('where 函数 like "' + edtSearch.Text + '%"')
else
daoqapi.SQL.Add('where 函数 like "%' + edtSearch.Text + '%"');
daoqapi.SQL.Add('ORDER by 函数');
daoqapi.Open;
loaddata;
end;
end;
procedure TApiModuleForm.rgSearchtypeClick(Sender: TObject);
begin
inherited;
edtSearch.SetFocus;
edtSearchChange(nil);
end;
procedure TApiModuleForm.sbSearchClick(Sender: TObject);
begin
inherited;
if lbShowname.Items.Count > 0 then
begin
lbShowname.SetFocus;
edtSearch.Text := lbShowname.Items[0];
showdata(edtSearch.Text);
end;
end;
procedure TApiModuleForm.edtSearchKeyPress(Sender: TObject; var Key: Char);
begin
inherited;
if key = #13 then
sbSearchClick(nil);
end;
procedure TApiModuleForm.Timer1Timer(Sender: TObject);
begin
inherited;
loaddata();
Timer1.Free;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -