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

Тут можно читать онлайн Виртуальная библиотека Delphi - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Виртуальная библиотека Delphi
  • Автор:
  • Жанр:
  • Издательство:
    неизвестно
  • Год:
    неизвестен
  • ISBN:
    нет данных
  • Рейтинг:
    3/5. Голосов: 11
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 60
    • 1
    • 2
    • 3
    • 4
    • 5

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

Виртуальная библиотека Delphi - описание и краткое содержание, автор Неизвестный Автор, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

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

Виртуальная библиотека Delphi - читать книгу онлайн бесплатно, автор Неизвестный Автор
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

unit InWord;

interface

uses

... ComCtrls; // Delphi3

... OLEAuto; // Delphi2

[skip]

procedure TPrintForm.MPrintClick(Sender: TObject);

var W: Variant;

S: String;

begin

S:=IntToStr(Num);

try // А вдруг где ошибка :)

W:=CreateOleObject('Word.Basic');

// Создаем документ по шаблону MyWordDot

// с указанием пути если он не в папке шаблонов Word

W.FileNew(Template:='C:\MyPath\DB\MyWordDot',NewTemplate:=0);

// Отключение фоновой печати (на LJ5L без этого был пустой лист)

W.ToolsOptionsPrint(Background:=0);

// Переходим к закладке Word'a 'Num'

W.EditGoto('Num'); W.Insert(S);

//Сохранение

W.FileSaveAs('C:\MayPath\Reports\MyReport')

W.FilePrint(NumCopies:='2'); // Печать 2-х копий

finally

W.ToolsOptionsPrint(Background:=1);

W:=UnAssigned;

end;

end;

{.....}

=== Cut Конец примера ===

Спасибо Сергею :) И еще, как определить установлен ли на компьютере Word, запустить его и загрузить в него текст из программы?

Пример:

var

MsWord: Variant;

...

try

// Если Word уже запущен

MsWord := GetActiveOleObject('Word.Application');

// Взять ссылку на запущенный OLE объект

except

try

// Word не запущен, запустить

MsWord := CreateOleObject('Word.Application');

// Создать ссылку на зарегистрированный OLE объект

MsWord.Visible := True;

except

ShowMessage('Не могу запустить Microsoft Word');

Exit;

end;

end;

end;

...

MSWord.Documents.Add; // Создать новый документ

MsWord.Selection.Font.Bold := True; // Установить жирный шрифт

MsWord.Selection.Font.Size := 12; // установить 12 кегль

MsWord.Selection.TypeText('Текст');

По командам OLE Automation сервера см. help по Microsoft Word Visual Basic.

Ну вот и все.

Перетаскивание файла

{ На эту форму можно бросить файл (например из проводника)

и он будет открыт }

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics,

Controls, Forms, Dialogs,StdCtrls,

ShellAPI {обязательно!};

type

TForm1 = class(TForm)

Memo1: TMemo;

FileNameLabel: TLabel;

procedure FormCreate(Sender: TObject);

procedure FormDestroy(Sender: TObject);

protected

{Это и есть самая главная процедура}

procedure WMDropFiles(var Msg: TMessage); message wm_DropFiles;

end;

var

Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.WMDropFiles(var Msg: TMessage);

var

Filename: array[0 .. 256] of Char;

Count : integer;

begin

{ Получаем количество файлов (просто пример) }

nCount := DragQueryFile( msg.WParam, $FFFFFFFF,

acFileName, cnMaxFileNameLen);

{ Получаем имя первого файла }

DragQueryFile( THandle(Msg.WParam),

0, { это номер файла }

Filename,SizeOf(Filename) ) ;

{ Открываем его }

with FileNameLabel do begin

Caption := LowerCase(StrPas(FileName));

Memo1.Lines.LoadfromFile(Caption);

end;

{ Отдаем сообщение о завершении процесса }

DragFinish(THandle(Msg.WParam));

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

{ Говорим Windows, что на нас можно бросать файлы }

DragAcceptFiles(Handle, True);

end;

procedure TForm1.FormDestroy(Sender: TObject);

begin

{ Закрываем за собой дверь золотым ключиком}

