Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> PrinterSetupDialog, формат листа 
:(
    Опции темы
Akella
Дата 17.5.2007, 09:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: нет
Всего: 329



Есть код 
Код

  if PrinterSetupDialog1.Execute(Application.ActiveFormHandle) then
    RichEdit1.Print('Kvx-'+UserData.UserName);


как программно указать в PrinterSetupDialog1, чтобы печать была на альбомном формате??
PM MAIL   Вверх
Addmin
Дата 17.5.2007, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 803
Регистрация: 3.2.2006
Где: сослан в Сибирь

Репутация: 1
Всего: 15



Как написано в книге Архангельского "100 компонентов Delphi 5":

Цитата

Теперь остановимся на компоненте PrinterSetupDialog, вызывающем диалоговое окно установки принтера, представленное на рис. 8.11. Это единственный диалоговый компонент, не имеющий никаких специфических свойств, которые надо было бы устанавливать или читать. Диалог выполняет операции по установке принтера, на котором будет производиться печать, и задании его свойств. Этот диалог не возвращает никаких параметров. 

Думаю, в последующих Delphi тенденция сохраняется smile

С PrintDialog также программно указать не получится. Про PageSetupDialog - не знаю, но, думаю, если где-то и можно настроить, то только в нём.


--------------------
PM MAIL   Вверх
Akella
Дата 17.5.2007, 11:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: нет
Всего: 329



неееее, как-то ж можно?

Добавлено через 3 минуты и 48 секунд
кое-что нашёл, но это минуюя диалог, не совсем то

Код

var
  Device : array[0..cchDeviceName-1] of Char;
  Driver : array[0..(MAX_PATH-1)] of Char;
  Port : array[0..32] of Char;
  hDMode : THandle;
  pDMode : PDevMode;
  sDev : array[0..32] of Char;
begin
  Printer.GetPrinter(Device,Driver,Port,hDMode);
  if hDMode <> 0 then
  begin
    pDMode :=GlobalLock(hDMode);
    if pDMode <> nil then
    begin
      pdMode^.dmOrientation :=2;
      // landscape
      pdMode^.dmPaperSize := DMPAPER_A3
      // (см. win32.hlp DEVMODE)
      GlobalUnlock(hDMode);
    end;
  end;
end;


Это сообщение отредактировал(а) Akella - 17.5.2007, 11:22
PM MAIL   Вверх
Addmin
Дата 17.5.2007, 11:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 803
Регистрация: 3.2.2006
Где: сослан в Сибирь

Репутация: 1
Всего: 15



Akella, ведь в книжке же написано, что PrinterSetupDialog не умеет ни читать, ни писать никакие свойства smile А это у тебя уже WInAPI smile

Добавлено через 1 минуту и 56 секунд
Да и зачем тогда диалог, если ты хочешь сразу печатать альбомным листом? Может тогда при первом запуске программы распечатать стикер с напоминанием для пользователя? (мол, ставь формат альбома!) smile


--------------------
PM MAIL   Вверх
Akella
Дата 17.5.2007, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: нет
Всего: 329



Цитата(Addmin @  17.5.2007,  11:36 Найти цитируемый пост)
Да и зачем тогда диалог, если ты хочешь сразу печатать альбомным листом? 

пользователю нужно предоставить выбор, но по умолчанию нужно выставить альбомный лист
PM MAIL   Вверх
Addmin
Дата 17.5.2007, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 803
Регистрация: 3.2.2006
Где: сослан в Сибирь

Репутация: 1
Всего: 15



Увы, эти диалоги такого свойства не предоставляют. Всё, что мне приходит в голову - это как-то изменить RadioBox1 после появления диалога . Самое глупое и простое, что постучалось первым - программно дёрнуть курсор (окошко вроде всегда в середине экрана появляется), щёлкнуть по RadioBox и вернуться назад. На секунду мышку заблокировать.

Это сообщение отредактировал(а) Addmin - 17.5.2007, 16:40


--------------------
PM MAIL   Вверх
Akella
Дата 18.5.2007, 08:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: нет
Всего: 329



бред

Добавлено через 32 секунды
я уверен, что есть способы с пом. WinAPI
PM MAIL   Вверх
Addmin
Дата 18.5.2007, 08:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 803
Регистрация: 3.2.2006
Где: сослан в Сибирь

Репутация: 1
Всего: 15



Цитата

бред

Я не спорю smile

Цитата

я уверен, что есть способы с пом. WinAPI 

Удачи в дальнейших поисках smile





--------------------
PM MAIL   Вверх
Akella
Дата 18.5.2007, 09:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: нет
Всего: 329



ага, спасибо за помощь smile 
PM MAIL   Вверх
Addmin
Дата 19.5.2007, 18:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 803
Регистрация: 3.2.2006
Где: сослан в Сибирь

Репутация: 1
Всего: 15



Однако, WInAPI доступ к принтеру всё же есть smile Имя ему - PrintDlg (PrintDialog - VCL-обёртка над ним), Поищи в Яндексе что-то типа этого или "параметры PrintDlg".


--------------------
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0544 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.