[表示 : 全て 最新50 1-99 101- 201- 301- 2chのread.cgiへ]
Update time : 09/27 14:11 / Filesize : 83 KB / Number-of Response : 342
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

ふらっとC#,C♯,C#(初心者用) Part48



1 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 23:56:27 ]
このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、
勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

前スレ
ふらっとC#,C♯,C#(初心者用) Part47
pc12.2ch.net/test/read.cgi/tech/1257067411/

111 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 13:50:16 ]
マージンは印刷しないサイズ、ハードマージンは印刷できないサイズ
ハードマージンは見なくて大丈夫だと思う

112 名前:デフォルトの名無しさん [2009/11/21(土) 14:14:08 ]
>>111 さんありがとうございます。
今作成中のアプリケーションは、
全国の何ヵ所かの家庭や店舗で利用してもらおうとしており、
それぞれの家庭や店舗のプリンタの機種が様々なのですが、
どんな機種でも、おおよそ決まった位置に明細を印刷しようと思っています。
この場合もマージンで問題ないでしょうか。
たびたびの質問で恐縮ですが、よろしくお願いします。

113 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 14:53:53 ]
>>112
印刷は所詮はアナログの世界なので、どうしても狂うことが出てくる。
オフセット(マージン)、縮尺は、ある程度印刷時に変えられるように作っておいたほうがいいよ。

114 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 15:22:26 ]
>>113
だから、前にもこのスレあたりで書いたと思ったが、そんな訳がないだろう、ってw

プリンタの実装がそんないい加減なものならどうして葉書の郵便番号なんか
ちゃんと枠内に印刷できるんだ。

テキトーなこと言う奴が多すぎるな。

115 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 15:30:58 ]
つーか、フチなし印刷できるプリンタ、できないプリンタでハードマージンは違うだろよ。
調整機能は必須。

116 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 15:35:52 ]
>>115
だから、そういうテキトーなことを言わないこと。
葉書印刷ソフトだけでも世の中にいろいろあるが、そんな「調整機能」が
付いたソフトは見たことがない。

そんな泥臭い作業を人間様に任せるようなダメ設計になってるのなら
windowsもページプリンタもこんなに普及してねえよ。

117 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 15:37:16 ]
これがゆとりってやつか・・・。

118 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 15:39:18 ]
www.yomiuri.co.jp/net/qanda/qanda081215.htm

> 「筆まめ」の「印刷位置微調整」機能
>
> 筆まめ19など、はがき作成ソフトには印刷位置をミリ単位で微調整する機能が備わっている。
> 筆まめの場合は、ファイルメニューの「印刷位置微調整」から利用する
> 郵便番号の位置だけを微調整する機能もある。



119 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 15:42:31 ]
>>116
         ____   
       / \  /\ キリッ
.     / (ー)  (ー)\      
    /   ⌒(__人__)⌒ \    <そんな「調整機能」が
    |      |r┬-|    |      付いたソフトは見たことがない。

     \     `ー'´   /
    ノ            \
  /´               ヽ              
 |    l              \
 ヽ    -一''''''"〜〜``'ー--、   -一'''''''ー-、.    
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))


          ____
        /_ノ  ヽ、_\
 ミ ミ ミ  o゚((●)) ((●))゚o      ミ ミ ミ    <.だっておwww
/⌒)⌒)⌒. ::::::⌒(__人__)⌒:::\   /⌒)⌒)⌒)
| / / /      |r┬-|    | (⌒)/ / / //  
| :::::::::::(⌒)    | |  |   /  ゝ  :::::::::::/
|     ノ     | |  |   \  /  )  /  
ヽ    /      `ー'´      ヽ /    /     
 |    |   l||l 从人 l||l      l||l 从人 l||l   バ   
 ヽ    -一''''''"〜〜``'ー--、   -一'''''''ー-、 ン
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒)) バ
                             ン



120 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 15:44:45 ]
>>118
それは古い精度の悪いプリンタ(現実にはあまりないが)を使っている人を
想定した「念のための機能」であって、>>115が主張するように必須の機能なんかじゃない。

通常はそんな馬鹿げたことをしなくても、少なくともmmオーダーの精度で
正確に位置決めされた印刷が行えるようになっている。

っていうか、印刷のコード書いたことがない馬鹿は黙っていた方がいいよ。

121 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 15:47:42 ]
で? ユーザーがどんなプリンタを使ってるのか特定できない以上、>>118みたいな
調整機能は必須だろ?

122 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 15:47:56 ]
というか、.NETだとそのためのプロパティがHardMarginX,HardMarginYなんだよ。
これで用紙の左上とプリンタの印刷可能領域(印刷時のハードウエア座標の原点)
のズレが取得できるようになっている。

123 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 15:47:58 ]
>そんな「調整機能」が付いたソフトは見たことがない。

124 名前:デフォルトの名無しさん [2009/11/21(土) 15:48:17 ]
プリンターの印刷可能領域に左右されずに、
用紙の左上から決まった場所に印刷するには、
例えば(100-ハードマージンX,200-ハードマージンY)
とすべきですか?それとも
例えば(100-マージンX,200-マージンY)
とすべきですか?
マージンはプログラム上で何も設定していません。
よろしくお願いいたします。

125 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 15:49:55 ]
>>121
だから、現実問題としてはそんなプリンタは市場にほとんど存在してない。
紙送りの精度が悪いので有名だったHPの10年前の製品だって、そんな機能が
必要になるほどズレたりはしない。

126 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 15:53:50 ]
まー、そう思うなら調整機能付けなきゃいいだけだわな。

実際、有名どころの年賀状印刷ソフトにはついてるし、俺もあとで修正するのは面倒だから、
そういう機能を付けるけど。

127 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 15:56:59 ]
>>124
用紙の、の場合は、マージンは使わない。
ハードマージンの分を含むか含まないかは、試してみてくれ

128 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 15:57:55 ]
HTMLエディタを作る場合の内部的なデータの持ち方は
どんなのがいいでしょう?


129 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 15:58:37 ]
機能によって違うんじゃね?



130 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 16:01:19 ]
データ実体はHTML&CSSだろうな

131 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 16:33:34 ]
プリンタによって1ページに収まったり収まらなかったりするんだから、
その手の調整機能は普通いるんじゃないの?


132 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 16:36:11 ]
         ____   
       / \  /\ キリッ
.     / (ー)  (ー)\      
    /   ⌒(__人__)⌒ \    <そんな「調整機能」が
    |      |r┬-|    |      付いたソフトは見たことがない。
     \     `ー'´   /
    ノ            \
  /´               ヽ              
 |    l              \
 ヽ    -一''''''"〜〜``'ー--、   -一'''''''ー-、.    
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))

133 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 16:46:33 ]
どうでもいいが、幼稚な奴が多いのな。
俺は馬鹿な奴は嫌いじゃないが、幼稚な奴とコミュニケーションができない
真性ヲタはどうしようもないクズだと思ってる。

134 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 16:51:07 ]
揚げ足取りで勝った気になる困ったちゃんは少なからずいるものだ

135 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 16:51:24 ]
>>133
お前みたいな幼稚なレスしかしない奴もクズだけどな

136 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 16:52:58 ]
僕.NEET
喧嘩はやめて

137 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 16:54:41 ]
みんなゴメン。

138 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 17:04:54 ]
>>133
俺も幼稚な奴は嫌いだけど論理的じゃない奴も嫌い
前2行をどう呼んだら3行目に繋がるんだ?

139 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 17:27:04 ]
幼稚な奴は小学校からやり直した方がいいな。

年賀状印刷ソフトに調整機能なんてついてない! とか言い張って、
ソースが提示されてるのに、現実問題としてそんなプリンタはほとんどない! か。

ほんと、テキトーなことを言う奴が多いなw



140 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 17:30:18 ]
プリンタはアナログの世界で動く機械であって、
必ずしもアプリ側で指定した内容でずれなく印刷できる保証がどこにもない。

で、プリンタドライバのユーリティーでもある程度調整は効くだろうけど、
それで無理なような突っ込んだ内容はアプリ側でもある程度対応できるようにしておくべきだろう、という話。
必要だと思わないならやらなきゃいいだけさ。
別にスレが荒れるような内容じゃない。

141 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 17:36:06 ]
>>114>>116 が釣り師ということで。この話題終了。

142 名前:デフォルトの名無しさん [2009/11/21(土) 17:44:15 ]
マージンは余白で、
ハードマージンは常用プリンターの印刷可能開始位置だよね。
ところで、
マージンの値をページ設定ダイアログから指定していないときは、
C♯上のマージンの初期値はいくらになるの?

143 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 17:46:21 ]
>>140-141
無知無能なくせにしつこいなお前さん。
本当にプログラマか?
っていうか、君(ら)は今までプリンタ使ったことないのかね。

1万前後で買えるキャノンやエプソンの最下位グレードのインクジェットだって
位置決めの問題なんかないんだよ。

そんなことは例えばワードで葉書印刷をしたってわかるし、
自分でコードを書いて印刷されたものを物理的に測定したって分かる。

馬鹿な癖に頭の中だけで考えているからそういうとんでもない勘違いをすることになる。

144 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 17:57:38 ]
俺、キヤノンiP3100の付属CD印刷ソフト使ってるけど、微調整しなきゃズレるぞ?

145 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 18:04:32 ]
>>144
俺もそれ使ってるけど微調整したことない

なんでクエスチョンマークをつけるんだ?

146 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 18:06:08 ]
同じプリンタで同じように印刷すれば、そりゃ、位置はズレないだろうよ。
ズレるようなら、それは不良品。

そんな話をしてるんじゃなくて、違うプリンタで位置がズレるか、って話。
印字位置の調整機能を持ったソフトなんて、それほど山のようにあるだろ?

もう釣りはいいから、さっさと死ねよ。

147 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 18:09:13 ]
>>145
微調整したことない?
妙だな、CDのメーカーによって変更しなきゃいけないのに
ああ、気にしてないってだけか

148 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 18:11:53 ]
>>146
だから、プリンタの違いによる物理座標の違いを補正できないような糞設計には、
プリンタ側もウィンドウズ側もなってはいないの。

何度も言うように、.NETでも2.0以降はHardMarginX、HardMarginYプロパティが
ちゃんと容易されていて、必要ならこういう差異をちゃんと補正できるようになっているんだよ。
ウダウダ言ってないで実際コード書いてみれば分かるから。
プリンタぐらい持ってるでしょ。

149 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 18:13:10 ]
同人でズレてるのは見かけるな。



150 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 18:16:41 ]
フォントなんて3だか9だかの倍数じゃないと、メーカーによって大きさがバラバラだったよね。

151 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 18:17:45 ]
なら、年賀状印刷ソフト会社にでも教えてやれよ。「調整機能は不要です!」って。

152 名前:デフォルトの名無しさん [2009/11/21(土) 18:27:13 ]
>>142
ですが、ご存知の方、教えてください…
(>_<)。

153 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 18:29:39 ]
「同じように印刷すれば、どのプリンタでも印字位置はズレない」

こんな命題が成り立つわけないのは自明だろ。全メーカーの全プリンタで検証して
はじめて成り立つわけだし。

俺はそんな検証したくないし、そもそも、位置ズレに悩まされたこともあるから、
調整機能を付けるよ。

154 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 18:29:50 ]
>>152
やってみればいいじゃん。

155 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 18:42:50 ]
万人が使えるUIなら当然微調整機能くらいは付けるわな

156 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 18:43:42 ]
このどうでもいい議論いつまで続くんだろう

157 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 18:44:37 ]
C#でグローバルIPを取得するにはどうすればいいですか?

158 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 18:46:26 ]
>>157
ルータに問い合わせるかリモホを表示するサイトにアクセスして
その結果を利用するか

159 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 18:46:52 ]
>>157
なんのグローバルIPをどんなアプリから取得したいんだよ?

LAN 内からルーターのグローバルIPが取りたい、ってことなら、UPnP か、
いったん外部にアクセスしてそっちからもらうか、だな。



160 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 18:48:32 ]
>>158,159
ルータに問い合わせるって簡単に出来ますか?
リモホを返すページ作ってアクセスさせてみます

161 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 18:52:13 ]
perl だけど、サンプルあったぞ。

hydro.energy.kyoto-u.ac.jp/~sekiyama/upnp/upnp-get-extaddr

162 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 18:54:43 ]
あ、SSI使えたので流用しようかと思いましたが、
ありがとうございます。使わさせて頂きます。

163 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 19:53:58 ]
デリゲートはメソッドをカプセル化する型

164 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 01:10:28 ]
SMTPClientを使ってメールを送るプログラムを作っていたのですが、
WinXPの自分のPCだと問題無く動作するのですが、
Vistaの友人のPCだと、

メールを送信できませんでした。
場所 System.Net.Mail.SmtpClient.Send(MailMessage message)
場所 ConnectForm.Sendmail_DoWork(Object sender, DoWorkEventArgs e)]

となり、詰まってます。smtpはVistaで使えないのですか?

165 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 01:17:08 ]
>>164
メール送受信関係はWindowsのアキレス腱。
だって、元々SMTPはメールサーバー同士でメールをやり取りするためのプロトコルだぞ。
メールサーバーをローカルに立てているWindows機なんてそこらにはないだろ?

ってことで、メール送信に関しては失敗したときの動作を必ず決めておくべき。
質問の答えだが、別にVistaだから使えないってことはない。
クライアントマシンの環境次第。例えばオレのマシンじゃ動かない。

166 名前:164 mailto:sage [2009/11/22(日) 01:34:04 ]
言葉足らずでした。
自分の場合、どの環境からも送信出来るようにと思い、
YahooやGoogleのフリーメールをsmtp経由で送信しているのですが、
それでもそんなものなんでしょうかね?

167 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 01:47:03 ]
>>166
だから、クライアントマシンの環境次第だと言ってるじゃないか。察してくれよ。
ちなみに今時SMTPの標準のポートが空いてるプロバイダなんてまずねーよ。

168 名前:デフォルトの名無しさん [2009/11/22(日) 07:02:38 ]
FillRectangleメソッドではRectangleFを指定できるのに、
DrawRectangleメソッドではなぜRectangleFが指定できず、Rectangleしか指定できないのでしょうか?
floatのX,Y,Width,Heightを直接記述するとデバッグでエラーにならないのだから---
RectangleFが指定できたらいいのですが・・・・・できますでしょうか。
ご存知の方よろしくお願いいたします。

169 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 09:05:49 ]
言われてMSDN見てみた。ホントに一貫性無いな・・・なんでだろ。
Graphics..::.DrawRectangle メソッド (Pen, Single, Single, Single, Single)
あるから出来ないわけないよね。
Graphics..::.DrawRectangles メソッド (Pen, array<RectangleF>[]()[])
に食わせるか、ラップ関数作って食わせるか。



170 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 09:16:37 ]
>>164
とりあえずエラーの場所だけ書かれてもな

171 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 11:07:51 ]
C#はCと違って文字列はアドレスはないの?

char *P="もじれつれつ";
みたいなことできない?

172 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 11:09:56 ]
うん。

173 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 11:13:21 ]
そうなんだ。不便だのぉ

174 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 11:17:12 ]
ポインタ管理しなくていいから楽でいいじゃん

175 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 11:21:37 ]
>>171
ポインタは無いけど、イテレータ(Enumerator)ならあるよ。
ただし、string自体がimmutableなので、読み取り専用になるけど

176 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 11:21:39 ]
GCって何ですか

177 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 11:22:43 ]
ググレ

178 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 11:29:40 ]
エンスーな写真月刊誌

179 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 12:10:22 ]
C#は、他プロセスにアタッチして、
そのプロセスが持つフォームのタイトルテキストを変更するような
プログラムを作成出来ますか?



180 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 12:13:32 ]
うん
大抵はDllImport祭りになるけど

181 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 12:14:59 ]
XPでVistaのガジェットのようにデスクトップに表示するアプリを作りたいのですが
どのようにすればいいのでしょうか

182 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 12:30:24 ]
作ればいいと思うよ

183 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 13:03:14 ]
文字列を区切って変数に代入するメソッドはどうすればいい?

class Test{
    public int x;
    public int y;
    public void func(string s){
    }
}

func("132/145")みたいに/で区切ると
x=132、y=145が入る
ようなことがやりたいんだけど。

184 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 13:05:34 ]
string や int の性的メソッドを調べてみるべし

185 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 13:14:19 ]
>>183
Splitかければいい。というか、こんなのは基本だろ?
分割できなかったときは、たぶんこの場合はnullを返すよりは例外を出したほうがいいだろうな。

186 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 13:16:33 ]
>>183
ttp://www.atmarkit.co.jp/fdotnet/dotnettips/317vbsplit/vbsplit.html

187 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 13:26:37 ]
unsafeでポインタ使えるから色々試してみるのも面白いよ
splitより簡単にできることはないけど

188 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 13:33:31 ]
実はただの分割じゃなく数式の解析が目的でしたとかなー

189 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 13:39:55 ]
>>71で、「ListViewで垂直スクロールバーが出ているかどうか知りたいんですが」ってカキコしたんだが
スルーされてしまったけど、やはり無理?



190 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 13:45:34 ]
それが人に物を聞く態度か?

191 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 13:54:07 ]
教えてくれたらロリ画像だします・・・

192 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 14:02:55 ]
そうしたら通報します・・・

193 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 14:05:16 ]
>>189
ClientRectangleの外にItem(かSubItem)が存在するかどうかで判定するとか。
…泥臭いやり方だなw

194 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 14:28:01 ]
>>193
どうもです。ListViewをOwnerDrawしている状態で、ヘッダーの長さを水平スクロールバーの出ない長さに調整したいのですが
縦スクロールバーを考慮いてその分ヘッダの長さを短くすると、バーが出ない時に白く残っちゃうんですよね
これを何とか消したいんですが他のアプローチ考えてみます

195 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 14:31:55 ]
>>189
ListViewのカスタムコントロール作ったことあるが、そのときはGetScrollBarInfoでやった
表示/非表示を知りたかったわけじゃなく、縦横それぞれのスクロールバーの
自動表示をコントロールしたくて実装した副産物
初心者スレでAPI薦めるってどうよって思ったが、正直ほかの方法は知らない


196 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 15:01:46 ]
>>195
ありがとうございます。一応サンプル有ったからこれからテストしてみようと思います
www.pinvoke.net/default.aspx/user32.getscrollbarinfo

197 名前:デフォルトの名無しさん [2009/11/22(日) 16:32:01 ]
PrintDocumentにて、商品明細書を作成しています。、A4縦の単表に100ほどの項目名称や金額をDrawStringメソッドやDrawRectangleメソッドを併用して記述しているのですが、プレビューが出るのに15秒かかってしまいます
(>_<;)。
項目数が多い場合、これくらい時間がかかるものなのでしょうか…。
皆様はどのような工夫をして、レスポンスを上げていますか?
よろしくお願いします。

198 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 16:35:50 ]
どのようにしているからレスポンスが遅いのかが分かりません。

各処理の区切りごとに時間を計測してどのボトルネックになている部分をまず探してみてはどうでしょう?

例えばDBからデータの取得が遅いとか色々あると思います。



199 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 16:37:15 ]
15秒は遅いな
単票なら座標計算に手間取る事は無いだろうから、データ取得あたりで時間掛かってないか見てみた方がいい



200 名前:デフォルトの名無しさん [2009/11/22(日) 17:05:30 ]
>>199
ありがとうございます。
データは、今は直接、DrawStringメソッド内に文字列を指定しています。

DrawStringメソッドにて文字列の右揃えや左揃えを細かく指定し、さらに背景にFillRectangleでグレーの網掛けも随所に入れています。
DrawStringメソッドと
DrawRectangleメソッド、
FillRectangleメソッドを
1つの関数に定義して、100項目ほどの文字列の描画について、全てその関数で行う形にしています。
いい方法と思いましたが、項目定義が増えるほど一気に重たくなりました
(T_T;)。

DrawStringメソッドの中でPointのみを指定し、Rectangleを使わないようにした方が軽いかもしるません。

これから随所を削りながら試験してみます。

もし、何かコツなどのご意見がありましたらぜひ教えてくださいっ…!!

201 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 17:11:35 ]
>>200
どちらかっつーと、データをレンダリングするのより
データを取ってくるのに時間が掛かってるんじゃないかと思うが。

コードの断片ごとに掛かってる時間を計測して、標準出力に出して眺めてごらんよ。

202 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 17:11:39 ]
たかだか100項目程度のそれで15秒もかかるとは思えない

生で書き込んでるんだったら 適当に文字を置換して晒してみれば?
座標計算の所が気になると言えば気になるけど

203 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 17:20:59 ]
PDFにしないからだよ

204 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 17:23:46 ]
>>203 え?

205 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 17:35:35 ]
>>200
半分の50項目だったら何秒?
半分コメントアウトして試してみて

206 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 18:04:12 ]
ListViewの話ですが、スクロールバーの検出に成功してカラムの調整まで成功しました
が、水平スクロールバーの再描画というか消えるところまでは出来ませんでした
もう少し頑張ってみます

207 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 18:41:52 ]
配列と列挙型ってどう違う?
いやまぁ違うところは違うけどさ。
列挙型でできることって配列使っても簡単に同じことできね?
列挙型の存在価値がわからんがなんのためにあるの?

208 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 18:43:33 ]
全く違うだろう
というかどういうのをして同じことって言うの?

209 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 18:46:00 ]
配列だと代入できんじゃん
わざわざラップクラス作る?
そのほうが無駄な手間だ



210 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 18:50:29 ]
>>207, 209
?????
何を言ってるんだ???


211 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 18:51:44 ]
>>209>>207に向けてるんだと思う。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<83KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef