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

快速更換元件的方法

答題得分者是:sryang
cwc65536
初階會員


發表:47
回覆:121
積分:48
註冊:2004-10-14

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-07-22 11:50:01 IP:203.203.xxx.xxx 未訂閱
請教各位先進, 我有一個疑惑, 是否有解 : 假如我有一個專案,全部用 TButton , 過一段時間後, 找到一個又可以著色,放ICON的Button元件,姑且叫它 TGoodButton , 有沒有辦法很輕鬆就換掉 因為, 如果像我這樣一個一個 1. GoodButton抓下來, 2. 複製原來的Button caption, 3. 刪除原來的TButton, 4. 把 GoodButton 擺正 然後, 跑 100 遍, ...... 天呀 ! 我的青春 ...
pceyes
尊榮會員


發表:70
回覆:657
積分:1140
註冊:2003-03-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-07-22 12:26:39 IP:220.132.xxx.xxx 未訂閱
試試下面的作法    a.Dos下執行 C:\Program Files\Borland\Delphi x\Bin\Convert.exe unit1.dfm 產生unit1.txt    b.以下是新的.dfm應加入的內容     
 
object Form1: TForm1
  Left = 200
  Top = 108
  Width = 696
  Height = 480
  Caption = 'Form1'
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'MS Sans Serif'
  Font.Style = []
  PixelsPerInch = 96
  TextHeight = 13
  object NoBDEResizerPanel1: TNoBDEResizerPanel
    Left = 0
    Top = 0
    Width = 688
    Height = 453
    Align = alClient //不要忘記
    Caption = 'NoBDEResizerPanel1'
    TabOrder = 0
    AllowChanges = False
    Active = True
    object BitBtn1: TBitBtn //原有物件
      Left = 520
      Top = 352
      Width = 137
      Height = 73
      Caption = 'BitBtn1'
      TabOrder = 0
    end
  end
end    c. unit1.pas    [code]
unit Unit1;    interface    uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Buttons, ExtCtrls, CustomRP, NoBDERP;    type
  TForm1 = class(TForm)        NoBDEResizerPanel1: TNoBDEResizerPanel;        BitBtn1: TBitBtn;
  private
    { Private declarations }
  public
    { Public declarations }
  end;    var
  Form1: TForm1;    implementation    {$R *.DFM}    end.
d.重新執行 C:\Program Files\Borland\Delphi x\Bin\Convert.exe unit1.txt 產生unit1.dfm e.重新編譯程式 如果以上的測試確實可以成功 那就可以寫一個批次加入新元件的程式了 記得先將原有的程式備份 努力會更接近成功
------
努力會更接近成功
aquarius
資深會員


發表:3
回覆:347
積分:330
註冊:2003-05-21

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-07-22 12:44:38 IP:211.23.xxx.xxx 未訂閱
引言: 請教各位先進, 我有一個疑惑, 是否有解 : 假如我有一個專案,全部用 TButton , 過一段時間後, 找到一個又可以著色,放ICON的Button元件,姑且叫它 TGoodButton , 有沒有辦法很輕鬆就換掉 因為, 如果像我這樣一個一個 1. GoodButton抓下來, 2. 複製原來的Button caption, 3. 刪除原來的TButton, 4. 把 GoodButton 擺正 然後, 跑 100 遍, ...... 天呀 ! 我的青春 ...
最快的改法就是改 DFM 檔. 1.先將DFM存成文字模式(code editor 上按右鍵有選項可設). 2.用文字編輯器(例如NOTEPAD)開 DFM 檔. 3.將所有的 TButton 換成 TGoodButton 4.若有需要可一併將要填入的新 Property 加到 DFM 中 5.DFM 存檔後, 不要忘了 .PAS 檔中所有的 TButton 也要換成 TGoodButton. 6.PAS 檔也改完後, 用 DELPHI 開啟 PROJECT 即可 這種改法的前提是你的 TGoodButton 的屬性結構要和 TButton 差不多. 不然改起來可能會有一堆的錯誤. 祝好運. ...Aquarius
------
水瓶男的blog: http://791909.blogspot.com
sryang
尊榮會員


發表:39
回覆:762
積分:920
註冊:2002-06-27

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-07-22 13:08:52 IP:211.21.xxx.xxx 未訂閱
引言: 請教各位先進, 我有一個疑惑, 是否有解 : 假如我有一個專案,全部用 TButton , 過一段時間後, 找到一個又可以著色,放ICON的Button元件,姑且叫它 TGoodButton , 有沒有辦法很輕鬆就換掉 因為, 如果像我這樣一個一個 1. GoodButton抓下來, 2. 複製原來的Button caption, 3. 刪除原來的TButton, 4. 把 GoodButton 擺正 然後, 跑 100 遍, ...... 天呀 ! 我的青春 ...
我有一個跟 aquarius 提出的類似的方法,直接在 Delphi 環境中就可以改: 1. 開啟你要修改的 Form 2. 按 Ctrl-F12 將 Form 切換到 DFM (View as Text) 3. 將 TButton 全部替換為 TGoodButton 4. 按 Ctrl-F12 切回 Form 檢視 5. 存檔,對於所有的問題都回答 Yes 就 OK 了 加油喔,喵~ 發表人 - sryang 於 2005/07/22 13:09:57
------
歡迎參訪 "腦殘賤貓的備忘錄" http://maolaoda.blogspot.com/
cwc65536
初階會員


