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

解決


あろーん  2004-03-31 08:18:58  No: 8098  IP: [192.*.*.*]

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

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

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

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

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

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

2はMemo1.Addですか?

編集    削除
jok  2004-03-31 17: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 17: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-04-01 06:16:23  No: 8104  IP: [192.*.*.*]

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

編集    削除