▼ Andyさん
>色々と試しましたが、お手上げです、どうしたらいいんでしょうか。
^^^^^^^^^^^^^^^^^^^^^^^^^^^
そういう時は素直にあきらめましょう (^^;)
> サンプルで、リッチエディットの印刷がありましたが、リッチエディットの
> 最終の位置が分かりませんので、次のグリッドが印刷できません。
サンプルプログラム,RichtEdit2の場合でしたら,TFormatRange構造体に
Y座標であれば値が戻ってきます.ただし,これはTwips単位ですので0.1mm
単位に換算する必要がありますね.
例えば,サンプルのコードの例であれば,以下の様なコードを試してみて
下さい.
until (LastChar >= MaxLen) or (LastChar = -1);
plPrev1.Canvas.TextOut(200,TwipsToMili(Range.rc.Bottom)+50,'次の行');
finally
plPrev1.EndDoc;
end;
//===================================================================
// Twips単位の値を0.1mm単位の座標値に変換する関数
//===================================================================
function TForm1.TwipsToMili(V: Integer): Integer;
begin
Result:=Trunc(V*254.0/1440)
end;
参考までに,ペンの移動を伴う描画の後でしたら(文字列はペンではなくFontで
すので違います),描画後のペンの位置は,GetCurrentPositionExというAPIで
取得できます.
[例]
var
APos : TPoint;
plPrev1.Line(200,1000,600,600);
GetCurrentPositionEx(plPrev1.Canvas.Handle,Addr(APos));
//この時点でAPos.x=1000,APos.y=600となっている
plPrev1.Canvas.TextOut(200,APos.y,'現在のペン位置から描画');
|