Screencamture 0.2

Soyez le premier à donner votre avis sur cette source.

Vue 6 490 fois - Téléchargée 900 fois

Description

Créer un tutoriel vidéo ? Rien de plus simple !
ScreenCamture permet la capture vidéo de l'écran ou d'une partie de l'écran grâce à une "fiche trouée".
Les options permettent de choisir le codec pour la vidéo ainsi que divers réglages de compression.
L'enregistrement ou non du curseur de la souris est réglable.
L'interface est soignée.
L'essayer c'est l'adopter.
ps : les composants utilisés (et incontournables) sont dans le zip

Source / Exemple :


unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, scrcam, flashwnd, Buttons, ExtCtrls, Mask, UnPas2;

type
  TForm1 = class(TForm)
    PanelHaut: TPanel;
    FileName: TEdit;
    bt_record: TSpeedButton;
    bt_options: TSpeedButton;
    lblInfos: TLabel;
    SaveDialog: TSaveDialog;
    Button1: TButton;
    Panel1: TPanel;
    Image1: TImage;
    Image2: TImage;
    Image3: TImage;
    Image4: TImage;
    PanelPub: TPanel;
    lblpub3: TLabel;
    lblpub2: TLabel;
    lblpub1: TLabel;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    chkMouse: TCheckBox;
    Bevel1: TBevel;
    UnPas2: TUnPas2;
    procedure FormCreate(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure bt_recordClick(Sender: TObject);
    procedure bt_optionsClick(Sender: TObject);
    procedure FilenameChange(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure FormCanResize(Sender: TObject; var NewWidth,
      NewHeight: Integer; var Resize: Boolean);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure Fleches(Sender: TObject);
    procedure chkMouseClick(Sender: TObject);
  private
    procedure UpdateForm(Sender : TObject);
  public
  end;

var
  Form1: TForm1;
  scrcam: TScreenCam;

implementation

uses optdlg;

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  scrCam:=TScreenCam.create(self);
  scrCam.OnUpdate:= UpdateForm;
  scrcam.flashingRect:= false;
end;

procedure TForm1.UpdateForm(Sender: TObject);
begin
  lblinfos.Caption:=format('ms/Frame: %f'#10#13'FrameNr: %d'#10#13'Skipped Frames: %d',[scrcam.ActualmspF, scrcam.AcutalFrameNo, scrcam.SkippedFrames]);
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  scrCam.getCompressorsInfo;
  OptionDlg.execute;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  scrCam.free;
end;

procedure TForm1.bt_recordClick(Sender: TObject);
begin
 if bt_record.Down then
  begin
   bt_record.caption := 'Stop';
   scrcam.autoPan         := true;
   if fileexists(FileName.Text) then
     deletefile(filename.Text);
   scrcam.startRecording(form1, FileName.Text);
   AlphaBlend:= True;
   BorderStyle:= bsDialog;
   EnableMenuItem(GetSystemMenu(Handle, FALSE), SC_CLOSE, MF_GRAYED);
  end
 else
  begin
   bt_record.caption := 'Rec.';
   AlphaBlend:= False;
   PanelHaut.Visible:= False;
   TransparentColor:= False;
   BorderStyle:= bsNone;
   PanelPub.Visible:= True;
   application.ProcessMessages;
   sleep(250);
   Application.RestoreTopMosts;
   scrCam.stopRecording;
   PanelPub.Visible:= False;
   BorderStyle:= bsSizeable;
   PanelHaut.Visible:= True;
   TransparentColor:= True;
   if fileexists(FileName.Text) then
        lblinfos.Caption := 'Enregistrement terminé !'
   else lblinfos.Caption := 'Erreur lors de l''enregistrement';
  EnableMenuItem(GetSystemMenu(Handle, FALSE), SC_CLOSE, MF_ENABLED);
  end;
  chkMouse.Enabled:= not bt_record.Down;
end;

procedure TForm1.bt_optionsClick(Sender: TObject);
begin
  scrCam.getCompressorsInfo;
  OptionDlg.execute;
end;

procedure TForm1.FilenameChange(Sender: TObject);
begin
  bt_record.Enabled := length(filename.Text)>=6;
end;

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
  if SaveDialog.Execute then
    FileName.Text:= SaveDialog.FileName;
end;

procedure TForm1.FormCanResize(Sender: TObject; var NewWidth,
  NewHeight: Integer; var Resize: Boolean);
begin
  resize:= not bt_record.Down;
end;

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  CanClose:= not bt_record.Down;
end;

procedure TForm1.Fleches(Sender: TObject);
begin
  case TImage(sender).Tag of
   1: PanelHaut.Top:= 0;
   2: PanelHaut.Left:= 0;
   3: PanelHaut.Left:= ClientWidth-PanelHaut.Width;
   4: PanelHaut.Top:= ClientHeight-PanelHaut.Height;
  end;
end;

procedure TForm1.chkMouseClick(Sender: TObject);
begin
  scrcam.recordCursor:= chkMouse.Checked;
end;

end.

Conclusion :


Ouvert aux critiques !

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

danfranjo
Messages postés
33
Date d'inscription
dimanche 3 avril 2005
Statut
Membre
Dernière intervention
14 février 2009

Bonjour à tous,
@Juliodelphi, j'essaye de compiler ce programme, mais il manque encore OLE2.
J'ai trouvé unpas2
De plus, il n'y a pas de fichier ex_ dans le zip.
J'utilise Delphi 7.
Merci
cs_jfs59
Messages postés
178
Date d'inscription
mardi 29 avril 2003
Statut
Membre
Dernière intervention
2 février 2010

et une fois complet il n'est pas utile d'installer les composants pour pouvoir compiler le code !!

Non effectivement ... mais pour modifier un truc c'est quand même mieux dans l'ide .. pour juste essayer le prog il y a l'exécutable ... si comme moi on voudrait pouvoir définir une zone d'écran autrement que par la fiche transparente ... il faut pouvoir lancer depuis l'ide sinon c'est rébarbatif ...
JulioDelphi
Messages postés
2226
Date d'inscription
dimanche 5 octobre 2003
Statut
Modérateur
Dernière intervention
18 novembre 2010
13
Voila, zip à jour, vous pouvez ignorer UnPas2 ou l'ajouter d'ici : http://www.phidels.com/php/index.php3?page=../php/mescompo/unpas2.htm&id=228
Cirec
Messages postés
3809
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
25 janvier 2020
35
avant de pouvoir compiler le code il faudrait qu'il soit complet !!! :p

UnPas2.pas --> manquant
OptDlg.dfm --> manquant

et une fois complet il n'est pas utile d'installer les composants pour pouvoir compiler le code !!

en effet ce n'est que dans l'IDE que les composants non installés posent problèmes ... dans le cas d'une compilation en ligne de commande, le compilateur ne vérifie pas que les composants utilisés sont installés ... il a juste besoin d'avoir les unités à disposition ... :p ;)
JulioDelphi
Messages postés
2226
Date d'inscription
dimanche 5 octobre 2003
Statut
Modérateur
Dernière intervention
18 novembre 2010
13
Oui possible, en même temps j'ai pris le compo existant, j'allais pas me casser la tête à le "sortir" :p Si ?

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.