喫茶XRAYトップページ


[6015] TplSetPrinter D2009→XE返信 削除
2012/5/23 (水) 19:35:52 Syake
こんばんは。

早速ですが・・・

plSetPrinter.SaveToFileでプリンターの設定を保存し利用して
いる場合ですが。

D2009で作成したアプリでSaveToFileしたファイルを、XEで作成
したアプリでLoadFromFileしてから、plSetPrinterのプロパティ
ー(今回はPaperNumber)を変更し、ShowSetupDialogしようとし
た際に、アドレス・・・違反が発生するようです。
やっかいなことにデバック実行時にはエラー表示はありません。
実際の実行時のみに発生します。

また未確認ですが、これに起因してかもしれませんが、印字も
正しく行えない(印刷できても印字抜けの箇所がある)ようで
す。 記述にやはりLoadFromFileして、plSetPrinterのプロパ
ティーを変更かけて印刷を行っている記述があったのでその辺
かもしれません。

全てではありません。
何事も無く処理できる環境のPCもありました。
最初はOSの関係かなと思ったのですがWinXP、Win7でもエラー
になるPCならないPC様々でした。
ただ、D2009で保存されていたファイルはPC毎に異なる為、
保存されたファイルの内容によるのかもしれません。

試行錯誤の末、LoadFromFileしたら、そのままSaveToFileしする
事で、エラーは出なくなりました。

一応D2009→XEなど移行の場合注意が必要かと・・・思います
が、いかがなものでしょうか?




[6017] Re:TplSetPrinter D2009→XE返信 削除
2012/5/24 (木) 11:52:41 snail
▼ Syakeさん

マシンが違うとプリンタドライバーも違ってエラーが発生することも
あります。

同一マシンで実行してエラーが起きるのでしょうか?


[6018] Re2:TplSetPrinter D2009→XE返信 削除
2012/5/24 (木) 13:47:41 Syake
▼ snailさん
> ▼ Syakeさん

> 同一マシンで実行してエラーが起きるのでしょうか?

こんにちは
同一マシンです。
同一PCで移行前の(D2009)アプリで作成した設定ファイルを移行後の
(XE)アプリで実行しています。

>試行錯誤の末、LoadFromFileしたら、そのままSaveToFileしする
>事で、エラーは出なくなりました.


ちょっと違いましたね。上記ではエラーは直りませんです。

(XE)アプリで"LoadFromFile"後何もせず"ShowSetupDialog"し、その
まま[OK]後に"SaveToFile"で書込み.
こうすると、移行後の(XE)アプリでもOKでした。

ちなみにShowSetupDialogで表示される各プロパティー値はファイル
に保持された内容で表示されているようでした。




[6029] Re3:TplSetPrinter D2009→XE返信 削除
2012/5/29 (火) 16:30:24 Mr.XRAY
▼ Syakeさん

ギャッ.またバグですかぁ.
デスクトップに,「要修正.txt」というテキストファイルがあるんですが,
このテキストファイルのサイズが,また少し増えました.


[6146] Re:TplSetPrinter D2009→XE返信 削除
2012/7/4 (水) 17:10:57 Mr.XRAY
さて,次はこれだな...

[6167] Re2:TplSetPrinter D2009→XE → D2007→EX返信 削除
2012/7/6 (金) 11:08:02 Syake
▼ Mr.XRAYさん
> さて,次はこれだな...

げろっ!?

D2009ってもってないし。
う〜む、D2007をD2009と思い込んで書いちまってる。

D2007→XEでした。 大変 m(_ _)m でした。


D2009ってUnicode対応だったですね。
問題を複雑化しちゃいましてすいません。

年なもんで、ボケでます・・・。


[6172] Re3:TplSetPrinter D2009→XE → D2007→EX返信 削除
2012/7/6 (金) 16:23:14 Mr.XRAY
▼ Syakeさん

> 問題を複雑化しちゃいましてすいません。

お気遣いなく.
何にしても,何か問題となる現象があれば,D6以降で全てテスト
する予定ですので.
今回,もし修正ができれば,D5は動作確認の対象からはずす予定です.
もう限界.
前のバージョンが必要な方は,メール対応とする予定です.

[6191] Re4:TplSetPrinter D2009→XE → D2007→EX返信 削除
2012/7/12 (木) 19:26:33 snail3
一応ご報告。今回の件とは関係ないと思いますが
プリンタのインストール台数によっては create で死んでしまうので
下のように修正してみました

constructor TCustomplPrev.Create(AOwner: TComponent);
begin
  inherited;
  FUseOriginPaperSize  := False;
  FTempSetPrinter      := TplSetPrinter.Create(Self);
  FTempSetPrinter.Name := 'Default';
  FNoPrinter           := FplSetPrinter.PrintersCount=0;
  if Printer.Printers.Count < 1 then                                 // A 2012/07/12
    MessageDlg( '*E:No Printer(plPrev)', mtInformation, [mbYes], 0 ) // A 2012/07/12
   else                                                              // A 2012/07/12
  begin                                                              // A 2012/07/12
    if Printer.Printers.Count <= Printer.PrinterIndex then           // A 2012/07/12
      Printer.PrinterIndex := 0;                                     // A 2012/07/12
    if FNoPrinter=False then FTempSetPrinter.PrinterName :=Printer.Printers[Printer.PrinterIndex];
  end;


[6192] Re5:TplSetPrinter D2009→XE → D2007→EX返信 削除
2012/7/12 (木) 20:21:02 Mr.XRAY
▼ snail3さん,どうもです.

> 一応ご報告。今回の件とは関係ないと思いますが

今ですね.前にあったバグ関係も見直していますが,
難航しています.貴重な情報です.サンクスです.
しかし,皆さん,スキルありますね.
他の人が作成したコードを修正してしまうんですから.
いえ,そのためにもソースコードつけている意味があるんですが...


[6227] TextOut 塗りつぶしてから返信 削除
2012/7/27 (金) 10:13:45 snail
こんにちは、他人のプログラムをいじることしかできない snail3 です。
1から考えるのは大変ですね。しかも色々と情報を公開している
Mr.XRAY さん本当に尊敬しています。

ところで、またまた勝手なお願いです。

>今ですね.前にあったバグ関係も見直していますが,

TextOutですが現行 Brush.Style が bsClear 固定になっています。
文字を上書きしたい場合もあるので、引数で指定できると便利だと
思います。もし修正する機会がありましたらついでにお願いします。


procedure TCustomplPrev.TextOut(X1, Y1: Integer; Text: String);
begin
  FCanvas.Brush.Style := bsClear;   // ←決めうち
  FCanvas.TextOut(X1, Y1, Text);
end;
  ↓こんな風に直していただけるとうれしいです。


procedure TCustomplPrev.TextOut(X1, Y1: Integer; Text: String; ArgTBrush : TBrushStyle = bsClear );
begin
// D 12/07/28  FCanvas.Brush.Style := bsClear;   //
  FCanvas.Brush.Style := ArgTBrush;   // A 12/07/28
  FCanvas.TextOut(X1, Y1, Text);
end;


[6228] Re:TextOut 塗りつぶしてから返信 削除
2012/7/27 (金) 13:32:50 Mr.XRAY
▼ snailさん,どうもです.

> TextOutですが現行 Brush.Style が bsClear 固定になっています。
> 文字を上書きしたい場合もあるので、引数で指定できると便利だと


なるほど,これは確かに.決めうちは,ちょっとマズイ仕様でしたね.
呼出す前に設定してもクリアされてしまいますよね.ハハハッ.
「デスクトップ」にある「要修正リスト」に追加しました.

>今ですね.前にあったバグ関係も見直していますが,

のハズだったんですが,
最近の更新状況から,もしかしてバレているとは思いますが.
かなり昔のや,最近のやつなど,問い合わせ,掲示板等の関係を
ランダムにやっています.
重要性や優先順位は無視です (~^;

結果的に「これは必要ないだろ」と削除したのもあります.
どかこで区切りをつけないと,泥沼ですわ.

[6230] Re2:TextOut 塗りつぶしてから返信 削除
2012/7/27 (金) 14:37:00 Mr.XRAY
> なるほど,これは確かに.決めうちは,ちょっとマズイ仕様でしたね.

しかし,先日の矩形範囲の画像の... が左右上下の判定を入れ忘れたり,
どうして,私はこうなんでしょうね(汗)

[6231] Re3:TextOut 塗りつぶしてから返信 削除
2012/7/27 (金) 17:52:44 snail3
後から考えると汎用性を持たせておけば良かったと思うことは多々ありますよね。

作っている時は目的に合えばよいので、汎用性よりもスピード。
特に作りたいものがはっきりしているときはターゲット以外では
動作しないソフトをよく作っちゃいます。


昔は引数の数を変更すると大変な目に遭いましたが、
今は引数を省力できるので助かっています。


>しかし,先日の矩形範囲の画像の... が左右上下の判定を入れ忘れたり,
>どうして,私はこうなんでしょうね(汗)


賢者達に過ちがなかったとすれば、愚者達は絶望するしかないであろう。

byゲーテ


[6232] Re4:TextOut 塗りつぶしてから返信 削除
2012/7/27 (金) 20:26:57 Mr.XRAY
> 賢者達に過ちがなかったとすれば、愚者達は絶望するしかないであろう。

う〜む.奥深い.
ゲーテですか.
「若きウェルテルの悩み」はるか昔読んだことあります.
《あらずながもの学問... 》(違ったかな?)
慰めのことばと受け取っておきますです.

> 作っている時は目的に合えばよいので、汎用性よりもスピード。
> 特に作りたいものがはっきりしているときはターゲット以外では
> 動作しないソフトをよく作っちゃいます。


後で思ったのは,今回のsmail3さんのは,「想定外」です.
ハッキリ言って.ハイ(笑)

[6233] Re5:TextOut 塗りつぶしてから返信 削除
2012/7/29 (日) 11:20:35 snail3
> 後で思ったのは,今回のsmail3さんのは,「想定外」です.
> ハッキリ言って.ハイ(笑)


これをMS用語では「仕様外」といいます。

マスコミ・大衆用語では「欠陥」。
こういっと事を欠陥とたたく人が沢山います。 :-)




INCM/CMT
Cyclamen v3.82