2012-06-22 51 views
0

我在Delphi-7,基本上創建一個壓縮文件,並具有5​​個特徵(見下文)發送自定義設置該組件與最終應用

1]文件夾

2]圖像

的組件上的工作

3]文本文件

4]創建應用程序目錄中的zip文件或應用程序數據目錄的文件夾

5]是否創建Zip文件

該組件將被刪除到表格。現在我有另一個應用程序(settingAppl),用戶可以從中實際決定啓用該組件的任何5功能。 一切工作正常,因爲我保存了用戶選擇的設置registry。我使用了一個DAT文件About.com_fileof_delphi,而不是使用註冊表(我不確定它是否是一個好主意),設置Appl將寫入5個設置。我需要發送帶有組件的應用程序的文件,以便它可以讀取5個設置。

有沒有一種方法,我可以直接將5個設置設置到組件中,因爲我堅持如果應用程序目錄中缺少文件該怎麼辦?

像尤里卡日誌那樣,任何人都可以告訴我如何做類似的事情嗎?這意味着,當我們設定尤里卡日誌設置,程序員不必包含/與最終應用

enter image description here

+4

使用發佈的屬性,就像您對任何其他組件做。 –

+0

使用組件'構造函數'方法來設置屬性默認值。無論是第一次運行應用程序還是在用戶做出任何更改之後,將這些值保存到「註冊表」中。 – LightBulb

+0

@LightBulb,根本不需要註冊表。您可以將它們作爲已發佈的屬性存儲在DFM文件中,並且不需要外部存儲。 –

回答

2

一起發送一個文件通過@大衛和@Ken白想法 去後(這是比想法,我在mind..also更好的(方式)有)簡單得多。我公司推出的published性質爲這樣

private 
    { Private declarations } 
    FFolderzip ,Fimagezip,Ftextzip  : Boolean; 
    FMessagebo : string; 
published 
    { Published declarations } 
    {component Properties} 
    {#1.Folder Zip} 
    property ZipFolder : Boolean read FFolderzip write FFolderzip default False; 
    {#2.Send imagezip ?} 
    property ZipImage : Boolean read Fimagezip write Fimagezip default False; 
    {#3.text files} 
    property ZipText : Boolean read Ftextzip write Ftextzip default False; 
    {#4.message} 
    property ZipMessage: String read FMessagebo write FMessagebo ; 
    .... 
end; 

組件然後訪問屬性

procedure TForm1.Button1Click(Sender: TObject); 
    var 
     bZipFolder,bZipImage,bZipText: boolean; 
     sMessage : string; 
    begin 
     bZipFolder:=zipperCom1.ZipFolder ; 
     bZipImage :=zipperCom1.ZipImage; 
     bZipText :=zipperCom1.ZipText; 
     sMessage :=zipperCom1.ZipMessage; 
    end; 

來源爲額外的參考: -

1] ADDWriteToReadOnlyProps

2] Delphi-property

+2

這是一個更好的解決方案,但你的名字很混亂。 :-)如果你稍微改變它們,他們會更容易閱讀和理解。例如,代替「FolderZip」,「ImageZip」和「TextZip」使用「ZipFolder」,「ZipImage」和「ZipText」,然後將它們設置爲「true」或「false」更有意義。 'bZipFolder:= zipperCom1.ZipFolder;'讀得更好。 :-) –

+0

@KenWhite建議讚賞:)我也對實際代碼做了更改 – PresleyDias