AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Ungültige Typumwandlung!!

Ein Thema von beckz · begonnen am 7. Jun 2005 · letzter Beitrag vom 8. Jun 2005
Antwort Antwort
beckz

Registriert seit: 27. Apr 2005
15 Beiträge
 
#1

Ungültige Typumwandlung!!

  Alt 7. Jun 2005, 23:52
Delphi-Quellcode:
procedure popupmenu_language(DVD: TMSWebDVD; PopUpMenu: TPopupMenu; Owner: TForm);
//fügt alle verfügbaren AudioStreams in ein PopUpMenu ein und ruft dieses auf
var
  I: Integer;
  Items: Array[0..50] Of TMenuItem;
  CurPoint: Tpoint;

begin
  PopUpMenu.Items.Clear;

    for I:=0 to DVD.AudioStreamsAvailable-1 do
    begin
      if DVD.IsAudioStreamEnabled(I) then
      begin
        Items[I] := TMenuItem.Create(Owner);
        Items[I].Caption := DVD.GetAudioLanguage(I,true);
          if DVD.CurrentAudioStream = I then
            Items[I].Checked := True;
            Items[I].OnClick := TNotifyEvent(DVD.CurrentAudioStream := I);
        PopUpMenu.Items.Add(Items[I]);
      end;
    end;

  GetCursorPos(CurPoint);
  PopUpMenu.Popup(CurPoint.x,CurPoint.y);
end;

Schreibe gerade eine Unit die auf MSWEBDVD.dll aufsetzt und nun will ich alle AudioStreams dynamisch in ein PopUpMenu einfügen das funktioniert auch schon nur habe ich das Problem nun wie ich den einzelnen Einträge vermittle was Sie OnClick zu tun haben!

Bekommen die Fehlermedlung "Ungültige Typumwandlung" bei TNotifyEvent(DVD.CurrentAudioStream := I)!

Bitte um Hilfe Danke!
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Ungültige Typumwandlung!!

  Alt 7. Jun 2005, 23:57
Guck doch einfach mal in der Hilfe, wie Delphi-Referenz durchsuchenTNotifyEvent deklariert ist und wie deine Deklaration aussieht.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
beckz

Registriert seit: 27. Apr 2005
15 Beiträge
 
#3

Re: Ungültige Typumwandlung!!

  Alt 8. Jun 2005, 08:49
Hab in der Hilfe nachgesehen werd aber daraus nicht schlau!

Is mein Lösungsansatz prizipiell richitg oder eher nicht???

WEnn nicht wie sollte man es sonst machen
  Mit Zitat antworten Zitat
barf00s
(Gast)

n/a Beiträge
 
#4

Re: Ungültige Typumwandlung!!

  Alt 8. Jun 2005, 08:58
für das OnClick event musst du ne methode definieren...

Delphi-Quellcode:
procedure TDeineKlasse.DoClickStream(Sender: TObject);
begin
  case TMenuItem(Sender).Tag of
    0: ;
    1: ;
  end;
end;

...
  Items[I].Tag := I;
  Items[I].OnClick := DoClickStream;
...
  Mit Zitat antworten Zitat
beckz

Registriert seit: 27. Apr 2005
15 Beiträge
 
#5

Re: Ungültige Typumwandlung!!

  Alt 8. Jun 2005, 10:26
Ahh wie kann man nur so einen Knopf im HIrn haben??

Delphi-Quellcode:
unit uMSWEBDVD;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, MSWEBDVDLib_TLB, Menus;

  procedure play_pause(DVD: TMSWebDVD; Path: String);
  procedure play_next(DVD: TMSWebDVD);
  procedure play_prev(DVD: TMSWebDVD);
  procedure fastforward(DVD: TMSWebDVD);
  procedure rewind(DVD: TMSWebDVD);
  procedure stop_eject(DVD: TMSWebDVD);
  procedure file_stop_eject(DVD: TMSWebDVD; ODLG: TOpenDialog);
  function current_position(DVD: TMSWebDVD): String;
  function current_chapter(DVD: TMSWebDVD): String;
  function current_title(DVD: TMSWebDVD): String;
  procedure popupmenu_language(DVD: TMSWebDVD; PopUpMenu: TPopupMenu; Owner: TForm);
  procedure popupmenu_subtitle(DVD: TMSWebDVD; PopUpMenu: TPopupMenu; Owner: TForm);

var
  FastPlay :Boolean;

implementation

procedure play_pause(DVD: TMSWebDVD; Path: String);
begin
//bei Status "Stop" zuerst aktuellen DVD-Pfad checken und einlesen
  if DVD.PlayState <= 0 then
    DVD.DVDDirectory := Path;

//DVD abspielen bzw. pausieren
  if (DVD.PlayState = 2) and (FastPlay = false) then
    DVD.Pause
  else
    DVD.Play;

//DVD Abspielgeschwindigkeit zurücksetzten
  if (DVD.PlayState = 2) and (FastPlay = true) then
    DVD.Play;

  FastPlay := False;
end;

