Anzeige:
Ergebnis 1 bis 12 von 12

Thema: Problem mit TMediaPlayer und C++

  1. #1
    Registrierter Benutzer
    Registriert seit
    16.02.2003
    Ort
    vor der taste
    Beiträge
    30

    Problem mit TMediaPlayer und C++

    Moigens,

    ich wollt grad ma nen kleinen MediaPlayer mitm C++ Builder schreiben.
    Ich gebe also den Film in nem Panel auf ner extra Form aus und unter Delphi löse ich das Problem der Gößenanpassung des Panels so:

    Form2.Panel1.Height := MediaPlayer1.DisplayRect.BottomRight.y;
    Form2.Panel1.Width := MediaPlayer1.DisplayRect.BottomRight.x;
    Form2.Height := MediaPlayer1.DisplayRect.BottomRight.y;
    Form2.Width := MediaPlayer1.DisplayRect.BottomRight.x;

    nur leider gibts bei C++ keine Eigenschaft
    MediaPlayer1->DisplayRect->BottomRight->x
    da is bei DisplayRect schluss.

    Wie bekomme ich das denn nun hin, dass sich das Panel anpasst?


    achja und hat jemand zufällig ne Komponente um das Ganze auch auf Fullscreen umzuschalten?
    Greetz Blackice
    Geändert von Blackice (16-02-2003 um 19:42 Uhr)

  2. #2
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Was bedeutet "ist Schluss"?
    Kompilerfehler?
    Wenn ja, was ist die Meldung?

    Vielleicht ist DisplayRect keine Variable sondern eine Funktion.

    Probier mal
    MediaPlayer1->DisplayRect().BottomRight().x()


    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  3. #3
    Registrierter Benutzer
    Registriert seit
    16.02.2003
    Ort
    vor der taste
    Beiträge
    30
    na schluss bedeutet, dass DisplayRect keine weiteren Eigenschaften hat.

    und ...->DisplayRect()->.... funzt auch nich

    das heir bietet die hilfe dazu:
    __property Windows::TRect DisplayRect = {read=GetDisplayRect, write=SetDisplayRect};

    Beschreibung

    Soll die Anzeige in einem speziellen Rechteckbereich eines Formulars erfolgen, weisen Sie DisplayRect einen TRect-Datensatz zu. Ein TRect-Datensatz kann mit der Funktion Rect erstellt werden.

    In der Regel erzielen Sie bei Medien, deren Ausgabe in einem rechteckigen Bereich erfolgt, mit der Standardgröße von DisplayRect die besten Ergebnisse. Positionieren Sie den rechteckigen Bereich in der oberen linken Ecke und geben Sie das Wertepaar 0,0 für die rechte untere Ecke des Bereichs an, um DisplayRect auf die Standardgröße zu setzen.

    Wenn die Eigenschaft Display NULL ist, wird DisplayRect ignoriert.

    Animation, AVI Video, Digital Video, Overlay und VCR sind Beispiele für Multimedia-Geräte, die zur Anzeige der Ausgabe ein Fenster benutzen.

    Hinweis

    DisplayRect kann nur gesetzt werden, wenn das Multimedia-Gerät geöffnet ist.

  4. #4
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Original geschrieben von Blackice
    na schluss bedeutet, dass DisplayRect keine weiteren Eigenschaften hat.

    und ...->DisplayRect()->.... funzt auch nich

    das heir bietet die hilfe dazu:
    __property Windows::TRect DisplayRect = {read=GetDisplayRect, write=SetDisplayRect};
    Ja, das hilft weiter.
    Das "read=..." bedeutet, dass die Funktion zum Lesen des Properties, also der Eigenschaft, DisplayRect, GetDisplayRect heißt.

    Also muss es bei dir heißen
    ...->GetDisplayRect()

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  5. #5
    Registrierter Benutzer
    Registriert seit
    16.02.2003
    Ort
    vor der taste
    Beiträge
    30
    also entweder bin ich zu blöd oder zu sehr Anfänger:

    in Delphi hab ich ja das hier

    Form2.Panel1.Height := MediaPlayer1.DisplayRect.BottomRight.y;

    wie muss denn das jetzt in C++ heißen?

    MediaPlayer1->GetDisplayRect();

    willer nich.

    Wie dann? (sorry falls die Frage jetzt zu doof is)

    Greetz Blackice

  6. #6
    Registrierter Benutzer
    Registriert seit
    25.02.2002
    Ort
    2nd level cache
    Beiträge
    90
    Also, wenn MediaPlayer1 kein Zeiger auf ein Objekt ist muß es

    Code:
    MediaPlayer1.GetDisplayRect();
    heissen.

    GreetZ

    ReSeT
    Einmal schwarzen Tee mit Milch und Zucker bitte!

  7. #7
    Registrierter Benutzer
    Registriert seit
    16.02.2003
    Ort
    vor der taste
    Beiträge
    30
    hmm ne MediaPlayer1.GetDisplayRect is ja erstens Delphi Code (will das ganze ja in C++ haben) und zweiten gehts da auch anders

    (so nämlich
    Form2.Panel1.Width := MediaPlayer1.DisplayRect.BottomRight.x;
    )

  8. #8
    Registrierter Benutzer
    Registriert seit
    25.02.2002
    Ort
    2nd level cache
    Beiträge
    90
    MediaPlayer1.GetDisplayRect is ja erstens Delphi Code
    hm, nö nicht zwangsläufig.

    Hierbei ist GetDisplayRect() eine Methode des Objektes (oder vielmehr der Instanz dessen) MediaPlayer1.
    Einmal schwarzen Tee mit Milch und Zucker bitte!

  9. #9
    Registrierter Benutzer
    Registriert seit
    16.02.2003
    Ort
    vor der taste
    Beiträge
    30
    na also das hier frisst er jedenfalls nícht bei mir:
    MediaPlayer1.GetDisplayRect();

  10. #10
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Original geschrieben von Blackice
    na also das hier frisst er jedenfalls nícht bei mir:
    MediaPlayer1.GetDisplayRect();
    Wenn du uns keine Fehlermelding postest, können wir immer nur raten, wo das Problem liegt.

    Nach dem was du gepostet hast, lieftert die Funktion GetDisplayRect() eine TRect Instanz zurück.
    Die hat dann entweder Variablen oder Methoden um auf ihre Werte zuzugreifen.

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  11. #11
    Registrierter Benutzer
    Registriert seit
    16.02.2003
    Ort
    vor der taste
    Beiträge
    30
    ne wat mir nich klar ist, ist wie die Syntax aussieht um auf GetDisplayRect zuzureifen.
    und um ehrlich zu sein, weiss ich nich was ne Instanz is (oder ich weisses nur unter nem andern namen)

  12. #12
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Eine Instanz ist ein Object einer Klasse, der Speicher um die Daten einer Klasse aufzunehmen.

    Praktische einer Variable vom Typ der Klasse.

    MediaPlayer1 ist vermutlich entweder eine Instanz der Klasse MediaPlayer oder ein Pointer auf eine Instanz.
    Pointer ist wahrscheinlicher.

    Wenn es eine normale Instanz ist, dann führst du die Methode GetDisplayRect so aus
    Code:
    TRect rect = MediaPlayer1.GetDisplayRect();
    Wenn es ein Pointer auf eine Instanz ist
    Code:
    TRect rect = MediaPlayer1->GetDisplayRect();
    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •