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

請教為何看不到datamodule?

尚未結案
huangeider
高階會員


發表:288
回覆:492
積分:231
註冊:2003-02-26

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-04-02 20:59:50 IP:220.143.xxx.xxx 未訂閱
小弟在修改一個c/s程式,其中在view ->project manager中可以看到 Tdatamodule的pas和form,但是把form按滑鼠兩下卻只有pas 程式碼, 見不到datamodule的form,但問題就是找不到datamodule的form,不知為何? 以下是datamodule的pas程式碼:
unit Unitdm;    //  數據庫連接
interface    uses
  SysUtils, Classes,DateUtils,Math,IdGlobal,Controls,Dialogs,ComObj,Variants, DB, ADODB,dbgrids,
  GB2BIG,QRCtrls,ExtCtrls, QuickRpt;    type
  Tdm = class(TDataModule)
    ADOConnection: TADOConnection;
    ADOyg: TADOConnection;
    GB: TGB2BIG;
    procedure DataModuleCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    zg:boolean;//最高
    zj:boolean;//增加
    xg:boolean;//修改
    sc:boolean;//刪除
    stryes,strno:string;//是否
    listbt:tstringlist;//控件標題
    mg:integer;//民國(2002-1911=91)
    mgstr:string;//民國
    sjk:string; //數據庫
    gs:string;//公司
    yy:string;//語言
    ygid:string;//登錄的員工編號
    ygxm:string;//登錄的員工姓名
    data:string;//數據庫類型(sql,interbase)
    zy:integer;//星期開頭  星期天--1  星期一--0
    qs:integer;//權數依據  0-金額  1--貨品
    procedure Exec(str:string); //執行SQL語句
    function  QryOneInt(str:string):integer; //查詢整數
    function  QryOnefloat(str:string):real; //查詢小數
    function  QryOnestr(str:string):string; //查詢string
    procedure px(column:tcolumn);//grid標題排序
    procedure dcexcel(sql:string);//導出excel...sql語句
    procedure kc;//庫存數據刷新
    function dx(RMB: string): string; //金額小寫-->大寫
    procedure lj;//連接
    procedure mbr;//mbr
    function zbm(bm:string):tstringlist;//子部門,部門,所有子部門
    function strbm(bm:string;cs:boolean):string;//所有部門,部門
    procedure ksj(sj1,sj2:tdate);//空數據
    procedure GB2BIG5(ck:tobject);//窗口...GB-->BIG5
    procedure wb(sender:tobject);//處理文本,圖像字段
    procedure hz;//標題漢字
    procedure bthz(ck:tobject);//窗口  ....形成標題漢字
    procedure qxsz(ck:tobject);//權限設置
  end;    var
  dm: Tdm;    implementation    uses Unitdl,Forms,ComCtrls,StdCtrls,ActnList,
     dBCtrls, Unitkhqk, Unitsz, Unitxzkh, Unitxzyw, Unitxzbm, Unitxzph,
  Unitbb;    {$R *.dfm}    { Tdm }
procedure Tdm.DataModuleCreate(Sender: TObject);
begin
  //新建
  listbt:=tstringlist.Create;
  dm.data:='sql';
  //dm.data:='interbase';
end;
「堅持」從洗馬桶做起 Aric 發表人 - huangeider 於 2004/04/02 21:12:00
yachanga
資深會員


發表:24
回覆:335
積分:296
註冊:2003-09-27

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-04-02 21:49:18 IP:61.230.xxx.xxx 未訂閱
怎會看不到呢?? 在IDE 按 F12 不是可以順利切換 form and unit?? 不了解您的意思耶    ~悠遊法國號~
huangeider
高階會員


發表:288
回覆:492
積分:231
註冊:2003-02-26

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-04-02 22:00:49 IP:220.143.xxx.xxx 未訂閱
我也是覺得很奇怪 其他form跟unit 按F12都可置換 但就是這個datamodule無法置換 我不曉得datamodule這個form是否不見了或者 這個datamodule 是由unit型態在執行時才建立的 不過若是如此那project manager中應沒有datamodule的from名稱而且只應有 datamodule的unit才是啊? 「堅持」從洗馬桶做起
yachanga
資深會員


