• 締切済み

リアルタイムで再描画

こんにちは。 Delphiを初めて1ヶ月の初心者です。 どうか、Windowのリサイズについてご教授ください。 MDIで画像を表示するプログラムを作成しています。 子画面をマウスドラッグでサイズ変更をしているとき、 マウス移動の間、図形連続的に再描画(縦横比を一定)しようとしています。 FormPaint内でClientWidth とClientheightの設定をしてもうまくいきません。 いい方法がありましたらご教授願います。

みんなの回答

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

スキルの問題で私が答えられるか解りませんけど、、、 Delphiのバージョンは? 上手く行かないコードを提示してみては?

関連するQ&A

  • Excelでの図形描画について

    Excel2007の図形描画で、連続した直線を作画する際に、角度を90°に固定方法を教えて下さい。1つの直線ならば、Shiftキーを押しながらドラッグすればできますが、連続した複数の直線では、これができません。

  • 画像リサイズとトリミング

    画像のリサイズと画像のトリミングが使いやすいソフトを教えてください。 条件は以下です。 Windows98対応 レジストリに書き込まない マウスドラッグで操作可能 リサイズで縦横比をキープ リサイズを美しく処理 BMP保存可能

  • エクセルの散布図グラフで、横比1:1の図形を作画したい

    エクセルの散布図グラフで、横比1:1の図形を作画したい 散布図グラフにより、図形を作画したいと考えてますが、 図形寸法により縦横の目盛間隔が変わります。 そのため、描画された図形の縦横の縮尺が変わり、縦伸びや横伸びした図形に なってしまいます。 これを回避して、常に縦横比1:1の散布図グラフの作画方法は、あるのでしょうか? よろしくご指導願います。

  • Word2010 図形に写真を挿入

    図形に図(写真)を挿入する際、 2007では描画ツール → 書式 →  図形の塗りつぶし →  パターン →  塗りつぶし効果 →  図より挿入すると図形が中心に縦横の比も変更なく入りました。  2010では図形の塗りつぶしのパターンがなく、図形の塗りつぶし →  図より挿入すると   丸いガラスボールの写真が楕円で挿入されます。 縦横比の変更なく2007の時のようにできる方法はないのでしょうか。

  • 曲線の描画方法

    VB2005でプログラミングをしています。 目標としては、曲線を描画して、更にその曲線をドラッグなどができるようにしようとしています。 ピクチャーボックスに曲線を描くのはDrawCurveでできましたがこれでは曲線の移動などはできないので、別の方法を探しています。 調べているとLineShapeというコントロールがあることを知り、曲線は無理でもこのLineShapeで作った直線のコントロールをグループ化して折れ線のようにし、さらにグループ化した折れ線をドラッグなどの処理が行えるようにできないかと模索しています。このような処理は可能でしょうか? 一応、LineShapeを繋ぎ合わせて折れ線はできましたが、マウスカーソルをこのコントロールの上に持っていくとやはり直線一本一本がバラバラでしか認識できません。マウスカーソルを持っていったときに折れ線として認識できるようにしたいのですが、いい案はないでしょうか?ご教授お願いいたしますm(_ _)m

  • VBを用いた対話型図形処理

    VB6で以下のような簡単な図形を扱うプログラムを作りたいのです。どこからとっかかればいいか教えてください。VBの経験は長いのですが図形処理は初めてです。 (1)描かれた線の上にマウスカーソルを置くと、線の長さを表示する。 (2)描画枠の隅にカーソルを持って行くと、カーソルの形が変わって、それをドラッグすると描画枠が変形する。(描画図形を拡大/縮小したい)

  • 図形に赤枠をつける

    指定の場所 例;C1に画像を挿入し、 挿入した画像を縦横比固定120パーセント、 枠を赤に太さを2.25でつけるマクロを書きたいのですがどうしても上手くいきません 赤枠と太さはどのように記述したらよろしのでしょうか? Sub 図形リサイズ縦横比固定120パーセント() With Selection.ShapeRange .LockAspectRatio = msoTrue '縦横比固定 .Width = .Width * 1.2 '120%に図形サイズ変更 End With ActiveSheet.Shapes With Selection.ShapeRange.Line .ForeColor.RGB = RGB(255, 0, 0) '赤枠に .Weight = 2.25 '線の太さを2.25に End With End Sub

  • Javascriptの質問です。

    Javascriptの質問です。 昨日からjavascriptを始めた初心者なのですが、すみませんが、以下のコードの不具合の訂正をお願いしたいのです。自分なりにあれこれやっては見ましたが、結論が見出せません。 昨日は、id="BOX" の部分を、windowをリサイズしたときに、縦横常に中央に表示させるといったものです。 問題点: (1)windowをリサイズたときに、動かない点 (2)DOCTYPE宣言すると、まったく機能しない。(DOCTYOE宣言とJAVASCRIPTの対応が理解できていないので。。とりあえず、DOCTYPE宣言無しでも機能すればいいかな?と思っております。IE8とfirefox3での表示を目指しています。) 恐れ入りますがよろしくお願いいたします。 ■HTML <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>無題ドキュメント</title> <link href="css/test1.css" rel="stylesheet" type="text/css" /> <script type="text/javascript"> <!-- function changeStyle(y,x) { /*変数トレース*/ document.write("関数CALL\n"); document.write(y+"/"); document.write(x); /*CSSの書き換え(CSS)を書き換えると位置をへんこうできるものと思っています。*/ document.getElementById("box").style.marginTop = y; document.getElementById("box").style.marginLeft = x; } // --> </script> <script type="text/javascript"> <!-- function relocate() { window.focus(); /*firefoxのwindowサイズとboxの大きさによりマージンを計算*/ if( 0 != window.innerHeight && window.innerHeight > 960){ y=((window.innerHeight - 960)/2); }else{y=0;} /*IEのwindowサイズとboxの大きさによりマージンを計算*/ if( 0 != window.innerWidth && window.innerHeight >1100){ x=((window.innerWidth - 1100)/2); }else{x=0;} /**/ if( 0 != document.body.clientHeight && document.body.clientHeight > 960){ y=((document.body.clientHeight - 960)/2); }else{y=0;} if(0 != document.body.clientWidth && document.body.clientWidth > 1100){ x=((document.body.clientWidth - 1100)/2); }else{x=0;} /*CSSの変更*/ changeStyle(y,x); } //--> </script> </head> <body onResize="relocate()"> <!-- イベントハンドラセット(リサイズ時にCSS変更)こちらが問題のようです。 --> <div id="box">123456</div> <!-- 目的のボックス--> <script type="text/javascript"> <!-- /*オンロード時に1度CSSを変更する。もちらは動作します。*/ relocate(); // --> </script> </body> </html> ■CSS @charset "utf-8"; /* CSS Document */ *{ margin: 0px; padding: 0px; } #box { background-color: #FF3300; height: 960px; width: 1100px; border: 100px none #999999; margin-top:0px; margin-left:0px; } よろしくお願いします。

  • VC++ ドラッグしながらの図の描画に関して

    描画に関して質問があります。 アクセサリのペイントツールのようにマウスドラッグしながら長方形を描画させたいのですが、 ドラッグの際に既に描画してあった長方形を消去する方法が理解できません。 具体的には以下のような方法です。 // ドラッグ中の描画処理 SetROP2( hDC, R2_NOT ); // 前景モードを変更 hPen = CreatePen( PS_DOT, 1, RGB(0, 55, 0) ); // 黒い点線のペンを作成 hBrush = (HBRUSH)GetStockObject( NULL_BRUSH ); // 空のブラシを取得 SelectObject( hDC, hPen ); // 作成したペンを使用するように設定 SelectObject( hDC, hBrush ); // 取得したブラシを使用するように設定 Rectangle( hDC, start.x, start.y, old_end.x, old_end.y ); // 四角形を描画 SetROP2とブラシは共に塗りつぶしを指定するものですが、これらを併用することによって何故既存の図形を消去していくことができるのかわかりません。 疑問になったのでブラシに関する記述を消去し実行してみると長方形内部の色が反転されましたが、これは理解できます。 しかし、これにブラシに関する記述を復元させることにより、なぜ内部が真っ白になるのかがわかりません。 また、塗りつぶしはSetROP2とブラシのどちらが先に行うのでしょうか?お手数ですが回答よろしくお願いします。

  • オフィス2007で複数の図形選択

    現在マイクロソフトのオフィス2007を使用しています。 これまでのオフィスソフトでは、図形を複数選択する際に、 図形描画ツールバーの中にある、矢印アイコンを使って ドラッグで一気に複数の図形を選択することが可能でした。 2007になって図形の書式リボンの中に、図形の選択ボタンが 表示されますが、これを押しても、これまでのように マウスドラッグでの一括選択ができません。 どのように操作すれば以前のようにマウスで選択ができるのでしょうか。 1つ1つ選択するのはとても面倒です。ぜひアドバイスのほど よろしくお願いいたします。

専門家に質問してみよう