Виртуальная библиотека Delphi

Здесь есть возможность читать онлайн «Виртуальная библиотека Delphi» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Жанр: Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Виртуальная библиотека Delphi: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Виртуальная библиотека Delphi»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Виртуальная библиотека Delphi — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Виртуальная библиотека Delphi», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Как корректно подключить Crystal Reports к Delphi?

В составе Crystal Reports Professional имеется VCL-компонент для Delphi, элемент управления ActiveX, модуль CRPE32.PAS, котором объявлены все функции и структуры Print Engine API, и описание опубликованных методов Crystal Reports как сервера автоматизации. Соответственно есть следующие возможности подключения Crystal Reports к Delphi:

1. Использование функций Report Engine API из библиотеки CRPE32 DLL. В этом случае следует добавить в проект модуль CRPE32.PAS и сослаться на этот модуль в предложении uses. Ниже приведен пример соответствующего кода:

procedure TForm1.Button1Click(Sender: TObject);

VAR RepNam:PChar;

begin

if OpenDialog1.Execute then

begin

If PEOpenEngine then

begin RepNam := StrAlloc(80);

StrPCopy(RepNam, OpenDialog1.Filename);

JN := PEOpenPrintJob(RepNam);

if JN = 0 then

ShowMessage('Ошибка открытия отчета');

StrDispose(RepNam);

end

else

ShowMessage('Ошибка открытия отчета');

end;

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

PEClosePrintJob(JN);

PECloseEngine;

Close;

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

PEOutputToWindow(jn,'Пример использования Crystal Reports Print

Engine',30,30,600,400,0,0) ;

if PEStartPrintJob(JN, True) = False then

ShowMessage('Ошибка вывода отчета');

end;

end.

Следует помнить, что строковые параметры, передаваемые в функции Print Engine API, представляют собой тип данных PChar, а не стандартные строки, используемые в Pascal, поэтому для передачи таких параметров, как, например, имя отчета, следует осуществить преобразование типов с помощью функции StrPCopy. Для успешной компиляции подобных приложений файл CRPE32.PAS должен находиться в том же каталоге, что и разрабатываемое приложение, либо в каталоге Delphi\Lib.

2. Использование VCL-компонента и комплекта поставки (для этого следует установить его в палитру компонентов Delphi). Естественно, этот компонент инкапсулирует те же самые функции Print Engine API. Существуют также аналогичные компоненты третьих фирм (например, компонент от SupraSoft Ltd., http://www.suprasoft.com).

3. Использование элемента управления Crystal Reports ActiveX. Этот элемент управления может быть установлен в палитру компонентов Delphi. Он обладает набором свойств и методов, более или менее сходным с соответствующим VCL-компонентом из комплекта поставки Crystal Reports Professional.

5. Использование Crystal Reports как сервера автоматизации. В справочной системе Crystal Reports имеется подробное описание иерархии вложенных объектов и их методов (и внушительный набор примеров для Visual Basic, аналоги которых несложно создать и на Pascal). Ниже приведен пример соответствующего кода:

procedure TForm1.Button1Click(Sender: TObject);

var r,rep: Variant;

begin

rep:=CreateOleObject('Crystal.CRPE.Application');

r:=rep.OpenReport('d:\Report2.rpt');

r.RecordSelectionFormula := '{items.ItemNo} = '+Edit1.Text;

r.Preview;

r:=Unassigned;

rep:=Unassigned;

end;

6. Можно также сделать отчет в виде исполняемого файла и вызвать его из приложения. Но в этом случае в отчет не удастся передать параметры.

Delphi VCL FAQ

Вопрос:

Как разместить прозрачную надпись на TBitmap?

Пример:

procedure TForm1.Button1Click(Sender: TObject);

var

OldBkMode : integer;

begin

Image1.Picture.Bitmap.Canvas.Font.Color := clBlue;

OldBkMode := SetBkMode(Image1.Picture.Bitmap.Canvas.Handle,TRANSPARENT);

Image1.Picture.Bitmap.Canvas.TextOut(10, 10, 'Hello');

SetBkMode(Image1.Picture.Bitmap.Canvas.Handle,OldBkMode);

end;

Вопрос:

Можно ли обратиться к колонке или строке grid'а по заголовку?

Ответ:

В следующем примере приведены две функции: GetGridColumnByName() и GetGridRowByName(), которые возвращают колонку или строку, имеющую заданный заголовок (caption).

Пример:

procedure TForm1.FormCreate(Sender: TObject);

begin

StringGrid1.Rows[1].Strings[0] := 'This Row';

StringGrid1.Cols[1].Strings[0] := 'This Column';

end;

function GetGridColumnByName(Grid : TStringGrid; ColName : string): integer;

var

i : integer;

begin

for i := 0 to Grid.ColCount - 1 do if Grid.Rows[0].Strings[i] = ColName then begin

Result := i;

exit;

end;

Result := -1;

end;

function GetGridRowByName(Grid : TStringGrid; RowName : string): integer;

var

i : integer;

begin

for i := 0 to Grid.RowCount - 1 do if Grid.Cols[0].Strings[i] = RowName then begin

Result := i;

exit;

end;

Result := -1;

end;

procedure TForm1.Button1Click(Sender: TObject);

var

Column : integer;

Row : integer;

begin

Column := GetGridColumnByName(StringGrid1, 'This Column');

if Column = -1 then ShowMessage('Column not found')

else ShowMessage('Column found at ' + IntToStr(Column));

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Виртуальная библиотека Delphi»

Представляем Вашему вниманию похожие книги на «Виртуальная библиотека Delphi» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Виртуальная библиотека Delphi»

Обсуждение, отзывы о книге «Виртуальная библиотека Delphi» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x