Evento OnEditButtonClick della DbGrid
procedure TFrmMci.DbGridFattureEditButtonClick(Sender: TObject);
Var
SFilePath, SFileName, SDestFolder: String;
begin
If (Not QFatture.Active) Or (QFatture.RecordCount < 1) Then Exit;
// Questo evento è comune a tutte le colonne... quindi nel caso di più colonne
// aventi ButtonStyle = cbsEllipsis bisogna identificare il campo selezionato...
If (DbGridFatture.SelectedField = QFattureFILEPDF) Then
Begin
SFilePath := Trim(QFattureFILEPDF.AsString); // se contiene anche il percorso...
If (SFilePath = '') Then Exit;
// FileExists - dichiarata in System.SysUtils
If Not FileExists(SFilePath) Then
Begin
ShowMessage('Il file selezionato non esiste!' + #13#10 +
'("' + SFilePath + '")' + #13#10 +
'Impossibile proseguire...');
Exit;
End;
// ExtractFileName - dichiarata in System.SysUtils
SFileName := ExtractFileName(SFilePath);
SDestFolder := 'C:\_Archivio\';
// Application - Dichiarata in Vcl.Forms
If FileExists(SDestFolder + SFileName) Then
If Application.MessageBox(
'Il file di destinazione risulta gia esistente:' + #13#10 +
'Procedere comunque?',
'Conferma sovrascrittura',
MB_YESNO) <> IDYES
Then Exit;
// CopyFile è dichiarata in Winapi.Windows, il "false" finale consente la sovrascrittura
If CopyFile(PChar(SFilePath), PChar(SDestFolder + SFileName), False) Then
ShowMessage('File "' + SFileName + '"' + #13#10 +
'copiato con successo nella cartella' + #13#10 +
'"' + SDestFolder + '"!')
Else
ShowMessage('Non è stato possibile copiare il file nella cartella "' + SDestFolder + '"!');
End;
end;