Делфи как открыть программу

Содержание

Секреты программирования. Примеры разработки. Обзоры программёрского софта, блогов и форумов и просто полезные советы!

  • Главная
  • Библиотека программиста
  • Компоненты для Delphi и C++ Builder
  • О блоге
  • Партнёрам

RSS Новости

Рубрики

Интересно почитать

  • Ставим МТС коннект модем на Linux (Ubuntu, Mandriva и др.)
  • Урок Delphi – Учимся подключать .INI файлы в свои Delphi-приложения.

Полезные записи

  • Урок PHP — Как отправить электронное письмо с адресом чужого e-mail ящика?!
  • Обзор бесплатного софта pdf to word converter
  • Ставим МТС коннект модем на Linux (Ubuntu, Mandriva и др.)
  • Урок Delphi – Учимся подключать .INI файлы в свои Delphi-приложения.
  • Пишем алгоритм простого шифрования текста на Delphi
  • Узелок впрок! Динамическое создание визульных элементов
  • Класс для открытия шелла с перенаправлением I/O

Комментаторы

Архивы

Мы читаем

Статистика блога

Урок Delphi – Учимся подключать .INI файлы в свои Delphi-приложения.

Posted by devprog на 25 июля, 2010

урок на Делфи — 39. Открыть чужую программу

Сегодня мы рассмотрим, как подключать инициализационные файлы в свои приложения на Delphi . Инициализационные .INI файлы представляют собой, обычные текстовые файлы, которые вы могли наблюдать обычно в папках с программами на вашем компьютере. Они используются для хранения пользовательских настроек и параметров и обычно открываются любыми текстовыми редакторами и имеют такой формат:

Работать с .INI файлами в Delphi очень просто. Основной базовый класс для работы с ними это TIniFile, который позволяет производить над ними все операции записи и считывания, перезаписи пользовательских настроек. Есть еще класс TMemIniFile, который отличается и первого TIniFile, тем, что все данные записываются в оперативную память компьютера, и сохраняются на диске только в момент вызова UpdateFile метода. Оба этих класса содержаться в модуле IniFile и для того, чтобы мы смогли использовать .INI файлы и работать с этими классами в ваших приложениях, вы должны добавить модуль IniFiles в секцию Uses.

Создать объект класса TIniFile или TMemIniFile очень просто, для этого нужно передать конструктору имя .INI файла. В случае, если данного файла не существует, он создается автоматически. Для чтения/записи из/в .INI файл пользовательских значений программно существуют методы

ReadSrting / WriteString;

ReadDate / WriteDate;

ReadInteger / WriteInteger;

ReadBool / WriteBool;

Довольно теории, теперь попробуем попрактиковаться и написать небольшое приложение, наглядно демонстрирующее работу с инициализационными файлами в Delphi и классом TIniFile. Наше приложение после запуска считает из .INI файла информацию о положении и размерах окна, а так же содержимого поля ввода типа Edit, а когда мы закроем приложение оно вновь запишет в .INI файл свои новые( если мы поменяли размер окна или что-то написали в поле ввода) данные, с которыми оно откроется в следующий раз.

Читайте также:
Как удалить все моды из World of Tanks программа

Установка Delphi / Autocom 2017 v R3 Final

Открываем Delphi, помещаем на форму компоненты Edit(поле ввода) и Button(обычная кнопка). Будем обрабатывать события компонента Form, главной формы при создании OnCreate и закрытии OnClose, а также события нажатия на кнопку Button OnClick.

Добавляем в секцию подключаемых модулей Uses модуль IniFile, в котором содержится класс TIniFile, с которым наше приложение будет работать.

В самом начале работы программы (в теле обработчика события создания формы OnCreate) мы попробуем прочитать данные из .INI файла. Чтобы это реализовать, создадим объект класса TIniFile, вызвав его конструктор, с именем нужного файла. Имя файла мы получим из имени исполняемого файла приложения Application.ExeName, изменив его расширение на “ini” с помощью функции ChangeFileExt.

Извлекать из .INI файла отдельные значения мы будем с помощью методов: ReadInteger, ReadString и ReadBool. Эти функции имеют 3 аргумента

  1. Read/Write*(имя типа данных Integer, String или Bool)* ( 1N , 2N, 3N ) ;
  2. 1N — первый аргумент, имя секции, в нашем случае это будет Form
  3. 2N — второй аргумент, имя параметра (Top, Left, Text и т.п.)
  4. 3N – третий аргумент, указывает значение по умолчанию(100, 200, 300 и т.п.) если используется Read* чтение, в случае Write* записи, это будет записываемое значение.

