unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    TabControl1: TTabControl;
    Memo1: TMemo;
    Button1: TButton;
    OpenDialog1: TOpenDialog;
    procedure TabControl1Change(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
 Opendialog1.InitialDir:=GetCurrentDir;
 OpenDialog1.Options := [ofAllowMultiSelect,ofFileMustExist, ofHideReadOnly];
  if OpenDialog1.Execute then
  begin
    //dodanie listy zaznaczonych plików do właściwości Tabs
    TabControl1.Tabs.Assign(OpenDialog1.Files);
    //wyodębnienie nazwy pliku bez sciezki
    for i := 0 to TabControl1.tabs.count-1  do TabControl1.Tabs[i]:=ExtractfileName(OpenDialog1.Files[i]);

    //do pola Memo ładowany jest plik tekstowy, którego nazwa jest
    //równocześnie nazwą aktywnej zakładki, pliki powinny być w katalogu bieżącym
    Memo1.Lines.LoadFromFile(TabControl1.Tabs[TabControl1.TabIndex]);
  end;

end;

procedure TForm1.TabControl1Change(Sender: TObject);
begin
  with TabControl1 do
    Memo1.Lines.LoadFromFile(Tabs[TabIndex]);
end;

end.
