国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

今天做了一個(gè)小軟件,總結(jié)了一些經(jīng)驗(yàn)與大家共享

2019-11-18 18:25:04
字體:
供稿:網(wǎng)友

今天做了一個(gè)小軟件,總結(jié)了一些經(jīng)驗(yàn)與大家共享。源代碼過一段時(shí)間我可能公布,希望與大家共同學(xué)習(xí)。
1、用sender的方式增強(qiáng)代碼的健壯性
PRocedure TMainfrm.CBAutoRunClick(Sender: TObject);
Const
  SIGNINREGISTRY = 'WebSuction';
begin
  if (Sender as TCheckBox).Checked then  //用sender as...的方式可適應(yīng)
                                         //性更強(qiáng)
     AddToAutoRun(application.ExeName,SIGNINREGISTRY)
  else DelAutoRun(SIGNINREGISTRY);
end;
即使Checkbox1改了名字也不怕
又如:
procedure TMainfrm.N1Click(Sender: TObject);
begin
  if (Sender as TMenuItem).Caption = '暫停(&S)' then
    begin
      (Sender as TMenuItem).Caption := '開始(&R)';
      FWebPageSaver.Pause;
    end
  else
    begin
      (Sender as TMenuItem).Caption := '暫停(&S)';
      FWebPageSaver.ReStart;
    end;
end;

2、不要出現(xiàn)魔法數(shù)
function ExtractFileNameFromText( AText : string): string;
Const
  MAXLENGTH = 250;//Max length of filename
var
  LTextLength, I : integer;
  LString : string;
begin
  LString := AText;
  LTextLength := Length(LString);
  for I := 0 to LTextLength-1 do
  begin
    if IsInvalidChar(LString[I]) then
      LString[I] := 'n';//Change the Invalid char with 'n'
  end;

//在返回語句與前面的代碼之間用空行隔開
  result := LeftStr(LString,MAXLENGTH);//讓人一看就知道MAXLENGTH是什么意思,比直接寫250好
end;

3、錯(cuò)落有致
procedure TMainfrm.WMHotKey(var Msg : TWMHotKey);
begin
  if (Msg.HotKey = FHotKeyId) and (ClipBoard.HasFormat(CF_TEXT)) and
    (not ClipBoard.HasFormat(CF_PICTURE)) then//不要超過一行能容納的字?jǐn)?shù)
    FWebPageSaver.NewTextFile(ClipBoard.AsText);
end;

4、不要直接使用Tform2單元的全局Form2變量,那樣就破壞了封裝性
procedure TMainfrm.SBNextClick(Sender: TObject);
var
  LSelectedIndex : integer;
  FormDisplay : Tform2;
begin
  LSelectedIndex := LBWebPage.ItemIndex;
  if LSelectedIndex <> -1 then
  begin
    FormDisplay := Tform2.Create(self);
    FormDisplay.SetContent(FWebCracker.GetWebText(LSelectedIndex));
    FormDisplay.Show;
  end;
end;
在TForm2中定義 SetContent方法
procedure TWebCrackfrm.SetContent(AText:string);
begin
  Memo.Clear;
  Memo.Lines.Add(AText);
end;

5 用面向?qū)ο蟮姆椒ㄊ褂胐elphi。
這是我做這個(gè)軟件最大的體會(huì),以前我用面向過程的方法做過這個(gè)軟件,代碼思路特別亂,現(xiàn)在用了OO的方法就是不一樣
這個(gè)一句兩句可說不清楚,公布源碼后大家自己看吧

下載地址:
http://lincosoft.go.nease.net/


上一篇:在WIN2000與WIN98中創(chuàng)建共享文件夾的方法

下一篇:區(qū)分保留字跟關(guān)鍵字

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
學(xué)習(xí)交流
熱門圖片

新聞熱點(diǎn)

疑難解答

圖片精選

網(wǎng)友關(guān)注

主站蜘蛛池模板: 延川县| 桦南县| 博白县| 会泽县| 永新县| 新泰市| 万宁市| 大新县| 锡林郭勒盟| 长沙县| 汕头市| 湟中县| 武平县| 靖远县| 建始县| 安新县| 漳州市| 北碚区| 英德市| 汶川县| 安岳县| 庆云县| 霞浦县| 栾城县| 克拉玛依市| 牙克石市| 屯昌县| 全椒县| 原平市| 古丈县| 邹城市| 交城县| 平罗县| 左权县| 金乡县| 远安县| 长乐市| 奈曼旗| 册亨县| 襄樊市| 右玉县|