ubuntu 用wine跑Harbour/Fivewin

xBase/clipper
回覆文章
jonce
文章: 6
註冊時間: 2015-02-24, 14:16

ubuntu 用wine跑Harbour/Fivewin

文章 jonce »

我用Harbour/Fivewin寫了一個工作現場用的系統
在ubuntu 用wine來跑.exe它,
除了M$專利字型'標楷,細明' 不能列印要換字型以外
大致都没有問題,列印也很都正常(Epson没linux driver算bug嗎?全部改用hp印表機)
十幾台電腦順利上線幾個月了。

因為現場不用輸入中文,
有天要改參數才發現
中文輸入没有問題,
但是中文字的移動和刪除都異常

游標移動都是跳整個中文字
然而實際上卻是半個字
[一二參四五六七八|]
假設游標八後面,
Left Arrow 3次
游標看起來在五後面,實際按空白鍵會發現是在七的後半字
在windows下執行卻是正常的

廖大有没問試過用wine跑看看fivewin的程式
debug這個問題有没有建議的方向?
--
我的Tget.prg是從你那來的
日期2013-10-23
jonce
文章: 6
註冊時間: 2015-02-24, 14:16

Re: ubuntu 用wine跑Harbour/Fivewin

文章 jonce »

寫的很醜,但終於解決用Wine跑fivewin程式
中文移動及位置錯亂的問題:

1.Wine下,SendMessage(hWnd, EM_SETSEL | EM_GETSEL, nStart , nEnd)
會把中文字算成1格
Ex: "中文字型123" 位置是 0,1,2,3 and 4,5,6
一般window則是 01,23,45,67 and 8,9,10
如果把游置位置定在 1,3,5,7這四個中文字的後半部
win api 不會有任何動作。

所以寫了兩個函數去互換。
並用 If '(Wine)'$os() 來判斷是否在Wine裡面。

2.Clipper/Harbout位置是從1開始,檢查所有tget的位置和winai的置互換時, 記得+1 / -1

3.順便把中文字第一格被覆蓋時,順更清掉第二格,免得亂碼。( ::oGet:OverStrike() )

4.避免擾亂fivewin原有功能 TGET.PRG 改名 JGET.PRG
CLASS 亦從 TGET 改名成 JGET

於是我的程式,終於可以完全不用修改同時在windows和linux下執行了。

--
鵝~似乎没有開放上傳明白了功能 :shock:
admin
Site Admin
文章: 50
註冊時間: 2014-09-23, 10:58

Re: ubuntu 用wine跑Harbour/Fivewin

文章 admin »

允許上傳檔案,檔案大小 256KB,所以要先壓縮.
line ID: ssbbstw
WeChat ID: ssbbstw
回覆文章