Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi TMediaPlayer (SDK 6.4) Videofenster bewegen? (ohne Rahmen) (https://www.delphipraxis.net/9497-tmediaplayer-sdk-6-4-videofenster-bewegen-ohne-rahmen.html)

sahmann 27. Sep 2003 19:38


TMediaPlayer (SDK 6.4) Videofenster bewegen? (ohne Rahmen)
 
Hallo zusammen,

ich habe bereits ausgiebig nach diesem Problem
gesucht, und bin bisher noch nicht wirklich
weitergekommen :/

Ich habe eine Form mit mehreren TMediaPlayer Komponenten.
Die Properties habe ich so eingestellt das lediglich
das reine VideoFenster sichtbar ist.

Ich suche nun nach einer Moeglichkeit, das wenn man mit
der Maus auf eines der Videofenster klickt und zieht,
das Videofenster sich entsprechend mit bewegt.
Der ensprechende Event muesste OnMouseDown sein.
Ich vermute das ich in irgendeiner Form einen API-Eintrag
ueberschreiben muss, damit es moeglich ist das Videofenster
zu verschieben.

Es waere toll wenn jemand einen Tip fuer mich haette :)

(ich benutze Delphi 6 und das Windows SDK 6.4)

abendliche Gruesse,
der Sascha

Christian Seehase 28. Sep 2003 00:43

Re: TMediaPlayer (SDK 6.4) Videofenster bewegen? (ohne Rahme
 
Moin Sascha,

was hast Du denn als Display genommen?

sahmann 28. Sep 2003 00:56

Re: TMediaPlayer (SDK 6.4) Videofenster bewegen? (ohne Rahme
 
Moin Christian,

Zitat:

Zitat von Christian Seehase
Moin Sascha,

was hast Du denn als Display genommen?

Einem dynamischen Array werden Instanzen des
Typs TPlayer = Class(TForm) angelegt.

(Nennt man das dann MDI-Child?)

Gruss,
Sascha

[edit=Christian Seehase]BBCode aktiviert. Mfg, Christian Seehase[/edit]

Christian Seehase 28. Sep 2003 01:05

Re: TMediaPlayer (SDK 6.4) Videofenster bewegen? (ohne Rahme
 
Moin Sascha,

ist TPlayer jetzt eine eigene Klasse?
Wie sind die Eigenschaften eingestellt?
Vor allem BorderStyle.

Zitat:

Zitat von sahmann
Nennt man das dann MDI-Child?

Das hängt von der Eigenschaft FormStyle ab.
Nur weil ein Programm mehrere Fenster hat ist es nicht automatisch ein Programm mit MDI (Muliple Document Interface).

sahmann 28. Sep 2003 14:49

Re: TMediaPlayer (SDK 6.4) Videofenster bewegen? (ohne Rahme
 
Hi,

Richtig. TPlayer ist eine eigene Klasse.

Wo finde ich denn die Property BorderColor?
Im Objektinspektor sehe ich die leider nicht.

Gruesse,
Sascha

Christian Seehase 28. Sep 2003 15:11

Re: TMediaPlayer (SDK 6.4) Videofenster bewegen? (ohne Rahme
 
Moin Sascha,

Zitat:

Zitat von sahmann
Wo finde ich denn die Property BorderColor?

Keine Ahnung, ich hab' ja nach BorderStyle gefragt. ;-)

sahmann 28. Sep 2003 15:21

Re: TMediaPlayer (SDK 6.4) Videofenster bewegen? (ohne Rahme
 
Ups.. hab mich verschrieben :/

BorderStyle kann ich leider auch nicht finden.

Die Klasse wird zur Laufzeit erstellt.

Im Hauptformular habe ich eine Array-Zuweisung in
der Form:

var
Player: Array of TPlayer

TPlayer wiederrum wird in einem seperaten Formular
folgendermassen beschrieben:

type
TPlayer = class(TForm)
MediaPlayer: TOMediaPlayer;
procedure FormCreate..
procedure FormMouseMove..
procedure FormMouseDown..
procedure MediaPlayerMouseMove..
procedure MediaPlayerOpenStateChange..
..
end;

TOMediaPlayer gehört zur TOleControl Klasse.

Wo stelle ich denn zur Laufzeit den BorderStyle ein?
Im Prinzip soll das Videofenster garkein Border besitzen,
deshalb habe ich auch die ganzen ShowControls (etc.) der
MediaPlayer Komponente deaktiviert.

Gruss,
Sascha

Christian Seehase 28. Sep 2003 15:55

Re: TMediaPlayer (SDK 6.4) Videofenster bewegen? (ohne Rahme
 
Moin Sascha,

schau doch mal hier in der Code-Library

Fenster ohne Titelzeile verschieben

das müsste Dir eigentlich weiterhelfen.

sahmann 28. Sep 2003 22:29

Re: TMediaPlayer (SDK 6.4) Videofenster bewegen? (ohne Rahme
 
So, Problem geloest.

Und zwar habe ich es nun folgendermassen gemacht:

Delphi-Quellcode:
unit U_PlayerForm;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, OleCtrls, WMPLib_TLB, MediaPlayer_TLB;

type
  TPlayer = class(TForm)
    MediaPlayer: TOMediaPlayer;
    procedure FormCreate(Sender: TObject);
    procedure MediaPlayerMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Player: TPlayer;

implementation

uses U_Player;

{$R *.dfm}

procedure TPlayer.FormCreate(Sender: TObject);
var
 OldStyle: longint;
begin
 inherited;
 ShowWindow(Self.Handle,SW_HIDE);
 SystemParametersInfo(SPI_SETDRAGFULLWINDOWS, 1, nil, 0);
 OldStyle := GetWindowLong(Handle, GWL_STYLE);
 SetWindowLong(Handle, GWL_STYLE, OldStyle and not WS_CAPTION);
 Width := MediaPlayer.Width;
 Height := MediaPlayer.Height;
 MediaPlayer.DragMode := dmManual;
end;

procedure TPlayer.MediaPlayerMouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
 i: Integer;
begin
  if Button = mbLeft then begin
   ReleaseCapture;
   SendMessage(Handle, WM_SYSCOMMAND, 61458, 0);
  end;
end;

end.
Besten Dank fuer die Tips,
Sascha :)

[edit=Christian Seehase] BBCode wieder aktiviert. Mfg, Christian Seehase[/edit]

Christian Seehase 29. Sep 2003 00:36

Re: TMediaPlayer (SDK 6.4) Videofenster bewegen? (ohne Rahme
 
Moin Sascha,

schön dass es jetzt geht.

Ähhh...
Könntest Du bitte mal in Deinem Profil "BBCode immer aktivieren" auf "ja" Stellen, oder ersatzweise daran denken dies beim Posten zu tun, wenn Du Tags verwendest?
Danke.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:38 Uhr.
Seite 1 von 2  1 2      

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