请各位看看我我的代码的书写习惯好不好?或者有什么更好的意见,谢谢(30)

  • 主题发起人 主题发起人 星幻子
  • 开始时间 开始时间

星幻子

Unregistered / Unconfirmed
GUEST, unregistred user!
技术菜,请不要对其内容进行技术评级.......unit Uit_Login;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons,Uit_DB, ExtCtrls;type TFrm_Login = class(TForm) Panel1: TPanel
Label1: TLabel
Edit1: TEdit
Label2: TLabel
Edit2: TEdit
BitBtn1: TBitBtn
BitBtn2: TBitBtn
CheckBox1: TCheckBox
Label3: TLabel
Timer1: TTimer
procedure FormCreate(Sender: TObject)
procedure FormClose(Sender: TObject
var Action: TCloseAction)
procedure FormShow(Sender: TObject)
procedure BitBtn1Click(Sender: TObject)
procedure BitBtn2Click(Sender: TObject)
procedure Edit2KeyPress(Sender: TObject
var Key: Char)
procedure Timer1Timer(Sender: TObject)
private { Private declarations } public { Public declarations } end;var Frm_Login: TFrm_Login
Done: Boolean=False;implementationuses DB;{$R *.dfm}procedure TFrm_Login.FormCreate(Sender: TObject);begin //end;procedure TFrm_Login.FormShow(Sender: TObject);begin //AnimateWindow(Handle,700,AW_BLEND)
CheckBox1.Checked := DM.UserIni.ReadBool('Login','NoteName',False)
if CheckBox1.Checked then Edit1.Text := DM.UserIni.ReadString('Login','UserName','')
if Edit1.Text <> '' then Edit2.SetFocus else Edit1.SetFocus
BitBtn1.Click;end;procedure TFrm_Login.FormClose(Sender: TObject
var Action: TCloseAction);begin if not Done then Application.Terminate;end;procedure TFrm_Login.BitBtn1Click(Sender: TObject);begin if (Trim(Edit1.Text)='')or(Trim(Edit2.Text)='') then begin Application.MessageBox('请输入用户名和密码!','提示',MB_OK+MB_ICONINFORMATION)
Exit
end
QueryTable('select * from guser where GNAME = '''+Edit1.Text+'''',DM.ADQ_User)
if DM.ADQ_User.IsEmpty then begin Application.MessageBox('该用户名不存在,请检查后重新输入!','提示', MB_OK+MB_ICONERROR)
Edit1.Clear;Edit2.Clear
Exit
end
if DM.ADQ_User.FieldByName('GPASS').AsString <> Trim(Edit2.Text) then begin Application.MessageBox('密码错误!','提示', MB_OK+MB_ICONERROR)
Edit2.clear
end else begin //DM.UserName := XDB.ADOQuery_User.FieldByName('Gfullname').AsString
if CheckBox1.Checked then begin DM.UserIni.WriteBool('Login','NoteName',True)
DM.UserIni.WriteString('Login','UserName',Edit1.Text)
end
DM.ADQ_SYS.Active := True
Done := True
Close
end;end;procedure TFrm_Login.BitBtn2Click(Sender: TObject);begin Application.Terminate;end;procedure TFrm_Login.Edit2KeyPress(Sender: TObject
var Key: Char);begin if Key in [#13] then begin BitBtn1.Click
Key := #0
end;end;procedure TFrm_Login.Timer1Timer(Sender: TObject);begin Label3.Caption := DateTimeToStr(Now)
end;end.
 
书写风格先不说 只声明了一个变量就是全局变量楼主的编程思想有待提高
 
可以把Done: Boolean=False;放在implementation的后面,另外还要注意缩进,可以使用tab键,你可以去WWW.DELPHIFANS.COM上面看看,里面有关于DELPHI的代码书写说明。
 
TO ball_cao能详细的说明下吗?
 
建议到www.CnPack.org看看
 
除了楼上说的我再说几点,控件命名加上,让别人一看就知道这个控件是做什么的,如BitBtn2可命名为btnClose;类似BitBtn1Click这种过程可以另外做个私有函数,直接写看起来很累;类似这种代码CheckBox1.Checked := DM.UserIni.ReadBool('Login','NoteName',False);应该加上适当的注释,让别人一看就知道这些代码是做什么的
 
对, 还有一点就是, 最好还是能有 VCL 源码的书写风格, 这样看源码时也方便.``
 
指导思想“除了你自己能看懂,别人也能看懂,这样的代码就是好代码”
 
控件命名要规范,代码要缩进两个空格
 
Done: Boolean=False;全局变量,自动有初始值的吧
 
多人接受答案了。
 

Similar threads

后退
顶部