문의도 있고 잘 안쓰는 CC_RUNLOWCOMMAND 매크로도 소개할겸사겸사 글을 적어봅니다.

그럼 매크로 나갑니다.

If CC_ISSYNCLINE(CCP_CARETY) Then
Begin
CC_RUNLOWCOMMAND('Menu_DeleteCurrentTime');
CCP_CURRENTLINE := CC_STRINGREPLACE(CCP_CURRENTLINE, '<Sync Start=0><P Class=KRCC>', '');
End;


위와 같습니다.

방식은 이렇습니다.

현재 커서가 있는 줄이 싱크태그가 있는 라인인지 확인 한 뒤, 싱크 태그가 있는 줄이라면

메뉴의 시간 삭제를 실행한 뒤

<sync start 로 시작하는 문자열을 지우는겁니다. (시간 삭제를 하면 Sync Start=0 이 되니까요

만일 직접 태그를 수정하셔서 Sync Start 로 시작하는 구문이 다르다면 볼드 처리된 부분만 고치시면 됩니다.

덤+

CC_RUNLOWCOMMAND 에서 호출가능한 내부 기능들은

키 프리셋 파일인 c4k 파일을 열어보면 그 이름들을 알아낼 수 있습니다.


==============================================================================================================

1. 바로 삭제가 가능하게 할수는 있습니다만.. 여러모로 좋을것 같지는 않습니다;;

아래와 같이 매크로를 작성하시면 됩니다.

(10줄 이상 위로 추적해서 삭제하진 않습니다. 그 이상을 원하시면 -10 을 더 키우시면 됩니다)


var
  LineCheck, MaxLine: Integer;
begin
  MaxLine := CCP_CaretY - 10;
  If MaxLine < 0 Then MaxLine := 0;

  for LineCheck := CCP_CaretY downto MaxLine do
  begin
    If CC_ISSYNCLINE(LineCheck) Then
    Begin
  CCP_CaretY := LineCheck;
  CC_RUNLOWCOMMAND('Menu_DeleteCurrentTime');
  CCP_CURRENTLINE := CC_STRINGREPLACE(CCP_CURRENTLINE, '<Sync Start=0><P Class=KRCC>', '');
    End;
  end;
end;


2. 공백이 안남게 하시려면 요렇게 한줄을 추가해주시면 됩니다.


If CC_ISSYNCLINE(CCP_CARETY) Then
Begin
CC_RUNLOWCOMMAND('Menu_DeleteCurrentTime');
CCP_CURRENTLINE := CC_STRINGREPLACE(CCP_CURRENTLINE, '<Sync Start=0><P Class=KRCC>', '');

If CCP_CURRENTLINE = '' Then CC_DeleteLine(CCP_CARETY); //추가
End;


Posted by 투명인간취급
,