begin process at 2012 02 08 10:37:35
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > DSPACK, UNE PROCEDURE SETPOSITION DANS LE COMPOSANT TDSTRACKBAR

DSPACK, UNE PROCEDURE SETPOSITION DANS LE COMPOSANT TDSTRACKBAR


 Information sur la source

Note :
9 / 10 - par 3 personnes
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Divers Classé sous :setposition, tdstrackbar, dspack Niveau :Débutant Date de création :24/10/2005 Date de mise à jour :25/10/2005 15:12:26 Vu :4 477

Auteur : f0xi

Ecrire un message privé
Site perso
Commentaire sur cette source (16)
Ajouter un commentaire et/ou une note

 Description

Pour ceux qui ne connaisse pas DSPack (www.progdigy.com), c'est une librairie qui permet via ses composants de faire des traitements video/audio avec directshow; pour faire un player, logiciel de capture ou d'encodage.

Ce que je propose ici, c'est de rajouter une petite procedure dans le composant TDSTrackBar, car celui ci n'est pas trés beau et de plus il ne reagis pas si on lui change la proprietée "Position" via une methode car, pour dire au composant principal qu'il faut changer la position de lecture il utilise l'evenement OnMouseUp, ce qui fait echouer une tentative de changement de position via le programme ou une autre trackbar etc...

je tiens a preciser que cette "modification" n'entraine pas d'erreur ou de mauvais fonctionnement, mais ce serat a vous de securiser sont utilisation pour eviter les messages d'erreur si, par exemple, on change la position alors qu'aucun media n'est present dans le composant principal (filtergraph).

passons au code.

Source

  • {
  • ouvrez le fichier DSpack.pas qui se trouve dans le repertoire par defaut :
  • ./lib/dspack/src/DSpack
  • trouvez le composant TDSTrackBar (ligne 1213) dans la version V2.3.3 du fichier.
  • Dans le champs Public, aprés Constructor et Destructor, ajoutez la declaration
  • de la nouvelle procedure comme suit :
  • }
  • public
  • { constructor method. }
  • constructor Create(AOwner: TComponent); override;
  • { destructor method. }
  • destructor Destroy; override;
  • {External Position seter}
  • procedure SetPosition(NewPosition : integer);
  • {
  • une fois cela fait, allez dans l'Implementation,
  • localisez la procedure TDSTrackBar.MouseUp (ligne 3825),
  • ajoutez aprés cette dernier notre procedure SetPosition comme suit :
  • }
  • procedure TDSTrackBar.SetPosition(NewPosition : integer);
  • var StopPosition, CurrentPosition : int64;
  • begin
  • if assigned(FMediaSeeking) then begin
  • FMediaSeeking.GetStopPosition( StopPosition );
  • CurrentPosition := ( StopPosition * NewPosition ) div max;
  • FMediaSeeking.SetPositions
  • (
  • CurrentPosition,
  • AM_SEEKING_AbsolutePositioning,
  • StopPosition,
  • AM_SEEKING_NoPositioning
  • );
  • end;
  • end;
  • {
  • voila la modification est faite, enregistrez le fichier et c'est tout.
  • }
{
 ouvrez le fichier DSpack.pas qui se trouve dans le repertoire par defaut :
 ./lib/dspack/src/DSpack
 trouvez le composant TDSTrackBar (ligne 1213) dans la version V2.3.3 du fichier.
 Dans le champs Public, aprés Constructor et Destructor, ajoutez la declaration
 de la nouvelle procedure comme suit :
}

public
    { constructor method. }
    constructor Create(AOwner: TComponent); override;
    { destructor method. }
    destructor Destroy; override;
    {External Position seter}
    procedure SetPosition(NewPosition : integer);

{
 une fois cela fait, allez dans l'Implementation, 
 localisez la procedure TDSTrackBar.MouseUp (ligne 3825), 
 ajoutez aprés cette dernier notre procedure SetPosition comme suit :
}

procedure TDSTrackBar.SetPosition(NewPosition : integer);
var StopPosition, CurrentPosition : int64;
begin
  if assigned(FMediaSeeking) then begin
     FMediaSeeking.GetStopPosition( StopPosition );
     CurrentPosition := ( StopPosition * NewPosition ) div max;
     FMediaSeeking.SetPositions
     (
        CurrentPosition,
        AM_SEEKING_AbsolutePositioning,
        StopPosition,
        AM_SEEKING_NoPositioning
     );
  end;
end; 

{
 voila la modification est faite, enregistrez le fichier et c'est tout.
}

 Conclusion

Notez que cette modification ne nuirat pas a vos anciens projets.
Par contre n'oubliez pas de notifier et fournir la version modifiée avec votre projet, si vous partagez vos sources avec quelqu'un.

J'ai placé ce code sur le forum de progdigy en esperant qu'ils trouvent l'idée bonne et utile et qu'ils l'implementent dans la prochaine version de DSPack.
Je pense qu'il y'a surrement d'autre methodes pour obtenir ce resultat, mais j'ai pris la plus simple et la plus evidente. Son seul defaut est qu'il faut utiliser le composant TDSTrackBar en mode invisible si on utilise une autre TrackBar.

Si jamais vous rencontrez des problemes avec cette methodes, supprimez la modification du fichier ou restaurez votre sauvegarde (car bien sur, vous sauvegardez toujours vos fichiers avant de les modifier!).

voila en esperant que vous trouverez cette astuce utile.

ps : je ne fournis pas le fichier car vous pourriez travailler avec une autre version de DSPack, de plus la modification etant trés simple, je ne vois pas l'utilitée de charger le serveur avec un zip inutile. ;)

pour telecharger le DSPack : www.progdigy.com


 Historique

24 octobre 2005 19:26:38 :
- ajout du liens vers le site progdigy - correction de la source suite a une erreur de // au lieu de {} ^^ (affichage pas jolie)
25 octobre 2005 15:12:26 :
correction de certaines "photes d'ortografe" ^^ et de conjugaison. (se relire ou ne pas ... tel est la question)

 Sources du même auteur

Source avec Zip COMMANDS MANAGER - BESOIN DE COMMANDES DANS VOS PROGRAMMES T...
Source avec Zip DYNAMIC LIBRARY LOADER CLASS: GAGNEZ DU TEMPS POUR CHARGER L...
Source avec Zip BASE64/BASE64URL ENCODE/DECODE
Source avec Zip NEXTGENS -> UNITÉS DE TYPES ÉVOLUÉS NOUVELLE GÉNÉRATION (DE...
Source avec Zip SIMPLES SOMME DE DONNÉES 8, 16, 32, 64 BITS

 Sources de la même categorie

Source avec Zip TRI DBRID CROISSANT ET DECROISSANT par walidlam
Source avec Zip PETITE APPLICATION DE RETENUE par walidlam
Source avec Zip APPLICATION ALIAS+EXCEL par walidlam
Source avec Zip ACCÈS À DIFFÉRENTES PROPRITÉS D'UNE FORME PARENT À PARTIR DE... par ioda19
CODAGE EN BASE64 DE CHAÎNES UNICODE par gta126

 Sources en rapport avec celle ci

Source avec Zip TÉLÉ SUR LE RÉSEAU . par titout2

Commentaires et avis

Commentaire de morinxav2 le 25/10/2005 13:58:44

Bonjour,

Il fallait y penser!

Cela manquait vraiement a dspack.

Merci 1000 Fois

Commentaire de f0xi le 25/10/2005 15:03:15 administrateur CS

en effet c'est la ptit proc qui vas bien ...

comme j'en fait le tours en ce moment et que DSPack est OpenSource,
j'essaye de voir les ameliorations probable a ajouter ou a notifier
si le niveau est trop chaud pour moi.

en tout cas je suis content de voir qu'elle vas etre utile a quelqu'un.

si jamais vous avez des suggestions ou des remarques sur ce code...
n'hesitez surtout pas a me le dire.

Commentaire de mecsympa le 25/10/2005 17:42:56

J'avais rencontré ce problème et je ne savais pas comment faire. Je cherche également à savoir si avec DSPack, on peut connaître les paramètres de la vidéo.

Merci pour ce code :-))

