![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
|
opciones para grabar un video
Hola
Resulta que desarrollo una aplicacion que me permita grabar videos de extension .avi, pero lo que me no me cuadra son unas opciones que he visto en otros aplicativos... son las de comprimir el archivo con los codecs que incluye el windows..... como el el "Intel r" algo codecs de ese tipo Si me refiero a grabar el avi con otros codecs Gracias Cadetill estoy usando el savedialog que viene nativo en Delphi 5 ¿Còmo hago para incluir esas opciones en el momento de grabar el archivo? Muchisimas gracias por su positiva atencion ![]() Última edición por jfgonzalez fecha: 11-08-2003 a las 05:53:10. |
|
#2
|
|||
|
|||
|
si te refieres a como hcer para mostrar en un TSaveDialog varias opciones para grabar, usa la propiedad Filter.
Si te refieres a como grabar un avi con un codec determinado... ni idea |
|
#3
|
||||
|
||||
|
Aquí tienes un ejemplo de como "modificar" el TOpenDialog que he bajado ya hace un tiempo de Internet, el tema es que no recuerdo de dónde, por eso te paso el código:
Código:
unit TestDialog;
interface
uses Windows, Messages, SysUtils, CommDlg, Classes, Graphics, Controls,
Forms, StdCtrls, Dialogs, ComCtrls, ExtCtrls, Dlgs, CommCtrl;
type
TTestDialog = class(TOpenDialog)
private
FPanel: TPanel;
FStatus: TStatusBar;
protected
procedure DoShow; override;
procedure WndProc(var Message: TMessage); override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
end;
implementation
constructor TTestDialog.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
Template := 'YOURDLGTEMPLATE';
Options := [ofHideReadOnly,ofFileMustExist];
FPanel := TPanel.Create( Self );
FStatus := TStatusBar.Create( Self );
end;
destructor TTestDialog.Destroy;
begin
FPanel.Free;
FStatus.Free;
inherited Destroy;
end;
procedure TTestDialog.DoShow;
var
rc: TRect;
begin
GetClientRect(Handle, Rc);
FPanel.BoundsRect := Rc;
FPanel.Left := 424;
FPanel.BevelOuter := bvNone;
FPanel.Width := (Rc.Right - Rc.Left) - FPanel.Left;
FPanel.Caption := 'Hello !';
FPanel.ParentWindow := Handle;
FStatus.Align := alNone;
FStatus.BoundsRect := Rc;
FStatus.Top := FStatus.Top + FStatus.Height - 30;
FStatus.Height := 30;
FStatus.Width := FStatus.Width - FPanel.Width - 2;
FStatus.SimplePanel := True;
FStatus.ParentWindow := Handle;
end;
procedure TTestDialog.WndProc(var Message: TMessage);
function ExtractFileNameOnly( s: String ): String;
var tmp: String;
begin
Result := ExtractFilename( s );
tmp := ExtractFileExt( Result );
if tmp <> '' then
Result := Copy( Result, 1, Length( Result ) - length( tmp ) );
end;
const
AddSize = 150;
cNum = 7;
Control: Array [0..cNum-1] of integer =
( stc3, stc2, //The two label ctrls
edt1, cmb1, //Edit and combo ctrls
IDOK, IDCANCEL, //The dialog buttons
lst1 ); //The Explorer window
var
pLV,LV: HWND;
Style: Longint;
I,pos: integer;
buf: array[0..254] of char;
S: String;
wndDlg,wndCtrl: HWND;
Rc,cRc: TRect;
begin
Message.Result := 0;
case Message.Msg of
WM_INITDIALOG:
begin
wndDlg := GetParent(Handle); // Get a pointer to the parent window.
GetWindowRect(wndDlg,Rc); //Get rect of parent window
// Change the size of parent window according to
SetWindowPos( wndDlg, HWND(NiL), 0, 0,
Rc.right - Rc.left,
Rc.bottom - Rc.top + AddSize,
SWP_NOMOVE );
//Move all controls to a compensate for the new parent size
for i:=0 to cNum-1 do
begin
wndCtrl := GetDlgItem(wndDlg,Control[i]); //Fetch control
GetWindowRect(wndCtrl, cRc); //Get control's rect
MapWindowPoints( 0, wndDlg, cRc, 2 );
if (Control[i] <> lst1) then //For any control except the lst1
//move the control appropriately
SetWindowPos( wndCtrl, HWND(NiL),
cRc.left, cRc.top + AddSize,
0, 0, SWP_NOSIZE )
else //size the folder view control appropriately
SetWindowPos( wndCtrl, HWND(NiL), 0, 0,
cRc.right - cRc.left,
cRc.bottom - cRc.top + AddSize,
SWP_NOMOVE );
end;
end;
WM_NOTIFY:
begin
case POFNotify(Message.LParam)^.hdr.code of
// Can also trap:
// CDN_FILEOK, CDN_FOLDERCHANGE, CDN_HELP, CDN_INITDONE, CDN_SELCHANGE,
// CDN_SHAREVIOLATION, CDN_TYPECHANGE.
CDN_SELCHANGE:
begin
// get the ACTUAL ListView handle (not lst1)
pLV := GetDlgItem( GetParent(Handle), lst2 );
LV := GetDlgItem( pLV, 1 );
Style := GetWindowLong(LV, GWL_STYLE);
Style := Style and (not LVS_TYPEMASK);
Style := Style or LVS_ICON;
SetWindowLong(LV, GWL_STYLE, Style);
// currently selected item
pos := ListView_GetNextItem ( LV, -1, LVNI_ALL or LVNI_SELECTED );
if ( pos <> -1 ) then
begin
ListView_GetItemText( LV, pos, 0, buf, 255 );
S := ExtractFilePath( Filename ) + ExtractFileNameOnly(buf) ;
if FileExists(S + ExtractFileExt( Filename )) then
FStatus.SimpleText := 'File: ' + s + ExtractFileExt( Filename )
else
FStatus.SimpleText := 'Folder: '+s;
end;
end;
end;
end;
end;
inherited WndProc(Message);
end;
end.
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
|
![]() |
|
|
|