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; } }
Partager