MediaPlayer obsługa błędów lub rozszerzeń

0

Witam
Postanowiłem sobie zbudować własny odtwarzacz.
Wszystko już mam mniej więcej gotowe, jednak że chciałbym dołączyć do odtwarzacza obsługę błędów lub przynajmniej zrobić tak aby program odłączał mi nazwę rozszerzenia od nazwy pliku.

Mój błąd wygląda tak: MCIDeviceError
Tak więc mogę dodać tą obsługę błędu lub 'IF (blablabla)<>mp3 OR (blablabla)<>wav then EXIT'
Bardziej interesowało by mnie to drugie rozwiązanie gdyż program mógłby wtedy określić czy plik to film lub muzyka, wtedy automatycznie pokazywałby lub ukrywał Panel.

Wiem że mógłbym użyć Filtra, ale mam w programie opcję Drag&Drop, czyli pliki mogę przeciągać do odtwarzacza.
Będę wdzięczny za pomoc.

0

Dodatkowo dodam że mój kod wygląda tak:

procedure TWindow.UpuszczeniePlikow(var msg:TWMDropFiles); {UPUSZCZANIE PLIKOW}
var
hDrop: THandle;
FileCount: Integer;
FileNameLength: Integer;
FileName: array[0..MAX_PATH] of char;
FileNameStr : string;
rozszerzenie : string;
i,k : integer;
begin
hDrop := msg.Drop;
// Zwraca ilosc przeciaganych plikow
FileCount:= DragQueryFile(hDrop, $FFFFFFFF, nil, 0);

for i:=0 to FileCount-1 do
  begin
    // Odczytuje długosc nazwy naszego pliku
    FileNameLength:=DragQueryFile(hDrop, i, nil, 0);
    // Zwraca do bufora nazwę pliku
    DragQueryFile(hDrop, i, FileName, Length(FileName));
    // Bufor jest większy niż nazwa pliku, dlatego wycinamy string o długosci FileNameLength z bufora
     FileNameStr := '';
    for k:=0 to FileNameLength-1 do FileNameStr := FileNameStr + FileName[k];
      begin {PROCEDURA PO UPUSZCZENIU}

        MediaPlayer1.FileName:=(FileNameStr);

        IF MediaPlayer1.FileName='' THEN
          Exit;

        MediaPlayer1.Open;
        MediaPlayer1.Display:=Desktop;
        MediaPlayer1.DisplayRect:=Desktop.ClientRect;

        Label1.Caption:=ExtractFileName(MediaPlayer1.FileName);

        Dock.Max:=MediaPlayer1.Length;
        MediaPlayer1.Play;
  
      end;
  end;

end;

0

Zapewne chodzi ci o funkcję

ExtractFileExt
0

Wielkie dzięki :), pomogło

A i jeszcze taką jedną drobną funkcje bym potrzebował. Odnosi się do otwierania pliku programem. Czyli [Plik > Otwórz za pomocą > Wybierz w celu poszukiwania programu].
I właśnie co zrobić aby program przyjmował plik. Wiem że jest tutaj nawiązanie do zmiennych w ciągu polecenia jak np w CMD czyli "C:\Program.EXE" "C:\Plik.mp3".
Jaki wpis mam wykonać w kodzie programu aby plik mi przyjmował program?

0

Napisałeś tak, że ja ledwo to rozumiem, ale za pewne chodzi Tobie o to jak odczytać parametry z jakimi został wywołany Twój program. Jeżeli tak to poczytaj sobie o ParamCount i ParamStr.

0

Udało mi się coś takiego znaleźć i działa:

FilePath := '';
if (ParamStr(1) <> '') then
begin
i := 1;
repeat
if ParamStr(i) <> '' then FilePath := FilePath + ParamStr(i);
i := i + 1;
if ParamStr(i+1) <> '' then FilePath := FilePath + ' ';
until ParamStr(i) = '';
end;

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