Commentaire de f0xi le 25/10/2005 18:47:44 administrateur CS

alors justement j'y travail pour les parametres de la video mais la ...
je pense que c'est carrement un ajout d'un composant a faire genre DSMediaInfos.

aprés, bosser a fond les doc technique du mp3, ogg, wav, avi, mov, wmv et tout ce qui est pris en compte par directshow.(yeeeeaaah!)
bien que je pense que directshow soit capable de nous fournir des infos tel le code divx, le bitrate, le W.H, la taille (un filesize et on en parle plus) ect... ect...
d'ailleur je suis egalement preneur pour cela.

un composant "playlist" ne serait pas du luxe non plus...

vais-je devoir developper une bibliotheque DSPack+ ?! haha

bon ben ... hack du dspack en cours alors ... (hacking is not cracking!)

Commentaire de costello le 25/10/2005 22:18:46

HA!
LE grand trou de DSpack est enfin comblé!
Merci beaucoup à toi, on va enfin pouvoir faire un lecteur vidéo décent.

Commentaire de tsainvet le 01/11/2006 23:26:40

BONJOUR  JAI BESOIN AIDE  AVEC DSPACK  JE VOUDRAIS  LANCER UNE VIDEO DANS UNE FORM  AUTOMATIQUE  J Y ARRIVE PAS ?  SVP POURRIEZ VOUS M AIDER AVEC UN EXEMPLE  SVP MERCI

Commentaire de tsainvet le 01/11/2006 23:31:34

desolé   jai encore oublié ds mots dans  ma demande pfff...

jaimerais  affiché une video( avi ou mpeg) automatiquement dans une form   avec dspack  mais jai pas assé exemple et de code pour  le fair  en fait jai rien compri surment  donc  j'en appelle  au exper !! pourriez vous m'aider jai juste besoin d'un exemple  merci   d'avance ... cordialement votre .T.S

Commentaire de morinxav2 le 03/11/2006 16:35:51

Bonjour,
en reponse a TSAINVET:
http://paul.glagla.free.fr
tout ce que tu veux savoir pour l'utiliser est là!
regarde aussi ma source : http://www.delphifr.com/codes/GESTIONS-FILMS-FICHES-MOVIECOVERS-AVEC-LECTEUR-MULTIMEDIAS_38962.aspx
bonne prog.
question a Foxi : ne serait il pas possible de positionner directement avec un click gauche de la souris ?
Merci d'avance pour la reponse

Commentaire de tsainvet le 05/11/2006 23:40:01

Bonjour


génial !!  de génial !!
meci  Morinxav2

il me reste plus qu'a  faire....  si  jai besoin d'une  info   sur ce sujet  je viendrai vous pous posé   ma question  !!

tous  merci encore


cordialement       tsainvet

Commentaire de vampir039 le 02/12/2006 14:08:11

Ne comprend pas pourquoi mon prog utilisant la setposition (pour par exemple ne selectionner qu'une partie d'une longue video) fonctionne que sur mon system ou est installé D2005 avec le DSPack sur mon 2eme system et les pc du reseau la setposition n'as aucun effet et les lectures recommence au debut du fichier (j'utilise une deuxieme trackbar pour la selection avec selstart et selend que je passe en parametres est-ce que c'est parce que j'utilise selend pour marquer la progression de la lecture sur la dstrackbar ?(le selstart se calerai systematiquement sur 0 et perturberai le fonctionnement?))

Je suis autodidacte et pas extremement calé mais bon si QQun veut bien me repondre je seche!

Commentaire de morinxav2 le 02/12/2006 22:21:56

Bonsoir,
=> bon dèja une petite formule de politesse sa ne fait pas de mal et notre société en a bien besoin...
=> cela dit, peut être qu'en nous presentant ton source a tester on pourrait essayer de comprendre ton problème, sinon comment voudrais tu que l'on t'aide?
=> Foxi, qui est un pro, lui, malheureusement est dur a contacter, moi je ne sais pas comment positionner le curseur a la position de la sourie sur un clic.

Cordialement

Commentaire de vampir039 le 03/12/2006 15:31:08

Bonjour et merci de me repondre !
oui je m'excuse c'est la 1ere fois que je postais !(en principe j'essaye de me débrouiller seul)
Je m'excuse mais je crois que j'ai resolus une partie du problème que je rencontrais en mettant mes codecs à jour avec le Ace Mega codecs pro 6.03 (mais il y avait tout de meme un bug dans mon prog.).
Je n'ai jamais envoyer de source car deja je ne sais pas le faire(pieces jointes ou bien...) (et je me sent assez petit devant le niveau des autres) je me contente en general de puiser des idées pour les miens mais surtout pour comprendre comment faire n'ayant aucune formation autre que mon certif (meme plus reconnut d'ailleur).
La prochaine fois je ferais les manips et les corrections necessaires avant de l'ouvrir!
Merci !
A+
  

Commentaire de btsapin le 19/08/2008 12:09:28

Bonjour à tous,
Cet ajout me serait très utile, mais lorsque j'installe en suivant les recommandations de Foxi, et après compilation, mon programme ne reconnait pas TrackBar.SetPosition avec 'indentificateur non déclaré'
Ou est l'erreur ?
merci

Commentaire de morinxav2 le 19/08/2008 14:21:38

bonjour,
recompile ton composant
c'est l'ancien qui est tjrs present...
par contre FOXI, si tu as une alerte sur ce message. Explique moi svp pourquoi le delpacement de la trackbar avec la molette de la sourie n'est pas pris en compte.
merci d'avance..
autre question plus personnel, quel est ta profession car pour moi tu es quand même une sacrée reference. J'ai fait un tutorial, pour utiliser virtualtreeview et je sais que pour le mettre en place sur le site il me faut bau moins 3 heures de boulots... comment faites vous?
j'aimerais bien en faire profiter tout le monde...
et encore 100000000..... merci a toi, et bonne continuation

Commentaire de btsapin le 19/08/2008 15:21:22

Merci morinxav2,
j'ai tout effacé et tou refait. ça l'air de marcher. Je continue.
merci encore...

Commentaire de morinxav2 le 19/08/2008 15:28:31

je te dis, tu peux te fier a foxi, tout ce qu'il dit pour argent comptant, je ne l'est jammais vu se tromper sur ce qu'il a posté.
Il est assez "pris" et dure a contacter, mais quand il dit quelque chose c'est que du bonheur....
attention, ce sont des pros, alors c'est a toi de comprendre toutes les astuces naturelles a la prog , car pour eux la base, tout le monde connait...
A bientôt

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

DSPack [ par mecsympa ] Grace à l'excellent tuto de Paul Glagla, j'ai commencer a prendre en main le DSPack pour réaliser un programme, mais je me heurte à 2 p listbox / dspack [ par morinxav2 ] Bonsoir,j'ai une playlist ou je met tous les mp3 que je veux ecouter, j'en clique une au hasard et avec 2 players (dspack), j'enchaine la musique en l DsPack [ par morinxav2 ] Bonjour,Est-ce que quelqu'un pourrais me dire pourquoi les reglages couleurs de dspack ne fonctionne qu'avec certaines cartes graphique?merci d'avance DSPACK sur Vista, problème de compilation... [ par FrReg ] Bonjour à tous, j'ai un problème avec l'installation du DSPACK sur Vista. Voila, j'ai un programme à rendre dans 3 semaines pour mon projet d'info. J' Problem d'installation des packages DSPACK [ par bazbazus ] salut a tous j'ai un problem d'installation des packages DSPACK234 . quon je essai de installer erreur :" Impossible d'installer le paquet c:\progra Delphi 7 + DsPack + windows 2008 server R2 STD [ par lilouk ] Bonjour, Je n'arrive pas à compiler DSPACK_D7 et DSPackDesign_D7 sous windows 2008 server R2 STD. Voici le message d'insulte: [Erreur fatale] Impo


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,479 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales