future.tsengdp@gmail.com
201201182012021520120321
20120418201205162012062020120718201208152012091920121017201211212012121920130119
R大您好,想請教您使用delphi抓yeswin/easywin的問題,不支是否可以指導一下?感謝!
重點在delphi程式用DDE抓Execl或Calc試算表中的格內容值。
小弟有嘗試用DELPHI抓開啟中的EXCEL裡面的數值,但是他會有說I/O Error的問題。其實我已經有寫好抓全都賺裡面的DDE資料,是成功的。但是相同的方法卻無法抓元大的DDE頗為奇怪的。會想要用元大的DDE是因為抓全都賺每秒最多到7-9筆資料,想說換一個DDE的來源看看是否不同。
把成功的"抓全都賺裡面的DDE資料"那段 CODE, 以及有問題那段"抓元大的DDE" 貼上來, 再來討論, 我的程式是可以正常更換不同 DDE 來源。
感謝R.J大。我已經試過了。發現不可以在程式撰寫下執行。要先compile成.exe檔執行才可以抓到。不過還是貼一下程式... If vDDE=1 then begin //康和全都賺 ddeClientConv1.SetLink('MMSDDE','FUSA'); ddeClientItem1.DdeItem := 'WTX&.2020'; ddeClientItem2.DdeItem := 'WTX&.143'; ddeClientItem3.DdeItem := 'WTX&.101'; ddeClientItem4.DdeItem := 'WTX&.102'; ddeClientItem5.DdeItem := 'WTX&.413'; ddeClientItem6.DdeItem := 'WTX&.125'; ddeClientItem7.DdeItem := 'WTX&.404'; ddeClientItem8.DdeItem := 'WTX&.126'; ddeClientItem9.DdeItem := 'WTX&.130'; ddeClientItem10.DdeItem := 'WTX&.131'; end else begin //元大yeswin ddeClientConv1.SetLink('YES','DQ'); ddeClientItem1.DdeItem := 'TXFB2.Name'; ddeClientItem2.DdeItem := 'TXFB2.Time'; ddeClientItem3.DdeItem := 'TXFB2.BidPrice'; ddeClientItem4.DdeItem := 'TXFB2.AskPrice'; ddeClientItem5.DdeItem := 'TXFB2.Volume'; ddeClientItem6.DdeItem := 'TXFB2.Price'; ddeClientItem7.DdeItem := 'TXFB2.CumulativeVolume'; ddeClientItem8.DdeItem := 'TXFB2.Open'; ddeClientItem9.DdeItem := 'TXFB2.High'; ddeClientItem10.DdeItem := 'TXFB2.Low'; end;
在 IDE 環境下不可以執行嗎?另外收 DDE 這段程式, 可以改成讀檔方式, 將 ddeClientConv1.SetLink 及DdeItem 設定讀出, 開 Execl, 再將這些設定塞入 Execl 格位, 就可以寫好程式(compile)後, 只換 DDE 設定檔, 來更換 DDE 來源(不同期貨商看盤軟體), 收到 DDE 內容。
感謝R.J版大的指教。目前確定yeswin抓的時候會有亂碼問題。所以只好單一用全都賺的DDE,不過漏資料問題滿大的。目前有再想要用API來解決,可惜小弟功力尚淺還沒寫出來。有機會再請您指教了。謝謝!
R大您好,想請教您使用delphi抓yeswin/easywin的問題,不支是否可以指導一下?感謝!
回覆刪除重點在delphi程式用DDE抓Execl或Calc試算表中的格內容值。
刪除小弟有嘗試用DELPHI抓開啟中的EXCEL裡面的數值,但是他會有說I/O Error的問題。其實我已經有寫好抓全都賺裡面的DDE資料,是成功的。但是相同的方法卻無法抓元大的DDE頗為奇怪的。
回覆刪除會想要用元大的DDE是因為抓全都賺每秒最多到7-9筆資料,想說換一個DDE的來源看看是否不同。
把成功的"抓全都賺裡面的DDE資料"那段 CODE, 以及有問題那段"抓元大的DDE" 貼上來, 再來討論, 我的程式是可以正常更換不同 DDE 來源。
刪除感謝R.J大。我已經試過了。發現不可以在程式撰寫下執行。要先compile成.exe檔執行才可以抓到。不過還是貼一下程式...
回覆刪除If vDDE=1 then
begin
//康和全都賺
ddeClientConv1.SetLink('MMSDDE','FUSA');
ddeClientItem1.DdeItem := 'WTX&.2020';
ddeClientItem2.DdeItem := 'WTX&.143';
ddeClientItem3.DdeItem := 'WTX&.101';
ddeClientItem4.DdeItem := 'WTX&.102';
ddeClientItem5.DdeItem := 'WTX&.413';
ddeClientItem6.DdeItem := 'WTX&.125';
ddeClientItem7.DdeItem := 'WTX&.404';
ddeClientItem8.DdeItem := 'WTX&.126';
ddeClientItem9.DdeItem := 'WTX&.130';
ddeClientItem10.DdeItem := 'WTX&.131';
end
else
begin
//元大yeswin
ddeClientConv1.SetLink('YES','DQ');
ddeClientItem1.DdeItem := 'TXFB2.Name';
ddeClientItem2.DdeItem := 'TXFB2.Time';
ddeClientItem3.DdeItem := 'TXFB2.BidPrice';
ddeClientItem4.DdeItem := 'TXFB2.AskPrice';
ddeClientItem5.DdeItem := 'TXFB2.Volume';
ddeClientItem6.DdeItem := 'TXFB2.Price';
ddeClientItem7.DdeItem := 'TXFB2.CumulativeVolume';
ddeClientItem8.DdeItem := 'TXFB2.Open';
ddeClientItem9.DdeItem := 'TXFB2.High';
ddeClientItem10.DdeItem := 'TXFB2.Low';
end;
在 IDE 環境下不可以執行嗎?
回覆刪除另外收 DDE 這段程式, 可以改成讀檔方式, 將 ddeClientConv1.SetLink 及
DdeItem 設定讀出, 開 Execl, 再將這些設定塞入 Execl 格位, 就可以寫好程式(compile)後, 只換 DDE 設定檔, 來更換 DDE 來源(不同期貨商看盤軟體), 收到 DDE 內容。
感謝R.J版大的指教。
回覆刪除目前確定yeswin抓的時候會有亂碼問題。所以只好單一用全都賺的DDE,不過漏資料問題滿大的。
目前有再想要用API來解決,可惜小弟功力尚淺還沒寫出來。
有機會再請您指教了。謝謝!