2012-04-03 1 views
1

나는 Delphi v7에서 Delphi XE2로 마이그레이션했습니다. 두 개의 dbrichedit 및 dbedit 컨트롤을 사용하여 fontdialog를 사용하려고합니다. 이 작업을 수행하는 데 사용한 코드는 Delphi v7에서 제대로 작동하지만 XE2에서는 작동하지 않습니다. 나는 그것이 간과 한 간단한 것임에 틀림 없다고 생각합니다. 나는 일주일 이상 문제를 해결하기 위해 노력해 왔지만 생각하기에는 너무 가깝다.fontdialog 및 RichEdit을 사용하여 활성 컨트롤 변경

텍스트를 조작하기 위해 button을 사용하여 fontdialog 및 apply 이벤트를 실행했습니다.

코드 :

if ActiveControl is TDBEdit then 
    with ActiveControl as 
    TdbEdit do 
    Font.Assign(TFontDialog(Sender).Font) 
else if ActiveControl is TDBRichEdit then 
    with ActiveControl as TDBRichEdit do 
    SelAttributes.Assign(TFontDialog(Sender).Font) 

아무런 변화가 없습니다.

간과 한 form1에 대한 속성이 있습니까?

+0

해당 코드는 XE2에서보다 D7에서 작동하지 않을 수 있습니다. –

답변

4

Vcl.Dialogs.TFontDialog.OnApply 이벤트가 발생하면 ActiveControl이 현재 활성화 된 컨트롤 (이 경우 누른 키)을 반환하기 때문에 변수에 ActiveControl 속성의 값을 저장해야합니다. 이 샘플 FontDialogOnApply (Delphi)을 확인하십시오.

+0

답장을 보내 주셔서 감사합니다. "FontDialogOnApply (Delphi)"예제 다음에 내 코드를 제안하고 다시 작성한 것입니다. 문제가 여전히 존재합니다. RichEdit 컨트롤의 텍스트를 강조 표시하고 FondDialog에서 텍스트 특성을 선택하면 아무 것도 적용되지 않습니다. 편집 컨트롤과 동일합니다. – Robert