truc et astuce delphi.pdf
TRANSCRIPT
-
comment supprimer un dossier vide
procedure TForm1.Button1Click(Sender: TObject); begin if DirectoryExists(Edit1.Text) then RmDir(Edit1.Text); //supprimer le dossier saisie dans Edit1 s'il existe end;
ou procedure TForm1.Button1Click(Sender: TObject); begin if DirectoryExists(Edit1.Text) then Removedir(Edit1.Text); //supprimer le dossier saisie dans Edit1 s'il existe end;
supprimer un fichier
procedure TForm1.Button1Click(Sender: TObject); begin DeleteFile(edit1.text); //supprimer le fichier saisie dans Edit1 ou DeleteFile('C:\delphikam\exemple.txt); end;
Convertir un nom de fichier au format court 8.3. format Dos
procedure TForm1.Button18Click(Sender: TObject); begin showmessage(ExtractShortPathName('C:\delphikam\test.txt')); //le rsulta seras C:\DELPHI~1\test.txt end;
crer un dossier avec un icone personnalis depuis Shell.DLL de Windows
procedure TForm1.Button1Click(Sender: TObject); var Liste : TStrings ; begin CreateDir('C:\delphikam') ; Liste := TStringList.Create; Liste.Add('[.ShellClassInfo]') ; Liste. Add('IconFile = ' + GetEnvironmentVariable('Windir')+ '\system32\SHELL32.DLL') ; Liste. Add('IconIndex = 118') ; Liste. Add('InfoTip = Dossier de mon site delphi') ;//la phrase "Dossier de delphi" c'est la phrase a afficher lorsque la soourie parcoure ce dossier Liste. SaveToFile('C:\delphikam\Desktop.ini');
-
SysUtils.FileSetAttr('C:\delphikam', SysUtils.faReadOnly) ; SysUtils.FileSetAttr('C:\delphikam\Desktop.ini',SysUtils.faSysFile or SysUtils.faHidden) ; Liste.Free ; end;
crer un dossier avec un icone personnalis depuis un fichier icone
procedure TForm1.Button1Click(Sender: TObject); var Liste : TStrings ; begin CreateDir('C:\delphikam') ; Liste := TStringList.Create; Liste.Add('[.ShellClassInfo]') ; Liste.Add('IconFile = ' + 'C:\mes icone\delphik.ico'); Liste.Add('IconIndex = 0') ; Liste. Add('InfoTip = Dossier de mon site delphi') ;//la phrase "Dossier de delphi" c'est la phrase a afficher lorsque la soourie parcoure ce dossier Liste. SaveToFile('C:\delphikam\Desktop.ini'); SysUtils.FileSetAttr('C:\delphikam', SysUtils.faReadOnly) ; SysUtils.FileSetAttr('C:\delphikam\Desktop.ini',SysUtils.faSysFile or SysUtils.faHidden) ; Liste.Free ; end;
crer un fichier texte
procedure TForm1.Button1Click(Sender: TObject); var Fichier: TextFile; //dclarer d'abord fichier comme textefile begin AssignFile(fichier,edit1.Text); //crer le dossier saisie dans Edit1 ou CreateDir('c:\delphikam'); end;
dfinir le rpertoire en cours
procedure TForm1.Button24Click(Sender: TObject); begin if SetCurrentDir('C:\delphikam')=true then showmessage('Chemin de Dossier en cours modifeir') else showmessage('Erreur de changement de chemin dossier en cours'); end;
-
extraire le chemin d'un fichier
procedure TForm1.Button1Click(Sender: TObject); begin Edit1.text:=ExtractFilePath('c:\delphikam\exemple.txt'); //le resultat sera C:\delphikam end;
Extraire le lecteur et le rpertoire d'un nom de fichier
procedure TForm1.Button10Click(Sender: TObject); begin showmessage(ExtractFilePath ('C:\delphikam\test.txt'));//le rsulta seras C:\delphikam\ end;
extraire le nom d'un fichier
procedure TForm1.Button1Click(Sender: TObject); begin Edit1.text:=ExtractFileName('c:\delphikam\exemple.txt'); //le resultat sera Exemple.txt end;
Extraire les parties contenant les noms du lecteur et du rpertoire d'un fichier
procedure TForm1.Button15Click(Sender: TObject); begin showmessage(ExtractFileDir('C:\delphikam\test.txt'));//le rsulta seras C:\delphikam end;
extraire l'extension d'un fichier
procedure TForm1.Button16Click(Sender: TObject); begin showmessage(ExtractFileExt('C:\delphikam\test.txt'));//le rsulta seras .txt end;
Modifier les attribues d'un fichier FileSetAttr
procedure TForm1.Button3Click(Sender: TObject); var Attributes,NewAttributes:Word; begin if Checkbox1.Checked then NewAttributes :=NewAttributes or SysUtils.faReadOnly else NewAttributes :=NewAttributes and not SysUtils.faReadOnly; if Checkbox2.Checked then NewAttributes :=NewAttributes or faArchive else NewAttributes :=NewAttributes and not faArchive;
-
if Checkbox3.Checked then NewAttributes :=NewAttributes or faSysFile else NewAttributes :=NewAttributes and not faSysFile; if Checkbox4.Checked then NewAttributes :=NewAttributes or faHidden else NewAttributes :=NewAttributes and not faHidden; if NewAttributes Attributes then FileSetAttr(edit1.Text,NewAttributes); {...crire les nouvelles valeurs } end;
Rechercher un fichier dans le chemin de rpertoire spcifi
procedure TForm1.Button1Click(Sender:TObject); var FileToFind:string; begin FileToFind :=FileSearch(Edit1.Text,Edit2.text);//rechercher dans le dossier saisie dans Edit2 if FileToFind ='' then ShowMessage('Impossible de trouver '+Edit1.Text +'.') else ShowMessage('Trouv'+FileToFind +'.'); end;
Renommer un fichier RenameFile
procedure TForm1.Button23Click(Sender: TObject); begin RenameFile('C:\delphikam\test.txt','C:\delphikam\nouveau nom.txt'); end;
Renvoyer la taille en octets du disque spcifi
procedure TForm1.Button5Click(Sender: TObject); var Total:Int64; begin Total :=DiskSize(0); // 0 est le numero de de disque Label3.Caption :=IntToStr(Total div 1024)+'Ko.'; end;
Renvoyer le chemin complet d'un nom de fichier au format UNC,le cas chant
procedure TForm1.Button9Click(Sender: TObject); begin showmessage(ExpandUNCFileName ('C:\delphikam\test.txt'));//le rsulta seras C:\delphikam\test.txt end;
-
Renvoyer le chemin complet d'un nom de fichier relatif
procedure TForm1.Button7Click(Sender: TObject); begin showmessage(ExpandFileName('C:\delphikam\test.txt');//le rsulta seras C:\delphikam\test.txt end;
Renvoyer le nom du rpertoire en cours
procedure TForm1.Button22Click(Sender: TObject); begin showmessage(GetCurrentDir); end;
Renvoyer les attribues d'un fichier FileGetAttr
procedure TForm1.Button2Click(Sender: TObject); var Attributes,NewAttributes:Word; begin Attributes :=FileGetAttr(edit1.Text); {lit les attributs de fichier } Checkbox1.Checked :=(Attributes and SysUtils.faReadOnly)=faReadOnly; Checkbox2.Checked :=(Attributes and faArchive)=faArchive; Checkbox3.Checked :=(Attributes and faSysFile)=faSysFile; Checkbox4.Checked :=(Attributes and faHidden)=faHidden; end;
Renvoyer un nom de chemin relatif un rpertoire
procedure TForm1.Button17Click(Sender: TObject); begin ExtractRelativePath('C:\delphikam','C:\astuce'); showmessage('Nom de chemin revoy'); end;
Renvoyr le nombre d'octets disponibles sur le lecteur spcifi
procedure TForm1.Button4Click(Sender: TObject); var AmtFree:Int64; begin AmtFree :=DiskFree(0); // 0 est le numero de de disque Label1.Caption :=inttostr(AmtFree div 1024)+'Ko.'; end;
-
Revoyer La taille d'un dossier
je vous explique cette technique avec un exemple, placer sur votre fiche un composant TEdit, 1 TButton, 3 TRadioButton, 1 TCheckBox, 1 Tlabel.
Inserez cette focnction qui calcule la taille de dossier juste au debut des procedure
function DirSize(const ADirName : string; ARecurseDirs : boolean = true) : integer; const FIND_OK = 0; var iResult : integer; procedure _RecurseDir(const ADirName : string); var sDirName : string; rDirInfo : TSearchRec; iFindResult : integer; begin sDirName := IncludeTrailingPathDelimiter(ADirName); iFindResult := FindFirst(sDirName + '*.*',faAnyFile,rDirInfo); while iFindResult = FIND_OK do begin // Ignore . and .. directories if (rDirInfo.Name[1] '.') then begin if (rDirInfo.Attr and faDirectory = faDirectory) and ARecurseDirs then _RecurseDir(sDirName + rDirInfo.Name) // Keep Recursing else inc(iResult,rDirInfo.Size); // Accumulate Sizes end; iFindResult := FindNext(rDirInfo); if iFindResult FIND_OK then FindClose(rDirInfo); end; end; // DirSize Main begin Screen.Cursor := crHourGlass; Application.ProcessMessages; iResult := 0; _RecurseDir(ADirName); Screen.Cursor := crDefault; Result := iResult; end;
Puis dans l'implimentation OnClick du Button1 inserez cette instruction
procedure TForm1.Button1Click(Sender: TObject); var taille:integer; begin if checkbox1.Checked=true then taille:=DirSize(edit1.Text,true) else taille:=DirSize(edit1.Text,false);
-
if taille1024 then Label1.Caption:=floattostr(RoundTo(taille/ 1024,-2))+' Ko'; if taille>1048576 then Label1.Caption:=floattostr(RoundTo(taille/(1048576),-2))+' Mo'; end;
Savoir si le fichier est en lecture seule
procedure TForm1.Button20Click(Sender: TObject); begin if FileIsReadOnly('C:\delphikam\test.txt')= true then showmessage('fichier est on lecture seule') else showmessage('fichier n''est pas on lecture seule'); end;
supprimer un dossier avec ses fichier
procedure TForm1.Button1Click(Sender: TObject); var Dir: TSearchRec; n : Integer; begin n := FindFirst('C:\delphikam\*.*', FaAnyfile, Dir); while n = 0 do begin if ((Dir.Attr and FaDirectory FaDirectory) and (Dir.Attr and FaVolumeId FaVolumeID)) then if not DeleteFile(pChar('C:\delphikam\' + Dir.Name)) then ShowMessage('impossible de supprimer le fichier'); n := FindNext(Dir); end; SysUtils.FindClose(Dir); if not removedir ('C:\delphikam') then ShowMessage('impossible de supprimer le dossier'); end;
vrifier l'existence d'un fichier
procedure TForm1.Button1Click(Sender: TObject); begin if FileExists('c:\exemple.txt') then ShowMessage ('Le fichier existe') else ShowMessage ('Le fichier existe Pas') ; end;
-
vrifier l'existence d'un dossier
procedure TForm1.Button1Click(Sender: TObject); begin if DirectoryExists(Edit1.Text) then ShowMessage('le dossier existe') else ShowMessage('le dossier existe pas'); end;
crer un dossier
procedure TForm1.Button1Click(Sender: TObject); begin CreateDir(Edit1.Text); //crer le dossier saisie dans Edit1 ou CreateDir('c:\delphikam'); end;