Чтение онлайн

ЖАНРЫ

Советы по Delphi. Версия 1.4.3 от 1.1.2001

Озеров Валентин

Шрифт:

В Delphi это может быть использовано таким образом (добавьте dbiProcs в список используемых модулей):

procedure TForm1.FormCreate(Sender: TObject);

begin

 Application.onIdle := UseIdle;

end;

procedure Tform1.UseIdle(Sender: TObject; var Done: Boolean);

begin

 DbiUseIdleTime;

end;

Некоторые

замечания
:

Использование обоих вызовов DbiUseIdleTime и DbiSaveChanges (после каждого обновления записи) излишне и сопровождается необязательными вызовами функций. Если приложение выполняет множественный ввод новых записей или их редактирование в течение небольшого периода времени, рекомендуем осуществлять вызов функции DbiUseIdleTime во время простоя клинта, а вызов DbiSaveChanges после осуществления «пакета» обновлений.

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

Internet 

Форматы 

UUE кодирование

Sergei Dubarev пишет:

Ваши "Советы…" — классная штука. Столько всего вкусного! :-) Со своей стороны хочу предложить несколько тормозной и местами упрощенный, но все же рабочий ;), алгоритм UUE кодирования (см. аттач). Не вершина искусства, но все же… :)

Для того, чтобы ОНО заработало, необходимо создать проект в составе:

Форма (form) — 1 шт. Поле ввода (edit) — 2 шт., используются события OnDblClick. Кнопка (button) — 1 шт., используется событие OnClick. Диалог открытия файла (Open Dialog) — 1 шт. Диалог сохранения файла (Save Dialog) — 1 шт.

Имена файлов будут вводится либо вручную, либо из диалога (double-click на поле ввода edit), причем в edit1.text должно лежать имя входного файла, в edit2.text — выходного. По нажатии кнопки пойдет процесс, который завершится сообщением "DONE."

Всего хорошего.

P.S. Функция toanysys обнаружена в книге "Для чего нужны и как работают персональные ЭВМ" от 1990 г. Там она присутствует в виде программы на BASIC'e.

P.P.S. Для стимулирования фантазии читателей "Советов…" высылаю так же мессагу из эхи, на основе которой я сваял свое чудо.

Файл Unit1.pas

//UUE кодирование

unit Unit1;

interface

uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,ExtDlgs, StdCtrls;

type TForm1 = class(TForm)

 Button1: TButton;

 Edit1: TEdit;

 Edit2: TEdit;

 OpenDialog1: TOpenDialog;

 SaveDialog1: TSaveDialog;

 procedure Edit1DblClick(Sender: TObject);

 procedure Edit2DblClick(Sender: TObject);

 procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var Form1: TForm1;

implementation

{$R *.DFM}

const

 ssz = (High(Cardinal) - $F) div sizeof(byte);//эта
константа используется при выделении памяти

 p: string = '0123456789ABCDEF';//эта константа используется функцией toanysys

//выбор входного файла

procedure TForm1.Edit1DblClick(Sender: TObject);

begin

 if opendialog1.execute then edit1.text:= opendialog1.filename;

end;

//выбор выходного (UUE) файла

procedure TForm1.Edit2DblClick(Sender: TObject);

begin

 if savedialog1.execute then edit2.text:= savedialog1.filename;

end;

//выделение подстроки

function mid(s: string; fromc, toc: byte): string;

var

 s1: string;

 i : byte;

begin

 s1:= '';

 for i:= fromc to toc do s1:= s1+s[i];

 mid:= s1;

end;

//перевод числа (a) из десятичной системы в другую

//с основанием (r)

function toanysys(a, r: byte): string;

var

 s, k : string;

 n,m,i : byte;

begin

 s:='';

 m:= 1;

 while m<>0 do begin

Поделиться с друзьями: