mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-18 03:59:13 +02:00
fix from Martin Smat for TFileDialogs
git-svn-id: trunk@3849 -
This commit is contained in:
parent
61afdc3765
commit
0b96803a3b
@ -1323,6 +1323,8 @@ Var
|
|||||||
LF: LogFont;
|
LF: LogFont;
|
||||||
OpenFile: OpenFileName;
|
OpenFile: OpenFileName;
|
||||||
Ret: Boolean;
|
Ret: Boolean;
|
||||||
|
FName: array[0..Max_path] of char;
|
||||||
|
FFilter: string;
|
||||||
|
|
||||||
Function GetFlagsFromOptions(Options: TOpenOptions): DWord;
|
Function GetFlagsFromOptions(Options: TOpenOptions): DWord;
|
||||||
Begin
|
Begin
|
||||||
@ -1374,6 +1376,13 @@ Var
|
|||||||
else Result := 0;
|
else Result := 0;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure ReplacePipe(var AFilter:string);
|
||||||
|
var i:integer;
|
||||||
|
begin
|
||||||
|
for i:=1 to length(AFilter) do
|
||||||
|
if AFilter[i]='|' then AFilter[i]:=#0;
|
||||||
|
end;
|
||||||
|
|
||||||
Begin
|
Begin
|
||||||
Assert(False, 'Trace:TWin32Object.CreateCommonDialog - Start');
|
Assert(False, 'Trace:TWin32Object.CreateCommonDialog - Start');
|
||||||
Assert(False, Format('Trace:TWin32Object.CreateCommonDialog - class name --> ', [Sender.ClassName]));
|
Assert(False, Format('Trace:TWin32Object.CreateCommonDialog - class name --> ', [Sender.ClassName]));
|
||||||
@ -1393,40 +1402,34 @@ Begin
|
|||||||
End
|
End
|
||||||
Else If Sender Is TFileDialog Then
|
Else If Sender Is TFileDialog Then
|
||||||
Begin
|
Begin
|
||||||
If Sender Is TSaveDialog Then {must be before TOpenDialog because TSaveDialog IS TOpenDialog}
|
{TODO: set correctly Sender.FileName and Sender.Files when more files are selected}
|
||||||
|
If Sender Is TOpenDialog Then
|
||||||
Begin
|
Begin
|
||||||
OpenFile := LPOpenFileName(@Sender)^;
|
FName[0]:=#0;
|
||||||
|
FFilter := (Sender As TOpenDialog).Filter;
|
||||||
|
ReplacePipe(FFilter);
|
||||||
|
FFilter := FFilter+#0;
|
||||||
ZeroMemory(@OpenFile, SizeOf(OpenFileName));
|
ZeroMemory(@OpenFile, SizeOf(OpenFileName));
|
||||||
With OpenFile Do
|
With OpenFile Do
|
||||||
Begin
|
Begin
|
||||||
LStructSize := SizeOf(OpenFileName);
|
LStructSize := SizeOf(OpenFileName);
|
||||||
HWndOwner := GetOwnerHandle;
|
HWndOwner := GetOwnerHandle;
|
||||||
LPStrFilter := PChar((Sender As TSaveDialog).Filter);
|
LPStrFilter := PChar(FFilter);
|
||||||
{If (Sender As TSaveDialog).FileName <> '' Then
|
LPStrFile := @FName;
|
||||||
LPStrFile := PChar((Sender As TSaveDialog).FileName);}
|
LPStrTitle := PChar((Sender As TOpenDialog).Title);
|
||||||
LPStrFileTitle := PChar((Sender As TSaveDialog).Title);
|
LPStrInitialDir := PChar((Sender As TOpenDialog).InitialDir);
|
||||||
LPStrInitialDir := PChar((Sender As TSaveDialog).InitialDir);
|
NMaxFile := Max_path;
|
||||||
Flags := GetFlagsFromOptions((Sender As TOpenDialog).Options);
|
Flags := GetFlagsFromOptions((Sender As TOpenDialog).Options);
|
||||||
End;
|
End;
|
||||||
Ret := GetSaveFileName(@OpenFile);
|
If Sender Is TSaveDialog Then {must be before TOpenDialog because TSaveDialog IS TOpenDialog}
|
||||||
End
|
|
||||||
Else If Sender Is TOpenDialog Then
|
|
||||||
Begin
|
|
||||||
OpenFile := LPOpenFileName(@Sender)^;
|
|
||||||
ZeroMemory(@OpenFile, SizeOf(OpenFileName));
|
|
||||||
With OpenFile Do
|
|
||||||
Begin
|
Begin
|
||||||
LStructSize := SizeOf(OpenFileName);
|
Ret := GetSaveFileName(@OpenFile);
|
||||||
HWndOwner := GetOwnerHandle;
|
End
|
||||||
LPStrFilter := PChar((Sender As TOpenDialog).Filter);
|
Else //TOpenDialog
|
||||||
{If (Sender As TOpenDialog).FileName <> '' Then
|
Begin
|
||||||
LPStrFile := PChar((Sender As TOpenDialog).FileName);}
|
Ret := GetOpenFileName(@OpenFile);
|
||||||
LPStrFileTitle := PChar((Sender As TOpenDialog).Title);
|
|
||||||
LPStrInitialDir := PChar((Sender As TOpenDialog).InitialDir);
|
|
||||||
|
|
||||||
Flags := GetFlagsFromOptions((Sender As TOpenDialog).Options);
|
|
||||||
End;
|
End;
|
||||||
Ret := GetOpenFileName(@OpenFile)
|
If Ret Then (Sender As TOpenDialog).FileName := StrPas(FName);
|
||||||
End
|
End
|
||||||
End
|
End
|
||||||
Else If Sender Is TFontDialog Then
|
Else If Sender Is TFontDialog Then
|
||||||
@ -2628,6 +2631,9 @@ End;
|
|||||||
|
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
|
Revision 1.47 2003/02/16 00:43:55 mattias
|
||||||
|
fix from Martin Smat for TFileDialogs
|
||||||
|
|
||||||
Revision 1.46 2003/02/08 10:37:32 mattias
|
Revision 1.46 2003/02/08 10:37:32 mattias
|
||||||
applied patch from Martin for TFileDialog
|
applied patch from Martin for TFileDialog
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user