1
0
mirror of https://bitbucket.org/Dennis07/lina-components.git synced 2024-11-24 08:02:12 +02:00
lina-components/Example/TWinFile/uMain.pas
Dennis07 a9c7d580e5 Version 1.0 DEV 1.16
Signed-off-by: Dennis07 <den.goehlert@t-online.de>
2017-05-12 14:56:09 +02:00

126 lines
3.3 KiB
ObjectPascal

unit uMain;
//////////////////////////////////////
/// Lina Win File Example ///
/// **************************** ///
/// (c) 2014 Dennis Göhlert a.o. ///
//////////////////////////////////////
{$IF CompilerVersion <> 26.0}
{$MESSAGE ERROR 'This example was written to compile under Delphi XE5'}
{$ENDIF}
interface
{ Dies ist ein Beispielprojekt, um den Umgang und die mögliche Verwendeng der
TWinFile-Klasse und einiger uFileTools-Methoden von LinaComponents zu
veranschaulichen.
Es darf als Grundlage für eingene Projekte ohne vorherige Einwilligung
verwendet werden, solange mindestens eine LinaComponents-Unit im Projekt
verarbeitet wird.
WICHTIG: Im Gegensatz zur Entwicklung der LinaComponents selbst wurde bei
diesem Beispielprojekt keinerlei Rücksicht auf Abwärtskompatibilität
genommen. Dieses Beispielprogramm wurde in Embarcadero Delphi XE5
erstellt, entwickelt und kompiliert und könnte bei älteren Delphi-
Versionen zu Kompilierungsfehlern führen. }
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, uFileTools, Vcl.StdCtrls, Vcl.ExtCtrls;
type
TfmMain = class(TForm)
edPath: TEdit;
miBrowse: TButton;
lbOtherFiles: TListBox;
gbProperties: TGroupBox;
leFileName: TLabeledEdit;
leFileExt: TLabeledEdit;
leFolderName: TLabeledEdit;
laOtherFiles: TLabel;
lbOtherFolders: TListBox;
laOtherFolders: TLabel;
pnButtons: TPanel;
btExecute: TButton;
cbExecuteSafe: TCheckBox;
OpenDialog: TOpenDialog;
coExecuteMode: TComboBox;
laExecuteMode: TLabel;
procedure edPathChange(Sender: TObject);
procedure miBrowseClick(Sender: TObject);
procedure btExecuteClick(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
fmMain: TfmMain;
implementation
{$R *.dfm}
procedure TfmMain.btExecuteClick(Sender: TObject);
var
CurrentFile: TWinFile;
begin
if FileExists(edPath.Text) then
begin
CurrentFile := TWinFile.Create(edPath.Text);
try
case coExecuteMode.ItemIndex of
0: CurrentFile.ExecuteMode := feOpen;
1: CurrentFile.ExecuteMode := feEdit;
end;
if cbExecuteSafe.Checked = True then
begin
CurrentFile.SafeExecute;
end else
begin
CurrentFile.Execute;
end;
finally
CurrentFile.Free;
end;
end;
end;
procedure TfmMain.edPathChange(Sender: TObject);
var
CurrentFile: TWinFile;
List: TStrings;
begin
if FileExists(edPath.Text) then
begin
CurrentFile := TWinFile.Create(edPath.Text);
List := TStringList.Create;
try
leFileName.Text := CurrentFile.GetFileName(False);
leFileExt.Text := CurrentFile.GetExtension(False);
leFolderName.Text := CurrentFile.GetFolderName;
List.Clear;
ListFolders(CurrentFile.GetPath,List);
lbOtherFolders.Items.Assign(List);
List.Clear;
ListFiles(CurrentFile.GetPath,List,['*.pas','*.dpr'],[fnExtension]);
lbOtherFiles.Items.Assign(List);
finally
CurrentFile.Free;
List.Free;
end;
end;
end;
procedure TfmMain.miBrowseClick(Sender: TObject);
begin
if OpenDialog.Execute then
begin
edPath.Text := OpenDialog.FileName;
end;
end;
end.