發表:24
回覆:335
積分:296
註冊:2003-09-27

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-04-02 22:08:51 IP:61.230.xxx.xxx 未訂閱
嗯.. 的確很奇怪 如果您有New 一個 data module  存成 unitdm.pas 請教您在目錄上有看到 unitdm.pas & unitdm.dfm??    如果有 應該沒問題才對        ~悠遊法國號~
huangeider
高階會員


發表:288
回覆:492
積分:231
註冊:2003-02-26

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-04-02 22:14:37 IP:220.143.xxx.xxx 未訂閱
我看到的是以下這樣
-qk.exe
 |-unidm
   |-unidm.pas
   |-dm
 |-unitdl
   |-unitdl.pas
   |-frmdl
「堅持」從洗馬桶做起 Aric 發表人 - huangeider 於 2004/04/02 22:16:54
yachanga
資深會員


發表:24
回覆:335
積分:296
註冊:2003-09-27

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-04-02 22:20:47 IP:61.230.xxx.xxx 未訂閱
嗯 我剛剛試了一下 如果我把c:\delphiprj\unitdm.dfm 砍掉 就會出現您所說的問題....    不過我想您這個檔案應該還在硬碟中吧  呵呵    ~悠遊法國號~
huangeider
高階會員


發表:288
回覆:492
積分:231
註冊:2003-02-26

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-04-02 22:23:36 IP:220.143.xxx.xxx 未訂閱
可是我找了一下有 unitdm.pas跟unitdm.dfm耶但沒有dm.dfm 而我在資料夾中按unitdm.dfm是顯示
  object dm: Tdm
  OldCreateOrder = False
  OnCreate = DataModuleCreate
  Left = 314
  Top = 159
  Height = 201
  Width = 214
  object ADOConnection: TADOConnection
    ConnectionString = 
      'Provider=SQLOLEDB.1;Password=3100;Persist Security Info=True;Use'  
      'r ID=sa;Initial Catalog=DB_HXH;Data Source=HXH'
    LoginPrompt = False
    Provider = 'SQLOLEDB.1'
    Left = 64
    Top = 32
  end
  object ADOyg: TADOConnection
    ConnectionString = 
      'Provider=SQLOLEDB.1;Password=3100;Persist Security Info=True;Use'  
      'r ID=sa;Initial Catalog=SunSystem;Data Source=HXH'
    LoginPrompt = False
    Provider = 'SQLOLEDB.1'
    Left = 64
    Top = 88
  end
  object GB: TGB2BIG
    Left = 129
    Top = 32
  end
end
在project manager中按dm兩下都是 跳到unitdm.pas的畫面 unit Unitdm; // 數據庫連接 interface uses SysUtils, Classes,DateUtils,Math,IdGlobal,Controls,Dialogs,ComObj,Variants, DB, ADODB,dbgrids, GB2BIG,QRCtrls,ExtCtrls, QuickRpt; type Tdm = class(TDataModule) ADOConnection: TADOConnection; ADOyg: TADOConnection; GB: TGB2BIG; procedure DataModuleCreate(Sender: TObject); private { Private declarations } public { Public declarations } zg:boolean;//最高 zj:boolean;//增加 xg:boolean;//修改 sc:boolean;//刪除 stryes,strno:string;//是否 listbt:tstringlist;//控件標題 mg:integer;//民國(2002-1911=91) mgstr:string;//民國 sjk:string; //數據庫 gs:string;//公司 yy:string;//語言 ygid:string;//登錄的員工編號 ygxm:string;//登錄的員工姓名 data:string;//數據庫類型(sql,interbase) zy:integer;//星期開頭 星期天--1 星期一--0 qs:integer;//權數依據 0-金額 1--貨品 procedure Exec(str:string); //執行SQL語句 function QryOneInt(str:string):integer; //查詢整數 function QryOnefloat(str:string):real; //查詢小數 function QryOnestr(str:string):string; //查詢string procedure px(column:tcolumn);//grid標題排序 procedure dcexcel(sql:string);//導出excel...sql語句 procedure kc;//庫存數據刷新 function dx(RMB: string): string; //金額小寫-->大寫 procedure lj;//連接 procedure mbr;//mbr function zbm(bm:string):tstringlist;//子部門,部門,所有子部門 function strbm(bm:string;cs:boolean):string;//所有部門,部門 procedure ksj(sj1,sj2:tdate);//空數據 procedure GB2BIG5(ck:tobject);//窗口...GB-->BIG5 procedure wb(sender:tobject);//處理文本,圖像字段 procedure hz;//標題漢字 procedure bthz(ck:tobject);//窗口 ....形成標題漢字 procedure qxsz(ck:tobject);//權限設置 end; var dm: Tdm; implementation 「堅持」從洗馬桶做起 Aric 發表人 - huangeider 於 2004/04/02 22:31:42 發表人 - huangeider 於 2004/04/02 22:38:20
yachanga
資深會員


