home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2002 September
/
Chip_2002-09_cd1.bin
/
zkuste
/
delphi
/
kompon
/
d123456
/
STR_BIT.ZIP
/
16
/
HUFFMAN
/
HUFFMAN.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
2000-03-29
|
18KB
|
433 lines
program TVDemo; {ä½∩ óÑαß¿¿ 7.0}
{$F+}
{$M 16384,8192,655360}
uses
Dos, StrBit16, HelpFile, Menus, dek_fax, xaf_hlp,
Objects,dialogs, Drivers, Views, StdDlg, MsgBox, App;
const
WildCard : PathStr = '*.*';
Imq_prog : PathStr = 'Äípáí«Γ¬á Σá¬ß¿¼¿½Ñ 3 úpπ»»δ';
S_vs : string = 'Γp«¬á ó¿ñÑ«¿º«ípáªÑ¡¿∩';
S_ks : string = '«ñ¿p«óá¡¡á∩ ßΓp«¬á';
Pre_Vi_X : string= 'ÅpÑ«ípẫóá¡¿Ñ ßΓp«¬¿ ó¿ñÑ«¿º«ípáªÑ¡¿∩ ó ¬«ñ òáΣΣ¼Ñ¡á';
Pre_X_Vi : string= 'ÅpÑ«ípẫóá¡¿Ñ ¬«ña òáΣΣ¼Ñ¡á ó ßΓp«¬π ó¿ñÑ«¿º«ípáªÑ¡¿∩';
Pre_Vi_R : string= 'ÅpÑ«ípẫóá¡¿Ñ ßΓp«¬¿ ó¿ñÑ«¿º«ípáªÑ¡¿∩ ó ¬«ñ READ';
Pre_R_Vi : string= 'ÅpÑ«ípẫóá¡¿Ñ ¬«ña READ ßΓp«¬¿ ó¿ñÑ«¿º«ípáªÑ¡¿∩';
type
TTVMy = object(TApplication)
constructor Init;
procedure Run; Virtual;
procedure InitStatusLine; Virtual;
procedure InitMenuBar; virtual;
procedure GetEvent(var Event: TEvent); Virtual;
function GetPalette: PPalette; Virtual;
end;
var
R : TRect;
D: PFileDialog; InWin : PDialog;
IM_is, { ê¼∩ ¿ßσ«ñ¡«ú« «ípáíáΓδóáѼ«ú« Σá⌐½á }
IM_r : PathStr; { ê¼∩ Σá⌐½á pѺπ½∞ΓáΓá }
is_d , { CΓp«¬á ß ¿ßσ«ñ¡δ¼ ¿º«ípáªÑ¡¿Ñ¼ }
kod_d, { æΓp«¬á ß ¬«ñ¿p«óá¡¡δ¼¿ ñá¡¡δ¼¿ }
is_d2, { éΓ«pá∩ CΓp«¬á ß ¿ßσ«ñ¡δ¼ ¿º«ípáªÑ¡¿Ñ¼}
kod_d2: str_kod; { éΓ«pá∩ æΓp«¬á ß ¬«ñ¿p«óá¡¡δ¼¿ ñá¡¡δ¼¿}
ind_pr,kont : word;
T : TTVMy;
ff_is,ff_rez : text;
procedure TTVMy.InitMenuBar;
begin
GetExtent(R);
R.B.Y := R.A.Y + 1;
MenuBar := New(PMenuBar, Init(R, NewMenu(
NewItem(Imq_prog, '', kbNoKey, cmNew, hcNew,
nil))));
end;
procedure TTVMy.InitStatusLine;
{ ê¡Σ«p¼áµ¿∩ « Σπ¡¬µ¿«¡á½∞¡δσ ¬½áó¿Φáσ ¿ ¿σ á¬Γ¿ó¿ºáµ¿∩}
{░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ }
{ F1 Å«¼«Θ∞ }
begin
GetExtent(R);
R.A.Y := R.B.Y - 1;
StatusLine := New(PStatusLine, Init(R,
NewStatusDef(0, $FFFF,
NewStatusKey('~F1~ Å«¼«Θ∞', kbF1, cmHelp,
nil), nil)));
end;
function TTVMy.GetPalette: PPalette;
{ éδí«p µóÑΓ«ó«⌐ »á½¿Γpδ ó ºáó¿ß¿¼«ßΓ¿ «Γ Γ¿»á ¼«¡¿Γ«pá }
const
CNewColor = CAppColor + CHelpColor;
CNewBlackWhite = CBlackWhite + CHelpBlackWhite;
CNewMonochrome = CMonochrome + CHelpMonochrome;
P: array[apColor..apMonochrome] of string[Length(CNewColor)] =
(CNewColor, CNewBlackWhite, CNewMonochrome);
begin
GetPalette := @P[AppPalette];
end;
procedure TTVMy.GetEvent(var Event: TEvent);
{ ÄíÑß»ÑτÑ¡¿Ñ »p«úpá¼¼δ ¬«¡ΓѬßΓ¡«⌐ »«ñ߬Ậ«⌐ ß ó¡πΓpÑ¡¡Ñ⌐
¿Ñpápσ¿Ñ⌐, pẼÑpδ «¬¡á ß ΓѬßΓ«¼ »«¼«Θ¿ ¼«ª¡« ¿º¼Ñ¡∩Γ∞
╔═[■]═════════════════ Help ═════════════════[]═╗
║ Åp«úpá¼¼á ¡á»¿ßá¡á ñ½∩ ñѼ«¡ßΓpᵿ¿ »p«µÑßß«ó
║ ¬«ñ¿p«óá¡¿∩/ ñѬ«ñ¿p«óá¡¿∩ Σá¬ß¿¼¿½∞¡δσ ▓
║ ß««íΘÑ¡¿⌐ ß ¿ß»«½∞º«ó᡿Ѽ ¬«ñ«ó: ▓
║ òáΣΣ¼á¡á ¿ READá. ▓
║ Éáºpáí«Γτ¿¬ æѼѡ«ó é.ï. ▓
║ ùééêôÉ¥ 12 ¬áΣÑñpá ▓
╚═■▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒─┘ }
const
HelpInUse: Boolean = False;
var
W: PWindow;
HelpFile: PHelpFile;
HelpStrm: PDosStream;
EXEName: PathStr;
Dir: DirStr;
Name: NameStr;
Ext: ExtStr;
begin
TApplication.GetEvent(Event);
if (Event.What = evCommand) and (Event.Command = cmHelp) and
not HelpInUse then
begin
{ Å«¿ß¬ Σá⌐½á »«¼«Θ¿ ó ¬áΓὫúÑ,úñÑ ¡áσ«ñ¿Γß∩ «ß¡«ó¡á∩ »p«úpá¼¼á }
EXEName := FExpand(ParamStr(0));
FSplit(EXEName, Dir, Name, Ext);
if Dir[Length(Dir)] <> '\' then Dir:=Dir+'\';
Dir := Dir + 'XAF_HLP.HLP';
HelpStrm := New(PDosStream, Init(Dir, stOpenRead));
HelpFile := New(PHelpFile, Init(HelpStrm));
if HelpStrm^.Status <> stOk then begin
kont:= MessageBox('ìѽ∞º∩ «Γ¬pδΓ∞ Σá⌐½ »«¼«Θ¿', nil,mfOKButton);
Dispose(HelpFile, Done);
end
else begin
{ éδó«ñ »«¼«Θ¿ «»ÑpáΓ«pπ ó ñ¿á½«ú«ó«¼ pѪ¿¼Ñ }
HelpInUse := True;
W := New(PHelpWindow,Init(HelpFile, GetHelpCtx));
if ValidView(W) <> nil then begin
kont := DeskTop^.ExecView(W);
Dispose(W, Done);
end;
{ çáóÑpΦ¿Γ∞ ñ¿á½«ú ß «»ÑpáΓ«p«¼ }
HelpInUse := False; ClearEvent(Event);
end end;
end;
procedure Dekod;
begin
Dekod_str(is_d,is_d2,Kod_d,Kod_d2,ind_pr);
Writeln;
case ind_pr of { éδó«ñ »p«Γ«¬«½á páí«Γδ }
0 : begin { è«ñ¿p«óá¡¿Ñ í¿Γ«ó«⌐ ßΓp«¬¿ ¬«ñ«¼ òáΣΣ¼á¡á }
Writeln(ff_rez, Pre_Vi_X);
Writeln(ff_rez, 'C'+ S_vs);
Writeln(ff_rez, is_d);
Writeln(ff_rez, 'K'+ S_ks);
Writeln(ff_rez, kod_d);
end;
1 : begin { äѬ«ñ¿p«óá¡¿Ñ í¿Γ«ó«⌐ ßΓp«¬¿ ¬«ñ«¼ òáΣΣ¼á¡á }
Writeln(ff_rez, Pre_X_Vi);
Writeln(ff_rez, 'K'+ S_ks);
Writeln(ff_rez, kod_d);
Writeln(ff_rez, 'C'+ S_vs);
Writeln(ff_rez, is_d);
end;
2 : begin { è«ñ¿p«óá¡¿Ñ í¿Γ«óδσ ßΓp«¬¿ ¬«ñ«¼ READ }
Writeln(ff_rez, Pre_Vi_R);
Writeln(ff_rez, 'C'+ S_vs);
Writeln(ff_rez, is_d);
Writeln(ff_rez, is_d2);
Writeln(ff_rez, 'K'+ S_ks);
Writeln(ff_rez, kod_d);
Writeln(ff_rez, kod_d2);
end;
3 : begin { äѬ«ñ¿p«óá¡¿Ñ í¿Γ«óδσ ßΓp«¬¿ ¬«ñ«¼ READ }
Writeln(ff_rez, Pre_R_Vi);
Writeln(ff_rez, 'K'+ S_ks);
Writeln(ff_rez, kod_d);
Writeln(ff_rez, kod_d2);
Writeln(ff_rez, 'C'+ S_vs);
Writeln(ff_rez, is_d);
Writeln(ff_rez, is_d2);
end
end { Case } end;
procedure open_rez;
begin
{ ÄΓ¬pδΓ∞ Σá⌐½ »p«Γ«¬«½á ñ½∩ ºá»¿ß¿ pѺπ½∞ΓáΓ«ó }
assign (ff_rez,im_r);
{$I-}
Append(ff_rez);
{$I+}
if IOResult <> 0 then Rewrite(ff_rez);
end;
constructor TTVMy.Init;
var
R: TRect;
I: Integer;
FileName: PathStr;
begin
inherited Init;
RegisterObjects;
RegisterDialogs;
RegisterStdDlg;
RegisterHelpFile;
end;
procedure TTVMy.Run;
type Datatyp = record
is : string[lst]; { æΓp«¬á ó¿ñÑ«¿º«ípáªÑ¡¿∩ }
is_2: string[lst]; { 2 æΓp«¬á ó¿ñÑ«¿º«ípáªÑ¡¿∩ }
r : string[lst]; { è«ñ¿p«óá¡¡á∩ ßΓ«p¬á }
r_2: string[lst]; { 2 è«ñ¿p«óá¡¡á∩ ßΓ«p¬á }
knop : word; { çáó¿ß¿¼δÑ ¬¡«»¬¿ }
end;
const Data : Datatyp = ( { ìáτá½∞¡δÑ »ápá¼ÑΓpδ ñ¿á½«úá }
is : ''; { æΓp«¬á ó¿ñÑ«¿º«ípáªÑ¡¿∩ }
is_2 : ''; { éΓ«pá∩ æΓp«¬á ó¿ñÑ«¿º«ípáªÑ¡¿∩ }
r : ''; { è«ñ¿p«óá¡¡á∩ ßΓ«p¬á }
r_2 :'';
knop : 0); { ÅÑpóá∩ ¬¡«»¬á }
var
Bm_is,Bm_r,Bm_is2,Bm_r2: PInputLine; { æΓp«¬¿ óó«ñá í¿Γ«óδσ º¡áτÑ¡¿⌐ }
Rb : PRadioButtons; { çáó¿ß¿¼δÑ ¬¡«»¬¿ }
{*************************************************}
{ Äß¡«ó¡«Ñ Γѽ« »«ñ»p«úpá¼¼δ ñ¿á½«úá ß «»ÑpáΓ«p«¼ }
{*************************************************}
begin
{ éδípáΓ∞ Σá⌐½ ó ñ¿á½«ú«ó«¼ pѪ¿¼Ñ. é¿ñ ñ¿á½«ú«ó«ú« «¬¡á }
{ ╔═[■]éóÑñ¿ΓÑ ¿¼∩ Σá⌐½á »p«Γ«¬«½á pѺπ½∞ΓáΓ«ó ═══╗
║ ║
║ ê¼∩ Σá⌐½á ║
║ *.* ▐▌ Open ▄ ║
║ ▀▀▀▀▀▀▀▀▀ ║
║ Files ║
║ BIBL.PAS │ NEWD.PAS Cancel ▄ ║
║ DEK_FAX.BAK │ PASTOOLS.PAS ▀▀▀▀▀▀▀▀▀ ║
║ DEK_FAX.PAS │ PREOB.PAS ║
║ HELPFILE.PAS │ TU.TP ║
║ HELP_P.TXT │ TURBO.DSK ║
║ ■▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ║
║ ║
║ C:\TP\WORK\*.* ║
║ BIBL.PAS 39413 Aug 4, 1992 10:24am ║
╚═══════════════════════════════════════════════╝ }
D := New(PFileDialog, Init(WildCard,
'éóÑñ¿ΓÑ ¿¼∩ Σá⌐½á »p«Γ«¬«½á pѺπ½∞ΓáΓ«ó',
'ê¼∩ Σá⌐½á', fdOpenButton , 100));
if Desktop^.ExecView(D) <> cmCancel then
D^.GetFileName(IM_r);
Dispose(D, Done);
open_rez; { ÄΓ¬pδΓ∞ Σá⌐½ »p«Γ«¬«½á ñ½∩ ºá»¿ß¿ pѺπ½∞ΓáΓ«ó }
repeat
R.Assign(0,2,80,21); { ÉẼÑpδ «¬¡á ñ¿á½«úá }
InWin := New(Pdialog,init(R,'ÅpÑ«ípẫóá¡¿Ñ ß¿ú¡á½«ó'));
{ WWWWWWWWWWWWWWWW }
{ é¿ñ Σ«p¼¿pπѼ«ú« ñ¿á½«ú«ó«ú« «¬¡á »p«úpá¼¼δ }
{ Äípáí«Γ¬á ßΓ«p¬ Σá¬ß¿¼¿½Ñ 3 úpπ»»δ
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
╔═[■]══════════════════════ ÅpÑ«ípẫóá¡¿Ñ ß¿ú¡á½«ó ═══════════════════════════╗
║ CΓp«¬á ó¿ñÑ«¿º«ípáªÑ¡¿∩ ║
║ ▐ ║
║ ▐ ║
║ BΓ«pá∩ ßΓp«¬á ó¿ñÑ«¿º«ípáªÑ¡¿∩ ║
║ K«ñ¿p«óá¡¡á∩ ßΓp«¬á ║
║ ▐ ║
║ ét«pá∩ ¬«ñ¿p«óá¡¡á∩ ßΓp«¬á ║
║ ▐ ║
║ ║
║ MÑΓ«ñ »pÑ«ípẫóá¡¿∩ ║
║ () ÅpÑ«ípẫóá¡¿Ñ ßΓp«¬¿ ó¿ñÑ«¿º«ípáªÑ¡¿∩ ó ¬«ñ òáΣΣ¼Ñ¡á ║
║ ( ) ÅpÑ«ípẫóá¡¿Ñ ¬«ña òáΣΣ¼Ñ¡á ó ßΓp«¬π ó¿ñÑ«¿º«ípáªÑ¡¿∩ ║
║ ( ) ÅpÑ«ípẫóá¡¿Ñ ßΓp«¬¿ ó¿ñÑ«¿º«ípáªÑ¡¿∩ ó ¬«ñ READ ║
║ ( ) ÅpÑ«ípẫóá¡¿Ñ ¬«ña READ ßΓp«¬¿ ó¿ñÑ«¿º«ípáªÑ¡¿∩ ║
║ ║
║ éδ»«½¡¿Γ∞ »pÑ«ípẫóá¡¿Ñ ▄ çáóÑpΦ¿Γ∞ óδ»«½¡Ñ¡¿Ñ ▄ ║
║ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ║
╚══════════════════════════════════════════════════════════════════════════════╝
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
F1 Å«¼«Θ∞ F5 Zoom }
With InWin^ do begin { ö«p¼¿p«óá¡¿Ñ «¬¡á ºá»p«ßá }
R.Assign(2,2,75,3); { »«½Ñ ñ½∩ óó«ñ¿¼«ú« µ¿Σp«ó«ú« ¿º«ípáªÑ¡¿∩ }
Bm_is := New(PInputLine,Init(R,lst));
insert (Bm_is); { Å«½Ñ ¿¼Ñ¡¿ }
R.Assign(5,1,47,2); { éßΓáó¿Γ∞ ¼ÑΓ¬π ßΓp«¬¿ }
insert (New(Plabel,Init(R,'~C~'+S_vs, Bm_is)));
R.Assign(76,2,78,3); { éßΓáó¿Γ∞ ß»¿ß«¬ óó«ñá }
insert (New(PHistory,Init(R, Bm_is,0)));
{ éδó«ñ ñá¡¡δσ »«½Ñ⌐ ó ß½πτáÑ ñѬ-∩ »« ¬«ñπ READ }
R.Assign(2,3,75,4); { »«½Ñ ñ½∩ óó«ñ¿¼«ú« µ¿Σp«ó«ú« ¿º«ípáªÑ¡¿∩ }
Bm_is2 := New(PInputLine,Init(R,lst));
insert (Bm_is2); { Å«½Ñ ¿¼Ñ¡¿ }
R.Assign(5,4,47,5); { éßΓáó¿Γ∞ ¼ÑΓ¬π ßΓp«¬¿ }
insert (New(Plabel,Init(R,'~B~Γ«pá∩ ß'+S_vs, Bm_is2)));
R.Assign(76,3,78,4); { éßΓáó¿Γ∞ ß»¿ß«¬ óó«ñá }
insert (New(PHistory,Init(R, Bm_is2,0)));
{ B¿ñ ß»¿ß¬á óó«ñá
╔═[■]═════════════════════════════════════════════════════════════════════╗
║ 0000100000000011111111111111
║ 0000100000000001111111111111 ▒
║ ▒
║
╚═▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓═╝ }
{ ------------------------------------------- }
R.Assign(2,6,75,7); Bm_r := New(PInputLine,Init(R,lst));
insert (Bm_r); { Å«½Ñ ¿¼Ñ¡¿ }
R.Assign(5,5,47,6);
insert (New(Plabel,Init(R,'~K~'+S_ks, Bm_r)));
R.Assign(76,6,78,7); { éßΓáó¿Γ∞ ß»¿ß«¬ óó«ñá }
insert (New(PHistory,Init(R, Bm_r,1)));
{ 滿߫¬ óó«ñá »«ºó«½∩ÑΓ ºá»«¼¡¿Γ∞ ¿ pÑñá¬Γ¿p«óáΓ∞ »pÑñδñπΘ¿Ñ óóÑñÑ¡¡δÑ
º¡áτÑ¡¿∩ »ÑpѼѡ¡δσ, τΓ« º¡áτ¿Γѽ∞¡« φ¬«¡«¼¿Γ ópѼ∩ »p¿ óó«ñÑ »«σ«ª¿σ
¿ßσ«ñ¡δσ ñá¡¡δσ. Äí«º¡áτáÑΓß∩ ¡á φ¬pá¡Ñ ßΓpѽ¬«⌐ ßí«¬π «Γ »«½∩ óó«ñá.
á¬Γ¿ó¿º¿pπÑΓß∩ ¡áªáΓ¿Ñ¼ ßΓpѽ¬¿ 󡿺. }
{ ------------------------------------------- }
{ éδó«ñ ñá¡¡δσ »«½Ñ⌐ ó ß½πτáÑ ñѬ-∩ »« ¬«ñπ READ }
R.Assign(2,8,75,9); Bm_r2 := New(PInputLine,Init(R,lst));
insert (Bm_r2); { Å«½Ñ ¿¼Ñ¡¿ }
R.Assign(5,7,47,8);
insert (New(Plabel,Init(R,'é~t~«pá∩ ¬'+S_ks, Bm_r2)));
R.Assign(76,8,78,9); { éßΓáó¿Γ∞ ß»¿ß«¬ óó«ñá }
insert (New(PHistory,Init(R, Bm_r2,2)));
{===============================================================}
{ éßΓáó¿Γ∞ ¬¡«»¬¿ π»páó½Ñ¡¿∩ pѪ¿¼«¼ »pÑ«íp-∩
║ MÑΓ«ñ »pÑ«ípẫóá¡¿∩ ║
║ () ÅpÑ«ípẫóá¡¿Ñ ßΓp«¬¿ ó¿ñÑ«¿º«ípáªÑ¡¿∩ ó ¬«ñ òáΣΣ¼Ñ¡á ║
║ ( ) ÅpÑ«ípẫóá¡¿Ñ ¬«ña òáΣΣ¼Ñ¡á ó ßΓp«¬π ó¿ñÑ«¿º«ípáªÑ¡¿∩ ║
║ ( ) ÅpÑ«ípẫóá¡¿Ñ ßΓp«¬¿ ó¿ñÑ«¿º«ípáªÑ¡¿∩ ó ¬«ñ READ ║
║ ( ) ÅpÑ«ípẫóá¡¿Ñ ¬«ña READ ßΓp«¬¿ ó¿ñÑ«¿º«ípáªÑ¡¿∩ }
R.Assign(2,11,79,15);
Rb := New(PRadioButtons,Init(R,
NewSItem(Pre_Vi_X,
NewSItem(Pre_X_Vi,
NewSItem(Pre_Vi_R,
NewSItem(Pre_R_Vi,NIL))))));
insert (Rb); { éßΓáó¿Γ∞ ºáó¿ß¿¼δÑ ¬¡«»¬¿ }
R.Assign(2,10,79,11); { éßΓáó¿Γ∞ ¼ÑΓ¬π ¬¡«»«¬ }
insert (New(Plabel,Init(R,'~M~ÑΓ«ñ »pÑ«ípẫóá¡¿∩', Rb)));
{ éßΓáó¿Γ∞ ñóÑ ¬«¼á¡ñ¡δÑ ¬¡«»¬¿
║ éδ»«½¡¿Γ∞ »pÑ«ípẫóá¡¿Ñ ▄ çáóÑpΦ¿Γ∞ óδ»«½¡Ñ¡¿Ñ ▄
║ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ }
R.Assign(4,16,35,18);
insert (New(PButton,
Init(R,'éδ»«½¡¿Γ∞ »pÑ«ípẫóá¡¿Ñ',cmOk,bfDefault)));
{ »«ß½Ññ¡∩∩ óßΓáó½∩Ѽá∩ ¬¡«»¬á á¬Γ¿ó¿º¿pπÑΓß∩ }
R.Assign(42,16,76,18);
insert (New(PButton,
Init(R,'çáóÑpΦ¿Γ∞ óδ»«½¡Ñ¡¿Ñ',cmCancel,bfNormal)));
SetData(Data) { ôßΓá¡«ó¿Γ∞ ¡áτá½∞¡δÑ º¡áτÑ¡¿∩ }
end; { ¬«¡Ñµ Σ-∩ «¬¡á }
{ WWWWWWWWWWWWWWWW }
kont := DeskTop^.ExecView(InWin); { Å«¼ÑßΓ¿Γ∞ «¬¡« ¡á φ¬pá¡ }
InWin^.GetData(Data); { Å«½πτ¿Γ∞ ¡«óδÑ º¡áτÑ¡¿∩ }
with Data do begin { Å«½πτÑ¡¿Ñ óóÑñÑ¡¡δσ ñá¡¡δσ }
is_d := is; kod_d := r;
is_d2 := is_2; kod_d2 := r_2; ind_pr := knop;
end;
{ éδ»«½¡¿Γ∞ ñѬ«ñ¿p«óá¡¿Ñ »«½πτÑ¡¡δσ ñá¡¡δσ }
if kont <> CmCancel then Dekod;
{ ================================================= }
with Data do begin { Å«½πτÑ¡¿Ñ »pÑ«ípáº. ñá¡¡δσ }
is:= is_d ; r := kod_d;
is_2 := is_d2; r_2 := kod_d2;
end;
Dispose(InWin, Done);
until kont = cmCancel;
Close(ff_rez);
end; {TTVMy.Run}
procedure Obr_fail;
var kol,kode : integer;
S_vn : str_kod;
begin
Assign(ff_is, Im_is);
Reset(ff_is);
open_rez; { ÄΓ¬pδΓ∞ Σá⌐½ »p«Γ«¬«½á ñ½∩ ºá»¿ß¿ pѺπ½∞ΓáΓ«ó }
while not Eof(ff_is) do begin
Readln(ff_is,S_vn);
case ind_pr of
0 : is_d := S_vn; { è«ñ¿p«óá¡¿Ñ í¿Γ«ó«⌐ ßΓp«¬¿ ¬«ñ«¼ òáΣΣ¼á¡á }
1 : kod_d := S_vn; { äѬ«ñ¿p«óá¡¿Ñ í¿Γ«ó«⌐ ßΓp«¬¿ ¬«ñ«¼ òáΣΣ¼á¡á }
2 : begin { è«ñ¿p«óá¡¿Ñ í¿Γ«óδσ ßΓp«¬¿ ¬«ñ«¼ READ }
is_d := S_vn;
Readln(ff_is,S_vn);
is_d2 := S_vn;
end;
3 : begin { äѬ«ñ¿p«óá¡¿Ñ í¿Γ«óδσ ßΓp«¬¿ ¬«ñ«¼ READ }
kod_d := S_vn;
Readln(ff_is,S_vn);
kod_d2 := S_vn;
end end; { Case }
Dekod;
end;
Close(ff_is); Close(ff_rez);
end; {Obr_fail}
{ -------------------------------------------}
{ Äípáí«Γ¬á ¬«¼á¡ñ¡«⌐ ßΓp«¬¿ »p«úpá¼¼δ }
function Kom_str(f: integer): Boolean;
var i : integer;
S : PathStr;
rez : Boolean;
begin
rez := False;
for I := 1 to ParamCount do
begin
S := ParamStr(I);
if S[1] = '/' then
case S[2] of
'n','N': Im_is := Copy(S,3,length(S)-2);
'k','K': Im_r := Copy(S,3,length(S)-2);
'd','D': begin
S := Copy(S,3,length(S)-2);
if (S='#X') or (S='#x') then ind_pr := 1;
if (S='X#') or (S='x#') then ind_pr := 2;
if (S='#R') or (S='rx') then ind_pr := 3;
if (S='R#') or (S='xr') then ind_pr := 4;
end
else rez := True
end
else rez := True
end;
if (im_is='') or (im_r='') or (ind_pr=0) then rez := True;
dec(ind_pr);
if rez then kont:= MessageBox('ÅÑpÑσ«ñ ¬ ñ¿á½«ú«ó«¼π pѪ¿¼π',
NIL, mfOKButton);
Kom_str := rez;
end; {Kom_Str}
{*********************************************************}
begin
im_r := ''; im_is := ''; ind_pr := 0;
T.init; { ê¡¿µ¿á½¿ºáµ¿∩ TURBO VISION }
{ éδó«ñ ß««íΘÑ¡¿∩ « ¡áº¡áτÑ¡¿¿ »p«úpá¼¼δ }
R.Assign(5,0,75,8); { éδó«ñ ß««íΘÑ¡¿∩ « ¡áº¡áτÑ¡¿¿ »p«úpá¼¼δ }
if MessageBoxRect(R, #3+Imq_prog,NIL,
mfOKButton + mfCancelButton) = cmCancel then halt(256-5);
{░░░░╔═[■]═════════════════════════ Warning ══════════════════════════════╗░░░░░
░░░░░║ ║░░░░░
░░░░░║ Äípáí«Γ¬á ßΓ«p¬ Σá¬ß¿¼¿½Ñ 3 úpπ»»δ ║░░░░░
░░░░░║ ║░░░░░
░░░░░║ ║░░░░░
░░░░░║ OK ▄ Cancel ▄ ║░░░░░
░░░░░║ ▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀ ║░░░░░
░░░░░╚════════════════════════════════════════════════════════════════════╝░░░░░}
{*éó«ñ »ápá¼ÑΓp«ó ¿º ¬«¼á¡ñ¡«⌐ ßΓp«¬¿, Ñß½¿ »ápá¼ÑΓpδ ºáñá¡δ ¡Ñ»páó¿½∞¡«, Γ« *}
if Kom_Str(1) then T.run { »ÑpÑσ«ñ ó pѪ¿¼ ñ¿á½«úá }
else Obr_fail;{ «ípáí«Γ¬á Σá⌐½á ß«ú½áß¡« π»p-σ ¬½ετÑ⌐, ¿¡áτÑ }
T.Done;
end.