提交 1c37b28a 编写于 作者: cz_012273's avatar cz_012273

Replace MDialogs.pas

上级 40c60b39
......@@ -7,7 +7,7 @@
}
unit MDialogs;
unit MyDialogs;
interface
......@@ -20,7 +20,7 @@ uses
FMX.ListView.Adapters.Base, FMX.Controls.Presentation;
type
TMOpenDialog = class(TForm)
TMyOpenDialog = class(TForm)
LVList: TListView;
AniIndicator: TAniIndicator;
SaveInput: TCalloutRectangle;
......@@ -122,9 +122,9 @@ type
property MultiSelect: Boolean read FMultiSelect write FMultiSelect;
end;
TMSaveDialogClass = class of TMOpenDialog;
TMSaveDialogClass = class of TMyOpenDialog;
TMSaveDialog = class(TMOpenDialog)
TMSaveDialog = class(TMyOpenDialog)
protected
function GetFileName: string; override;
procedure DoConfirm; override;
......@@ -151,7 +151,7 @@ uses
{$R *.LgXhdpiPh.fmx ANDROID}
function GetDialog(AClass: TMSaveDialogClass; const AInitialDir: string; const AFilter: string;
AFileFilter: TFunc<string, Boolean>; AFileNameComparer: IComparer<string>): TMOpenDialog;
AFileFilter: TFunc<string, Boolean>; AFileNameComparer: IComparer<string>): TMyOpenDialog;
begin
Result := AClass.Create(nil);
with Result do
......@@ -169,7 +169,7 @@ procedure GetFileOpenDialog(AResultProc: TProc<Boolean, string>; const AInitialD
AFileNameComparer: IComparer<string>);
begin
if Assigned(AResultProc) then
with GetDialog(TMOpenDialog, AInitialDir, AFilter, AFileFilter, AFileNameComparer) do
with GetDialog(TMyOpenDialog, AInitialDir, AFilter, AFileFilter, AFileNameComparer) do
begin
MultiSelect := AMultiSelect;
Execute(AResultProc);
......@@ -188,7 +188,7 @@ procedure GetSelectDirectoryDialog(AResultProc: TProc<Boolean, string>; const AI
const AFilter: string; AFileFilter: TFunc<string, Boolean>; AFileNameComparer: IComparer<string>);
begin
if Assigned(AResultProc) then
with GetDialog(TMOpenDialog, AInitialDir, AFilter, AFileFilter, AFileNameComparer) do
with GetDialog(TMyOpenDialog, AInitialDir, AFilter, AFileFilter, AFileNameComparer) do
begin
ListType := TListType.ltDirectory;
Execute(AResultProc);
......@@ -197,7 +197,7 @@ end;
{ TMOpenDialog }
procedure TMOpenDialog.AddItemsToView(const AItems: TStringDynArray;
procedure TMyOpenDialog.AddItemsToView(const AItems: TStringDynArray;
AListType: TListType);
var
LItem: string;
......@@ -226,7 +226,7 @@ begin
end;
end;
procedure TMOpenDialog.SetIndicator(AShow: Boolean);
procedure TMyOpenDialog.SetIndicator(AShow: Boolean);
begin
with AniIndicator do
begin
......@@ -240,7 +240,7 @@ begin
end;
end;
procedure TMOpenDialog.SetItemImage(const AItem: TListViewItem);
procedure TMyOpenDialog.SetItemImage(const AItem: TListViewItem);
begin
{ BMPList }
if GetItemType(AItem) = ltDirectory then
......@@ -249,32 +249,32 @@ begin
AItem.BitmapRef := ImageFile.Bitmap;
end;
procedure TMOpenDialog.BDirUpClick(Sender: TObject);
procedure TMyOpenDialog.BDirUpClick(Sender: TObject);
begin
DoDirUp;
end;
procedure TMOpenDialog.BRootClick(Sender: TObject);
procedure TMyOpenDialog.BRootClick(Sender: TObject);
begin
DoDirToRoot;
end;
procedure TMOpenDialog.BRootMouseEnter(Sender: TObject);
procedure TMyOpenDialog.BRootMouseEnter(Sender: TObject);
begin
TFmxObject(Sender).AnimateColor('Fill.Color', TAlphaColorRec.Seagreen);
end;
procedure TMOpenDialog.BRootMouseLeave(Sender: TObject);
procedure TMyOpenDialog.BRootMouseLeave(Sender: TObject);
begin
TFmxObject(Sender).AnimateColor('Fill.Color', $FF014051);
end;
class constructor TMOpenDialog.Create;
class constructor TMyOpenDialog.Create;
begin
BMPList := TDictionary<string, TBitmap>.Create;
end;
constructor TMOpenDialog.Create(AOwner: TComponent);
constructor TMyOpenDialog.Create(AOwner: TComponent);
begin
inherited;
FListType := ltFile;
......@@ -309,19 +309,19 @@ begin
end;
end;
destructor TMOpenDialog.Destroy;
destructor TMyOpenDialog.Destroy;
begin
FItemSelectTimer.Free;
FFilterList.Free;
inherited;
end;
class destructor TMOpenDialog.Destroy;
class destructor TMyOpenDialog.Destroy;
begin
BMPList.Free;
end;
procedure TMOpenDialog.DirChanged;
procedure TMyOpenDialog.DirChanged;
begin
LVList.Selected := nil;
TextPath.Text := FCurrentDir;
......@@ -330,13 +330,13 @@ begin
TextEmpty.Visible := (LVList.ItemCount = 0);
end;
procedure TMOpenDialog.DoCancel;
procedure TMyOpenDialog.DoCancel;
begin
ModalResult := mrCancel;
close;
end;
procedure TMOpenDialog.DoClose(var CloseAction: TCloseAction);
procedure TMyOpenDialog.DoClose(var CloseAction: TCloseAction);
begin
inherited;
CloseAction := TCloseAction.caFree;
......@@ -352,7 +352,7 @@ begin
end;
end;
procedure TMOpenDialog.DoDirToRoot;
procedure TMyOpenDialog.DoDirToRoot;
var
LDir: string;
begin
......@@ -365,7 +365,7 @@ begin
end;
end;
procedure TMOpenDialog.DoDirUp;
procedure TMyOpenDialog.DoDirUp;
var
LParent: string;
begin
......@@ -378,7 +378,7 @@ begin
end;
end;
procedure TMOpenDialog.DoFileNameFiler(var AArray: TStringDynArray;
procedure TMyOpenDialog.DoFileNameFiler(var AArray: TStringDynArray;
AFilterProc: TFunc<string, Boolean>);
var
LTemp: TList<string>;
......@@ -397,7 +397,7 @@ begin
end;
end;
procedure TMOpenDialog.DoConfirm;
procedure TMyOpenDialog.DoConfirm;
begin
if ( (FListType = ltFile) and (LVList.Selected <> nil)
and (GetItemType(TListViewItem(LVList.Selected)) = ltFile) )
......@@ -406,19 +406,19 @@ begin
ModalResult := mrOK;
end;
procedure TMOpenDialog.DoShow;
procedure TMyOpenDialog.DoShow;
begin
inherited;
LS(FCurrentDir);
end;
procedure TMOpenDialog.DoTimerSelectItem(Sender: TObject);
procedure TMyOpenDialog.DoTimerSelectItem(Sender: TObject);
begin
TTimer(Sender).Enabled := False;
LS(FCurrentDir);
end;
procedure TMOpenDialog.ESaveNameMouseEnter(Sender: TObject);
procedure TMyOpenDialog.ESaveNameMouseEnter(Sender: TObject);
begin
{ Delphi XE5 Version 19.0.13476.4176
Android: 有些输入法有隐藏键(如qq), 当虚拟键盘按下隐藏键后(不会触发
......@@ -435,7 +435,7 @@ begin
{$ENDIF}
end;
procedure TMOpenDialog.Execute(const AResultProc: TProc<Boolean, string>);
procedure TMyOpenDialog.Execute(const AResultProc: TProc<Boolean, string>);
var
LResult: Boolean;
begin
......@@ -458,7 +458,7 @@ begin
end;
function TMOpenDialog.DoFilter(AStr: string): Boolean;
function TMyOpenDialog.DoFilter(AStr: string): Boolean;
function ExtExist(const AExt: string): Boolean;
begin
......@@ -472,31 +472,31 @@ begin
Result := not ExtExist(ExtractFileExt(ExtractFileName(AStr))) ;
end;
function TMOpenDialog.GetDefaultDir: string;
function TMyOpenDialog.GetDefaultDir: string;
begin
Result := WithDelimiter(System.IOUtils.TPath.GetSharedDocumentsPath);
end;
function TMOpenDialog.GetDefaultRootDir: string;
function TMyOpenDialog.GetDefaultRootDir: string;
begin
Result := WithDelimiter(TDirectory.GetDirectoryRoot(GetDefaultDir));
end;
function TMOpenDialog.WithDelimiter(ADir: string): string;
function TMyOpenDialog.WithDelimiter(ADir: string): string;
begin
Result := ADir;
if RightStr(Result, 1) <> System.SysUtils.PathDelim then
Result := Result + System.SysUtils.PathDelim;
end;
function TMOpenDialog.WithoutDelimiter(ADir: string): string;
function TMyOpenDialog.WithoutDelimiter(ADir: string): string;
begin
Result := ADir;
if RightStr(Result, 1) = System.SysUtils.PathDelim then
Result := Copy(Result, 1, Result.Length - 1);
end;
function TMOpenDialog.GetFileNameComparer: IComparer<string>;
function TMyOpenDialog.GetFileNameComparer: IComparer<string>;
begin
if not Assigned(FFileNameComparer) then
FFileNameComparer :=
......@@ -508,17 +508,17 @@ begin
Result := FFileNameComparer;
end;
function TMOpenDialog.GetFileNameFilter: TFunc<string, Boolean>;
function TMyOpenDialog.GetFileNameFilter: TFunc<string, Boolean>;
begin
Result := FFileNameFilter;
end;
function TMOpenDialog.GetItemType(AItem: TListViewItem): TListType;
function TMyOpenDialog.GetItemType(AItem: TListViewItem): TListType;
begin
Result := TListType(AItem.Tag);
end;
function TMOpenDialog.GetFileName: string;
function TMyOpenDialog.GetFileName: string;
var
I: Integer;
begin
......@@ -545,7 +545,7 @@ begin
end;
end;
function TMOpenDialog.GetListArray(const ADir: string;
function TMyOpenDialog.GetListArray(const ADir: string;
AListType: TListType): TStringDynArray;
var
LResult: TStringDynArray;
......@@ -575,17 +575,17 @@ begin
end;
end;
procedure TMOpenDialog.ListDirectories(const ADir: string);
procedure TMyOpenDialog.ListDirectories(const ADir: string);
begin
AddItemsToView(GetListArray(ADir, ltDirectory), ltDirectory);
end;
procedure TMOpenDialog.ListFiles(const AParentDir: string);
procedure TMyOpenDialog.ListFiles(const AParentDir: string);
begin
AddItemsToView(GetListArray(AParentDir, ltFile), ltFile);
end;
procedure TMOpenDialog.LS(const ADir: string);
procedure TMyOpenDialog.LS(const ADir: string);
begin
if not DirectoryExists(ADir) then
Exit;
......@@ -610,7 +610,7 @@ begin
end;
end;
procedure TMOpenDialog.LVListItemClick(const Sender: TObject;
procedure TMyOpenDialog.LVListItemClick(const Sender: TObject;
const AItem: TListViewItem);
var
LPath: string;
......@@ -638,12 +638,12 @@ begin
end;
end;
procedure TMOpenDialog.RCancelClick(Sender: TObject);
procedure TMyOpenDialog.RCancelClick(Sender: TObject);
begin
DoCancel;
end;
procedure TMOpenDialog.Resize;
procedure TMyOpenDialog.Resize;
begin
inherited;
......@@ -665,12 +665,12 @@ begin
end;
procedure TMOpenDialog.ROKClick(Sender: TObject);
procedure TMyOpenDialog.ROKClick(Sender: TObject);
begin
DoConfirm;
end;
procedure TMOpenDialog.SetFilter(const Value: string);
procedure TMyOpenDialog.SetFilter(const Value: string);
begin
//filter :='.txt=文本文件|.bmp=BMP文件';
FFilter := Value;
......@@ -685,13 +685,13 @@ begin
end;
end;
procedure TMOpenDialog.SetListType(const Value: TListType);
procedure TMyOpenDialog.SetListType(const Value: TListType);
begin
if FListType <> Value then
FListType := Value;
end;
procedure TMOpenDialog.VirtualKeyboardChangeHandler(const Sender: TObject;
procedure TMyOpenDialog.VirtualKeyboardChangeHandler(const Sender: TObject;
const Msg: System.Messaging.TMessage);
var
LTop: Single;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册