發表:24
回覆:335
積分:296
註冊:2003-09-27

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-04-02 22:32:26 IP:61.230.xxx.xxx 未訂閱
不....會....吧 想一下 趕緊確認檔案在不在 加油 <>~悠遊法國號~
yachanga
資深會員


發表:24
回覆:335
積分:296
註冊:2003-09-27

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-04-02 22:36:04 IP:61.230.xxx.xxx 未訂閱
試試看把這unitdm 從 project viewer 移除, 再重新加入 這樣行不行???    祝好運     發表人 -
huangeider
高階會員


發表:288
回覆:492
積分:231
註冊:2003-02-26

發送簡訊給我
#10 引用回覆 回覆 發表時間:2004-04-03 00:25:41 IP:220.143.xxx.xxx 未訂閱
試試看把這unitdm 從 project viewer 移除, 再重新加入 這樣行不行??? 這樣子再加入時會有錯誤訊息 class tgb2big not found 我想可能是這個元件的關係 但再把這元件放入同一資料夾時就可加入 但是也仍然是把datamodule form按滑鼠兩下卻只有pas 程式碼? 會不會是delphi版本的問題? 但在delphi6.0與7.0都還是相同的情形 「堅持」從洗馬桶做起 Aric 發表人 - huangeider 於 2004/04/03 00:31:55
Chance36
版主


發表:31
回覆:1033
積分:792
註冊:2002-12-31

發送簡訊給我
#11 引用回覆 回覆 發表時間:2004-04-03 00:53:55 IP:203.204.xxx.xxx 未訂閱
huangeider 你好     離結果只差一步了,知道問題在TGB2BIG這個類別,加入該單元沒問題,但要開啟時仍然只有pas 程式碼,主要是你要安裝該元件,並設定搜尋路徑後,Delphi才知道該元件的存在,你之前在開啟該單元時,系統是否有顯示訊息說有某個元件找不到,問你要忽略、取消、或全部忽略嗎?然後你按了取消,結果就像你所看到現象,若你按忽略的話,表面上程式碼看到了,DataModul也可看到,但實際上缺少的物件(TGB2BIG)是被移除了,這時最好不要有儲存的動作,免得該物件真的從DataModul中移除了, 發表人 - chance36 於 2004/04/03 00:59:57
huangeider
高階會員


發表:288
回覆:492
積分:231
註冊:2003-02-26

發送簡訊給我
#12 引用回覆 回覆 發表時間:2004-04-03 08:35:08 IP:218.172.xxx.xxx 未訂閱
是耶!我按ignore真的就可以看到了dm(unitdm.frm) 那要如何才能真正的安裝以下這個元件跟設定搜尋路徑呢? http://delphi.ktop.com.tw/loadfile.php?TOPICID=14896309&CC=333151 「堅持」從洗馬桶做起 Aric 發表人 - huangeider 於 2004/04/03 08:58:56
Chance36
版主


發表:31
回覆:1033
積分:792
註冊:2002-12-31

發送簡訊給我
#13 引用回覆 回覆 發表時間:2004-04-03 15:46:50 IP:203.204.xxx.xxx 未訂閱
引言: 那要如何才能真正的安裝以下這個元件跟設定搜尋路徑呢?
huangeider 你好 先使用最簡單方式安裝 1.*.pas,*.dcu 複製到任何位置皆可,只要認為適當即可,若放到Delphi\Lib底下則可省略設定搜尋路徑的步驟(早就有了) 2.從功能表選[Component][Install Component] 按unit File Name後的[Browse...]複選gb2Big.pas及Big2gb.pas 3.把元件所在路徑輸入到Search Path的Edit中,用';'分隔原來的路徑 4.確定package Name 你可用設的dclUsr.dpk或自定一個亦可 5.最後按OK,系統會提示相關訊息之後即安裝完成了,你可在元件盤中往後移到最後,應該會看[測試]頁次,其中即有你要的元件了。
系統時間:2024-06-01 17:18:17
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!