全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:3548
推到 Plurk!
推到 Facebook!

GotoBookmark的引數型態從Pointer變成IntPtr,該如何轉換!

尚未結案
jieshu
版主


發表:42
回覆:894
積分:745
註冊:2002-04-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-02-05 18:24:57 IP:203.204.xxx.xxx 未訂閱
請問Delphi5的程式碼如下 ClientDataSet1.GotoBookmark(Pointer(DBGrid1.SelectedRows[0])); 該如何轉換為Delphi.Net的程式碼,編譯時會出現Invalid typecast的錯誤。    也就是DBGrid1.SelectedRows[0]的型態是String該如何轉成IntPtr,IntPtr好像是.Net的東西,所以不太會用,敬請賜教!    
人生有夢,逐夢而行。 人若為善,福雖未至,禍已遠離。 人若為惡,禍雖未至,福已遠離。 http://www.taconet.com.tw/jieshu/
------
人生有夢,逐夢而行
人若為善,福雖未至,禍已遠離
人若為惡,禍雖未至,福已遠離
http://www.taconet.com.tw/jieshu/
Jasonwong
版主


發表:49
回覆:931
積分:581
註冊:2006-10-27

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-02-05 19:47:23 IP:203.75.xxx.xxx 未訂閱
ClientDataSet1.GotoBookmark(IntPtr(DBGrid1.SelectedRows[0])); 試試看~我編譯會過~但我沒有實際去測~ -- 聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心 傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心
------
聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心
傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心
code6421
版主


發表:43
回覆:223
積分:208
註冊:2002-08-16

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-02-05 19:57:08 IP:61.216.xxx.xxx 未訂閱
引言: 請問Delphi5的程式碼如下 ClientDataSet1.GotoBookmark(Pointer(DBGrid1.SelectedRows[0])); 該如何轉換為Delphi.Net的程式碼,編譯時會出現Invalid typecast的錯誤。 也就是DBGrid1.SelectedRows[0]的型態是String該如何轉成IntPtr,IntPtr好像是.Net的東西,所以不太會用,敬請賜教!
呵..我還不知道DBGrid.SelectedRows可以這樣用說,太少用了 ^_^
.........
uses System.Runtime.InteropServices;    {$R *.nfm}    procedure TForm1.Button1Click(Sender: TObject);
var
  I:Integer;
  vptr:IntPtr;
begin
  ClientDataSet1.DisableControls;
  for I:=0 to DBGrid1.SelectedRows.Count-1 do
   begin
     vptr := Marshal.StringToHGlobalAnsi(DBGrid1.SelectedRows[I]);
     try
       ClientDataSet1.GotoBookmark(vptr);
       ListBox1.Items.Add(ClientDataSet1.FieldByName('CustNo').AsString);
     finally
       Marshal.FreeHGlobal(vptr);
     end;
   end;
  ClientDataSet1.EnableControls;
end;
Just coding... Taiwan:http://code6421.ktop.com.tw China:http://home.hoolee.com/~code6421
------
Just codeing...
jieshu
版主


發表:42
回覆:894
積分:745
註冊:2002-04-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-02-06 09:23:36 IP:203.204.xxx.xxx 未訂閱
引言: ClientDataSet1.GotoBookmark(IntPtr(DBGrid1.SelectedRows[0])); 試試看~我編譯會過~但我沒有實際去測~ -- 聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心 傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心
Jasonwong兄,這我試過了不行,出現同樣的錯誤。
人生有夢,逐夢而行。 人若為善,福雖未至,禍已遠離。 人若為惡,禍雖未至,福已遠離。 http://www.taconet.com.tw/jieshu/
------
人生有夢,逐夢而行
人若為善,福雖未至,禍已遠離
人若為惡,禍雖未至,福已遠離
http://www.taconet.com.tw/jieshu/
jieshu
版主


發表:42
回覆:894
積分:745
註冊:2002-04-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-02-06 10:07:49 IP:203.204.xxx.xxx 未訂閱
引言: 呵..我還不知道DBGrid.SelectedRows可以這樣用說,太少用了 ^_^
.........
uses System.Runtime.InteropServices;    {$R *.nfm}    procedure TForm1.Button1Click(Sender: TObject);
var
  I:Integer;
  vptr:IntPtr;
begin
  ClientDataSet1.DisableControls;
  for I:=0 to DBGrid1.SelectedRows.Count-1 do
   begin
     vptr := Marshal.StringToHGlobalAnsi(DBGrid1.SelectedRows[I]);
     try
       ClientDataSet1.GotoBookmark(vptr);
       ListBox1.Items.Add(ClientDataSet1.FieldByName('CustNo').AsString);
     finally
       Marshal.FreeHGlobal(vptr);
     end;
   end;
  ClientDataSet1.EnableControls;
