Polygon関数での描画

解決


take  2002-05-22 21:57:20  No: 900  IP: [192.*.*.*]

FormのCreateイベント時にPolygon関数で
frmMain.Canvas.Polygon([point(1,1),point(1,100),point(100,100),point(100,1),point(1,1)])
のようにして四角形を描画しようとしてみたのですが表示されませんでした。
どなたかアドバイスをいただけませんでしょうか。

編集 削除
wing  2002-05-23 02:50:37  No: 901  IP: [192.*.*.*]

FormのOnCreateイベントで描画するのはFormが作成されたとき1回だけです。
このForm作成時は何度か再描画が行われているのか、ただ描画できていないのかはわかりませんが、OnCreateでは描画が反映されません。
OnCreateではなく、OnPaintイベントで描画してみてください。

編集 削除
にしの  2002-05-23 09:34:57  No: 902  IP: [192.*.*.*]

OnShowの前のOnCreateで描画しても、まだFormは表示されていないので、Show時に再描画されて消えますね。

編集 削除
たかみちえ  URL  2002-05-23 19:43:04  No: 903  IP: [192.*.*.*]

OnCreateで、Showをしてから書くと表示されます。わたしはこの方法を使ってます。
Show;
なにか絵を書く処理
Update;
でやると、しっかりします。

  一瞬なんにも書いてないフォームが見えますねぇ、
OnPaintのほうがいいんでしょうか?

編集 削除
take  2002-05-23 21:53:19  No: 904  IP: [192.*.*.*]

ありがとうございました。
いろいろな方法があるのですね。
とても勉強になりました。
たかみちえさんの方法でやってみたら再描画時に消されてしまったので
今回はOnPaintイベントを使おうと思います。
でも、例えばボタンを押したときにFormにランダムに点を打つといったように
したい場合はどうするのでしょうか。
…と素朴な疑問を感じましたが、取り合えず今は必要ないことですし、スレッド
違いかとも思いますのでこれにて「解決」とさせていただきます。

編集 削除