2011-12-26 1 views
2

TMemo를 사용하면 여러 줄을 표시 할 수 있습니다.델파이 7의 TMemo에서 선택한 텍스트 속성을 굵은 글씨로 바꾸는 방법은 무엇입니까?

단축키 Ctrl + B를 사용하여 TMemo에서 선택한 텍스트 속성을 굵게 변경하고 싶습니다.

예를 들어, 사용자가 "안녕하세요, 어떠세요?"라고 입력합니다. Tmemo에서 사용자가 "방법"을 선택하고 Ctrl + B를 누르면 TMemo의 굵게에서 "방법"만 나타나야합니다.

나는 델파이 7

솔루션을 얻기 위해 조언을 주시기 바랍니다 사용합니다. 도와 주셔서 감사합니다.

+4

TMemo는 기본적으로 지원하지 않으므로 그렇게하려면 많은 작업이 필요합니다. TRichEdit으로 전환하는 것이 더 좋을 수 있으며 서식을 사용하는 방법을 배우십시오. –

+0

'TMemo'를 전혀 사용할 수 없습니다. 'TRichEdit'로 사소한. –

+0

TRichEdit을 사용하여 가능하게하는 힌트가 있습니까? thanks – Nalu

답변

2

메모 컨트롤에서 텍스트 서식을 지정할 수 없습니다. 풍부한 편집 컨트롤 TRichEdit이 필요합니다.

현재 선택 굵게하기 위해이 작업을 수행 : CTRL + A 같은 바로 가기에 대한 응답으로 코드를 호출하는

RichEdit.SelAttributes.Style := RichEdit.SelAttributes.Style + [fsBold]; 

선호하는 방법은 작업을 사용하는 것입니다. TActionList을 양식에 추가하고 해당 조치 목록에 조치를 추가하십시오. 작업의 OnExecute 이벤트 처리기가 선택한 텍스트의 굵은 글씨를 수행하는 코드를 가리 키도록 설정하십시오. Shortcut 속성을 Ctrl+A으로 설정하십시오. 사용자 이벤트 제어를 중앙 집중화 할 수 있도록 동작을 사용하십시오. 일반적으로 도구 버튼, 메뉴 항목 및 동일한 작업을 수행하는 상황에 맞는 메뉴 항목이있을 수 있으며 여기에는 작업이 직접 처리됩니다.

+0

데이비드에게 감사드립니다. – Nalu

2

다음은 RichEdit을 사용하는 프로그램의 일부입니다. 선의 일부는 검은 색으로 표시되고 파란색으로 부분 표시되며 굵은 빨간색으로 표시 될 수도 있습니다. 'Text'는 RichEdit의 필드입니다.

procedure TWhatever.InsertText (const atext, btext, ctext: string); 
begin 
with RichEdit1 do 
    begin 
    selstart:= length (text); 
    sellength:= 0; 
    SelAttributes.Color:= clBlack; 
    seltext:= '[' + atext + '] '; 

    selstart:= length (text); 
    sellength:= 0; 
    SelAttributes.Color:= clBlue; 
    seltext:= btext + ' '; 

    if ctext <> '' then 
    begin // trap non-existent answers 
    selstart:= length (text); 
    sellength:= 0; 
    SelAttributes.Color:= clRed; 
    SelAttributes.Style:= [fsBold]; 
    seltext:= ctext + ' '; 
    SelAttributes.Style:= []; 
    end; 
    lines.add (''); // new line 
    end; 
end; 
+0

RichEdit을 사용하여 굵게 글꼴을 설정할 수 있습니다. 누군가 Ctrl + B 단축키를 설정하여 xyz 프로 시저를 호출 할 수 있습니까? – Nalu

+0

왜이 답변에는 과감한 답변이 없습니까? –

+0

@David : 질문에서 '대담한'것을 알지 못했기 때문에! 내 대답을 편집 할게. –

관련 문제