home *** CD-ROM | disk | FTP | other *** search
/ Chip 2002 September / Chip_2002-09_cd1.bin / zkuste / delphi / kompon / d123456 / STR_BIT.ZIP / 16 / HUFFMAN / Huff.pas < prev    next >
Pascal/Delphi Source File  |  2000-03-09  |  6KB  |  159 lines

  1. program Demo; {ä½∩ óÑαß¿¿ 7.0}
  2. {$F+}
  3. uses  Dos, HelpFile, Menus, xaf_hlp,
  4.       Objects, dialogs, Drivers, Views, StdDlg, MsgBox, App;
  5. const
  6.   S_vs : string = 'Γp«¬á ó¿ñÑ«¿º«ípáªÑ¡¿∩';
  7.   S_ks : string = '«ñ¿p«óá¡¡á∩ ßΓp«¬á';
  8.   Pre_Vi_X : string= 'ÅpÑ«ípẫóá¡¿Ñ ßΓp«¬¿ ó¿ñÑ«¿º«ípáªÑ¡¿∩ ó ¬«ñ òáΣΣ¼Ñ¡á';
  9.   Pre_X_Vi : string= 'ÅpÑ«ípẫóá¡¿Ñ ¬«ña òáΣΣ¼Ñ¡á ó ßΓp«¬π ó¿ñÑ«¿º«ípáªÑ¡¿∩';
  10.   Lst = 40;
  11. type
  12.   TTVMy = object(TApplication)
  13.     constructor Init;
  14.     procedure Run; Virtual;
  15.     procedure InitStatusLine; Virtual;
  16.     procedure GetEvent(var Event: TEvent); Virtual;
  17.     function  GetPalette: PPalette; Virtual;
  18.     end;
  19. var R : TRect;  D: PFileDialog;  InWin : PDialog;
  20.     IM_r : PathStr;     { ê¼∩ Σá⌐½á  }
  21.     is_d, kod_d : string;  ind_pr,kont : word;
  22.     T : TTVMy;
  23.  
  24. function TTVMy.GetPalette: PPalette; { ôßΓá¡«ó¬á µóÑΓ«ó«⌐ »á½¿Γpδ }
  25. const CNewColor = CAppColor + CHelpColor;
  26.       CNewBlackWhite = CBlackWhite + CHelpBlackWhite;
  27.       CNewMonochrome = CMonochrome + CHelpMonochrome;
  28.       P: array[apColor..apMonochrome] of string[Length(CNewColor)] =
  29.          (CNewColor, CNewBlackWhite, CNewMonochrome);
  30. begin
  31.   GetPalette := @P[AppPalette];
  32. end;
  33.  
  34. procedure TTVMy.InitStatusLine;
  35. var  R: TRect;
  36. begin
  37.   GetExtent(R);
  38.   R.A.Y := R.B.Y - 1;
  39.   StatusLine := New(PStatusLine, Init(R,
  40.     NewStatusDef(0, $FFFF,
  41.       NewStatusKey('~F1~ Å«¼«Θ∞', kbF1, cmHelp,
  42.       NewStatusKey('~F5~ Zoom', kbF5, cmZoom, nil)), nil)));
  43. end;
  44.  
  45. procedure TTVMy.GetEvent(var Event: TEvent);
  46. {  ÄíÑß»ÑτÑ¡¿Ñ  »p«úpá¼¼δ  ¬«¡ΓѬßΓ¡«⌐  »«ñ߬Ậ«⌐ }
  47. const  HelpInUse: Boolean = False;
  48. var W: PWindow;
  49.     HelpFile: PHelpFile;
  50.     HelpStrm: PDosStream;
  51. begin
  52.   TApplication.GetEvent(Event);
  53.   if (Event.What = evCommand) and (Event.Command = cmHelp) and not HelpInUse
  54.    then begin
  55.     HelpStrm := New(PDosStream, Init('XAF_HLP.HLP', stOpenRead));
  56.     HelpFile := New(PHelpFile, Init(HelpStrm));
  57.    { éδó«ñ »«¼«Θ¿ «»ÑpáΓ«pπ ó ñ¿á½«ú«ó«¼ pѪ¿¼Ñ }
  58.       HelpInUse := True;
  59.       W := New(PHelpWindow,Init(HelpFile, GetHelpCtx));
  60.       if ValidView(W) <> nil then begin
  61.           kont := DeskTop^.ExecView(W);
  62.           Dispose(W, Done);
  63.    { çáóÑpΦ¿Γ∞ ñ¿á½«ú ß «»ÑpáΓ«p«¼  }
  64.       HelpInUse := False;      ClearEvent(Event);
  65. end   end   end;
  66.  
  67. constructor TTVMy.Init;
  68. begin
  69.   inherited Init;
  70.   RegisterObjects;
  71.   RegisterDialogs;
  72.   RegisterStdDlg;
  73.   RegisterHelpFile;
  74. end;
  75.  
  76. procedure TTVMy.Run;
  77. type  Datatyp = record
  78.       is : string[lst];   { 1 æΓp«¬á  }
  79.       kr  : string[lst];  { 2 ßΓα«¬á  }
  80.       knop : word;      { çáó¿ß¿¼δÑ ¬¡«»¬¿        }
  81.      end;
  82. const Data : Datatyp = ( { ìáτá½∞¡δÑ »ápá¼ÑΓpδ ñ¿á½«úá }
  83.         is : '';    kr : '';
  84.         knop : 0); { ÅÑpóá∩ ¬¡«»¬á          }
  85. var Bm_is,Bm_r: PInputLine;  { æΓp«¬¿ óó«ñá í¿Γ«óδσ º¡áτÑ¡¿⌐ }
  86.     Rb : PRadioButtons;  { çáó¿ß¿¼δÑ ¬¡«»¬¿ }
  87. {*************************************************}
  88. { Äß¡«ó¡«Ñ Γѽ« »«ñ»p«úpá¼¼δ ñ¿á½«úá ß «»ÑpáΓ«p«¼ }
  89. begin
  90. {  éδípáΓ∞ Σá⌐½ ó ñ¿á½«ú«ó«¼ pѪ¿¼Ñ. ê¼∩ óδíαá¡¡«ú« Σá⌐½á ó IM_r  }
  91.   D := New(PFileDialog, Init('*.*', 'éóÑñ¿ΓÑ ¿¼∩ Σá⌐½á »p«Γ«¬«½á pѺπ½∞ΓáΓ«ó',
  92.        'ê¼∩ Σá⌐½á', fdOpenButton , 100));
  93.   if Desktop^.ExecView(D) <> cmCancel then D^.GetFileName(IM_r);
  94.   Dispose(D, Done);
  95.  repeat            {WWWWWWWWWWW}
  96.   R.Assign(0,2,80,21);   { ÉẼÑpδ «¬¡á ñ¿á½«úá }
  97.   InWin := New(Pdialog,init(R,'ÅpÑ«ípẫóá¡¿Ñ ß¿ú¡á½«ó'));
  98.   With InWin^ do begin  { ö«p¼¿p«óá¡¿Ñ «¬¡á ºá»p«ßá }
  99.    R.Assign(2,2,75,3);  { »«½Ñ ñ½∩ óó«ñ¿¼«ú« µ¿Σp«ó«ú« ¿º«ípáªÑ¡¿∩ }
  100.    Bm_is := New(PinputLine,Init(R,lst));
  101.    insert (Bm_is);     { Å«½Ñ ¿¼Ñ¡¿ }
  102.    R.Assign(5,1,47,2); { éßΓáó¿Γ∞ ¼ÑΓ¬π ßΓp«¬¿ }
  103.    insert (New(Plabel,Init(R,'~C~'+S_vs, Bm_is)));
  104.    R.Assign(76,2,78,3); { éßΓáó¿Γ∞ ß»¿ß«¬ óó«ñá }
  105.    insert (New(PHistory,Init(R, Bm_is,0)));
  106.   { ------------------------------------------- }
  107.    R.Assign(2,6,75,7);   Bm_r := New(PinputLine,Init(R,lst));
  108.    insert (Bm_r);     { Å«½Ñ ¿¼Ñ¡¿ }
  109.    R.Assign(5,5,47,6);
  110.    insert (New(Plabel,Init(R,'~K~'+S_ks, Bm_r)));
  111.        { éßΓáó¿Γ∞ ºáó¿ß¿¼δÑ ¬¡«»¬¿ π»páó½Ñ¡¿∩ pѪ¿¼«¼ »pÑ«íp-∩ }
  112.    R.Assign(2,11,79,15);
  113.    Rb :=  New(PRadioButtons,Init(R, NewSItem(Pre_Vi_X, NewSItem(Pre_X_Vi,NIL))));
  114.    insert (Rb);   { éßΓáó¿Γ∞ ºáó¿ß¿¼δÑ ¬¡«»¬¿ }
  115.    R.Assign(2,10,79,11);   { éßΓáó¿Γ∞ ¼ÑΓ¬π ¬¡«»«¬ }
  116.    insert (New(Plabel,Init(R,'~M~ÑΓ«ñ »pÑ«ípẫóá¡¿∩', Rb)));
  117.           { éßΓáó¿Γ∞ ñóÑ ¬«¼á¡ñ¡δÑ ¬¡«»¬¿ }
  118.    R.Assign(4,16,35,18);
  119.    insert (New(PButton, Init(R,'éδ»«½¡¿Γ∞ »pÑ«ípẫóá¡¿Ñ',cmOk,bfDefault)));
  120.  {  »«ß½Ññ¡∩∩ óßΓáó½∩Ѽá∩ ¬¡«»¬á á¬Γ¿ó¿º¿pπÑΓß∩ }
  121.    R.Assign(42,16,76,18);
  122.    insert (New(PButton, Init(R,'çáóÑpΦ¿Γ∞ óδ»«½¡Ñ¡¿Ñ',cmCancel,bfNormal)));
  123.    Data.is :=  IM_r;   SetData(Data)     { ôßΓá¡«ó¿Γ∞ ¡áτá½∞¡δÑ º¡áτÑ¡¿∩ }
  124.   end;      {WWWWWWW ¬«¡Ñµ Σ-∩ «¬¡á }
  125.    kont := DeskTop^.ExecView(InWin);  { Å«¼ÑßΓ¿Γ∞ «¬¡« ¡á φ¬pá¡ }
  126.    InWin^.GetData(Data);  { Å«½πτ¿Γ∞ ¡«óδÑ º¡áτÑ¡¿∩ }
  127.   with Data do begin  { Å«½πτÑ¡¿Ñ óóÑñÑ¡¡δσ ñá¡¡δσ }
  128.     is_d := is;   ind_pr := knop           end;
  129.    Data.kr := Is_d;   { Å«½πτÑ¡¿Ñ »pÑ«ípáº. ñá¡¡δσ }
  130.    Dispose(InWin, Done);
  131.  until kont = cmCancel;
  132. end;       {TTVMy.Run}
  133.  
  134. begin  T.init;   T.run;  T.Done  end.
  135.  
  136. @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  137.  
  138. .topic Xaff
  139. Åα¿ ¬«ñ¿α«óá¡¿¿ ß ¿ß»«½∞º«ó᡿Ѽ ¼«ñ¿Σ¿µ¿α«óá¡¡«ú« ¬«ñá òáΣΣ¼á¡á
  140. ¬áªñ«⌐ ñ½¿¡Ñ ßÑα¿¿ ¿ßσ«ñ¡«ú« ó¿ñÑ«¿º«íαáªÑ¡¿∩ ßΓáó¿Γß∩ ó ß««ΓóÑΓßΓó¿Ñ
  141. ¬«ñ«óá∩ ¬«¼í¿¡áµ¿∩, ñ½¿¡á ¬«Γ«α«⌐ ºáó¿ß¿Γ «Γ τáßΓ«Γδ »«∩ó½Ñ¡¿∩ ñá¡¡«⌐
  142. ¬«¼í¿¡áµ¿¿ ó ß««íΘÑ¡¿¿. àß½¿ ñ½¿¡á ßÑα¿¿ "1" ¿½¿ "0" »αÑóδΦáÑΓ 63 í¿Γá,
  143. Γ« ñ½¿¡á ß««íΘÑ¡¿∩ ¬«ñ¿απÑΓß∩  ñóπ¼∩  ¬«¼í¿¡áµ¿∩¼¿:  ß¡áτá½á  ¡áτá½∞¡«⌐
  144. ¬«¼í¿¡áµ¿Ñ⌐, á »«Γ«¼ ºáóÑαΦáεΘÑ⌐.
  145.  
  146.  {â½áó¡«Ñ ¼Ñ¡ε:NoContext}
  147. .topic OKR_prog
  148.  1. ÇÅÅÇÉÇÆìÄà ÄèÉôåàìêà
  149.   Æ¿» ¥éî - ß«ó¼ÑßΓ¿¼δÑ ß IBM PC XT/AT, PS2.
  150.   Æ¿» ¬½áó¿áΓπαδ - ßΓá¡ñáαΓ¡á∩ IBM PC ( 10 Σπ¡¬µ¿«¡á½∞¡δ󠬽áó¿Φ ).
  151.   Æ¿» ó¿ñÑ«¬«¡Γα«½½Ñαá - »p«¿ºó«½∞¡δ⌐.
  152.  
  153.  {â½áó¡«Ñ ¼Ñ¡ε:NoContext}
  154. .topic NoContext=0
  155. Åp«úpἼᠡỿßá¡á ñ½∩ ñѼ«¡ßΓpᵿ¿ »p«µÑß߫󠬫ñ¿p«óá¡¿∩/ ñѬ«ñ¿p«óá¡¿∩
  156. Σá¬ß¿¼¿½∞¡δσ ß««íΘÑ¡¿⌐ ß ¿ß»«½∞º«ó᡿Ѽ ¬«ñ«ó:
  157.   {òáΣΣ¼á¡á:Xaff}
  158.  
  159.  {ÆαÑí«óá¡¿∩ ¬ »α«úαἼѠ¿ á»»áαáΓπα«¼π «¬απªÑ¡¿ε:OKR_prog}