procedure play_next(DVD: TMSWebDVD);
begin
//nur möglich bei ungleich Status "Stop"
  if DVD.PlayState > 0 then
  try
    DVD.PlayNextChapter;
  except end;
end;

procedure play_prev(DVD: TMSWebDVD);
begin
//nur möglich bei ungleich Status "Stop"
  if DVD.PlayState > 0 then
  try
    DVD.PlayPrevChapter;
  except end;
end;

procedure fastforward(DVD: TMSWebDVD);
begin
//nur möglich bei ungleich Status "Stop"
  if DVD.PlayState > 0 then
  try
    FastPlay := true;
    DVD.PlayForwards(3.00,false);
  except end;
end;

procedure rewind(DVD: TMSWebDVD);
begin
//nur möglich bei ungleich Status "Stop"
  if DVD.PlayState > 0 then
  try
    FastPlay := true;
    DVD.PlayBackwards(3.00,false);
  except end;
end;

procedure stop_eject(DVD: TMSWebDVD);
begin
//wenn Satus "Play" oder "Pause" dann stop ansonsten eject
  if DVD.PlayState <= 0 then
    DVD.Eject
  else
    DVD.Stop;
end;

procedure file_stop_eject(DVD: TMSWebDVD; ODLG: TOpenDialog);
begin
//wenn Satus "Play" oder "Pause" dann stop ansonsten eject
  if DVD.PlayState <= 0 then
    ODLG.Execute
  else
  begin
    DVD.Stop;
  end;
end;

function current_position(DVD: TMSWebDVD): String;
//gibt aktuelle Playback-Position im Format 00:00:00 zurück
var
  Position: String;
begin
  Position := DVD.CurrentTime;
  SetLength(Position,8);
  result := Position;
end;

function current_chapter(DVD: TMSWebDVD): String;
//gibt aktuelles Kapitel im Format 00 zurück
var
  Chapter: String;
begin
  if DVD.CurrentChapter < 10 then
    Chapter := '0' + IntToStr(DVD.CurrentChapter)
  else
    Chapter := IntToStr(DVD.CurrentChapter);

  result := Chapter;
end;

function current_title(DVD: TMSWebDVD): String;
//gibt aktuelles Titel im Format 00 zurück
var
  Title: String;
begin
  if DVD.CurrentTitle < 10 then
    Title := '0' + IntToStr(DVD.CurrentTitle)
  else
    Title := IntToStr(DVD.CurrentTitle);

  result := Title;
end;

procedure popupmenu_language(DVD: TMSWebDVD; PopUpMenu: TPopupMenu; Owner: TForm);
//fügt alle verfügbaren AudioStreams in ein PopUpMenu ein und ruft dieses auf
var
  I: Integer;
  Items: Array[0..50] Of TMenuItem;
  CurPoint: Tpoint;

begin
  PopUpMenu.Items.Clear;

    for I:=0 to DVD.AudioStreamsAvailable-1 do
    begin
      if DVD.IsAudioStreamEnabled(I) then
      begin
        Items[I] := TMenuItem.Create(Owner);
        Items[I].Caption := DVD.GetAudioLanguage(I,true);
          if DVD.CurrentAudioStream = I then
            Items[I].Checked := True;
            //Items[I].OnClick := ;
        PopUpMenu.Items.Add(Items[I]);
      end;
    end;

  GetCursorPos(CurPoint);
  PopUpMenu.Popup(CurPoint.x,CurPoint.y);
end;

procedure popupmenu_subtitle(DVD: TMSWebDVD; PopUpMenu: TPopupMenu; Owner: TForm);
//fügt alle verfügbaren Subtitles in ein PopUpMenu ein und ruft dieses auf
var
  I: Integer;
  Items: Array[0..50] Of TMenuItem;
  CurPoint: Tpoint;

begin
  PopUpMenu.Items.Clear;

  if DVD.SubpictureStreamsAvailable > 0 then
  begin
    Items[50] := TMenuItem.Create(Owner);
    Items[50].Caption := 'Show Subtitles';
      if DVD.SubpictureOn = True then
        Items[50].Checked := True;
    PopUpMenu.Items.Add(Items[50]);
    PopUpMenu.Items.InsertNewLineAfter(Items[50]);
  end;


    for I:=0 to DVD.SubpictureStreamsAvailable-1 do
    begin
      if DVD.IsSubpictureStreamEnabled(I) then
      begin
        Items[I] := TMenuItem.Create(Owner);
        Items[I].Caption := DVD.GetSubpictureLanguage(I);
          if DVD.CurrentSubpictureStream = I then
            Items[I].Checked := True;
        //Items[I].OnClick := ;
        PopUpMenu.Items.Add(Items[I]);
      end;
    end;

  GetCursorPos(CurPoint);
  PopUpMenu.Popup(CurPoint.x,CurPoint.y);
end;

end.
Wo muss ich was am besten einbauen damits funzt!
Theoretisch brauch ich eine Subtitle_Click und eine Langauge_Click funktion aber wo einbauen??
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:32 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