Извлечь значения из .INI файла нам возможно и не удастся не только в аварийном случае, но и по нескольким из причин, например, отсутствие инициализационного файла, или секции. Поэтому, для обработки подобных или еще более серьезных ошибок мы будем использовать защищенный блок try … finally .

procedure TForm1.FormCreate(Sender: TObject);
var
IniSoub: TIniFile;
begin
Caption := ‘*.INI’;
Button1.Caption := ‘
//создаем объект класса TIniFile
IniSoub := TIniFile.Create(ChangeFileExt(Application.ExeName, ‘.ini’));
try // пробуем прочитать данные
Edit1.Text := IniSoub.ReadString(‘Edit’, ‘Text’, »);
Top := IniSoub.ReadInteger(‘Form’, ‘Top’, 100);
Left := IniSoub.ReadInteger(‘Form’, ‘Left’, 100);
Height := IniSoub.ReadInteger(‘Form’, ‘Height’, 100);
Width := IniSoub.ReadInteger(‘Form’, ‘Wedth’, 147);
IF IniSoub.ReadBool(‘Form’, ‘Maximized’, false) then
WindowState := wsMaximized
else
WindowState := wsNormal;
finally
IniSoub.Free; //освобождаем память
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Close;
end;

Когда мы закрываем программу, событие закрытия формы OnClose обработается и запишет текущие значения (высота, размер окна, и т.п.) в инициализационный файл с помощью методов класса TIniFile :

Читайте также:
Что такое библиотека программ

WriteString()
WriteInteger()
WriteBool()

Pro-Delphi

Научиться программировать не так сложно, как кажется. Уроки по принципу от простого к сложному. Исходные тексты программ. Видео уроки.

Страницы

пятница, 10 июня 2011 г.

Урок 12. Добавление в проект формы “О программе”

В предыдущем уроке я обещал рассказать о том, как добавить в проект, состоящий из одной формы, еще одну и из нее сделать форму “О программе”.
Наберитесь терпения, этот урок Delphi будет не таким простым, как предыдущий.
Приступим.

Откройте проект с программой “Таймер”, и выберите пункт меню
File — New — Form Delphi For Win 32. В проект будет добавлена новая форма.

В Инспекторе объектов измените свойства формы:
Caption — О программе,
Position — poScreenCenter (при открытии форма будет всегда выводиться в центре экрана).
Name — AboutFrm.
Visible — False (после создания форма будет оставаться невидимой)
KeyPreview — True (форма будет реагировать на нажатие клавишей).

Расположите на форме панель, несколько меток, гиперссылку и кнопку.

Сохраните модуль формы под именем About.pas.
Перейдите в раздел Implementation главной формы таймера, добавьте ключевое слово Uses и дайте описание модуля About в нем. В принципе, Вы вправе дать это описание выше, в разделе interface Uses, но. О разнице двух объявлений читайте в учебниках.

Откройте код проекта, воспользовавшись меню Project — View Source.
Найдите в тексте строчку:
Application.CreateForm(TAboutFrm, AboutFrm);.

выделите ее и вырежте (Ctrl-X) для того, чтобы новая форма, добавленная в проект, не создавалась и не выводилась на экран сразу после старта программы.

Перейдите в главную форму таймера, найдите заготовку процедуры, обрабатывающей вызов справки и вставьте этот оператор в тело данной процедуры.

Добавьте ниже два оператора:
AboutFrm.ShowModal; // Вывод формы на эран
// в модальном окне (другие окна недоступны)
AboutFrm.Free; // Освобождение памяти
// после окончания работы с формой

На этом урок можно закончить. Но! В наглядном видео уроке, который Вы можете посмотреть или скачать , показан еще один момент — удаления формы из проекта.

PS Полный текст модуля формы “О программе” приведен ниже:
unit about;

uses Windows, Classes, Graphics, Forms, Controls, StdCtrls,
Dialogs, Buttons, ExtCtrls, SysUtils, OK_CANCEL, MyLabels, SHELLAPI,
MyLinkLabel, PrDLinkLabel;

