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

如何讓 ReplaceDialog 直接做取代動作, 不跳出對話盒 ?

答題得分者是:supman
pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-06-24 10:30:48 IP:210.69.xxx.xxx 未訂閱
如何讓 ReplaceDialog 直接做取代動作, 不跳出對話盒 ?    Google 找到的用法都是, 跳出對話盒, 取得值
ReplaceDialog1.Execute;
Fstr:=ReplaceDialog1.FindText;
Rstr:=ReplaceDialog1.ReplaceText;
這樣會跳出對話盒
  ReplaceDialog1.FindText:='AAA';
  ReplaceDialog1.ReplaceText:= 'abc';
  ReplaceDialog1.Execute;
會發生錯誤, Google 找不到 ReplaceDialog1.ExecuteAction 用法
var
  a : TBasicAction;
begin
  ReplaceDialog1.FindText:='Memo';
  ReplaceDialog1.ReplaceText:= 'memo';
  ReplaceDialog1.ExecuteAction(a);
發表人 - pcboy2 於 2005/06/24 10:56:53
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
supman
尊榮會員


發表:29
回覆:770
積分:924
註冊:2002-04-22

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-06-24 10:57:16 IP:61.70.xxx.xxx 未訂閱
您好: 沒用過ActionExecute,如果只是取代的話使用StringReplace. S:=StringReplace('1234 1234',' ','',[rfReplaceAll]); Result S will '12341234'.
change.jian
版主


發表:29
回覆:620
積分:439
註冊:2003-06-02

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-06-24 11:03:05 IP:61.218.xxx.xxx 未訂閱
試試StringReplace函數 type TReplaceFlags = set of (rfReplaceAll, rfIgnoreCase); function StringReplace(const S, OldPattern, NewPattern: string; Flags: TReplaceFlags): string;
pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-06-24 11:13:20 IP:210.69.xxx.xxx 未訂閱
下面 Compile 正常, 但是執行結果沒有替換, WHY ?    
procedure TForm1.Button1Click(Sender: TObject);
begin
  Memo1.Text:= 'Memo1  MEmo2';
  StringReplace(Memo1.Text, 'MEMO', 'ABCD', [rfReplaceAll, rfIgnoreCase]);
end;
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
supman
尊榮會員


發表:29
回覆:770
積分:924
註冊:2002-04-22

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-06-24 11:17:24 IP:61.70.xxx.xxx 未訂閱
您好: 仔細看,他是function S:=StringReplace(S,' ','',[rfReplaceAll]);
pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-06-24 11:29:59 IP:210.69.xxx.xxx 未訂閱
引言: 您好: 仔細看,他是function S:=StringReplace(S,' ','',[rfReplaceAll]);
function 不傳回值也會執行, 就算修改如下, 也是沒有取代發生
procedure TForm1.Button1Click(Sender: TObject);
var
  s: String;
begin
  Memo1.Text:= 'Memo1  MEmo2';
  s:=StringReplace(Memo1.Text, 'Memo1', 'ABCD', [rfReplaceAll]);
end;
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
change.jian
版主


發表:29
回覆:620
積分:439
註冊:2003-06-02

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-06-24 11:35:56 IP:61.218.xxx.xxx 未訂閱
procedure TForm1.Button1Click(Sender: TObject);
var
  s: String;
begin
  Memo1.Text:= 'Memo1  MEmo2';
  s:=StringReplace(Memo1.Text, 'Memo1', 'ABCD', [rfReplaceAll]);
  //再加一行
  >     
        
supman
尊榮會員


發表:29
回覆:770
積分:924
註冊:2002-04-22

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-06-24 11:39:11 IP:61.70.xxx.xxx 未訂閱
我所謂function是他取代完會回傳,您沒有等於回去memo當然不會有事情發生.
procedure TForm1.Button1Click(Sender: TObject);
var
  s: String;
begin
  Memo1.Text:= 'Memo1  MEmo2';
  s:=StringReplace(Memo1.Text, 'Memo1', 'ABCD', [rfReplaceAll]);
  Memo1.Text:=s;
end;
pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#9 引用回覆 回覆 發表時間:2005-06-24 12:09:15 IP:210.69.xxx.xxx 未訂閱
成功了, 感謝大家    
procedure TForm1.Button1Click(Sender: TObject);
begin
  Memo1.Text:= 'Memo1  MEmo2';
  Memo1.Text:=StringReplace(Memo1.Text, 'MeMo', 'ABCD', [rfReplaceAll, rfIgnoreCase]);
end;
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

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