1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| uses CommDlg,Dlgs,windows,dialogs,etc...;
procedure TForm1.SaveDialog1TypeChange(Sender: TObject);
var NomFic,NewFic,NewExt,s:string;
AHandle:HWND;
buf:array [0..MAX_PATH] of char;
MaSaveDialog:TSaveDialog;
HandleParent:THandle;
begin
MaSaveDialog := (Sender as TSaveDialog);
//obtenir le Handle du parent de la boite de dialogue
HandleParent:= GetParent(MaSaveDialog.Handle);
// obtenir le nom de fichier entré par l'utilisateur
SendMessage(H, CDM_GETSPEC, MAX_PATH,integer(@buf));
S := buf;
if ExtractFileExt(s)='' then s:=s+'.prdb';
NomFic:=s;
NewFic:=NomFic;
case (MaSaveDialog.FilterIndex div 2) of
//"div 2" parce que la liste des filtres va par tranche de 2
0:NewExt:='.prdt';
1:NewExt:='.prdb';
end;
if NewExt<>''
then NewFic:=ChangeFileExt(NomFic,NewExt);
// Et hop, changement du nom de fichier ;)
SendMessage(H,CDM_SETCONTROLTEXT,edt1,integer(PChar(NewFic)));
end; |
Partager