unit Unit1; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls, ExtCtrls, ShellCtrls, atstrings, atsynedit, atstringproc; type { TfmMain } TfmMain = class(TForm) bGettext: TButton; Panel1: TPanel; Panel2: TPanel; List: TShellListView; Splitter1: TSplitter; procedure bGettextClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormShow(Sender: TObject); procedure ListClick(Sender: TObject); private { private declarations } fDir: string; ed: TATSynEdit; public { public declarations } end; var fmMain: TfmMain; implementation {$R *.lfm} { TfmMain } procedure TfmMain.FormCreate(Sender: TObject); begin ed:= TATSynEdit.Create(Self); ed.Parent:= Panel1; ed.Align:= alClient; ed.Font.Name:= 'Courier New'; ed.OptUnprintedVisible:= false; ed.OptRulerVisible:= false; ed.OptWrapMode:= cWrapOff; fDir:= ExtractFilePath(Application.Exename)+'../../test_files'; end; procedure TfmMain.FormShow(Sender: TObject); begin List.Root:= fDir; end; procedure TfmMain.ListClick(Sender: TObject); var s: string; begin s:= List.GetPathFromItem(List.Selected); if not FileExistsUTF8(s) then Exit; ed.LoadFromFile(s); ed.SetFocus; Caption:= 'App - '+ExtractFileName(s); end; procedure TfmMain.bGettextClick(Sender: TObject); begin ShowMessage(UTF8Encode(ed.Strings.TextString)); end; end.