FormのCreateイベント時にPolygon関数で
frmMain.Canvas.Polygon([point(1,1),point(1,100),point(100,100),point(100,1),point(1,1)])
のようにして四角形を描画しようとしてみたのですが表示されませんでした。
どなたかアドバイスをいただけませんでしょうか。
FormのOnCreateイベントで描画するのはFormが作成されたとき1回だけです。
このForm作成時は何度か再描画が行われているのか、ただ描画できていないのかはわかりませんが、OnCreateでは描画が反映されません。
OnCreateではなく、OnPaintイベントで描画してみてください。
OnShowの前のOnCreateで描画しても、まだFormは表示されていないので、Show時に再描画されて消えますね。
OnCreateで、Showをしてから書くと表示されます。わたしはこの方法を使ってます。
Show;
なにか絵を書く処理
Update;
でやると、しっかりします。
一瞬なんにも書いてないフォームが見えますねぇ、
OnPaintのほうがいいんでしょうか?
ありがとうございました。
いろいろな方法があるのですね。
とても勉強になりました。
たかみちえさんの方法でやってみたら再描画時に消されてしまったので
今回はOnPaintイベントを使おうと思います。
でも、例えばボタンを押したときにFormにランダムに点を打つといったように
したい場合はどうするのでしょうか。
…と素朴な疑問を感じましたが、取り合えず今は必要ないことですし、スレッド
違いかとも思いますのでこれにて「解決」とさせていただきます。
ツイート |