Читаем Виртуальная библиотека Delphi полностью

В примере строковой переменной отчета 'City' присваивается значение 'Bombey'. Подразумевается, что есть готовый отчет с данной переменной. Поместите компонент TReport на форму и установите требуемые свойства для вызова печати отчета. Напишите обработчик OnClick для кнопки Button1 на форме (кнопка — для простоты):

procedure TForm1.Button1Click(Sender: TObject); 

begin 

  Report1.InitialValues.Clear; 

  Report1.InitialValues.Add('@City='); 

  Report1.Run; 

end;

2. Как получить русские буквы в DBD?

Имя шрифта для отображения русских букв берется из файла PDOXWIN.INI секция [Properties] строка SystemFont. Если очень хочется, то можно исправить имя 'PDOXWIN.INI' на 'DBD.INI' в файле DBSRV.DLL (он лежит там же где и DBD.EXE) по смещению $E9D8 (не забудьте после 'DBD.INI' поставить шестнадцатеричный ноль), и в секции [Properties] файла DBD.INI добавить строку типа

SystemFont = Courier New Cyr

По умолчанию имя фонта для отображения русских букв — Arial.

Действительно, если у Вас Pan Euro или русская версия Windows95, то DBD не будет показывать шрифты Cyr в Preferences/General/Default system font.

Решить эту проблему можно двумя способами:

1. записать в каталог WINDOWS/FONTS шрифты Arial Cyr от русских Windows и сделать ShutDown. После загрузки Arial Cyr будет доступен для выбора.

2. поменять шрифт в Registry вручную например на MS Sans Serif - HKEY_CURRENT_USER/SOFTWARE/Borland/DBD/7.0/Preferences/Properties ключ SystemFont.

3. Как печатать отчеты из приложения Delphi без использования ReportSmith?

1. Лучше всего использовать специализированные генераторы отчетов в виде компонентов, например QuickReport или Ace Reporter.

2. Можно использовать печать формы, например: Form1.Print.

3. Можно использовать свойство Canvas объекта Printer.

4. Как узнать количество точек на дюйм для принтера?

VertPixelsPerInch := GetDeviceCaps(Printer.Handle, LogPixelsX);

HorzPixelsPerInch := GetDeviceCaps(Printer.Handle, LogPixelsY);

5. Как определить, приложение запущено из под Delphi IDE или как отдельный файл?

Для этого следует проверить существование определенных окон:

Delphi 1.0

function DelphiLoaded: Boolean; 

  function WindowExists(ClassName, WindowName: string): Boolean; 

  var 

    PClassName, PWindowName: PChar; 

    AClassName, AWindowName: array [0..63] of Char; 

  begin 

    if ClassName = '' then PClassName := nil 

    else PClassName := StrPCopy(@AClassName[0], ClassName); 

    if WindowName = '' then PWindowName := nil 

    else PWindowName := StrPCopy(@AWindowName[0], WindowName); 

    Result :=  FindWindow(PClassName, PWindowName) <> 0; 

  end

begin 

  Result := WindowExists('TPropertyInspector', 'Object Inspector'

        and WindowExists('TMenuBuilder', 'Menu Designer'

        and WindowExists('TApplication', 'Delphi'

        and WindowExists('TAlignPalette', 'Align'

        and WindowExists('TAppBuilder', ''); 

end

Delphi 2.0

function DelphiLoaded: Boolean; 

  function WindowExists(ClassName, WindowName: string): Boolean; 

  begin 

    Result :=  FindWindow(PChar(ClassName), PChar(WindowName)) <> 0; 

  end

begin 

  Result := WindowExists('TPropertyInspector', 'Object Inspector'

        and WindowExists('TMenuBuilder', 'Menu Designer'

        and WindowExists('TApplication', 'Delphi'

        and WindowExists('TAlignPalette', 'Align'

        and WindowExists('TAppBuilder', ''); 

end

Другой вариант для Delphi 1.0, работает только в EXE файлах (не в DLL).

function InIDE: Boolean; 

begin 

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных