Problème cellule dans tableau RichEdit

h60 Messages postés 46 Date d'inscription dimanche 20 décembre 2009 Statut Membre Dernière intervention 5 février 2012 - 1 févr. 2012 à 08:55
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 - 6 févr. 2012 à 14:08
Bonjour à tous

L'un d'entre vous pourrait-il me dire de quelle façon je dois procéder, pour que, lorsque le texte est plus grandque ma cellule de mon tableau, celle-ci s'agrandisse en hauteur comme dans n'importe quel éditeur.

Actuellement lorsque le texte déborde de la cellule.

Lorsque je suvegarde mon document et que je l'ouvre dans WordPad ou Word le comportement est tout à fait normal.

Quelle est la propriété du RichEdit qui pourrait règler mon problême en dehors de 'Plaintext', qui dans ce cas, est innéficace ?

Il y a peut-être une balise RTF ?

Merci pour vos réponses

5 réponses

cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
2 févr. 2012 à 11:10
Bonjour,

cellule de mon tableau

Un RichEdit, est un éditeur de texte particulier.
Que vient faire ici: "ma cellule de mon tableau" ?

cantador
0
h60 Messages postés 46 Date d'inscription dimanche 20 décembre 2009 Statut Membre Dernière intervention 5 février 2012 1
2 févr. 2012 à 12:26
Effectivement je n'ai pas précisé que je créai un tableau dans un RichEdit
avec pour exemple le code suivant

Result := '{\rtf1\ansi\ \deff0'
+'\trowd \trgaph108'
+'\cellx1800'
+'\pard\intbl Première cellule\cell'
+'\cellx5400' //

+'Deuxième cellule\cell'
+'{\row }'
+'\trowd \trgaph108'
+'\cellx1800'
+'\pard\intbl Ligne suivante\cell'
+'\cellx7200'
+'Cellule en bas à droite\cell'
+'{\row}}'

Donc si je sauvegarde le fichier RTF et que je l'ouvre dans WordPad ou Word les cellules de mon tableau s'adapte en hauteur à la taille de mon texte, mais pas dans le RichEdit de mon projet.

D'où ma question y a t il une propriété qui fasse que le comportement soit le même.

Merci
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
5 févr. 2012 à 13:47
Bonjour,
Ta méthode ne fonctionne pas..
IL faut dire déjà que faire un tableau dans un RichEdit

Tu peux toujours tenter ce truc, mais rien n'est garanti..

function insertrtf(nbcol,nbligne,largeur:integer):string;
var 
i,j : integer;
begin
 result:='{\rtf1\trowd';
 for i:=1 to nbcol do result:=result+format('\cellx%d',[i*(2000+largeur)]);
 for j:=1 to nbligne do
 begin
  result:=result+'\intbl';
  for i:=1 to nbcol do result:=result+'\cell';
  result:=result+'\row';
 end;
 result:=result+'}';
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
 RichEdit10.SelText:=insertrtf(4,3,300);
end;





cantador
0
h60 Messages postés 46 Date d'inscription dimanche 20 décembre 2009 Statut Membre Dernière intervention 5 février 2012 1
5 févr. 2012 à 16:05
Merci pour l'intérêt que tu portes à mon problème.

Ton code est intéressant mais il donne le même résultat que le mien.

Le composant natif de Delphi ne doit pas être capable de gérer des tableaux. En effet après avoir créé un tableau dans mon éditeur, je l'ai sauvegardé puis ouvert dans WordPad. Là il a un comportement normal. Je l'ai à nouveau sauvagardé dans WordPad et ensuite j'ai récupéré le code généré en le lisant avec NotePad.

Le code était le suivant:
'{\rtf1\ansi\ansicpg1252\deff0\deflang1036{\fonttbl{\f0\fnil\fcharset0 MS Sans Serif;}{\f1\fnil MS Sans Serif;}}'
+'{\*\generator Msftedit 5.41.21.2510;}\viewkind4\uc1\pard\f0\fs16 TableauCantador\par'
+'\f1\par'
+'\trowd\trgaph10\trleft-10\trpaddl10\trpaddr10\trpaddfl3\trpaddfr3'
+'\cellx2290\cellx4590\pard\intbl\cell\cell\row\trowd\trgaph10\trleft-10\trpaddl10\trpaddr10\trpaddfl3\trpaddfr3'
+'\cellx2290\cellx4590\pard\intbl\cell\cell\row\trowd\trgaph10\trleft-10\trpaddl10\trpaddr10\trpaddfl3\trpaddfr3'
+'\cellx2290\cellx4590\pard\intbl\cell\cell\row\pard\par'
+'}';

En intégrant de nouveau ce code dans mon éditeur j'ai obtenu exactement le même comportement qu'auparavant.

Je pense donc que c'est le composant qui est en cause. Comme le cahier des charges impose l'utilisation exclusive de composants natifs....(Démarche qualité oblige) Je ne sais pas comment me sortir de ce problème.

Si tu as une idée je suis preneur.

Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
6 févr. 2012 à 14:08
Dès l'instant où tu respectes le réglement et que ta question présente un intérêt.
pas de soucis..

Comme le cahier des charges impose l'utilisation exclusive de composants natifs

Effectivement si cette clause est imposée, je ne vois que trois autres composants qui peuvent régler ton souci :

TDBGrid
TStringGrid
TDrawGrid

cantador
0
Rejoignez-nous