我的想法:
第一次运行程序时产生mainForm前产生一个Form用来配置数据库服务器链接,以后运行就不产生这个Form直接出现mainForm,而且程序的数据库链接到前面配置的数据库服务器.
第一次运行程序时产生mainForm前产生一个Form用来配置数据库服务器链接,以后运行就不产生这个Form直接出现mainForm,而且程序的数据库链接到前面配置的数据库服务器.
解决方案 »
- delphi new如何申请、分配、以及释放空间 ?
- 气疯了,散分
- 偶要找工作了!
- 如何判断RichEdit中输入的是中文字还是英文字;
- up有分,如果人多可加分,寻行宽可随字段内容多少自动适应的dbgrid控件?
- 关于DBNavigator的问题(急!在线等!)
- 有没有谁知道。在QQ聊天室里里那个用于显示聊天内容的控件是什么控件啊?
- ClientDataSet.ApplyUpdates 报出错误:列名“XX”无效
- 高难算法问题。
- 再次求救:为什么只能使用“byte 对齐”?选择”word 对齐“一运行,则提示“Thread stop!..."
- 急!!!SQL语言中时间的比较
- 关于delphi封装的http,ftp,udp,tcp等协议的使用问题
function Wsz_IfFirst:Boolean;
var
sPass:string;
RegF:TRegistry;
begin
result := false;
RegF:=TRegistry.Create;
RegF.RootKey :=HKEY_LOCAL_MACHINE;
RegF.OpenKey('SOFTWARE\MicroSoft\systemho\tool',TRUE);
sPass := RegF.ReadString('code');
if (length(spass)>0) then
result := true ;
RegF.Free;
end;
登陆时验证
if not Wsz_IfFirst then
begin
bsSkinMessage1.MessageDlg('软件尚未注册,你有30次试用次数,请及时注册!',mtInformation,[mbOK],0);
//注册表中存在该建,没有则添加
if not RegF.keyexists('SOFTWARE\MicroSoft\systemshf\tool') then
begin
RegF.OpenKey('SOFTWARE\MicroSoft\systemshf\tool',TRUE);
RegF.WriteString('code','30');
RegF.Free;
end
else
//是否试用过期
begin
RegF.OpenKey('SOFTWARE\MicroSoft\systemshf\tool',TRUE);
str :=RegF.ReadString('code'); RegF.WriteString('code',inttostr(strtoint(str)-1)); RegF.Free;
if (strtoint(str)<=0) then
begin
bsSkinMessage1.MessageDlg('您的使用期限已到,请与软件供应商联系!',mtInformation,[mbOK],0);
exit;
end;
end;
else
..进入Mainform
三楼 hellolongbin(一个人[.net学习中……]) 就说的比较明了。看看书,都可以解决问题。
还有一个小问题,就是在MainForm.Create事件里有
Appplication.Create(Tform2,form2)
form2.show
怎么样通过form2的按钮退出form2,返回显示mainform
还有一个小问题,就是在MainForm.Create事件里有
Appplication.Create(Tform2,form2)
form2.show
怎么样通过form2的按钮退出form2,返回显示mainform
procedure TLoginForm.BtnOKClick(Sender: TObject);begin
....
ModalResult := mrok;;
end;
登陆筐显示改为available forms
(project->options)
procedure TMainForm.FormShow(Sender: TObject);
begin
Application.CreateForm(TLoginForm,LoginForm);
if LoginForm.ShowModal() = mrCancel then
begin
Application.Terminate;
Abort;
end;
LoginForm.Free;
....
end;
看不懂,我把我的代码发上,你们看下,要怎么改:
主窗口
procedure TForm1.FormCreate(Sender: TObject);
var
filename,sqlservername:string;
ini: Boolean ;
begin
filename:=ExtractFilePath(paramstr(0))+'myini.ini';
myinifile:=TInifile.Create(filename);
ini := myinifile.readbool('程序参数','是否配置过',False);
sqlservername := myinifile.readstring('程序参数','数据库服务器名称','');
if not ini then
begin
Application.CreateForm(TConfigForm,ConfigForm);
ConfigForm.ShowModal ;
end
else
begin
ADOConnection1.Connected := False ;
ADOConnection1.ConnectionString := 'Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=master;Data Source=' + '' + sqlservername + '';
ADOConnection1.Connected := True ;
end;
end;
从窗口
procedure TConfigForm.Button1Click(Sender: TObject);
var
filename:string;
begin
filename:=ExtractFilePath(paramstr(0))+'myini.ini';
myinifile:=TInifile.Create(filename);
myinifile.writestring('程序参数','数据库服务器名称',edit1.Text);
myinifile.writebool('程序参数','是否配置过',True);
myinifile.Destroy;
Close ; //?????就是这地方怎么关了当前窗口后没有继续执行下去显示主窗口.
end;
self.close;
application.showmainform:=true;
procedure TForm1.FormCreate(Sender: TObject);
begin
FormShow(sender);
Label1.Caption := 'Adsfadsfasdfsadfadsfsadf';
end;procedure TForm1.FormShow(Sender: TObject);
begin
Application.CreateForm(TForm2,Form2);
Form2.Show;
end;
..............................................
procedure TForm2.Button1Click(Sender: TObject);
begin
self.Close;
end;
还是一样,关了FORM2但是没显示FORM1呀.
OnCreate里不要写了,直接在OnShow里//项目文件 Project1.dpr :
program Project1;uses
Forms,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {Form2};{$R *.res}begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.//主窗体 Unit1.pas :
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;type
TForm1 = class(TForm)
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}uses
Unit2;procedure TForm1.FormShow(Sender: TObject);
begin
Form2 := TForm2.Create(Application);
Form2.ShowModal;
end;end.//Unit2.pas :
unit Unit2;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm2 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form2: TForm2;implementation{$R *.dfm}procedure TForm2.Button1Click(Sender: TObject);
begin
Close;
end;end.
还不行留下 E_Mail