DragAcceptFiles(Handle, False);

end;

end.

Привлечение внимания к окну

Часто возникает проблема — в многооконном приложении необходимо обратить внимание пользователя на то, что какое-то из окон требует внимания (например, к нему пришло сообщение по DDE, в нем завершился какой-либо процесс, произошла ошибка...). Это легко сделать, используя команду API FlashWindow:

procedure TForm1.Timer1Timer(Sender: TObject);

begin FlashWindow(Handle,true);

end;

В данном примере FlashWindow вызывается по таймеру ежесекундно, что приводит к миганию заголовка окна.

Заставка для программы

Сведения о программе, авторские права и т.д., лучше оформить в виде отдельной формы и показывать ее при запуске программы (как это сделано в Word).

Сделать это не сложно:

1. Создаете форму (например SplashForm).

2. Объявляете ее свободной (availableForms).

3. В Progect Source вставляете следующее (например):

program Splashin;

uses Forms, Main in 'MAIN.PAS', Splash in 'SPLASH.PAS'

{$R *.RES}

begin

try

SplashForm := TSplashForm.Create(Application);

SplashForm.Show;

SplashForm.Update;

Application.CreateForm(TMainForm, MainForm);

SplashForm.Hide;

finally

SplashForm.Free;

end;

Application.Run;

end.

И форма SplashForm держится на экране пока выполняется Create в главной форме. Но иногда она появляется и пропадает очень быстро, поэтому нужно сделать задержку:

1. Добавляете на форму таймер с событием:

procedure TSplashForm.Timer1Timer(Sender: TObject);

begin

Timer1.Enabled := False;

end;

2. Событие onCloseQuery для формы:

procedure TSplashForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);

begin

CanClose := Not Timer1.Enabled;

end;

3. И перед SplashForm.Hide; ставите цикл:

repeat

Application.ProcessMessages;

until SplashForm.CloseQuery;

4. Все! Осталось установить на таймере период задержки 3-4 секунды.

5. На последок, у такой формы желательно убрать Caption:

SetWindowLong(Main.Handle,GWL_STYLE, GetWindowLong(Main.Handle, GWL_STYLE) AND NOT WS_CAPTION OR WS_SIZEBOX);

Прозрачная форма

Эта форма имет прозрачный фон!!!

unit unit1;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

StdCtrls;

type

TForm1 = class(TForm)

Button1: TButton;

Button2: TButton;

// это просто кнопка на форме - для демонстрации

protected

procedure RebuildWindowRgn;

procedure Resize; override;

public

constructor Create(AOwner: TComponent); override;

end;

var

Form1 : TForm1;

implementation

// ресурс этой формы

{$R *.DFM}

{ Прозрачная форма }

constructor TForm1.Create(AOwner: TComponent);

begin

inherited;

// убираем сколлбары, чтобы не мешались

// при изменении размеров формы

HorzScrollBar.Visible:= False;

VertScrollBar.Visible:= False;

// строим новый регион

RebuildWindowRgn;

end;

procedure TForm1.Resize;

begin

inherited;

// строим новый регион

RebuildWindowRgn;

end;

procedure TForm1.RebuildWindowRgn;

var

FullRgn, Rgn: THandle;

ClientX, ClientY, I: Integer;

begin

// определяем относительные координаты клиенской части

ClientX:= (Width - ClientWidth) div 2;

ClientY:= Height - ClientHeight - ClientX;

// создаем регион для всей формы

FullRgn:= CreateRectRgn(0, 0, Width, Height);

// создаем регион для клиентской части формы

// и вычитаем его из FullRgn

Rgn:= CreateRectRgn(ClientX, ClientY, ClientX + ClientWidth, ClientY +

ClientHeight);

CombineRgn(FullRgn, FullRgn, Rgn, rgn_Diff);

// теперь добавляем к FullRgn регионы каждого контрольного элемента

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

Интервал:

Закладка:

Сделать


Неизвестный Автор читать все книги автора по порядку

Неизвестный Автор - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




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


Отзывы читателей о книге Виртуальная библиотека Delphi, автор: Неизвестный Автор. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x