Moin Zusammen,
@Hagen:
Man könnte doch auch noch einen 5. Punkt in Erwägung ziehen:
Das Display wird erst nach einer Änderung zugewiesen, bzw. erneut zugewiesen.
Ich hab' mir jetzt noch nicht angesehen, ob das ein sauberer Weg ist, aber es funktioniert soweit.
@Reni:
Ich hab' das mal ausprobiert, und soweit geht's:
Delphi-Quellcode:
type
TForm1 = class(TForm)
MediaPlayer1: TMediaPlayer;
procedure FormClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private-Deklarationen }
FfFullScreen : boolean;
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormClick(Sender: TObject);
var
iWidth : integer;
iHeight : integer;
iTop : integer;
iLeft : integer;
iEdgeX : integer;
iEdgeY : integer;
begin
if FfFullScreen then begin
self.FormStyle := fsNormal;
MediaPlayer1.Display := Form1;
SetWindowLong(self.Handle,GWL_STYLE,GetWindowLong(self.Handle,GWL_STYLE) or WS_CAPTION);
SetWindowPos(self.Handle,0,200,100,870,640,SWP_SHOWWINDOW);
end else begin
iEdgeX := GetSystemMetrics(SM_CXEDGE);
iEdgeY := GetSystemMetrics(SM_CYEDGE);
iWidth := Screen.Width+iEdgeX*2;
iHeight := Screen.Width+iEdgeY*2;
iTop := -iEdgeY-2;
iLeft := -iEdgeX-2;
self.FormStyle := fsStayOnTop;
SetWindowLong(self.Handle,GWL_STYLE,GetWindowLong(self.Handle,GWL_STYLE) and not WS_CAPTION);
SetWindowPos(self.Handle,0,iLeft,iTop,iWidth,iHeight,SWP_SHOWWINDOW);
MediaPlayer1.Display := Form1;
MediaPlayer1.Open;
MediaPlayer1.Play;
end;
FfFullScreen := not FfFullScreen;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
FfFullScreen := false;
end;