unit ZAKLAD;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, Menus;

type
  TZakBox = class(TForm)
    btSave: TButton;
    btESC: TButton;
    btSort: TButton;
    ListBox1: TListBox;
    Button1: TButton;
    procedure GoButtonClick(Sender: TObject);
    procedure DelButtonClick(Sender: TObject);
    procedure DelAllButtonClick(Sender: TObject);
    procedure ESCButtonClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  ZakBox: TZakBox;

implementation

uses Unit1, MyFunc;

{$R *.dfm}

procedure TZakBox.GoButtonClick(Sender: TObject);
var
   k, p: integer;
   c: string;
begin
try
  if ListBox1.Count > 0 then begin
    c := ListBox1.Items[ListBox1.ItemIndex];
    k := Pos('_#_',c);  {Ищем, где прописана позиция закладки}
    if k > 0 then p := StrToInt(Copy(c,k+3,12))
             else p := 0;
    Form1.RichEdit1.SelStart := p;
    Form1.RichEdit1.Perform(EM_SCROLLCARET,0,0);
    Form1.RichEdit1.SetFocus;
  end;
finally
  ZakBox.Close;
end;
end;


procedure TZakBox.DelButtonClick(Sender: TObject);
var
  i, k: integer;
  b, c, p: string;
begin
  ListBox1.Items.Delete(ListBox1.ItemIndex);
  {Список закладок изменен - обновляем и строку BookMarks}
  b := '';
  for i := 0 to ListBox1.Count-1 do begin
    c := ListBox1.Items[i];
    k := Pos('_#_',c);
    if k > 0 then p := Copy(c,k+3,12)
             else p := '0';
    if b <> '' then b := b+'|'+p
               else b := p;
  end;
  Form1.BookMarks := b;
end;


procedure TZakBox.DelAllButtonClick(Sender: TObject);
var
  res: integer;
begin
 res:=Application.MessageBox('В самом деле хотите удалить ВСЕ закладки?',
                                'Удалить все закладки',
                                 MB_YESNO+MB_DEFBUTTON2+MB_ICONWARNING);
  if res = IDYES then begin
    Form1.BookMarks := '';
    Form1.NZakladGo.Enabled := False;
    ZakBox.ListBox1.Items.Clear;
    ZakBox.Close;
  end;
end;


procedure TZakBox.ESCButtonClick(Sender: TObject);
begin
  ZakBox.Close;
end;


end.
