Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.07.04;
Скачать: CL | DM;

Вниз

MediaPlayer   Найти похожие ветки 

 
kalista   (2004-03-18 19:10) [0]

Есть MediaPlayer в свойстве Display указан Panel1.
Если при просмотре видео нажать паузу и минимизировать форму или накрыть ее другим окном, а потом сделать форму активной, то на Panel1 не будет картинки.
Как можно избавиться от пропадания картинки при паузе?


 
Думкин ©   (2004-03-18 20:08) [1]

Я ловил эти моменты и сохранял картинку с панели.
При ее прорисовке в паузе или стопе плеера рисовал картинку.
А пропадание картинки - вполне естественно.


 
Kalista   (2004-03-19 08:57) [2]

>Думкин
Как получить картинку с панели?


 
Думкин ©   (2004-03-19 13:29) [3]

В смысле? У тебя есть какое-то "нехорошее" событие. В этот момент сдираешь с канвы и сохраняешь во временном хранилище.
А сдирать - например BitBlt.


 
Kalista   (2004-03-24 14:59) [4]

Помогите получить картинку с панели от медиаплейера.

 Image1.Canvas.CopyRect(Image1.Canvas.ClipRect, Panel2.Brush.Bitmap.Canvas, Panel2.Brush.Bitmap.Canvas.ClipRect);
 - Выдоёт Acces violation

 Image1.Picture.Bitmap :=Panel2.Brush.Bitmap;
 - Image получает пустую панель (нет картинки)

Может есть другие способы.


 
Думкин ©   (2004-03-25 06:58) [5]

Панель не от медиаплееера, а просто панель на которой идет отрисовка.

Сохранять зачем в TImage? Уж лучше TBitMap. Попробуй это:

TDemoMyPanel    = class(TPanel)
      private
       FUseCustom : boolean;
       FBM1 : TBitMap;
       procedure SetUseCustom(Value : boolean);
      protected
       procedure WMMPaint(var MSg : TMessage); message WM_Paint;
      public
       property UseCustom : boolean read FUseCustom write SetUseCustom;
       constructor Create(AOwner: TComponent);override;
       destructor Destroy; override;
     end;
//--------------------
constructor TDemoMyPanel.Create;
begin
    inherited;
    FBM1 := TBitMap.Create;
    FUseCustom := false
end;
destructor TDemoMyPanel.Destroy;
begin
    FBM1.free;
    inherited
end;
procedure TDemoMyPanel.WMMPaint;
var
 ps : TPaintStruct;
 DC : HDC;
begin
    if FUseCustom then begin
     DC := BeginPaint(Handle, ps);
     BitBlt(DC,0,0,ClientWidth,ClientHeight,FBM1.Canvas.Handle,0,0,SrcCopy);
     EndPaint(Handle, ps)
    end else inherited
end;
procedure TDemoMyPanel.SetUseCustom(Value : boolean);
var DC : HDC;
begin
    FUseCustom := Value;
    if (FUseCustom) then begin
     FBM1.Width := ClientWidth;
     FBM1.Height := ClientHeight;
     DC := GetDC(Handle);
     BitBlt(FBM1.Canvas.Handle,0,0,ClientWidth,ClientHeight,DC,0,0,SrcCopy);
     ReleaseDC(Handle,DC);
     Invalidate
    end
end;


 
Kalista   (2004-04-04 17:21) [6]

Undeclareted "BitBlt", "ReleaseDC", "EndPaint"

А нельзя обойтись без создания нового компанента?


 
Думкин ©   (2004-04-05 06:11) [7]

uses Windows?


 
clover ©   (2004-04-15 17:51) [8]

Можно скопировать Canvas панели в Panel1.Brush.Bitmap той панели, где происходит прорисовка. Тогда не придется потом прорисовывать картинку на панель заново. Она сама будет ;) и создавать придется Panel1.Brush.Bitmap, как бы уже существующий.



Страницы: 1 вся ветка

Текущий архив: 2004.07.04;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.021 c
14-1086982998
Александр
2004-06-11 23:43
2004.07.04
Где взять историческую српавку по Delphi?


1-1087857369
Mishenka
2004-06-22 02:36
2004.07.04
Как устанавливать рабочий каталог проги?


1-1087487286
sherbacov
2004-06-17 19:48
2004.07.04
Как в TTreeNode добавить Tag?.


9-1079372016
Юрий Ж.
2004-03-15 20:33
2004.07.04
Научите...


6-1083774778
Art_Z
2004-05-05 20:32
2004.07.04
IP scanner