Memoの文字列をボタンクリックで操作するには?

解決


あろーん  2004-03-31 08:18:58  No: 8098

Delphi初心者です。よろしくお願いします。
やりたいことが、
ボタン1クリックでMEMOの現在行に文字追加
ボタン2クリックで次の行に移動
再びボタン1クリックで2行目に文字追加(以降同様
といったことなのですが、
ボタンクリックのプロシージャにどう書けばよいのでしょうか?
ご教授おねがいします。


るるとん@K  2004-03-31 17:39:52  No: 8099

1はSelTextとかですね
Memo1.SelText:=SelText+'追加された文字';
他にも方法があるかも^^;


るるとん@K  2004-03-31 17:41:16  No: 8100

×Memo1.SelText:=SelText+'追加された文字';
◎Memo1.SelText:=Memo1+SelText+'追加された文字';
ミスった


るるとん@K  2004-03-31 17:43:11  No: 8101

2はMemo1.Addですか?


jok  2004-03-31 17:54:11  No: 8102

> ボタン1クリックでMEMOの現在行に文字追加

procedure TForm1.Button1Click(Sender: TObject);
var
  LineNo:integer;
begin
  LineNo := SendMessage(Memo1.Handle,EM_LINEFROMCHAR,Memo1.SelStart,0);
  Memo1.Lines[LineNo] := Memo1.Lines[LineNo]+'ABCDEFG';
  Memo1.SetFocus;
end;

ボタン2クリックで次の行に移動

procedure TForm1.Button2Click(Sender: TObject);
var
  NextLine:integer;
begin
  NextLine := SendMessage(Memo1.Handle,EM_LINEFROMCHAR,Memo1.SelStart,0)+1;
  if NextLine = -1 then exit;
  Memo1.SelStart := SendMessage(Memo1.Handle,EM_LINEINDEX,NextLine,0);
  Memo1.SetFocus;
end;


jok  2004-03-31 17:59:50  No: 8103

訂正します。

> ボタン2クリックで次の行に移動

procedure TForm1.Button2Click(Sender: TObject);
var
  NextLine:integer;
begin
  NextLine := SendMessage(Memo1.Handle,EM_LINEFROMCHAR,Memo1.SelStart,0)+1;
  NextLine := SendMessage(Memo1.Handle,EM_LINEINDEX,NextLine,0);
  if NextLine <> -1 then Memo1.SelStart := NextLine;
  Memo1.SetFocus;
end;


あろーん  2004-04-01 06:16:23  No: 8104

るるとんさん、jokさんありがとうございます!
さっそく使わせていただきます


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加