end;
Just coding... Taiwan:http://code6421.ktop.com.tw China:http://home.hoolee.com/~code6421
真的不得不佩服code6421兄的功力,這麼難都會,我還能說什麼呢?太神了,code6421兄,我以前也沒用過這樣的功能,有次在K.Top上看到有人討論在用,覺得不錯就把他的功能加到元件裡。 在Delphi5有範例(可用SelectedRows查Help),但是用Delphi.Net卻查不到此範例,一度讓我傷透腦筋,只好上來求教高手,想問code6421兄的是,像我這種問題該如何自救(也就是從何下手)。
人生有夢,逐夢而行。 人若為善,福雖未至,禍已遠離。 人若為惡,禍雖未至,福已遠離。 http://www.taconet.com.tw/jieshu/
------
人生有夢,逐夢而行
人若為善,福雖未至,禍已遠離
人若為惡,禍雖未至,福已遠離
http://www.taconet.com.tw/jieshu/
code6421
版主


發表:43
回覆:223
積分:208
註冊:2002-08-16

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-02-06 13:30:50 IP:61.216.xxx.xxx 未訂閱
引言: 在Delphi5有範例(可用SelectedRows查Help),但是用Delphi.Net卻查不到此範例,一度讓我傷透腦筋,只好上來求教高手,想問code6421兄的是,像我這種問題該如何自救(也就是從何下手)。
唉...那個Help實在是..連語法都寫錯...@_@ 最快的方式是由VCL.NET Source下手, 基本上多數的物件與型别都已由VCL移植到VCL.NET上來了, 為了兼故相容性,VCL.NET有極大部份是與Unmanaged環境互通, Midas,BDE,dbExpress,Windows API都是,而這些大多以指標 操作,在CLR中,當由Unmanagd取回一個指標時,就必須進行Marshal 動作才能使用,反之則需進行UnMarshal. 就長遠來看,還是得多看看.NET Framework的書籍, Jeffray Richter 的Applied .NET Framework是最好的選擇. Just coding... Taiwan:http://code6421.ktop.com.tw China:http://home.hoolee.com/~code6421
------
Just codeing...
jieshu
版主


發表:42
回覆:894
積分:745
註冊:2002-04-15

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-02-06 14:19:03 IP:203.204.xxx.xxx 未訂閱
引言: 唉...那個Help實在是..連語法都寫錯...@_@ 最快的方式是由VCL.NET Source下手, 基本上多數的物件與型别都已由VCL移植到VCL.NET上來了, 為了兼故相容性,VCL.NET有極大部份是與Unmanaged環境互通, Midas,BDE,dbExpress,Windows API都是,而這些大多以指標 操作,在CLR中,當由Unmanagd取回一個指標時,就必須進行Marshal 動作才能使用,反之則需進行UnMarshal. 就長遠來看,還是得多看看.NET Framework的書籍, Jeffray Richter 的Applied .NET Framework是最好的選擇. Just coding... Taiwan:http://code6421.ktop.com.tw China:http://home.hoolee.com/~code6421
謝謝code6421兄的說明,讓我受益良多。 我的Delphi.Net好像找不到TRemoteDataModule,Help找的到要Uses Borland.Vcl.DataBkr,但整個Delphi.Net的BDS目錄卻找不到相關檔案。 To create a remote data module at design time, choose File|New|Other, and select Remote Data Module from the multi-tiered page of the new items dialog. 以上為Help所提,但我的Delphi.Net沒有multi-tiered page,請問各位網友你們有multi-tiered page嗎?
人生有夢,逐夢而行。 人若為善,福雖未至,禍已遠離。 人若為惡,禍雖未至,福已遠離。 http://www.taconet.com.tw/jieshu/
------
人生有夢,逐夢而行
人若為善,福雖未至,禍已遠離
人若為惡,禍雖未至,福已遠離
http://www.taconet.com.tw/jieshu/
code6421
版主


發表:43
回覆:223
積分:208
註冊:2002-08-16

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-02-06 14:50:18 IP:61.216.xxx.xxx 未訂閱
引言: 我的Delphi.Net好像找不到TRemoteDataModule,Help找的到要Uses Borland.Vcl.DataBkr,但整個Delphi.Net的BDS目錄卻找不到相關檔案。
記憶中DELPHI.NET 只附MIDAS/DataSnap Client端, 因此你只能用DELPHI 7寫Server.. Just coding... Taiwan:http://code6421.ktop.com.tw China:http://home.hoolee.com/~code6421
------
Just codeing...
jieshu
版主


發表:42
回覆:894
積分:745
註冊:2002-04-15

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-02-06 15:20:49 IP:203.204.xxx.xxx 未訂閱
引言: 記憶中DELPHI.NET 只附MIDAS/DataSnap Client端, 因此你只能用DELPHI 7寫Server.. Just coding... Taiwan:http://code6421.ktop.com.tw China:http://home.hoolee.com/~code6421
唉...原本想說Server是給眾多Client連接,需要穩定性,想說改成.Net使用看看會不會比較穩定,Client則因無法確保每台都有.Net環境,先不改,現在可能沒希望了!
人生有夢,逐夢而行。 人若為善,福雖未至,禍已遠離。 人若為惡,禍雖未至,福已遠離。 http://www.taconet.com.tw/jieshu/
------
人生有夢,逐夢而行
人若為善,福雖未至,禍已遠離
人若為惡,禍雖未至,福已遠離
http://www.taconet.com.tw/jieshu/
系統時間:2024-04-30 12:55:11
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!