Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: "Windows"-Rahmen unsichtbar?!

  Alt 23. Okt 2003, 15:40
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;
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat