Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > Autres
Autres Autres logiciels d'informatique décisionnelle, de statistiques, générateurs d’états ou outils infocentre : EpiInfo, FreeReport, FastReport, Hyperion, JPivot, QuickReport, Mondrian, ReportBuilder, Stata, Spad, Spss, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/05/2008, 11h29   #1
Invité de passage
 
Inscription : mai 2008
Messages : 2
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 2
Points : 0
Points : 0
Par défaut redimensionner une image dans de texte RTF (RichEdit)

Bonjour tt le monde,

J’ai un petit souci avec les images insérées dans de texte RTF !!
J’ai réussi déjà à insérer les image dans le RichEdit on utilisant un autre composant dérivé (RichEdit98) mais j’arrive pas à contrôle par code les images !!
c-à-d, j’ai un fichier .RTF qui contient des images, je le charge dans le RichEdit98 qui permet l’utilisation des objets OLE !

par ce bout de code :

Code :
1
2
3
4
5
6
7
8
var
   CurrentRichEdit: TRichEdit98;
   CurrentObjOLE : TReObject;
begin
   FillChar(CurrentObjOLE, SizeOf(CurrentObjOLE), 0);
   CurrentObjOLE.cbStruct:= SizeOf(CurrentObjOLE);
   CurrentRichEdit.RichEditOle.GetObject( Longint(0), CurrentObjOLE, REO_GETOBJ_POLEOBJ OR REO_GETOBJ_POLESITE );
end;
j’ai arrivé à récupérer l’objet OLE (image)! En suite, j’ai utilisé :

CurrentObjOLE.sizel.cx et CurrentObjOLE.sizel.cy pour redimensionner l’image !!! mais ça marche pas ! pas d’erreur mais pas de modif au niveau de l’image !!!

J ss pas est c que j’ai parti sur la bn piste ou pas !
Si vs avez des solutions …

Merci d’avance.
byhack0 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/05/2008, 09h23   #2
Invité de passage
 
Inscription : mai 2008
Messages : 2
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 2
Points : 0
Points : 0
Par défaut une solution qui marche à 99.99%

Bonjour,

Bon si ça vous intéresse ! J’ai trouvé une (solution) qui me permit au mois de contrôler le zoom de l’image !

Code :
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
 
var
            CurrentObjOLE : TReObject;
            tmpRTF: String;
begin
 
            // Si le RichEdit ne contient pas des objets
            IF ( CurrentRichEdit.RichEditOle.GetObjectCount = 0 ) then exit;
 
            // ON récupère l''image (OLE)
            FillChar(CurrentObjOLE, SizeOf(CurrentObjOLE), 0);
            CurrentObjOLE.cbStruct:= SizeOf(CurrentObjOLE);
            CurrentRichEdit.RichEditOle.GetObject( IndexImg, CurrentObjOLE, REO_GETOBJ_POLEOBJ OR REO_GETOBJ_POLESITE );
 
            // Si l''INDEX n''est pas valide
            IF ( CurrentObjOLE.oleobj = nil) then exit;
 
            // ON sélectionne l''image
            CurrentRichEdit.SelStart:= CurrentObjOLE.cp;
            CurrentRichEdit.SelLength:= 1;
            // ON récupère le texte RTF de l''image
            tmpRTF:= CurrentRichEdit.RTFSelText;
            // ON ajoute les attributs et la valeur de zoom
            tmpRTF:= AnsiReplaceStr( tmpRTF, '\picw', '\picscalex' + IntToStr(valueZoom) + '\picscaley' + IntToStr(valueZoom) + '\picw' );
            // ON actualise le texte RTF de l''image
            CurrentRichEdit.RTFSelText:= tmpRTF;
 
end;
Par ce bout de code, j’ajoute la balise de zoom horizontal (picscalex) et le zoom vertical (picscalexy) au code RTF de l’image avec la valeur de zoom…

Les limités de cette méthodes :
- je ne peux pas savoir d’avance la taille ou le zoom de l’image
- je ne peux pas savoir ou contrôler la taille de l’image en pixel

Ce qui est bizarre ! RichEdit98 ne retourne pas les balises de zoom dans le code RTF de l’image !

Si vous avez d’autres solutions ou d’autres pistes !..
tkx
byhack0 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h32.


 
 
 
 
Partenaires

Hébergement Web