Wolfgang Chien's Homepage | Delphi¾Ç²ßµ§°O - °Ýµª½g |
¦p¦ó¥Î¤@¹D«ü¥O§PÂ_¦UºØª«¥óªº¤º®e¬OªÅªº,¦p:
Edit1.Text='' ©Î Memo1.Lines.Count=0 ©Î CheckBox1.Checked=False ....
¦Ó¤£»Ýn¼g¤@¤j¦êªº if ... else if ... else if
¨Ã¨S¦³¬Ý¹L¦³¤°»ò«ü¥O¥i¥Hª½±µ©I¥s, ¤£¹L±z¥i¥H°Ñ¦Ò¥H¤Uªº¨ç¼Æ: (TVarRec ¬O¦b System ³æ¤¸¤¤¤w©w¸q¹Lªº°O¿ý)
(* -------------------------------------------------- *) (* ¶Ç¤J¶°¦X°Ñ¼Æ, §PÂ_¬O§_¬°ªÅÈ (* (* NOTE: ¤wª¾µLªk³B²z record »P¯BÂI¼Æ³o¨âºØ¸ê®Æ«¬ºA (* -------------------------------------------------- *) function IsEmpty(const Argu: array of TVarRec): boolean; (* EmptyStr() *) (* §PÂ_¬O§_¦³ªÅ¦r¦ê(ªø«×¬°¹s), ©ÎªÌ¬O¥þ¬°ªÅ¥Õ¦r¤¸²Õ¦¨ªº¦r¦ê *) function EmptyStr(const sAString: String): boolean; var b: integer; begin b := Length(sAString); while (sAString[b] in [' ', #9, #12, #13]) and (b > 0) do Dec(b); if b > 0 then Result := FALSE else Result := TRUE; end; (* EmptyStr *) begin Result := True; with Argu[0] do begin if VInteger = 0 then Exit; if not VBoolean then Exit; if VChar in [' ', #9, #12, #13] then Exit; if VPChar = nil then Exit; if VPointer = nil then Exit; if EmptyStr(VString^) then Exit; end; Result := False; end; { of IsEmpty }
¨Ï¥Îªº¨Ò¤l:
- Å޿諬ºA if isEmpty([CheckBox1.Checked]) then ShowMessage('UnCheck'); - ¾ã¼Æ«¬ºA Test := 0; if IsEmpty([Test]) then ShowMessage('Empty'); - ¦r¦ê«¬ºA Test := ''; if IsEmpty([Test]) then ShowMessage('Empty'); - ( ¦CÁ|«¬ºA ) Test := clBlack; { Test: TColor; } if IsEmpty([Test]) then ShowMessage('clBlack'); - ( ª«¥ó ) procedure TForm1.Button1Click(Sender: TObject); var btnTest: TButton; begin btnTest := nil; if IsEmpty([btnTest]) then ShowMessage('Empty'); btnTest := TButton.Create(Self); btnTest.Parent := Self; if not IsEmpty([btnTest]) then ShowMessage('Not Empty Now'); end;
³oÓ¨ç¼Æ¤~è¼g¥X¨Ó¦Ó¤w, ¤j®a¥Îªº®ÉÔÁÙ¬On¤p¤ß¬°¬O..., Yµo²{¤°»ò°ÝÃD, ³Â·Ð½Ð¨Ó«H§i¶D§Ú, ÁÂÁÂ! :)
¤p§Ì¥t¤@¥÷¦^«H©Ò¥Îªº¬O open-array ªº§@ªk, ¦b¼g§@®É¤p§Ìµo²{¥t¤@Ó°ÝÃD:
ì¥ý¬O¥´ºâ¥H untype parameters ¨Ó¹ê§@, ¦b Delphi 1.0 µo®i¦n«á, ¥»¨Ó°ª°ª¿³¿³ªº´N¥´ºâ post ¥X¥h¤F,¥i¬OÁ{®É¤Sµo²{¦b Delphi 2.0 °õ¦æ®É¤@°ï°ÝÃD, ¦³¨S¦³¤H¯à§i¶D§Ú°ÝÃD¥X¦bþùضÜ? ÁÂÁÂ!
function IsEmpty(const Argu): boolean; (* EmptyStr() *) (* §PÂ_¬O§_¦³ªÅ¦r¦ê(ªø«×¬°¹s), ©ÎªÌ¬O¥þ¬°ªÅ¥Õ¦r¤¸²Õ¦¨ªº¦r¦ê *) function EmptyStr(const sAString: String): boolean; var b: integer; begin b := Length(sAString); while (sAString[b] in [' ', #9, #12, #13]) and (b > 0) do Dec(b); if b > 0 then Result := FALSE else Result := TRUE; end; (* EmptyStr *) begin Result := True; if not Boolean(Argu) then Exit; if EmptyStr(String(Argu)) then Exit; if Pointer(Argu) = nil then Exit; Result := False; end; { of IsEmpty }
¨Ï¥Î¤Wªº¤@¨Ç¨Ò¤l:
ȱoª`·Nªº¬O:
IsEmpty(Checkbox1.Checked) ¬O¤£¹ïªº, ¥²¶·¥ý±NÄݩʫü©w¨ì¤@ÓÅ޿諬ªºÅܼÆ, µM«á¦A¶Ç¥Î§PÂ_, e.g.
Test := CheckBox1.Checked; if IsEmpty(Test) then ShowMessage('Empty2'); procedure TForm1.Button1Click(Sender: TObject); var Test: Boolean; begin Test := False; if IsEmpty(Test) then ShowMessage('Empty'); Test := CheckBox1.Checked; if IsEmpty(Test) then ShowMessage('Empty2'); end; procedure TForm1.Button2Click(Sender: TObject); var Test: integer; begin Test := 0; if IsEmpty(Test) then ShowMessage('0: Empty'); Test := 2; if IsEmpty(Test) then ShowMessage('2: Empty'); end; procedure TForm1.Button3Click(Sender: TObject); var Test: double; begin Test := 0; if IsEmpty(Test) then ShowMessage('0: Empty'); Test := 123.456; if IsEmpty(Test) then ShowMessage('123.456: Empty'); end; procedure TForm1.Button4Click(Sender: TObject); var Test: string; begin Test := ''; if IsEmpty(Test) then ShowMessage('0: Empty'); Test := ' '; if IsEmpty(Test) then ShowMessage('" ": Empty'); Test := 'Test'; if IsEmpty(Test) then ShowMessage('"TEST": Empty'); end; procedure TForm1.Button5Click(Sender: TObject); var Test: char; begin Test := #0; if IsEmpty(Test) then ShowMessage('#0: Empty'); Test := 'A'; if IsEmpty(Test) then ShowMessage('#0: Empty'); end; procedure TForm1.Button6Click(Sender: TObject); var btnTest: TButton; begin btnTest := nil; if IsEmpty(btnTest) then ShowMessage('Empty'); btnTest := TButton.Create(Self); btnTest.Parent := Self; if not IsEmpty(btnTest) then ShowMessage('Not Empty Now'); end; procedure TForm1.Button7Click(Sender: TObject); var Test: TColor; begin Test := clBlack; if IsEmpty(Test) then ShowMessage('clBlack: Empty'); Test := clRed; if IsEmpty(Test) then ShowMessage('clRed: Empty'); end;
º¶ | ¾Ç²ßµ§°O | ¥DÃD¤½¶é | ³nÅé¤U¸ü | Ãö©ó¥»¯¸ | °Q½×«H¸s | ¬Û¬ù¤U¦¸ |