Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2003.08.04;
Скачать: [xml.tar.bz2];

Вниз

PrintDialog   Найти похожие ветки 

 
Alexor   (2003-05-22 00:32) [0]

Вызываю PrintDialog - пользователь выбирает принтер. Теперь нужно распечатать QReport-ский репорт. Как ему (QReport-у) указать тот принтер каторый вабрал рользователь?

Помогите пожалуйста! Я просто больше не знаю где искать ответ.


 
Роман Василенко   (2003-05-22 09:16) [1]

QuickReport1.PrinterSettings.PrinterIndex:=printer.Printers.IndexOf("Название выбранного принтера");
либо
QuickReport1.PrinterSettings.PrinterIndex:=Индекс твоего принтера в списке


 
Alexor   (2003-05-23 00:38) [2]

Спасибо,
Меня интересует именно то, как этот индекс принтера (выбранного) достать из PrintDialog-a ?

if PrintDialog1.Execute then
begin
QuickReport1.PrinterSettings.PrinterIndex:=???;
...
QuickReport1.Print;
end;


 
Сергеєєв Володимир   (2003-05-23 11:47) [3]

Никак ты его из стандартногo TPrintDialog не достанешь.

Я с этим имел продолжительные половые отношения месяц. В итоге все закончилось тем, что я переписал свой диалог печати.

Первая мысль была открыть Dialogs.pas и посмотреть метод Execute, чтобы вызвать Апи напрямую, без диалога Апи, посмотрел описание (по WinApiRus.hlp, де-то здесь валяется в документации. Большое спасибо автору). Ни в одной из передаваемых в функцию структур нет Индекса принтера. Спрашивается, нафиг тоды она нужна эта функция?
Насколько я разобрался че там происходит, то получается следующее: когда приложение стартует, то в нем по дефолту берется принтер по умолчанию виндов. Далее, при вызове Апи внутри самой Апи меняется принтер по дефолту для программы. А потом, после вызова Апи в методе Execute происходит переинициализация глобальных переменных. Это все хорошо, для Мемо всяких там, РичЭдитов. Но QReport берет принтер только в момент создания. И поэтому, вызов принтДиалога ему по-барабану.

Но это еще полбеды. Допустим, ты уже знаешь индекс требуемого тебе принтера. Метод QReport.PrinterSettings.ApplySettings(QPrinter :TQPrinter) в версии QReport3.0 работает через раз, а в Винде98 вообще не работает. До того, как я апгрейдил QReport я решал эту проблему просто перенастройкий принтера по дефолту виндов. Сперва менял принтер по дефолту виндов на требуемый, потом печатал, а потом возвращал на место.


 
Pat   (2003-05-23 12:23) [4]

На каждый Printer найдется свой QRPrinter © где-то прочитал
QuickReport использует свой QRPrinter, и работать надо с ним © местный FAQ



Страницы: 1 вся ветка

Форум: "Система";
Текущий архив: 2003.08.04;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.007 c
1-10161
Man
2003-07-19 17:41
2003.08.04
как открыть текстовый файл ReadOnly


14-10383
Knight
2003-07-16 21:53
2003.08.04
Свободу действий модераторам!!!


3-10102
Alex_x
2003-07-14 13:34
2003.08.04
Немогу програмно установить свойство DataSource датасета


1-10296
Ivolg
2003-07-22 10:57
2003.08.04
Html файл


11-10152
Arioch
2002-12-03 15:10
2003.08.04
А будет ли Unicode ? (кто что думает по поводу?)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский