Comennt trouver Memo.height en Pixel ?

Résolu
Taktaky Messages postés 31 Date d'inscription lundi 21 mai 2007 Statut Membre Dernière intervention 21 août 2008 - 30 juil. 2008 à 20:36
Taktaky Messages postés 31 Date d'inscription lundi 21 mai 2007 Statut Membre Dernière intervention 21 août 2008 - 31 juil. 2008 à 11:48
Hi
le code peut trouver Largeur in Pixel
mais je voudrais aussi l hauteur  (Memo.height) !

 
function GetMemolenghtInPixcel(oMemo : TMemo): Integer;
var
i : Integer;
 
myCanvas : TCanvas;
begin
result := 0;
 
myCanvas := TCanvas.Create;
myCanvas.Font.Assign(oMemo.Font);
myCanvas.Handle := GetDC(oMemo.Handle);
 
for i:=0to oMemo.Lines.Count-1dobegin
if myCanvas.TextWidth(oMemo.Lines[i]) > result then
result := myCanvas.TextWidth(oMemo.Lines[i]);
end;
 
myCanvas.Free;
end;

6 réponses

Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
31 juil. 2008 à 11:37
Salut,

abs(Memo.Font.Height) * Memo.Lines.Count
3
Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 10
31 juil. 2008 à 00:44
Bonsoir,
... Memo.Height = sa hauteur
... Memo.Width = sa largeur
... tout ça en pixels
Pourquoi réinventer la roue ?

Cordialement, Bacterius !
0
Taktaky Messages postés 31 Date d'inscription lundi 21 mai 2007 Statut Membre Dernière intervention 21 août 2008
31 juil. 2008 à 01:12
j ai trouvée une fonction mais je ne sais pas comment ?

ici

 j ai essayerai  comme ça :
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.Text:=IntToStr(GetRichEditTextExtent(RichEdit1.Width));
end;
0
Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 10
31 juil. 2008 à 08:16
Bonjour,
je ne comprends pas ce que tu veux faire !
Edit1.Text := IntToStr(Memo1.Height);
Edit2.Text := IntToStr(Memo1.Width);

Voila !
Explique ton problème lol (ce que tu veux faire, pourquoi, etc ...)

Cordialement, Bacterius !
0

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

Posez votre question
Taktaky Messages postés 31 Date d'inscription lundi 21 mai 2007 Statut Membre Dernière intervention 21 août 2008
31 juil. 2008 à 09:22
Salut
je ne voudrais pas les Dimension de Memo:
Edit1.Text := IntToStr(Memo1.Height);
Edit2.Text := IntToStr(Memo1.Width);

cette Dimenssions sont const ; )
mais je voudrais les Dimension de Texte en memo en Pixel
Width = la plus largeur de Texte en Memo
Height = ???  peut être font.Height x (nombre de lignes)
0
Taktaky Messages postés 31 Date d'inscription lundi 21 mai 2007 Statut Membre Dernière intervention 21 août 2008
31 juil. 2008 à 11:48
c'est bonne idée merci : )
je voudrais aussi utiliser le même chose avec Richedit
Le problème avec Rechedit est le Font. Le Font
(Memo.Font.Height)
est ne pas le mémé dans toutes les Lignes

merci
0
Rejoignez-nous