남기석님 돌머리님 정말 감사합니다. 실행 잘 됐구요.
그런데 라인수가 보이려면 메모장에 입력을 해야 보여지는데요(체인지이벤트라 그렇겠죠?^^)
그럼 커서가 이동할 때마다 라인수를 보려면 어떤 이벤트에 코딩해야하나요?
기왕에 일케된거 하나더질문요..^^
메모장을 저장하는데요. 아래코드는 '다른이름으로저장'창이 계속 뜨거든요.
procedure TForm1.SaveAsExecute(Sender: TObject);
begin
if SD.execute then
memo1.lines.savetofile(SD.filename);
end;
한번 저장한상태에서 또 저장한다면 '다른이름으로저장'창이 안뜨고 바로 저장되야하잖아요? <--이 소스 팁모아 게시판에도 없구요.
여러분께 한번더 부탁합니다~
메모관련은 memo의 keydown event에 방향키와 enter 키가 눌릴때 이함수를 호출하시어
상태바에 출력하시면 되겠네여..조금 수정을 하시면 되겠져~
그리고 보너스로 특정위치에 커서를 이동시키는 것까지 드립니다.
즐코~
procedure GetLineNo(memo : tcustommemo; var memoline, memocol: integer);
var
linenum : longint;
charsbeforeline:longint;
begin
linenum := sendmessage(memo.handle, em_linefromchar, memo.selstart, 0);
charsbeforeline := sendmessage(memo.handle, em_lineindex, linenum, 0);
memoline := linenum + 1;
memocol := memo.selstart - charsbeforeline + 1;
end;
procedure SetLineNo(memo : tcustommemo; memoline, memocol: integer);
begin
memo.selstart := sendmessage(memo.handle, em_lineindex, memoline-1, 0)
+ memocol - 1;
end;
니케 wrote:
> 남기석님 돌머리님 정말 감사합니다. 실행 잘 됐구요.
> 그런데 라인수가 보이려면 메모장에 입력을 해야 보여지는데요(체인지이벤트라 그렇겠죠?^^)
> 그럼 커서가 이동할 때마다 라인수를 보려면 어떤 이벤트에 코딩해야하나요?
>
> 기왕에 일케된거 하나더질문요..^^
> 메모장을 저장하는데요. 아래코드는 '다른이름으로저장'창이 계속 뜨거든요.
> procedure TForm1.SaveAsExecute(Sender: TObject);
> begin
> if SD.execute then
> memo1.lines.savetofile(SD.filename);
> end;
>
> 한번 저장한상태에서 또 저장한다면 '다른이름으로저장'창이 안뜨고 바로 저장되야하잖아요? <--이 소스 팁모아 게시판에도 없구요.
> 여러분께 한번더 부탁합니다~