Problem z poleceniem Delete w Delphi 2005

0

Witam.
To jest program do szkoły.
Wg mnie jest dobrze lecz wywala błąd w linijce, w której występuje Delete:

procedure TForm1.Button1Click(Sender: TObject);
var
  Nazwa {pliku}, Sciezka : String;
  Dlugosc_sciezki {do pliku, bez nazwy} : LongInt;
  Plik , Kopia : File;
  Rozmiar_pliku {w bajtach} : Integer;
  Odczytano {w bajtach} : Integer;
  Buffor {przechowujący dane} : array[0..255] of byte;
  Skopiowano {w bajtach} : Integer;
begin
  AssignFile(Plik, FileListBox1.FileName);
  try
    Reset (Plik, 1);
    Rozmiar_pliku := FileSize(Plik);
    ProgressBar1.Max := Rozmiar_pliku;
    Dlugosc_sciezki := Length (DirectoryListBox1.Directory) + 1;
    Sciezka := FileListBox1.FileName;
>>  Nazwa := Delete (Sciezka, 1, Dlugosc_sciezki);    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
    AssignFile (Kopia, DirectoryListBox2.Directory + Nazwa);
    try
      ReWrite (Kopia, 1);
      Repeat
        Application.ProcessMessages;
        BlockRead (Plik, Buffor, SizeOf(Buffor), Odczytano);
        If Odczytano > 0 Then
          Begin
            BlockWrite(Kopia, Buffor, Odczytano);
            Skopiowano := Skopiowano + Odczytano;
          End;
        ProgressBar1.Position := Skopiowano;
      Until
        Skopiowano = 0;
    finally
      CloseFile (Kopia);
    end;
  finally
    CloseFile (Plik);
  end;
end;

Błąd wygląda tak:
[Error] Unit1.pas(55): E2010 Incompatible types: 'string' and 'procedure, untyped pointer or untyped parameter'

HELP ME !!! PLEASE ...

0
Delete (Sciezka, 1, Dlugosc_sciezki);
Nazwa := Sciezka;

:d

0
Delete

spóźniłem się

0

Dzięki za pomoc. Ja pisałem tak jak w Pascalu. Mój błąd...

... ale mam drugi problem.

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, FileCtrl, ComCtrls;

type
  TForm1 = class(TForm)
    GroupBox1: TGroupBox;
    GroupBox2: TGroupBox;
    DriveComboBox1: TDriveComboBox;
    DirectoryListBox1: TDirectoryListBox;
    FileListBox1: TFileListBox;
    DriveComboBox2: TDriveComboBox;
    DirectoryListBox2: TDirectoryListBox;
    Button1: TButton;
    Label1: TLabel;
    Label2: TLabel;
    ProgressBar1: TProgressBar;
    Button2: TButton;
    procedure Button2Click(Sender: TObject);
    procedure DirectoryListBox2Change(Sender: TObject);
    procedure FileListBox1Change(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  Nazwa {pliku}, Sciezka : String;
  Dlugosc_sciezki {do pliku, bez nazwy} : Integer;
  Plik , Kopia : File;
  Rozmiar_pliku {w bajtach} : Integer;
  Odczytano {w bajtach} : Integer;
  Buffor {przechowujący dane} : array[0..8192] of byte;
  Skopiowano {w bajtach} : Integer;
begin
  AssignFile(Plik, FileListBox1.FileName);
  try
    Reset (Plik, 1);
    Rozmiar_pliku := FileSize(Plik);
    ProgressBar1.Max := Rozmiar_pliku;
    Dlugosc_sciezki := Length (DirectoryListBox1.Directory);
    Nazwa := FileListBox1.FileName;
    Delete (Nazwa, 1, Dlugosc_sciezki);
    AssignFile (Kopia, DirectoryListBox2.Directory + Nazwa);
    try
      ReWrite (Kopia, 1);
      Repeat
        Application.ProcessMessages;
        BlockRead (Plik, Buffor, SizeOf(Buffor), Odczytano);
        If Odczytano > 0 Then
          Begin
            BlockWrite(Kopia, Buffor, Odczytano);
            Skopiowano := Skopiowano + Odczytano;
          End;
        ProgressBar1.Position := Skopiowano;
      Until
        Skopiowano = 0;
    finally
      CloseFile (Kopia);
    end;
  finally
    CloseFile (Plik);
  end;
end;

procedure TForm1.FileListBox1Change(Sender: TObject);
begin
  Label1.Caption := 'Plik: ' + FileListBox1.FileName
end;

procedure TForm1.DirectoryListBox2Change(Sender: TObject);
begin
  Label2.Caption := 'Folder docelowy: ' + DirectoryListBox2.Directory;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  Close;
end;

end.

To jest cały program kopiujący. Problem polega na tym, że po skopiowaniu programu nie da się go wyłączyć... Nie wiem czemu...

0

W Pascalu, Delete też jest procedurą.

1 użytkowników online, w tym zalogowanych: 0, gości: 1