發表:47
回覆:121
積分:48
註冊:2004-10-14

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-07-22 16:38:01 IP:203.203.xxx.xxx 未訂閱
我用 TBitBtn 替換 TButton 來實測 sryang 兄的方法蠻簡便,可我測試會有declair錯誤,是否修正的訊息 ! aquarius 兄的方法,可行,也蠻簡單, 應該還要注意新引用的元件, 會多 uses 些啥玩意 pceyes 兄的方法,與aquarius相似,但是用convert.exe 有錯誤訊息,而且,無法產生.txt, 不過, 真要大量修改, 可能寫程式是個根本的辦法. 不過, 我不知道 property 有增減時會怎樣 !
sryang
尊榮會員


發表:39
回覆:762
積分:920
註冊:2002-06-27

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-07-23 15:09:23 IP:59.104.xxx.xxx 未訂閱
引言: sryang 兄的方法蠻簡便,可我測試會有declair錯誤,是否修正的訊息 !
沒錯,我提出的方法的第 5 點,就是指這些訊息,通通回答 YES 就對了 不想回答這麼多 YES 的話,在存檔之前把宣告部分的 TButton 也都改成 TGoodButton 吧 加油喔,喵~
------
歡迎參訪 "腦殘賤貓的備忘錄" http://maolaoda.blogspot.com/
cwc65536
初階會員


發表:47
回覆:121
積分:48
註冊:2004-10-14

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-07-23 21:00:24 IP:203.203.xxx.xxx 未訂閱
引言:
引言: sryang 兄的方法蠻簡便,可我測試會有declair錯誤,是否修正的訊息 !
沒錯,我提出的方法的第 5 點,就是指這些訊息,通通回答 YES 就對了 不想回答這麼多 YES 的話,在存檔之前把宣告部分的 TButton 也都改成 TGoodButton 吧 加油喔,喵~
我用TBitBtn 替換 TButton 的結果是這樣 回答 Yes => 被自動修正回來了 回答 No => RunTime 會錯 sryang 兄 , 確定可行嗎 ?
sryang
尊榮會員


發表:39
回覆:762
積分:920
註冊:2002-06-27

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-07-24 00:30:42 IP:219.81.xxx.xxx 未訂閱
這個方法是確實可行的,我自己要更換元件基本上都是這樣用 只是步驟中有一些錯誤,修正一下,抱歉 1. 開啟你要修改的 Form 2. 按 Alt-F12 將 Form 切換到 DFM (或在 Form 上按滑鼠右鍵,選View as Text) 3. 將 TButton 全部替換為 TGoodButton 4. 按 Alt-F12 切回 Form 檢視 (或在編輯視窗上按滑鼠右鍵,選View as Form) 5. 存檔,對於所有的問題都回答 Yes 從 Delphi 4 到 Delphi 7 都可用,其他的版本我手上沒有 加油喔,喵~ 發表人 - sryang 於 2005/07/24 00:32:39
------
歡迎參訪 "腦殘賤貓的備忘錄" http://maolaoda.blogspot.com/
cwc65536
初階會員


發表:47
回覆:121
積分:48
註冊:2004-10-14

發送簡訊給我
#9 引用回覆 回覆 發表時間:2005-07-24 01:38:19 IP:203.203.xxx.xxx 未訂閱
引言: 這個方法是確實可行的,我自己要更換元件基本上都是這樣用 只是步驟中有一些錯誤,修正一下,抱歉 1. 開啟你要修改的 Form 2. 按 Alt-F12 將 Form 切換到 DFM (或在 Form 上按滑鼠右鍵,選View as Text) 3. 將 TButton 全部替換為 TGoodButton 4. 按 Alt-F12 切回 Form 檢視 (或在編輯視窗上按滑鼠右鍵,選View as Form) 5. 存檔,對於所有的問題都回答 Yes 從 Delphi 4 到 Delphi 7 都可用,其他的版本我手上沒有 加油喔,喵~ 發表人 - sryang 於 2005/07/24 00:32:39
真強 , 又搞定 ! 之前會錯意, 以為是 Form / 程式碼 的切換 感恩 ....
系統時間:2024-11-23 8:39:13
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!