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

SMComponent (SMDBGrid) 的問題

尚未結案
wscken
初階會員


發表:28
回覆:75
積分:45
註冊:2003-08-05

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-11-12 16:27:48 IP:203.66.xxx.xxx 訂閱

請問一下各位大大,
由於目前公司在測試要不要轉換到2009,所以必須測試元件,
在安裝SMDBGrid的時候,除了亂碼的註解改掉之外,底下這段程式編譯會產生
[DCC Error] Smdbgrid.pas(7417): E2038 Illegal character in input file: '?' (#$3F)

可是在Delphi 5 底下卻會過,所以我想請問
有沒有人知道底下這段程式應該怎麼改。


[code delphi]
function TSMDBGrid.UpperAccentCase(const S: string): string;
var
Ch: Char;
L: Integer;
Source, Dest: PChar;
begin
L := Length(S);
SetLength(Result, L);
Source := Pointer(S);
Dest := Pointer(Result);
while L <> 0 do
begin
Ch := Source^;
if (Ch >= 'a') and (Ch <= 'z') then
Dec(Ch, 32)
else
case Ch of
'?, '?: Ch := 'A';
'?, '?: Ch := 'E';
'?, '?: Ch := 'I';
'?, '? : Ch := 'O';
'?, '? : Ch := 'U';
'? : Ch := '?;
end;
Dest^ := Ch;
Inc(Source);
Inc(Dest);
Dec(L);
end;
end;
[/code]
編輯記錄
wscken 重新編輯於 2008-11-20 11:12:53, 註解 無‧
wscken 重新編輯於 2008-11-20 11:13:28, 註解 可是在Delphi 5 底下卻會過 忘記寫上5了‧
herbert2
尊榮會員


發表:58
回覆:640
積分:894
註冊:2004-04-16

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-11-12 17:05:56 IP:211.72.xxx.xxx 訂閱
2009 之 String 改默認為 UnicodeString 而非舊版時的 AnsiString.
故用 char 當然會 Error.
ken_lin
一般會員


發表:4
回覆:3
積分:1
註冊:2003-05-06

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-11-19 16:39:42 IP:60.248.xxx.xxx 訂閱
我將  此段先 Mark 後就可以安裝,但在 Delphi2009 中使用 TeditType 及 TdbeditType 有些問題


case Ch of
  1. '?, '?: Ch := 'A';
  2. '?, '?: Ch := 'E';
  3. '?, '?: Ch := 'I';
  4. '?, '? : Ch := 'O';
  5. '?, '? : Ch := 'U';
  6. '? : Ch := '?;
  7. end;
pceyes
尊榮會員


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-11-19 22:48:47 IP:220.141.xxx.xxx 訂閱
// String = UnicodeString (不用改了)
// PChar --> PWideChar
UnicodeString): WideChar;

L: Integer;

Source, Dest: PWideChar;

begin

L := Length(S);

SetLength(Result, L);

Source := Pointer(S);

Dest := Pointer(Result);

while L <> 0 do

begin

Ch := Source^;

if (Ch >= 'a') and (Ch <= 'z') then

Dec(Ch, 32)

else

case Ch of

'?, '?: Ch := 'A';

'?, '?: Ch := 'E';

'?, '?: Ch := 'I';

'?, '? : Ch := 'O';

'?, '? : Ch := 'U';

'? : Ch := '?;

end;

Dest^ := Ch;

Inc(Source);

Inc(Dest);

Dec(L);

end;

end;
------
努力會更接近成功
wscken
初階會員


發表:28
回覆:75
積分:45
註冊:2003-08-05

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-11-20 11:16:58 IP:203.66.xxx.xxx 訂閱
這樣出現的還是底下的錯誤訊息
[DCC Error] Smdbgrid.pas(7452): E2038 Illegal character in input file: '?' (#$3F)

是因為,他看不懂問號嗎???

系統時間:2024-04-26 6:28:37
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!