Предложение поправки в FAQ
Доброе время суток!!!
У меня возник вопрос : "Отчет выглядит нормально (по русски). На принтер же выводятся иероглифы! "
Нашёл ответы в FAQ, даже три способы решения, но не один не сработал (№3 не пробовал, так как "...это не наш метод..."). В конце концов всё получилось, но как ? ......
Способ №1.
В свойствах Memo открываем ветку "Font" и в поле "Charset" меняем значение "DEFAULT_CHARSET" на "RUSSIAN_CHARSET". И так каждому Memo.
Долго, но работает.
Способ №2. (родился из Способа №1 и способа №2 в нынешнем FAQ)
У меня возник вопрос : "Отчет выглядит нормально (по русски). На принтер же выводятся иероглифы! "
Нашёл ответы в FAQ, даже три способы решения, но не один не сработал (№3 не пробовал, так как "...это не наш метод..."). В конце концов всё получилось, но как ? ......
Способ №1.
В свойствах Memo открываем ветку "Font" и в поле "Charset" меняем значение "DEFAULT_CHARSET" на "RUSSIAN_CHARSET". И так каждому Memo.
Долго, но работает.
Способ №2. (родился из Способа №1 и способа №2 в нынешнем FAQ)
procedure TForm1.frxReport1BeforePrint(
Sender: TfrxReportComponent);
var
i: Integer;
begin
for i:=0 to frxReport1.ComponentCount - 1 do
begin
if frxReport1.Components[i].ClassType = TfrxMemoView then
begin
(frxReport1.Components[i] as TfrxMemoView).Font.Charset:=RUSSIAN_CHARSET;
end;
end;
end;
Комментарии
событие BeforePrint вызывается для каждого элемента выводимого на печать. А это значит что каждый раз ComponentCount будет расти и процедура быдет обрабатывать уже обработанные memo + ещё одно. В процедуру передаётся Sender и если написать : , то избавляемся от ComponentCount и получаем "универсальность" процедуры, т.к. нет ссылок на имена.
karachun, почему не работало?
было : я предложил
всё дело было в название ClassType, а именно у Вас TFrMemoView а у меня TFr<span style='color:blue'>x</span>MemoView
Заисключением этого вопрос снимаю.
смотри он раньше с фибами шел.