하나의 프로그램에서 두 개의 폼을 쓰고 있습니다.
둘다 RichEdit를 에디터로 쓰고 있지요.
Form1은 검색창으로, Form2는 편집창으로 쓰고 있습니다.
Form2 에서 편집을 하다 Form2.Hide; 명령으로 Form1으로 갔다가 Form2로 다시 돌아오면 커서의 위치가 편집하던 위치를 이탈해서 새로운 파일을 불러온 것처럼 페이지의 맨 위로 올라가는군요. 계속해서 검색과 편집을 번갈아 가면서 반복을 해야하는 일이라 커서가 마음대로 움직이니 불편하군요.
폼을 이동해도 커서의위치가 변경되지 않게 할 방법을 알려주시면 감사하겠습니다.
아래에 Form2를 여는 코드와 Form2를 재우고 Form1을 활성화 시키는 코드를 적었습니다. 어쩌면 이것과는 관계없이 메모리 관리와 관계가 있다는 생각을 해보았지만 확실한 것이 없어서 문의를 드립니다. 자세한 안내를 부탁드립니다.
procedure TForm1.BitBtn7Click(Sender: TObject);
var
mstrm : TmemoryStream ;
zero : char;
begin
mstrm := TmemoryStream.Create;
if notebook1.ActivePage = 'find' then
begin
richedit2.lines.SaveToStream(mstrm);
end
else begin
richedit1.PlainText := true;
richedit1.lines.SaveToStream(mstrm);
richedit1.PlainText := false;
end;
mstrm.Seek(0, soFromEnd);
Zero := #0;
mstrm.Write(zero, 1);
mstrm.Seek(0, soFromBeginning);
form2.show;
end;
xxxxxxxxxxxxxxx
procedure TForm2.SpeedButton1Click(Sender: TObject);
begin
Form2.Hide;
end;