名前 題名 ▼ Mr.XRAYさん > 例えば,印刷プレビュー制御コンポーネント (以後,TplPrev) の印刷のコード > 関係でトラブルがあったとします. > > そのような場合,新規にプロジェクトを作成し,問題となる現象が発生する最低限 > のコードを作成します. > この新規のプロジェクトが重要です. > 新規であれば,他の影響を考えなくて済みます. > 新規にプロジェクトを作成するのは面倒だと思うかも知れません. > しかし,それが結局は解決への早道なのです. > > 例えば以下のようにします. > このコードは,描画ルーチンを別としています. > 別にしておくと,問題が発生した時に,この描画ルーチンを実行しないように > して,実行します.それで問題がなければ,描画ルーチン関係に問題があることが > 分かります.つまり,デバッグしやすいコーディングということになります. > > このようなコードを提示して頂ければ,このコードをコピペして, > 実際に動作を確認することができます. > (注: このコードは正常に動作します) > > //================================================================ > // 新規のプロジェクトに > // TButtonと拙作のTplPrevコンポを配置 > // > // 動作確認 Widnows 7 U64(SP1) + Delphi XE(UP1) Pro > //================================================================ > procedure TForm1.Button1Click(Sender: TObject); begin > //印刷用のコードを書く > plPrev1.BeginDoc; > try > //自作のルーチンを実行 > //引数にTplPrevのCanvasを渡す > HogeHoge(plPrev1.Canvas); > finally > plPrev1.EndDoc; > end; > //プレビュー表示開始 > plPrev1.ShowModal; > end; > > //---------------------------------------------------------------- > // 自作のルーチン? の例 > //---------------------------------------------------------------- > procedure TForm1.HogeHoge(ACanvas: TCanvas); begin > ACanvas.Pen.Color := clRed; > ACanvas.Pen.Width := 50; > ACanvas.MoveTo(0, 0); > ACanvas.LineTo(500, 500); > end; > > > これを,コードは何も示さずに,印刷のコードを実行したのですが, > うまくいきませんとか, > > ACanvas.Pen.Color := clRed; > ACanvas.Pen.Width := 50; > ACanvas.MoveTo(0, 0); > ACanvas.LineTo(500, 500); > > と実行したのですが,うまくいきません. > と言われても,このコードをどこで実行しているのか, > ACanvas が何を指しているのかは分かりません. > どのようにテストしていいのか悩んでしまいます. > > また,うまくいかないというのが,どういう状況なのかも分かりません. > エラーが発生するのか,そのエラーはどんな内容なのか ? > 印刷のプレビュー画面が表示されないのか ? 等々... > 更に,問題解決のためには,このような文章も書かなければなりません. > これは,ある程度の労力が必要で,かなりの時間の無駄になります. > > 最初のコードのようになっていれば,質問された方のコードのどこが問題なのか > を,おおよそ推測することができます. > また,どこで間違い,ミスや勘違いしているかの判断材料にもなります. > > 私はエスパーではありません !! (キッパリ) > こんなことを書いても,必要な方には読んでいただけない, > ということが分かっていながら書いてしまう私, > 『私ってバカよね.ホントにバカよね』 > > えっ !? 何ですか ? > 喫茶XRAY にこれだけいろいろ書く暇があるんだから,考えてやれば,ですか ? > ほっといてくれます ? GIF,JPEG,PNG画像ファイル及びLZH,ZIPファイルをアップロードできます.600 x 1200 ピクセルを超える画像は縮小表示されます(画像クリックで拡大表示). (上限122000(120k)バイト) 削除キー Link