Ik ben bezig met het TMediacomponent van delphi.
Hiermee speel ik filmpjes af. (duh)
Nu gebruik ik een Ole Container als display device voor het weergeven van de media.
Dit werkt allemaal wel dat is het punt niet.
Wat ik wil bereiken is dat de OleContainer gecentreerd wordt op het form en dat de OLE-Container geresized wordt naar de grootte van het OLE-object wat binnen de container wordt afgespeeld.
Nu dacht ik dat ik daarvoor de SizeMode property van een OLE-container kan gebruiken door de value daarvan op smAutoSize te zetten.
De beschrijving van smAutoSize is als volgt:
Displays the OLE object at its normal size and automatically resizes the container to fit the size of the OLE object.
Behoorlijk duidelijk lijkt me. Probleem is alleen dat dit dus niet werkt. De OLE-container wordt niet geresized naar de grootte van het OLE-object. Ik heb in de documentatie gezocht naar informatie hierover maar heb verders er niks meer over kunnen vinden.
Implementaties van google maakten ook allemaal gebruik van de SizeMode property. Ik snap dus niet waarom deze property schijnbaar zijn werk niet doet.
De code die ik gebruik is als volgt:
Hiermee speel ik filmpjes af. (duh)
Nu gebruik ik een Ole Container als display device voor het weergeven van de media.
Dit werkt allemaal wel dat is het punt niet.
Wat ik wil bereiken is dat de OleContainer gecentreerd wordt op het form en dat de OLE-Container geresized wordt naar de grootte van het OLE-object wat binnen de container wordt afgespeeld.
Nu dacht ik dat ik daarvoor de SizeMode property van een OLE-container kan gebruiken door de value daarvan op smAutoSize te zetten.
De beschrijving van smAutoSize is als volgt:
Displays the OLE object at its normal size and automatically resizes the container to fit the size of the OLE object.
Behoorlijk duidelijk lijkt me. Probleem is alleen dat dit dus niet werkt. De OLE-container wordt niet geresized naar de grootte van het OLE-object. Ik heb in de documentatie gezocht naar informatie hierover maar heb verders er niks meer over kunnen vinden.
Implementaties van google maakten ook allemaal gebruik van de SizeMode property. Ik snap dus niet waarom deze property schijnbaar zijn werk niet doet.
De code die ik gebruik is als volgt:
Delphi:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| if (Player.MediaPlayerPlaying = False) then with playerFrm do begin WindowState := wsMaximized; MediaPlayer.Hide; Show; Opendialog.execute; MediaPlayer.FileName:=Player.Opendialog.Filename; MediaPlayer.Open; MediaPlayer.Play; MediaPlayerPlaying:=True; //centreer OleContainer OleContainer.Left := (Width - OleContainer1.Width) div 2; OleContainer.Top := (Height - OleContainer1.Height) div 2; end; end; |