線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1213
推到 Plurk!
推到 Facebook!

第一次程式執行時的判斷

答題得分者是:ddy
sword185
一般會員


發表:36
回覆:81
積分:23
註冊:2002-06-05

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-04-15 16:42:26 IP:61.64.xxx.xxx 未訂閱
請問各位先進: 小弟寫一個系統,想要在程式第一次執行時,顯示輸入使用者名稱,以及使用者的相片,輸入完後,會顯示在系統的畫面中,第二次執行時就不會再出現了,是否有相關的流程或程式碼可以分享? 謝謝各位大大!
ddy
站務副站長


發表:262
回覆:2105
積分:1169
註冊:2002-07-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-04-15 18:08:51 IP:61.218.xxx.xxx 未訂閱
提示: 利用系統登錄檔或是Ini記錄程式首次執行Flag 每次執行程式先檢查該flag     
sword185
一般會員


發表:36
回覆:81
積分:23
註冊:2002-06-05

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-04-15 21:34:09 IP:61.64.xxx.xxx 未訂閱
小弟不才... 是否有範例可供參考
ddy
站務副站長


發表:262
回覆:2105
積分:1169
註冊:2002-07-13

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-04-15 22:09:45 IP:211.74.xxx.xxx 未訂閱
我寫一個簡單的範例,你看懂後,再熟悉TRegistry的使用方法 相信你可以改寫的更好 我沒有建立Flag 而是使用OpenKey 試圖去開啟鍵值,若不存在則認定是首次執行,並建立鍵值 若存在則非首次執行     
procedure TForm1.FormCreate(Sender: TObject);
var
    Rg:TRegistry;
begin
    Rg:=TRegistry.Create;
    try
        rg.RootKey:=HKEY_LOCAL_MACHINE;
        if Rg.OpenKey('Software\ABC',False) then
        begin
            ShowMessage('非首次執行');
            //非首次執行的動作
        end
        else
        begin
            ShowMessage('首次執行');
            rg.OpenKey('Software\ABC',True);
            //首次執行的動作
        end;        finally
      Rg.Free;
    end;
end;
發表人 - ddy 於 2003/04/15 22:15:12
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-04-16 08:39:39 IP:218.16.xxx.xxx 未訂閱
補充一下,你要使用者輸入的資料應是要儲存的罷 查可這些資料是否存在也可作為判別
sword185
一般會員


發表:36
回覆:81
積分:23
註冊:2002-06-05

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-04-16 15:04:39 IP:61.64.xxx.xxx 未訂閱
因為要讓使用者輸入自己的或公司的名稱,與Logo的圖檔,所以不知檔名為何.. 有比較簡單的範例嗎...我執行時出現Bug...
ddy
站務副站長


發表:262
回覆:2105
積分:1169
註冊:2002-07-13

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-04-16 15:38:23 IP:61.218.xxx.xxx 未訂閱
引言: 因為要讓使用者輸入自己的或公司的名稱,與Logo的圖檔,所以不知檔名為何.. 有比較簡單的範例嗎...我執行時出現Bug...
何bug ? 有沒有 uses Registry; 呀? 即便是給用戶輸入,不知檔名也是可以處理,以變數承接不是嗎? 如果還不知怎麼處理 你把code po 上來,說說你那一部份有疑問
sword185
一般會員


發表:36
回覆:81
積分:23
註冊:2002-06-05

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-04-16 16:03:04 IP:61.64.xxx.xxx 未訂閱
對不起...對不起... 在家裡用Delphi7的版本結果出現bug 剛剛是了一下Delphi6的版本...正常了.. 如果要使用者第一次執行時輸入名稱與Logo的圖檔,那程式要如何修改呢.. 我是初學者...所以還是有些不懂啊...真是不好意思.... 謝謝了....
ddy
站務副站長


發表:262
回覆:2105
積分:1169
註冊:2002-07-13

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-04-16 17:01:25 IP:61.218.xxx.xxx 未訂閱
引言: 如果要使用者第一次執行時輸入名稱與Logo的圖檔,那程式要如何修改呢.. 我是初學者...所以還是有些不懂啊...真是不好意思.... 謝謝了....
implementation
uses unit2; //利用form2 來當輸入畫面
{$R *.dfm}    procedure TForm1.FormActivate(Sender: TObject);
var
    Rg: TRegistry;
begin
    Rg := TRegistry.Create;
    try
        rg.RootKey := HKEY_LOCAL_MACHINE;
        if Rg.OpenKey('Software\ABC', False) then
        begin
            //非首次執行的動作
        end
        else
        begin
   //首次執行的動作
            rg.OpenKey('Software\ABC', True);
            form2.Show; //若非首次執行則顯示Form2
        end;
    finally
        Rg.Free;
    end;    end;    //======登錄框== Form2 =======
procedure TForm2.Button2Click(Sender: TObject);
begin
    OpenPictureDialog1.Execute;  //用圖形對話框開啟圖片
    image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);//將圖片放至到Image --->logo
end;    procedure TForm2.Button1Click(Sender: TObject);
begin
        form2.hide;  //輸入結束隱藏Form2
end;
sword185
一般會員


發表:36
回覆:81
積分:23
註冊:2002-06-05

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-04-16 17:21:28 IP:61.64.xxx.xxx 未訂閱
可是我要第2次..第N次..Logo圖形都在畫面上 也就是說..第一次會出現輸入圖案的畫面, 第二次之後會顯示第一次所選的圖片,一值在畫面上 發表人 - sword185 於 2003/04/16 17:25:25
ddy
站務副站長


發表:262
回覆:2105
積分:1169
註冊:2002-07-13

發送簡訊給我
#11 引用回覆 回覆 發表時間:2003-04-16 17:33:57 IP:61.218.xxx.xxx 未訂閱
引言: 可是我要第2次..第N次..Logo圖形都在畫面上 也就是說..第一次會出現輸入圖案的畫面, 第二次之後會顯示第一次所選的圖片,一值在畫面上
程式還是要自己寫的…< > 你會用到的部份…"關鍵"我大致都已經寫出來了 只要稍做修改就行了…給你當回家作業…< >
sword185
一般會員


發表:36
回覆:81
積分:23
註冊:2002-06-05

發送簡訊給我
#12 引用回覆 回覆 發表時間:2003-04-17 09:48:17 IP:61.64.xxx.xxx 未訂閱
唉...還是想不出來....有想過寫入ini檔 另外一個問題... 我用TFileListBox元件 結果測試時都會出現 [Warning] InOutMonitorSource.pas(7): Unit 'FileCtrl' is specific to a platform 這錯誤訊息... 雖然不影響執行...但是覺得怪怪的    幫幫我啦...不然會被砍頭...    我回家還要帶小孩.... 我小孩要喝西北風了 發表人 -
ddy
站務副站長


發表:262
回覆:2105
積分:1169
註冊:2002-07-13

發送簡訊給我
#13 引用回覆 回覆 發表時間:2003-04-17 10:46:12 IP:61.218.xxx.xxx 未訂閱
引言: 唉...還是想不出來....有想過寫入ini檔 另外一個問題... 我用TFileListBox元件 結果測試時都會出現 [Warning] InOutMonitorSource.pas(7): Unit 'FileCtrl' is specific to a platform 這錯誤訊息... 雖然不影響執行...但是覺得怪怪的 幫幫我啦...不然會被砍頭... 我回家還要帶小孩.... 我小孩要喝西北風了
唉~~不幫你好像真的會害到你的小朋友… 警告訊息只是提醒,也不用覺得怪怪啦~~ 它大概是說…那個元件可能會有平台的限制 如果覺得不想看到它 那麼這麼設定:主選單--& src="http://delphi.ktop.com.tw/loadfile.php?TOPICID=8147403&CC=182217"> 發表人 - ddy 於 2003/04/17 10:53:05
sword185
一般會員


發表:36
回覆:81
積分:23
註冊:2002-06-05

發送簡訊給我
#14 引用回覆 回覆 發表時間:2003-04-17 16:29:23 IP:61.64.xxx.xxx 未訂閱
因為我寫停車場管理系統..每次自動讀取影像的最後一筆(最新的影像)..所以用TFileListBox    1.寫入Ini檔已經研究出來了,那我要讀取Ini檔裡面的文字,將它Show出在TLable元件中要如何寫? 2.若使用者選完Logo圖檔後,想把它copy到C:\ABC.JPG,然後再用TImage元件,將它讀出並Show在畫面,並配合之前的Registry語法,那"使用者選完Logo圖檔後,想把它copy到C:\ABC.JPG"(無條件覆蓋),這段程式怎麼寫? 求求您了...謝謝您.......
ddy
站務副站長


發表:262
回覆:2105
積分:1169
註冊:2002-07-13

發送簡訊給我
#15 引用回覆 回覆 發表時間:2003-04-17 16:57:46 IP:61.218.xxx.xxx 未訂閱
引言: 因為我寫停車場管理系統..每次自動讀取影像的最後一筆(最新的影像)..所以用TFileListBox 1.寫入Ini檔已經研究出來了,那我要讀取Ini檔裡面的文字,將它Show出在TLable元件中要如何寫? 2.若使用者選完Logo圖檔後,想把它copy到C:\ABC.JPG,然後再用TImage元件,將它讀出並Show在畫面,並配合之前的Registry語法,那"使用者選完Logo圖檔後,想把它copy到C:\ABC.JPG"(無條件覆蓋),這段程式怎麼寫? 求求您了...謝謝您.......
怎麼沒有結束的感覺 至於 class="code"> uses IniFiles; {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); var ini: TIniFile; begin try ini := TIniFile.Create('D:\BNELite.ini'); Label1.caption := ini.ReadString('setup', 'Path', ''); finally ini.free; end; end; 第二部份
procedure TForm1.Button1Click(Sender: TObject);
var
        SourceDir,DestDir:String;
begin
    SourceDir:=FileListBox1.FileName; 
    DestDir:='c:\'+ExtractFileName(SourceDir);
    CopyFile(pchar(SourceDir),pchar(DestDir),False);
    image1.Picture.LoadFromFile(DestDir);
end;
您後續的問題…已和本主題『第一次程式執行時的判斷』沒有關係 其餘若仍有不懂…因與主題相差已遠,建議以符合您後續的問題,另開一主題發問 發表人 - ddy 於 2003/04/17 17:27:02
系統時間:2024-05-20 23:17:50
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!