冒泡排序的算法。 procedure sort(var data:array of integer; n:integer); var i, j, temp:integer; begin for j:=n-1 downto 1 do for i:=0 to j-1 do begin //交换次序不对者 if data[i]>data[i+1] then begin temp:=data[i]; data[i]:=data[i+1]; data[i+1]:=temp; end; end; end;
月度归档: 2016 年 9 月
[代码] 回车移动焦点
在当前焦点按下回车自动移动到下移控件。 procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if Key = 13 then begin keybd_event(VK_TAB,0,KEYEVENTF_EXTENDEDKEY,0); //按下 keybd_event(VK_TAB,0,KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP,0); /
[代码]动态创建窗体
程序动态创建窗体,是优化程序一个很重要的细节。 procedure TForm1.N3Click(Sender: TObject); var Form2:TForm2; begin Form2:=TForm2.Create(nil); try Form2.ShowModal; finally form2.Free; end; end; procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction); begin Acti
[代码]设置窗体位于最前
这个功能是利用了系统的API,让程序位于最前,在实际中还是有一定的作用的。 procedure TForm1.CheckBox1Click(Sender: TObject); begin if CheckBox1.Checked then SetWindowPos(Handle,HWND_TOPMOST,Left,Top,Width,Height,0)//设置窗体至上 else SetWindowPos(Handle,HWND_NOTOPMOST,Left,Top,Width,Height,0)
[代码]创建登录闪现窗体
显示登陆窗体前加载一个动态框,如正在载入资源之类的,内容自己定义吧。 Application.Initialize; Form2:=TForm2.Create(Application);{Create创建闪现窗口对象} Form2.Show; Form2.Update; Application.CreateForm(TForm1, Form1); Sleep(1000); Form2.Hide; Form2.Free;{Free从内存中释放对象} Application.Run;
[代码]密码最多输入三次出错退出
这个是登录窗口的一个验证机制,写法很多种,这是其中一种。 procedure TFrmOrderBy.BtnOrderClick(Sender: TObject); begin if Length(EdtPassWord.Text) = 0 then Exit; with AQuery do begin Close; SQL.Clear; SQL.Add('select pwdcompare(:Pass,loginpassword) from login where loginname
[代码]窗体关闭时提示变动的保存
如果窗体有数据操作,在未保存时关闭窗体,进行一个提示。 procedure TFrmSave.FormCloseQuery(Sender: TObject; var CanClose: Boolean); //窗体关闭时提示变动的保存 begin if ADODataSet1.State in [dsInsert, dsEdit] then begin if MessageBox(0, '发现未保存的数据,需要保存吗?', '', MB_YESNO + M