изменение активного элемента управления с помощью fontdialog и RichEdit - PullRequest
1 голос
/ 03 апреля 2012

Я мигрировал с Delphi v7 на Delphi XE2.Я пытаюсь использовать fontdialog с двумя dbrichedit и dbedit control.Код, который я использовал для выполнения этой задачи, прекрасно работает в Delphi v7, но он не работает с XE2.Я думаю, что это должна быть простая вещь, которую я упустил.Я работал над решением проблемы более недели, но я думаю, что слишком близок к проблеме, чтобы ее увидеть.

Я использовал кнопку для запуска 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, которое я пропустил?

1 Ответ

4 голосов
/ 04 апреля 2012

Необходимо сохранить значение свойства ActiveControl в переменной, прежде чем использовать его, потому что, когда возникает событие Vcl.Dialogs.TFontDialog.OnApply , ActiveControl возвращает текущий активный элемент управления, который в данном случае является кнопкой, которую вы нажали.проверьте этот образец FontDialogOnApply (Delphi).

...