喫茶XRAYトップページ

[スレッド全体
]

[4180] Re18:QuickReportでのプリンタ設定返信 削除
2011/1/8 (土) 18:04:23 小豚丸
▼ Saraさん

恥ずかしいですが、勉強不足で、下記の★のところでエラー(未定義識別子)
になるが、どう定義すればよろしいでしょうか?

> procedure TForm1.SetDefaultPrinter(Color : Integer);
> var
>   Device, Driver, Port: array[0..79] of char;
>   DeviceMode: THandle;
>   DevMode: PDeviceMode;
> begin
>   //プリンタ名、DEVMODE構造体を取得
>   Printer.PrinterIndex := ComboBox1.ItemIndex;
>   Printer.GetPrinter(Device, Driver, Port, DeviceMode);
>   Printer.SetPrinter(Device, Driver, Port, 0);
>   Printer.GetPrinter(Device, Driver, Port, DeviceMode);
>   if DeviceMode = 0 then begin
>     ShowMessage('Printer.GetPrinter エラー');
>     Exit;
>   end;
>
>   DevMode := GlobalLock(DeviceMode);
>   try
>     //必要なら、ここで DevModeを修正する
>     //↓ B5横 に設定する例
>     with DevMode^ do begin
>       dmColor := Color;//色指定
>     end;


>     ★SetDefaultUsePrinter(Device  {←これが「プリンタ名」です}
>                         ,True    {「通常使うプリンタ」に設定する}
>                         ,DevMode {DEVMODE構造体を設定する}
>                         );
>   finally
>     GlobalUnlock(DeviceMode);
>   end;
> end;
>




[4181] 関数やメソッドの作成方法返信 削除
2011/1/8 (土) 18:44:10 Mr.XRAY
▼ 小豚丸さん

> 恥ずかしいですが、勉強不足で、下記の★のところでエラー(未定義識別子)
> になるが、どう定義すればよろしいでしょうか?


えっと,これは,

> > procedure TForm1.SetDefaultPrinter(Color : Integer);

この行ではなくてですか?
いずれにしても,SetDefaultUsePrinterというのは,TForm1の関数,メソッドです.

procedure TForm1.SetDefaultPrinter(Color : Integer);

となっていますよね.SetDefaultPrinterの前に.(ドット)があります.
このドットの前はTForm1です.
つまり,SetDefaultPrinterはTForm1のメンバーです.
ということは,interface部にこの関数,メソッドの宣言がないとエラーになります.

public部でもprivate部もいいでから,この関数の宣言を書いてください.

http://mrxray.on.coocan.jp/Delphi/Others/A_IDETechnique.htm#02
ここには,HogeHogeというメソッドの例があります.


[4182] Re:関数やメソッドの作成方法返信 削除
2011/1/8 (土) 18:49:45 Mr.XRAY
▼ 小豚丸さん

それと,小豚丸さんは,PrintSetupでダイアログを表示して設定しているよう
ですが,提示のコードはプリンタの設定を確認できるコードです.

PrintSetupで設定した内容を,実際に設定するのは,私は確認していません.
とにもかくも,プリンタの設定が可能であることを確認することが必要です.
後はまた考えることにしましょう.


[4183] Re:関数やメソッドの作成方法返信 削除
2011/1/8 (土) 19:08:20 小豚丸
▼ Mr.XRAYさん


> いずれにしても,SetDefaultUsePrinterというのは,TForm1の関数,メソッドです.
>
> procedure TForm1.SetDefaultPrinter(Color : Integer);
>


すみません、気づきませんでしたが、関数の定義はわかりますか、
よく見ると、上記の2行の関数名は違います

SetDefaultUsePrinterの関数の内容は?
もしかすると012_PrintResolutionにありますか?

ちょっと見てみます。

[4184] Re2:関数やメソッドの作成方法返信 削除
2011/1/8 (土) 19:26:32 Mr.XRAY
▼ 小豚丸さん

> すみません、気づきませんでしたが、関数の定義はわかりますか、
> よく見ると、上記の2行の関数名は違います


ああっ,ゴメンなさい.私のポカです.
SetDefaultUsePrinterはこれです.[4150]で書いたものです.

http://delfusa.main.jp/delfusafloor/archive/www.nifty.ne.jp_forum_fdelphi/samples/00614.html


[4185] Re3:関数やメソッドの作成方法返信 削除
2011/1/8 (土) 20:04:19 小豚丸
関数を追加して、白黒の印刷ができました。

あとは、自分の書いているプログラムに整理して、使用できるように
工夫します。今は結構ごちゃごちゃな状態で......

理解できない部分はまた質問させていただきます。

大変参考になりました。

Mr.XRAYさん、 Saraさん
本当にどうもありがとうございました。

これで、職が続けられそうです。(泣...)



[4187] Re4:関数やメソッドの作成方法返信 削除
2011/1/8 (土) 20:49:30 Mr.XRAY
▼ 小豚丸さん

> これで、職が続けられそうです。(泣...)

そうですか.それは残念.いい経験になるかと思ったのですが(笑).
冗談はともかく,よかったです.
私も10年以上ぶりにQuickReportを,さわりだけですが操作してしまいました.


[4186] Re3:関数やメソッドの作成方法返信 削除
2011/1/8 (土) 20:07:58 Sara
▼ Mr.XRAYさん ▼ 小豚丸さん こんばんは

> > すみません、気づきませんでしたが、関数の定義はわかりますか、
> > よく見ると、上記の2行の関数名は違います
> ああっ,ゴメンなさい.私のポカです.
> SetDefaultUsePrinterはこれです.[4150]で書いたものです.
>
> http://delfusa.main.jp/delfusafloor/archive/www.nifty.ne.jp_forum_fdelphi/samples/00614.html


あぁ、ごめんなさい、端折りすぎでしたね・・・(^^;

上記URLにある処理をコピーして使っています。

[▼次のスレッド]
INCM/CMT
Cyclamen v3.82