Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi "Operator not applicable to this operand type" (https://www.delphipraxis.net/74885-operator-not-applicable-operand-type.html)

Nils_13 10. Aug 2006 08:30


"Operator not applicable to this operand type"
 
Hi,

irgendwie bekomme ich bei einer Endungsüberprüfung vor dem Speichern einer Playlist den Fehler "Operator not applicable to this operand type" :( Hier der Code (in einem anderen Programm läuft der Code):
Delphi-Quellcode:
procedure TfrmMain.xiSaveClick(Sender: TObject);
begin
  if saveP.Execute then
  begin
    if (ExtractFileExt(saveP.FileName) = '.asx') or if (ExtractFileExt(saveP.FileName) = '.m3u') then
    begin
      if saveP.FilterIndex = 1 then
      begin
        SaveASX(saveP.FileName);
      end;
      if saveP.FilterIndex = 2 then
      begin
        SaveM3U(saveP.FileName);
      end;
    end else
    begin
      if saveP.FilterIndex = 1 then
      begin
        saveP.FileName := saveP.FileName + '.asx';
        SaveASX(saveP.FileName);
      end;

      if saveP.FilterIndex = 2 then
      begin
        saveP.FileName := saveP.FileName + '.m3u';
        SaveM3U(saveP.FileName);
      end;
    end; // Diese Zeile wird bei F9 rot markiert
  end;
end;

Thanatos81 10. Aug 2006 08:33

Re: "Operator not applicable to this operand type"
 
Hmm, kann ich dir so direkt leider auch nicht sagen, aber mir ist etwas anderes aufgefallen:
Delphi-Quellcode:
saveP.FileName := saveP.FileName + '.m3u';
Was ist, wenn ich als FileName schon "MyPlaylist.m3u" angegeben habe? SChau dir mal ChangeFileExt an, das dürfte etwas "sicherer" sein ;-)

sir-archimedes 10. Aug 2006 08:39

Re: "Operator not applicable to this operand type"
 
Naja, wenn die Extensions schon m3u/asx sind, wird der erste Fall angewandt. Allerdings funktioniert das nur, wenn die Endungen klein geschrieben sind...

Aber gibt es nicht eine Eigenschaft von so einem SaveDialog, dass der die passenden Endungen erzwingt? Dann kann man sich das ganze geprüfe sparen.

Auch würde ich nicht den FilterIndex checken, sondern das eher über die Extension machen - denn FilterIndex=1 ist nicht gerade leicht lesbar und wenn du einen zusätzlichen Filter einbaust, kann es sein, dass du mit diesen Zahlen durcheinander kommst und solche Fehler sind u.U. nicht leicht zu finden.

Jelly 10. Aug 2006 08:41

Re: "Operator not applicable to this operand type"
 
Zitat:

Zitat von Nils_13
Delphi-Quellcode:
if (ExtractFileExt(saveP.FileName) = '.asx') or if (ExtractFileExt(saveP.FileName) = '.m3u') then

Lass das 2. if mal weg :zwinker:

Nils_13 10. Aug 2006 08:47

Re: "Operator not applicable to this operand type"
 
Danke, mit ChangeFileExt habe ich es hinbekommen.

@Jelly: Ahh, der rote Kasten hat keine Sommerferien :mrgreen: Ok, danke, aber ChangeFileExt ist besser.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:50 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz