IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

deplacer des images, creer un fichier composite


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2011
    Messages
    18
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2011
    Messages : 18
    Par d�faut deplacer des images, creer un fichier composite
    Bonjour � toutes et � tous,
    je viens vers vous pour avoir de l'aide.
    Je voudrais coder une application (Embarcadero XE3 C++) qui me permettrait de cr�er des documents composites: images + texte.
    Les probl�mes que je rencontre sont:
    enregistrer les donn�es texte+images dans un fichier
    ins�rer des images (bmp) et pouvoir les d�placer ind�pendamment et quand je le veux; le nombre d'images est inconnu au
    moment ou l'utilisateur lance l'application .
    Je vous soumet le code qui me sert de test.
    Les images statiques ne posent pas de probl�mes graves.
    Les images ins�r�es dynamiquement sont d�pla�ables tant qu'une autre image n'a pas �t� ins�r�e.
    Ce probl�me vient peut �tre du fait que toutes les images ins�r�es dynamiquement portent le m�me nom....
    Le fonctionnement que je voudrais obtenir c'est: cliquer sur l'image que je veux d�placer et bouger la souris pour la d�placer
    (jusqu'� rel�chement du bouton de la souris).
    Les pistes que j'ai explor�es sans succ�s sont : ActiveControl et this.
    Une des questions que je me pose est: peut on obtenir ce fonctionnement en partant d'un RichEdit?
    Je pense que ma fa�on de coder vas vous paraitre na�ve.

    Merci de me consacrer un peu de votre temps et de partager vos connaissances.


    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    include <vcl.h>
    #pragma hdrstop
     
    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    	int pt_clique_x;
    	int pt_clique_y;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
    	: TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
     
    void __fastcall TForm1::Image2MouseMove(TObject *Sender, TShiftState Shift, int X,
    		  int Y)
    {
    			if (GetAsyncKeyState(VK_LBUTTON))
    			//while  (GetAsyncKeyState(VK_LBUTTON))
    			{
     
    				Image2->Top=Image2->Top+Y-pt_clique_y;
    				Image2->Left=Image2->Left+X-pt_clique_x;
     
     
     
    			}
     
     
     
    				if (GetAsyncKeyState(VK_RBUTTON) && GetAsyncKeyState(VK_MBUTTON))
    				{
     
    					  if (pt_clique_x<X || pt_clique_y<Y)
    					  {
    					  Image2->Height = Image2->Height+(Y-pt_clique_y);
    					  Image2->Width = Image2->Width+(X-pt_clique_x);
    					  }
     
    					  else
    					  {
    					  Image2->Height = Y; //oui pour retrecir
    					  Image2->Width = X;  //oui pour retrecir
    					   }
     
    				}
     
    }
    //---------------------------------------------------------------------------
     
    void __fastcall TForm1::Image2MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift,
    		  int X, int Y)
    {
    	pt_clique_x=X; //variable globale qui memorise la valeur en X du pt cliqué
    	pt_clique_y=Y; //variable globale qui memorise la valeur en X du pt cliqué
     
     
    }
    //---------------------------------------------------------------------------
     
     
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
       //AnsiString nom="image_";
    	Image3 = new TImage(this);
    	//Image3->Name=nom;
    	Image3->Left = 100;
    	Image3->Top = 100;
    	Image3->Parent = Form1;
    	Image3->Picture->LoadFromFile("D:\\Bibliothèques\\Mes images\\Capture.bmp");
    	Image3->OnMouseMove = Image3MouseMove;
    	//delete Image3;
     
    }
     
     
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Image3MouseMove(TObject *Sender, TShiftState Shift, int X, int Y)
    {
     
    	if (GetAsyncKeyState(VK_LBUTTON))
    	//while  (GetAsyncKeyState(VK_LBUTTON))
    	{
    	Image3->Top=Image3->Top+Y-pt_clique_y;
    	Image3->Left=Image3->Left+X-pt_clique_x;
    	}
     
    }

  2. #2
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Donc tu as plusieurs probl�mes diff�rents, dont au moins deux:
    • Le coup du glisser-d�placer: Sp�cifique � Borland, je ne peux pas t'aider l�-dessus
    • �crire un fichier composite. Pour �a, je vais d�velopper.


    Pour �crire un fichier compos� de plusieurs donn�es (typiquement r�cup�r�es d'autres fichiers), tu peux utiliser une biblioth�que pour un format de fichier existant pour �a (genre, une biblioth�que de Zip, comme le fait OpenOffice: Les .odt sont des .zip contenant plusieurs fichiers) ou bien tu peux simplement faire ton propre format binaire en plusieurs sections. Ce n'est pas trop d�r, du moment que chaque section contient au minimum:
    • Un indicateur de type, indiquant ce que repr�sente la section.
    • Une valeur de taille, indispensable: Il faut qu'un programme puisse toujours "sauter" la section s'il ne la comprend pas.
    • Les donn�es.

    � �a tu peur rajouter un ID de section (nombre, cha�ne de caract�res ASCII, etc.), lui aussi ind�pendant du format "interne" de la section (et donc, ind�pendant de son type).
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre averti
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2011
    Messages
    18
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2011
    Messages : 18
    Par d�faut
    Bonsoir M�dinoc.

    Merci pour ta r�ponse.
    Je vais m�int�resser au biblioth�ques que tu mentionnes.
    Faire son propre format de fichier me semble difficile d�acc�s mais je vais essayer de trouver des informations et de comprendre.

    Merci pour ton aide.

  4. #4
    Membre Expert
    Homme Profil pro
    �tudiant
    Inscrit en
    Juin 2012
    Messages
    1 711
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 711
    Par d�faut
    Citation Envoy� par sergeprd Voir le message
    Faire son propre format de fichier me semble difficile d�acc�s mais je vais essayer de trouver des informations et de comprendre
    Pas forc�ment, il faut juste bien d�finir la structure du fichier. Mais utiliser un type de fichier existant (zip par exemple) permet d'utiliser des libs existantes et de pouvoir g�rer ton fichier apr�s avec n'importe quel soft supportant le format que tu utilises.
    Entre utiliser un format perso ou un format bien connu, les deux sont valables et d�pendent de ton besoin.

    (Et pour le code Borland, pareil je connais pas )

  5. #5
    Membre averti
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2011
    Messages
    18
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2011
    Messages : 18
    Par d�faut
    Bonjour Iradrille.

    Merci pour tes conseils, la meilleure solution semble donc �tre l'utilisation d'une biblioth�que existante(zip).
    J'ai commenc� � chercher mais j'ai pas tout compris quant � leur utilisation.

    Merci.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Sauvegarder des images dans un fichier
    Par Julien Bodin dans le forum G�n�ral Java
    R�ponses: 1
    Dernier message: 05/06/2009, 10h53
  2. Ajouter des images dans un fichier.txt
    Par duaru157 dans le forum Composants VCL
    R�ponses: 7
    Dernier message: 18/01/2009, 16h35
  3. Deplacer des images
    Par elghadi_mohamed dans le forum Entr�e/Sortie
    R�ponses: 2
    Dernier message: 21/11/2007, 13h26
  4. r�cup�rer dans le ClipBoard des images d'un fichier AVI
    Par ProgElecT dans le forum VB 6 et ant�rieur
    R�ponses: 2
    Dernier message: 10/06/2007, 12h10
  5. Acces � des images dans un fichier resource
    Par boulo dans le forum Windows Forms
    R�ponses: 4
    Dernier message: 27/03/2007, 15h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo