別フォームを起動してそこに描画するには?

解決


ビギナー  2002-11-19 00:20:46  No: 2158  IP: [192.*.*.*]

Form1にあるボタンを押したら、Form2が起動してそこにグラフィックを描画するようにしたいです。
procedure TForm1.Button1Click(Sender: TObject);
begin
    Form2.ShowModal;
    with Form2.Canvas do
    begin
        TextOut(5, 5, '文字列表示');
    end;
end;
とやってみたのですが、まったく描画されずに困っています。何がどうダメなんでしょうか?お願いします。

編集    削除
WINK  2002-11-19 00:22:42  No: 2159  IP: [192.*.*.*]

Form2のOnPaintイベントに描画処理を書くように。

編集    削除
にしの  2002-11-19 01:01:01  No: 2160  IP: [192.*.*.*]

ShowModalを、ヘルプで調べてみましょう。
Form2を閉じないと、with以下が実行されません。

編集    削除
ビギナー  2002-11-19 01:40:58  No: 2161  IP: [192.*.*.*]

ありがとうございます。しかし、Form1にあるボタンを押すことで、ある計算を行い、その結果をForm2にグラフィックスとして表示したいのです。ですから、できれば、ボタン1を押したイベントの中で処理したいのです。
もしそれができなければ、計算結果の値をForm2に引渡したいのですが、そのやりかたがわかりません。

編集    削除
ビギナー  2002-11-19 01:55:01  No: 2162  IP: [192.*.*.*]

あ、
Form2.ShowModal;
ではなく、
Form2.Show;
とすれば良いんですね?

編集    削除
にしの  2002-11-19 01:56:30  No: 2163  IP: [192.*.*.*]

Form2.Canvasの使い方がわかっているのだから、同じような方法ですよ。
Form2に、Edit1を貼り付け、そのTextを変更したいのであれば、
Form2.Edit1.Text := 'ほにゃらら';
です。
計算結果をForm2に渡したいのであれば、ShowModalの前に渡しましょう。

編集    削除
ビギナー  2002-11-19 03:02:03  No: 2164  IP: [192.*.*.*]

にしの様、WINK様、ありがとうございました。解決できました。非常に助かりました。

編集    削除