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

解決


あろーん  2004-03-30 23:18:58  No: 8098  IP: 192.*.*.*

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

編集 削除
るるとん@K  2004-03-31 08:39:52  No: 8099  IP: 192.*.*.*

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

編集 削除
るるとん@K  2004-03-31 08:41:16  No: 8100  IP: 192.*.*.*

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

編集 削除
るるとん@K  2004-03-31 08:43:11  No: 8101  IP: 192.*.*.*

2はMemo1.Addですか?

編集 削除
jok  2004-03-31 08:54:11  No: 8102  IP: 192.*.*.*

> ボタン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 08:59:50  No: 8103  IP: 192.*.*.*

訂正します。

> ボタン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-03-31 21:16:23  No: 8104  IP: 192.*.*.*

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

編集 削除