Delphi7学习记录-demo实例
生活随笔
收集整理的這篇文章主要介紹了
Delphi7学习记录-demo实例
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Delphi7
程序化結構設計
if…else
unit demo12;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls;typeTForm1 = class(TForm)Label1: TLabel;Label2: TLabel;Edit1: TEdit;Label3: TLabel;Label4: TLabel;Button1: TButton;Button2: TButton;procedure FormCreate(Sender: TObject);procedure Button2Click(Sender: TObject);procedure Button1Click(Sender: TObject);procedure Edit1Click(Sender: TObject);private{ Private declarations }public{ Public declarations }end;varForm1: TForm1;temp1: integer;temp2: integer;result : integer;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject); begin SetWindowLong(Edit1.Handle,GWL_STYLE,GetWindowLong(Edit1.Handle,GWL_STYLE) or Es_right); temp1 := Random(100); temp1 := Random(100); temp2 := Random(100); temp2 := Random(100); Label1.Caption := intToStr(temp1); Label2.Caption := intToStr(temp2); result := temp1 + temp2; end;procedure TForm1.Button2Click(Sender: TObject); var tempResult : integer; begintempResult := strToInt(Edit1.Text);if(result = tempResult) then//showMessage('恭喜你,猜對了')messageBox(handle, '恭喜你,猜對了','提醒',MB_OK) // MessageDia()elseshowMessage('哈哈,猜錯了,再來'); end;procedure TForm1.Button1Click(Sender: TObject); begin temp1 := Random(100); temp2 := Random(100); Label1.Caption := intToStr(temp1); Label2.Caption := intToStr(temp2); result := temp1 + temp2; end;procedure TForm1.Edit1Click(Sender: TObject); beginEdit1.Text := ''; end;end.case
米紅燈
unit demo13;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls, ExtCtrls;typeTForm1 = class(TForm)Label1: TLabel;Timer1: TTimer;procedure FormCreate(Sender: TObject);procedure Timer1Timer(Sender: TObject);private{ Private declarations }public{ Public declarations }end;varForm1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject); beginForm1.AutoSize := true;Label1.AutoSize := true; end;procedure TForm1.Timer1Timer(Sender: TObject); beginForm1.Left := random(500);Form1.top := random(600);Label1.Font.Size := random(30);case (random(5)) of // 顏色隨機0: Label1.color := clYellow;1: Label1.color := clBlue;2: Label1.color := clRed;3: Label1.color := clWhite;4: Label1.color := clSkyBlue;5: Label1.color := clwindow;end;case (random(5)) of // 顏色隨機0: Label1.font.color := clYellow;1: Label1.font.color := clBlue;2: Label1.font.color := clRed;3: Label1.font.color := clWhite;4: Label1.font.color := clSkyBlue;5: Label1.font.color := clwindow;end; end;end.demo
密碼驗證
unit demo14;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls;typeTForm1 = class(TForm)Label1: TLabel;Edit1: TEdit;Button1: TButton;procedure FormCreate(Sender: TObject);procedure Button1Click(Sender: TObject);procedure Edit1Click(Sender: TObject);private{ Private declarations }public{ Public declarations }end;varForm1: TForm1; constpassword : string = 'hopeful';varcount : integer = 3; implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject); beginSetWindowLong(Edit1.Handle,GWL_STYLE,GetWindowLong(Edit1.Handle,GWL_STYLE) or Es_center); // 居中對齊Edit1.Invalidate;label1.AutoSize := true;label1.Width := 200; end;procedure TForm1.Button1Click(Sender: TObject); varstr : string; beginstr := Edit1.Text;if(str = password) thenmessageBox(handle, '恭喜你,猜對了','提醒',MB_OK)elsebegincount := count - 1;if(count < 1) thenbeginmessageBox(handle, '哈哈,您猜錯3次了,程序將會自動關閉','警告',MB_OK or MB_ICONSTOP);Close;endelsebeginlabel1.Caption := '哈哈,您猜錯,還有' + intToStr(count) + '次機會';label1.Width := 200;endend end;procedure TForm1.Edit1Click(Sender: TObject); beginEdit1.Text := ''; end; end.可以顯示密碼的密碼驗證
unit demo15;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls;typeTForm1 = class(TForm)Edit1: TEdit;Button1: TButton;CheckBox1: TCheckBox;Label1: TLabel;procedure FormCreate(Sender: TObject);procedure Edit1Click(Sender: TObject);procedure Button1Click(Sender: TObject);procedure CheckBox1Click(Sender: TObject);private{ Private declarations }public{ Public declarations }end;varForm1: TForm1;count : integer = 3;showPwd : boolean = false; constpassword : string = 'hopeful';implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject); beginSetWindowLong(Edit1.Handle,GWL_STYLE,getWindowLong(Edit1.Handle,GWL_STYLE) or Es_center);Edit1.invalidate;Label1.Width := 220; end;procedure TForm1.Edit1Click(Sender: TObject); beginEdit1.Text := ''; end;procedure TForm1.Button1Click(Sender: TObject); vartemp : string; begintemp := Edit1.Text;if(password = temp) thenbeginmessageBox(handle, '恭喜你,猜對了','提醒',MB_OK);count := 3;endelsebegincount := count - 1;if(count < 1) thenbeginmessageBox(handle, '哈哈,您猜錯3次了,程序將會自動關閉','提醒',MB_OK or MB_ICONSTOP);close;endelseshowMessage('哈哈,猜錯了,再來');end end;procedure TForm1.CheckBox1Click(Sender: TObject); beginshowPwd := not showPwd;if(showPwd) thenEdit1.PasswordChar := #0elseEdit1.PasswordChar := '$'; end;end.簡答加密且顯示密碼的密碼驗證
unit demo15;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls;typeTForm1 = class(TForm)Edit1: TEdit;Button1: TButton;CheckBox1: TCheckBox;Label1: TLabel;procedure FormCreate(Sender: TObject);procedure Edit1Click(Sender: TObject);procedure Button1Click(Sender: TObject);procedure CheckBox1Click(Sender: TObject);private{ Private declarations }public{ Public declarations }end;varForm1: TForm1;count : integer = 3;showPwd : boolean = false; constpassword : string = 'hopeful';implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject); beginSetWindowLong(Edit1.Handle,GWL_STYLE,getWindowLong(Edit1.Handle,GWL_STYLE) or Es_center);Edit1.invalidate;Label1.Width := 220; end;procedure TForm1.Edit1Click(Sender: TObject); beginEdit1.Text := ''; end;procedure TForm1.Button1Click(Sender: TObject); vartemp : string;temp1 : String;temp2 : string; begintemp := Edit1.Text;temp1 := temp;delete(temp1,1,4);temp2 := password;delete(temp2,1,4);if(temp1 = temp2) thenbeginmessageBox(handle, '恭喜你,猜對了','提醒',MB_OK);count := 3;endelsebegincount := count - 1;if(count < 1) thenbeginmessageBox(handle, '哈哈,您猜錯3次了,程序將會自動關閉','提醒',MB_OK or MB_ICONSTOP);close;endelseshowMessage('哈哈,猜錯了,再來');end end;procedure TForm1.CheckBox1Click(Sender: TObject); beginshowPwd := not showPwd;if(showPwd) thenEdit1.PasswordChar := #0elseEdit1.PasswordChar := '$'; end;end.屏保
unit demo16;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, jpeg, ExtCtrls, StdCtrls;typeTForm1 = class(TForm)Image1: TImage;Image2: TImage;Timer1: TTimer;Label1: TLabel;Edit1: TEdit;Button1: TButton;procedure FormCreate(Sender: TObject);procedure Timer1Timer(Sender: TObject);procedure Edit1Click(Sender: TObject);procedure FormKeyDown(Sender: TObject; var Key: Word;Shift: TShiftState);procedure Button1Click(Sender: TObject);private{ Private declarations }public{ Public declarations }end;varForm1: TForm1;showPwdEdit : boolean;count : integer;seconds :integer; // 三次密碼錯誤 鎖定時間isLockStart : boolean; // 是否開始鎖定constwidth : integer = 1920;height: integer = 1080;password: string = 'hopeful';maxSeconds : integer = 10; implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject); beginLabel1.width := 250;Form1.Width := width;Form1.Height := height;Form1.Left := 0;Form1.Top := 0;Image1.Width := width;Image1.Height := height;Image1.Left := 0;Image1.Top := 0;Image2.Width := width;Image2.Height := height;Image2.Left := 0;Image2.Top := 0;Button1.Visible := false;Edit1.Visible := false;// 顯示密碼編輯框showPwdEdit := false;isLockStart := false; // 鎖定未開始// 密碼最大輸入次數count := 3;end;procedure TForm1.Timer1Timer(Sender: TObject); beginif(isLockStart) thenseconds := seconds + 1;Label1.left := Random(width - 250);Label1.top := Random(height - 20);case (Random(5)) of0:Label1.font.color := clTeal;1:Label1.font.color := clGreen;2:Label1.font.color := clRed;3:Label1.font.color := clBlue;4:Label1.font.color := clPurple;end;// 設置字體Label1.Width := 250;Label1.Alignment := taCenter; end;procedure TForm1.Edit1Click(Sender: TObject); beginEdit1.Text := ''; end;procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;Shift: TShiftState); beginif(Key = VK_SPACE) thenbeginif(showPwdEdit) thenbeginshowPwdEdit := false;Button1.Visible := false;Edit1.Visible := false;Label1.Visible := true;endelsebeginshowPwdEdit := true;Button1.Visible := true;Edit1.Visible := true;Label1.Visible := false;endend end;procedure TForm1.Button1Click(Sender: TObject); varpwd : string; beginpwd := Edit1.Text;if(password = pwd) thenbegincount := 3;Edit1.Text := '恭喜你,密碼正確';close;endelsebeginif(isLockStart) thenbeginif(seconds < maxSeconds) thenmessageBox(handle, '您已猜錯3次了,請稍后再次重試','警告',MB_OK or MB_ICONSTOP)elsebeginisLockStart := false; // 重置是否開始鎖定seconds := 0; // 重置鎖定時間count := 3;endendelsebegincount := count - 1;if(count < 1) thenbeginmessageBox(handle, '哈哈,您猜錯3次了,請稍后重試','警告',MB_OK or MB_ICONSTOP);isLockStart := true;endelsebeginEdit1.Text := '密碼錯誤,您還有' + intToStr(count) + '次機會';endendend end;end.循環
while循環
unit demo17;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls;typeTForm1 = class(TForm)Edit1: TEdit;Label1: TLabel;Edit2: TEdit;Button1: TButton;procedure Button1Click(Sender: TObject);private{ Private declarations }public{ Public declarations }end;varForm1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject); varnum1 : integer;num2 : integer;sum : integer; beginsum := 0;trynum1 := strToInt(Edit1.Text);num2 := strToInt(Edit2.Text);while(num1 <= num2) dobeginsum := sum + num1;num1 := num1 + 1;end;Button1.Caption := intToStr(sum);exceptButton1.Caption := '請輸入合法數字';end end;end.repeat…until
unit demo17;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls;typeTForm1 = class(TForm)Edit1: TEdit;Label1: TLabel;Edit2: TEdit;Button1: TButton;procedure Button1Click(Sender: TObject);private{ Private declarations }public{ Public declarations }end;varForm1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject); varnum1 : integer;num2 : integer;sum : integer; beginsum := 0;trynum1 := strToInt(Edit1.Text);num2 := strToInt(Edit2.Text);(*while(num1 <= num2) dobeginsum := sum + num1;num1 := num1 + 1;end;*)repeatsum := sum + num1;num1 := num1 + 1;until(num1 > num2);Button1.Caption := intToStr(sum);exceptButton1.Caption := '請輸入合法數字';end end;end.for循環
升序 to
unit demo17;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls;typeTForm1 = class(TForm)Edit1: TEdit;Label1: TLabel;Edit2: TEdit;Button1: TButton;procedure Button1Click(Sender: TObject);private{ Private declarations }public{ Public declarations }end;varForm1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject); varnum1 : integer;num2 : integer;sum : integer; beginsum := 0;trynum1 := strToInt(Edit1.Text);num2 := strToInt(Edit2.Text);(*while(num1 <= num2) dobeginsum := sum + num1;num1 := num1 + 1;end;repeatsum := sum + num1;num1 := num1 + 1;until(num1 > num2); *)for num1 := strToInt(Edit1.Text) to num2 dosum := sum + num1;Button1.Caption := intToStr(sum);exceptButton1.Caption := '請輸入合法數字';end end;end.降序 downTo
unit demo17;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls;typeTForm1 = class(TForm)Edit1: TEdit;Label1: TLabel;Edit2: TEdit;Button1: TButton;procedure Button1Click(Sender: TObject);private{ Private declarations }public{ Public declarations }end;varForm1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject); varnum1 : integer;num2 : integer;sum : integer; beginsum := 0;trynum1 := strToInt(Edit1.Text);num2 := strToInt(Edit2.Text);(*while(num1 <= num2) dobeginsum := sum + num1;num1 := num1 + 1;end;repeatsum := sum + num1;num1 := num1 + 1;until(num1 > num2); for num1 := strToInt(Edit1.Text) to num2 dosum := sum + num1; *)for num2 := strToInt(Edit2.Text) DownTo num1 dosum := sum + num2;Button1.Caption := intToStr(sum);exceptButton1.Caption := '請輸入合法數字';end end;end.數組
隨機數獲取最大/最小值
unit demo18;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls;typeTForm1 = class(TForm)Edit1: TEdit;Button1: TButton;Label1: TLabel;Label2: TLabel;Edit2: TEdit;Edit3: TEdit;procedure Button1Click(Sender: TObject);procedure FormCreate(Sender: TObject);private{ Private declarations }public{ Public declarations }end;varForm1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject); varmin : integer;max : integer;i : integer;numArr : Array[1..10] of Integer; beginrandomize; // 設置隨機種子,使其每次產生的隨機數不同min := 0;max := 0;Edit1.Text := '';for i := 1 to 10 dobeginnumArr[i]:= Random(100);Edit1.Text := Edit1.Text + intToStr(numArr[i]);if(i < 10) thenEdit1.Text := Edit1.Text + ','end;min := numArr[1];max := numArr[1];for i := 1 to 10 dobeginif(min>numArr[i]) thenmin := numArr[i];if(max<numArr[i]) thenmax := numArr[i];end;Edit2.Text := intToStr(max);Edit3.Text := intToStr(min);end;procedure TForm1.FormCreate(Sender: TObject); beginSetWindowLong(Edit1.Handle,GWL_STYLE,GetWindowLong(Edit1.Handle,GWL_STYLE) or Es_center); // 居中對齊 end;end.二維數組
Type arr1 = Array[下標類型1,下標類型2] of 基本數據類型 Type arr2 = Array[下標類型1] of Array[下標類型2] of 基本數據類型統計分數
unit demo19;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, Grids, StdCtrls;typeTForm1 = class(TForm)table1: TStringGrid;Button1: TButton;procedure FormCreate(Sender: TObject);procedure Button1Click(Sender: TObject);procedure table1DrawCell(Sender: TObject; ACol, ARow: Integer;Rect: TRect; State: TGridDrawState);private{ Private declarations }public{ Public declarations }end;varForm1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject); begintable1.cells[1,0]:='語文';table1.cells[2,0]:='數學';table1.cells[3,0]:='外語';table1.cells[4,0]:='總成績';table1.cells[0,1]:='小明';table1.cells[0,2]:='小紅'; end;procedure TForm1.Button1Click(Sender: TObject); begintrytable1.cells[4,1] := intToStr(strToInt(table1.cells[1,1]) + strToInt(table1.cells[2,1]) + strToInt(table1.cells[3,1]));excepttable1.cells[4,1] := '數據非法';end;trytable1.cells[4,2] := intToStr(strToInt(table1.cells[1,2]) + strToInt(table1.cells[2,2]) + strToInt(table1.cells[3,2]));excepttable1.cells[4,2] := '數據非法';end end;procedure TForm1.table1DrawCell(Sender: TObject; ACol, ARow: Integer;Rect: TRect; State: TGridDrawState); begin with Sender as TStringGrid dobeginCanvas.FillRect(Rect);DrawText(Canvas.Handle, Pchar(Cells[ACol, ARow]),Length(Cells[ACol, ARow]), Rect,DT_CENTER or DT_SINGLELINE or DT_VCENTER);end; end;end.Edit編輯框
右對齊
procedure TForm1.FormCreate(Sender: TObject); begin SetWindowLong(Edit1.Handle,GWL_STYLE,GetWindowLong(Edit1.Handle,GWL_STYLE) or Es_right); // 居右對齊 Edit1.Invalidate; SetWindowLong(Edit1.Handle,GWL_STYLE,GetWindowLong(Edit1.Handle,GWL_STYLE) or Es_center); // 居中對齊 end;窗口置頂
setwindowpos(self.handle,HWND_TOPMIOST,0,0,0,0,SWP_NOMOVE or SWP_NOSIZE);//窗口置頂 setwindowpos(self.handle,HWND_NOTOPMIOST,0,0,0,0,SWP_NOMOVE or SWP_NOSIZE);//取消窗口置頂表格文本居中
procedure TForm1.table1DrawCell(Sender: TObject; ACol, ARow: Integer;Rect: TRect; State: TGridDrawState); begin with Sender as TStringGrid dobeginCanvas.FillRect(Rect);DrawText(Canvas.Handle, Pchar(Cells[ACol, ARow]),Length(Cells[ACol, ARow]), Rect,DT_CENTER or DT_SINGLELINE or DT_VCENTER);end; end;感謝小甲魚的精心制作:視頻教程
視頻教程
待續。。。
總結
以上是生活随笔為你收集整理的Delphi7学习记录-demo实例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: delphi7中的局部变量和全局变量
- 下一篇: mysql 报broken pipe_M