type
TAboutFrm = class(TForm)
Panel1: TPanel;
ProgramIcon: TImage;
ProductName: TLabel;
Version: TLabel;
Copyright: TLabel;
MyVersion: TLabel;
Label1: TLabel;
MyOkButton1: TMyOkButton; // Кнопка с рисунком,
// можно заменить на стандартную
PrDLinkLabel1: TPrDLinkLabel;
procedure MyOkButton1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure FormActivate(Sender: TObject);
private
< Private declarations >
Function CurrentFileInfo(AFileName: string): string; // Источник — База знаний Delphi
// Как вариант, можно взять здесь:
// http://www.delphisources.ru/pages/faq/base/versioninfo.html
public
< Public declarations >
end;

Читайте также:
Системное по примеры программ

var
AboutFrm: TAboutFrm;
implementation
Function TAboutFrm.CurrentFileInfo(AFileName: string): string;

// Компиллятор выдает некритическую ошибку при использовании этой функции

var
szName: array[0..255] of Char;
P: Pointer;
Value: Pointer;
Len: UINT;
GetTranslationString: string;
FFileName: PChar;
FValid: boolean;
FSize: DWORD;
FHandle: DWORD;
FBuffer: PChar;
begin
try
FFileName := StrPCopy(StrAlloc(Length(AFileName) + 1), AFileName);
FValid := False;
FSize := GetFileVersionInfoSize(FFileName, FHandle);
if FSize > 0 then
try
GetMem(FBuffer, FSize);
FValid := GetFileVersionInfo(FFileName, FHandle, FSize, FBuffer);
except
raise;
end;
Result := »;
if FValid then
VerQueryValue(FBuffer, ‘VarFileInfoTranslation’, p, Len)
else
p := nil;
if P <> nil then
GetTranslationString := IntToHex(MakeLong(HiWord(Longint(P^)),
LoWord(Longint(P^))), 8);
if FValid then
begin
StrPCopy(szName, ‘StringFileInfo’ + GetTranslationString +
‘FileVersion’);
if VerQueryValue(FBuffer, szName, Value, Len) then
Result := StrPas(PChar(Value));
end;
finally
try
if FBuffer <> nil then
FreeMem(FBuffer, FSize);
except
end;
try
StrDispose(FFileName);
except
end;
end;
end;

procedure TAboutFrm.FormActivate(Sender: TObject);
begin
MyVersion.Caption:=CurrentFileInfo(Paramstr(0));
ProductName.Caption:=Application.Title;
Label1.Caption:=’Москва — 2010 год’;
icon:=Application.Icon;
ProgramIcon.Picture.LoadFromFile(‘Clock.ico’);
end;

procedure TAboutFrm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:= caFree;
end;

Источник: pro-delphi.blogspot.com

Как создать и открыть Excel — файл в Delphi

Далее поместим на форму компонент TButton и в обработчике событий OnClick запишем следующий код:

procedure TForm1 . Button1Click ( Sender : TObject ) ;

XL : Variant ;

XL : = CreateOLEObject ( ‘Excel.Application’ ) ; // Создание OLE объекта

XL . WorkBooks . add ; // Создание новой рабочей книги

XL . visible : = true ;

Результатом выполнения станет запуск программы Microsoft Excel и открытие нового листа.

Для открытия уже существующего документа Excel следует воспользоваться методом Open:

Если необходимо открыть документ Excel только для чтения, пишем следующее:

Для закрытия документа Excel:

XL . Application . Quit ;

Если Вам необходимо при открытии файла использовать не абсолютный, а относительный путь, то необходимо предварительно воспользоваться функцией GetDir, рассмотрим пример ниже:

procedure TForm1 . Button1Click ( Sender : TObject ) ;

XL : Variant ;

AppLocation : string ;

XL : = CreateOLEObject ( ‘Excel.Application’ ) ; // Создание OLE объекта

ShowMessage ( ‘Cannot start MS Excel.’ ) ;

GetDir ( 0 , AppLocation ) ; // Возвращает текущий каталог диска

XL . visible : = true ;

Одноклассники

Все материалы и продукты на этом сайте опубликованы для целей ознакомления для зарегистрированных пользователей фирм производителей материала или продукта, или его авторов. Помните, что скачанные материалы или продукты, Вы используете на свой страх и риск. Автор и администрация этого сайта не несет никакой ответственности за использование этих материалов или продуктов третьими лицами. В случае, если вы используете один из перечисленных здесь материалов или продуктов, Вы обязаны официально приобрести его у фирмы производителя или автора.

Источник: okolokompa.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru