home *** CD-ROM | disk | FTP | other *** search
/ Chip 1997 April / Chip_1997-04_cd.bin / prezent / cb / data.z / CODEPAGE.PAS < prev    next >
Pascal/Delphi Source File  |  1997-01-16  |  3KB  |  99 lines

  1. unit CodePage;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  7.   StdCtrls, ComCtrls, Menus,Registry;
  8.  
  9. type
  10.   TCodePageForm = class(TForm)
  11.     CodePage: TRichEdit;
  12.     SourceRichEdit1: TRichEdit;
  13.     PopupMenu1: TPopupMenu;
  14.     FindText1: TMenuItem;
  15.     FindDialog1: TFindDialog;
  16.     procedure FindText1Click(Sender: TObject);
  17.     procedure FindDialog1Find(Sender: TObject);
  18.   private
  19.      I:Integer;
  20.   public
  21.     { Public declarations }
  22.   end;
  23.  
  24. var
  25.   CodePageForm: TCodePageForm;
  26.  
  27. implementation
  28.  
  29. {$R *.DFM}
  30.  
  31. procedure TCodePageForm.FindText1Click(Sender: TObject);
  32.    begin
  33.    I:=0;
  34.    FindDialog1.Execute;
  35.    end;
  36.  
  37. procedure TCodePageForm.FindDialog1Find(Sender: TObject);
  38.    var
  39.    FoundOne:Boolean;
  40.    J, PosReturn, SkipChars: Integer;
  41.    begin
  42.    FoundOne:=false;
  43.  
  44.    if CodePage.Visible=true then
  45.    begin
  46.       while I < (CodePage.Lines.Count+1) do
  47.          begin
  48.          PosReturn := Pos(FindDialog1.FindText,CodePage.Lines[I]);
  49.          if PosReturn <> 0 then {found!}
  50.             begin
  51.             FoundOne:=true;
  52.             Skipchars := 0;
  53.             for J := 0 to I - 1 do
  54.             Skipchars := Skipchars + Length(CodePage.Lines[J]);
  55.             SkipChars := SkipChars + (I*2);
  56.             SkipChars := SkipChars + PosReturn - 1;
  57.             CodePage.SetFocus;
  58.             CodePage.SelStart := SkipChars;
  59.             CodePage.SelLength := Length(FindDialog1.FindText);
  60.             Inc(I);
  61.             Exit;
  62.             end;
  63.          Inc(I);
  64.          end;
  65.       end;
  66.  
  67.    if SourceRichEdit1.Visible=true then
  68.    begin
  69.       while I < (SourceRichEdit1.Lines.Count+1) do
  70.          begin
  71.          PosReturn := Pos(FindDialog1.FindText,SourceRichEdit1.Lines[I]);
  72.          if PosReturn <> 0 then {found!}
  73.             begin
  74.             FoundOne:=true;
  75.             Skipchars := 0;
  76.             for J := 0 to I - 1 do
  77.             Skipchars := Skipchars + Length(SourceRichEdit1.Lines[J]);
  78.             SkipChars := SkipChars + (I*2);
  79.             SkipChars := SkipChars + PosReturn - 1;
  80.             SourceRichEdit1.SetFocus;
  81.             SourceRichEdit1.SelStart := SkipChars;
  82.             SourceRichEdit1.SelLength := Length(FindDialog1.FindText);
  83.             Inc(I);
  84.             Exit;
  85.             end;
  86.          Inc(I);
  87.          end;
  88.       end;
  89.  
  90.    if FoundOne=false then
  91.       begin
  92.       MessageDlg('No Match Found!!' ,mtError, [mbOk], 0);
  93.       Exit;
  94.       end;
  95.  
  96.    end;
  97.  
  98. end.
  99.