名前 題名 ▼ Mr.XRAYさん > ▼ 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,'現在のペン位置から描画'); GIF,JPEG,PNG画像ファイル及びLZH,ZIPファイルをアップロードできます.600 x 1200 ピクセルを超える画像は縮小表示されます(画像クリックで拡大表示). (上限122000(120k)バイト) 削除キー Link