Zobacz poniższy przykład i może zrozumiesz o co tutaj chodzi! Teoretycznie wszystko się zgadza, ale zostaje jeszcze ten odstęp, więc stąd ta "moja granica"... Jeżeli rozumiesz, to zrobienie tego idealnie jest wręcz niemożliwe, bądź bardzo kłopotliwe, bo musiałbyś znać ten dolny odstęp przy każdej czcionce.
Chociaż istnieje łatwiejszy sposób, ale też kłopotliwy, bo musiałbyś napisać to na bitmapie i dochodzić Y sprawdzaniem pikseli po kolorze...
Nie wiem do czego Ci to jest potrzebne i nie wiem po co Ci taka precyzja...
var wys1,wys2, roznica, y:integer;
begin
with Canvas do
begin
brush.color:=clwhite;
Rectangle(Rect(0,0,width,height));
brush.color:=clgreen;
y := 25;
Font.name:='Arial';
Font.Size:=46;
wys1:=textHeight('AaBbYy');
TextOut(10,y,'AaBbYy');
brush.color:=clblue;
Font.name:='Times New Roman';
Font.Size:=10;
wys2:=textHeight('AaBbYy');
roznica := y+(wys1 - wys2);
TextOut(50,roznica,'AaBbYy');
end;