19. oktober 2007 - 15:46 Der er 4 kommentarer og
1 løsning

DeleteFile(Fil) kan ikke altid compileres

Jeg har to næste ens routiner, men jeg kan kun compilere den ene.

procedure TForm73.DeleteClick(Sender: TObject);
var
  Fil: String;
begin
  if Form11.Hente then
  begin
    Fil := Global.HentLydeMappe(Slags.ItemIndex)
          + List.Items[List.ItemIndex] + '.mp3';
    if FileExists(Fil) then
    begin
      DeleteFile(Fil);
      OpdaterClick(Sender);
    end;
  end;
end;

procedure TForm8.DeleteMp3Click(Sender: TObject);
var
  Fil : String;
begin  // Slet den mp3 fil som hører til denne titel.
  if Form11.Hente then
  begin
    TitelData := Global.HentTitel(Index);
    Fil := Global.HentLokal('Musik') + IntToStr(Global.HentPlade(TitelData.Plade).Nr);
    Fil := Fil + '\' + TitelData.Side + IntToStr(TitelData.Skaering) + '.mp3';
    if FileExists(Fil) then
    begin
      DeleteFile(Fil);
      TitelData.PaaHdd := Form9.ErDenPaaHdd(TitelData.Plade, TitelData.Side, TitelData.Skaering);
      Global.GemTitel(TitelData);
      Vis;
    end;
  end;
end;

Den der hedder DeleteClick... kan fint compileres.
Men den der hedder DeleteMp3Click... kan ikke.
Jeg får følgende fejl: [Error] Figur8.pas(208): Incompatible types: 'String' and 'PChar'
På linie 208 står der: DeleteFile(Fil);
Hvorfor kan man compilere den ene, men ikke den anden?
Hvad har jeg overset?

Hvis jeg udfaser linie 208 med // så compileres det hele, men så kan rutinen jo aldrig slette filen.

PS. Jeg bruger D6.
Avatar billede kroning Nybegynder
19. oktober 2007 - 16:13 #1
Nok fordi det er 2 forskellige funktioner du benytter, prøv at flytte/skrive uniten SysUtils som den sidste i din uses i Form8.
Avatar billede kroning Nybegynder
19. oktober 2007 - 16:16 #2
Eller skriv den som SysUtils.DeleteFile(Fil); hvis bare din SysUtils er et eller andet sted i din uses i TForm8.
19. oktober 2007 - 16:24 #3
Det havde jeg aldrig selv gættet.
Findes der en DeleteFile i nogle af de andre?
Og hvad vil den så slette?
WinTypes, WinProcs, Messages, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, SysUtils,
Avatar billede kroning Nybegynder
19. oktober 2007 - 16:37 #4
I min delphi 7 findes der også en deletefile i Windows uniten og de gør det samme, de er begge beskrevet i hjælpen.
Du kan let finde ud af hvilken unit den er i ved at holde Ctrl nede mens du klikker på den med musen.
19. oktober 2007 - 16:56 #5
Tak for svaret.
God weekend
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester