[過去ログ] ふらっと C#,C♯,C#(初心者用) Part137 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
362: (ワッチョイ bbb5-MrO9) 2018/05/06(日)13:14 ID:gzoDeGmX0(1/4) AAS
垂直同期しろ。
363
(1): (アウアウエー Sa82-oFLj) 2018/05/06(日)13:31 ID:o/aLqSU5a(1) AAS
>>361
やってみたけとちらついたりはしないねw
ただフレームレートが低いから滑らかに見えないだけ
364
(3): (アウアウウー Sacf-pRpi) 2018/05/06(日)15:35 ID:MOQB+J+Ha(1) AAS
解決のヒントにはならないだろうけど

ちらつきって何かということについて
すでに表示されてるものが一瞬透明に見えるから表示がおかしく見えること

たとえば半径100の円が横に5ドット動くとする
普通に考えたらほとんどの円に背景は隠れたままだけど何も考えないで適当にやると
背景が一瞬見えてしまう

一度円を消してなにもない状態を表示して
省2
365
(1): (ワッチョイ 03c3-XJxX) 2018/05/06(日)18:19 ID:9GXSG5IC0(6/10) AAS
>>363
環境の問題ですか・・・
一応ディスプレイのリフレッシュレートは60Hz、タイマー設定が50msだと20Hzあれば
十分ですので、あまり関係ない気がするのですが
でも私の環境でしか出ないのであれば、環境依存かもしれません

>>364
これを避けるためにダブルバッファリングをするわけですし、書き換えた後のビットマップを
省1
366: (ワッチョイ bbb5-MrO9) 2018/05/06(日)18:22 ID:gzoDeGmX0(2/4) AAS
だからハードの違いだって言ってんだろw
367
(1): (アウアウエー Sa82-oFLj) 2018/05/06(日)18:25 ID:w10wIaHya(1) AAS
>>365
いやいや何でそういう話になるのw

たぶん環境の問題なんかじゃなく、あなたが低フレームレートに起因する
カクカクした動きをちらつきだと誤認してるだけだと思うよw
368: (ワッチョイ bbb5-MrO9) 2018/05/06(日)18:30 ID:gzoDeGmX0(3/4) AAS
アホばっかり。
369
(1): (ワッチョイ 03c3-XJxX) 2018/05/06(日)18:55 ID:9GXSG5IC0(7/10) AAS
>>367
カクカクした動きとチラつきを同一視しているわけではありません
>>364
が書いたように、今回の例だと黒い円が一瞬消えているような感じがします
移動量の x += 10; をもっと少なくすれば目立たなくなりますが、それでも
なんとなく嫌な感じがします
でも言葉で説明するのは難しいですね
省5
370
(4): (ワッチョイ 1e9a-XJxX) 2018/05/06(日)19:33 ID:7/UIZFPx0(1/3) AAS
ちょっと改変して逆にチラツキをわかるようにしてみた
外部リンク:ideone.com
WinFormプロジェクトを新規で作って元のソースを全部消したうえで、このソースを既存の項目として追加
上がPictureBoxで下がPanel
>>369
PictureBoxのダブルバッファがデフォルトで有効なのは知っているのを確認したので
その上でPanelはデフォルトでダブルバッファが有効だというのを念頭に入れてコードを実行してほしい
省8
371: >>370 (ワッチョイ 1e9a-XJxX) 2018/05/06(日)19:37 ID:7/UIZFPx0(2/3) AAS
ごめん
>Panelはデフォルトでダブルバッファが有効だというのを念頭に入れて
Panelはデフォルトでダブルバッファが無効だというのを念頭に入れて
の間違い
372
(2): (アウアウエー Sa82-oFLj) 2018/05/06(日)20:17 ID:LW3/RgRJa(1/3) AAS
うーんw

>>360のコード自体がダブルバッファリングの実装なので、
少なくともGDI+を使う限り、これで本当にちらつくなら何をやってもちらつき回避は不可能。

何度も言うけど、少なくとも俺の環境では低フレームレート特有の不自然さはあっても
フリッカーは確認できない

しつこいようだけど、俺は質問者がちらつき(フリッカー)がどういう現象か
理解してないだけのように思う
373: (ワッチョイ 1fe3-jSAq) 2018/05/06(日)20:20 ID:j24ysXtO0(2/2) AAS
まあ、unity使ってもDirectX使ってもスクロールとかなめらかにならないしね
グラボも汚いってのも考慮に入れる
市販のゲームでもスクロールしてるときはカクカクグシャグシャはデフォ
374: (ワッチョイ 03c3-XJxX) 2018/05/06(日)20:21 ID:9GXSG5IC0(8/10) AAS
>>370
ありがとうございます
私が確認しても、確かに上下で明らかにチラつきが違い、下ははっきりとわかります
上はほとんどわからないレベルですね

PictureBoxもPanelも、どちらも出来上がったビットマップを貼り付けているのですから
同じ表示になりそうな気がしますが違いますね
これをちゃんと理解できれば解決できそうです
375: (アウアウエー Sa82-oFLj) 2018/05/06(日)20:36 ID:LW3/RgRJa(2/3) AAS
>>370のコートだとたしかにフリッカーが確認できるねw
>>372は撤回します
376
(2): (ワッチョイ 03c3-XJxX) 2018/05/06(日)20:39 ID:9GXSG5IC0(9/10) AAS
>>372
私が「チラツキ」と表現しているのは、>>370が上げてくれたプログラムの
下側、panelで発生している現象です

私の理解では、>>370でなぜ表示に違いが生じるのかがわかりません
どちらも、加工後のcanvasを貼り付けているはずなのに

>>370でやっていることは、ダブルバッファリングではないのでしょうか?

>>370のプログラムを実行してみて、違いはPictureBoxをウィンドウに直接
省3
377
(1): (ワッチョイ 1e9a-XJxX) 2018/05/06(日)20:49 ID:7/UIZFPx0(3/3) AAS
外部リンク:ideone.com
蛇足だろうけどnew BitmapじゃなくPictureBox.Imageを直接描き変えるもの
>>376
370で何をしたかったかというと「ダブルバッファリングではこれ以上改善できない」事の証明
>panelを置いてその上にpictureBox1を置いてます
それは多分関係ない。panelに背景を設定すると話が変わると思うけど
実際に改善するには移動量を少なくして滑らかに見せるくらいしかおもいつかない
省1
378: (ワッチョイ 03c3-XJxX) 2018/05/06(日)21:02 ID:9GXSG5IC0(10/10) AAS
>>377
試してみました
>>370と変わらない感じですね
これまで質問してきた趣旨とは変わってしまいますが、

Graphics g = Graphics.FromImage(pictureBox1.Image);

これでビットマップを書き換えた後に pictureBox1.Image を書き換えていないと
いうことは、いちいち canvas ビットマップを用意して細工しなくてもよかったと
省5
379: (ワッチョイ 7fd3-jSUp) 2018/05/06(日)21:19 ID:IbwjU9Qn0(2/2) AAS
下PanelはBackgroundImage使ってるのが悪いんじゃねえかなあ

canvasはPanelのPaintで描画するようにして
PanelのDoubleBufferedをtrueにするかOnPaintBackgroundの無効化でチラ付かなくなったよ

あとチラつきとは関係ないけどお行儀的には再描画はTickで
Invalidate(true)呼び出してPaintのタイミングはフレームワークに任せるべし
Tick毎に無駄にImage/BackgroundImageに突っ込んでるから結果的に自分で再描画してるけど
380: (アウアウエー Sa82-oFLj) 2018/05/06(日)21:52 ID:LW3/RgRJa(3/3) AAS
ああ、やっぱり俺の認識で合ってるねw
何だかおかしいと思ったが

>>376
フリッカーを誤解してないのは分かったけど、>>360のコードでフリッカーなんか
発生しないってだから
381: (ワッチョイ ea27-0vvG) 2018/05/06(日)23:08 ID:s/HjZ7Qd0(1) AAS
>>350
それは参照渡しになってたわけじゃない
C#の参照渡しはhoge(ref list)のようにrefがつく
あなたがハマったのは参照の値渡しでインスタンスは複製されないということ

ぺらぺらの入門書とかだとわからんが、ジェネリックやクラスをちゃんと学べる程度の本なら載ってるはず
382: (ワッチョイ bbb5-MrO9) 2018/05/06(日)23:23 ID:gzoDeGmX0(4/4) AAS
グラボの性能差だから、ちらつき。
383: (ワッチョイ 8a7f-NrvC) 2018/05/06(日)23:49 ID:5astaXB20(1) AAS
>>350
List固有の問題ではなく、classは全て参照型だからだ。
だから、=で代入しても同じオブジェクトを指すだけ。
ちなみにstructは値型。こっちなら=で代入したらオブジェクトが複製される。
384
(1): (アウアウエー Sa82-oFLj) 2018/05/07(月)01:29 ID:inVQGvpaa(1/4) AAS
>>360をFPSと速度を変えられるようにしてみたけど
思ったより面白くもないし動作も滑らかじゃないなw
どっちにしろやっぱりフリッカーは発生しない
外部リンク:ideone.com

ところで、タイトルバーをドラッグしたりすると画面の更新が止まる問題を
回避する方法ってなかったっけ?
385: (アウアウエー Sa82-oFLj) 2018/05/07(月)01:32 ID:inVQGvpaa(2/4) AAS
ああ、今思ったけど、FPSは本当は実測した値を表示すべきだねw
>>384はタイマーのインターバルから計算した理論値で実測値じゃない
386
(1): (ササクッテロラ Sp23-MrO9) 2018/05/07(月)01:32 ID:3karsGmmp(1/2) AAS
グラボやドライバーの違いで発生する問題を自分のところじゃ発生しないからって頭ごなしに否定する奴はどうして生きてるんだろうな?
387: (アウアウエー Sa82-oFLj) 2018/05/07(月)01:42 ID:inVQGvpaa(3/4) AAS
>>386
それは君が勝手にそう思ってるだけw
そんな問題はWin9xの時代だって存在しなかったよ
っていうか、言っちゃわるいけどフリッカーが発生する原因を理解していればそんな間抜けな台詞は
出てこない
388: (アウアウエー Sa82-oFLj) 2018/05/07(月)01:43 ID:inVQGvpaa(4/4) AAS
なんか垂直同期(笑)とか書いてるのもいたけど、
頭の中80年代で止まってるんじゃなかろうかw
389
(1): (ワッチョイ de8a-a7mP) 2018/05/07(月)04:32 ID:S2Y5gzQd0(1) AAS
AA省
390
(1): (ワッチョイ 1e80-pKnf) 2018/05/07(月)06:24 ID:SlIACPlK0(1) AAS
プロパティだけでは無理
各列のSortModeはAutomatic以外にして
ColumnHeaderClickイベントで自分でソートする必要がある
実際にどうやってソートするかはDataGridViewに表示してるデータをどうやっているか次第
ところで下の状態で1番目の方のカラムヘッダをクリックしたらどうなるの?
とか色々場合があってUIというかUX?を決定するのが結構面倒
391: (ドコグロ MM33-XUQH) 2018/05/07(月)06:43 ID:UbBhnDZYM(1) AAS
さすがに垂直同期はネタだろ
釣られる奴がいるとは思わなかったけど w
392: (ササクッテロラ Sp23-MrO9) 2018/05/07(月)07:18 ID:3karsGmmp(2/2) AAS
ググって事実を知ったんだな。そんなに悔しいのか?
393: (ワッチョイ 1e80-SIjl) 2018/05/07(月)08:25 ID:H7YotaIo0(1) AAS
>>389-390
複数列でのソートは、Kotlin なら、

配列.sortedWith(compareBy({ 列1 }, { 列2 }))

C# は、よく知らないけど、こういう感じ?

配列.OrderBy(列1).ThenBy(列2)
394
(1): (ワッチョイ 0a5d-N4mI) 2018/05/07(月)14:38 ID:iApxgodj0(1/2) AAS
教えてください
キャストが上手くできずに困っています
具体的には、VisualStudioでデバッグのウォッチウィンドウに

Enumerable.Empty<int>() is IEnumerable<object>

と入力するとtrueと表示されるので少なくとも条件が整えば
IEnumerable<int> は IEnumerable<object> に
キャストできるとおもうのですが、プログラム上で安直に
省9
395
(1): (アウアウエー Sa82-oFLj) 2018/05/07(月)18:57 ID:cAXvX5WKa(1) AAS
>>394
値型は不変だったような
外部リンク[html]:ufcpp.net

イミディエイトだとs演算子がtrueを返す理由は分かりませんw
何でしょうね
396: (ワッチョイ 0a5d-N4mI) 2018/05/07(月)21:52 ID:iApxgodj0(2/2) AAS
>>395
レスどうもありがとうございます。その後色々と試してみると、プログラムで

Console.WriteLine((Enumerable.Repeat(4649, 1) as IEnumerable<object>)?.First() ?? 184);

を実行すると画面には184と表示され、教えていただいとことと辻褄が合うように思います
また、これまでの結果から考えてウォッチウィンドウで

(Enumerable.Repeat(4649, 1) as IEnumerable<object>)?.First() ?? 184

の値を調べれば4649と表示されるのかなと思いきや「メモリを読み取ることができません」と表示されたので、
省14
397
(1): (ワッチョイ faeb-r3te) 2018/05/09(水)00:08 ID:98vw71AM0(1/2) AAS
名前空間A と名前空間A.B がある場合に、A.B内からAのクラスを扱うにはどうすればいいのですか?
398: (ワッチョイ 1e81-fCfW) 2018/05/09(水)01:14 ID:KTiGjU5t0(1/2) AAS
>>321
Aをusingすればよい
399
(1): (ワッチョイ 1e81-fCfW) 2018/05/09(水)01:15 ID:KTiGjU5t0(2/2) AAS
なんかすげーレス間違えたけど
>>397
400: (ワッチョイ 1fe3-jSAq) 2018/05/09(水)01:47 ID:lSrhXmV/0(1/2) AAS
そもそも名前空間ってどうやって扱うのが正しいの?
401: (ワッチョイ faeb-a7mP) 2018/05/09(水)02:09 ID:98vw71AM0(2/2) AAS
>>399
クラスとは違って、やはりそうやって使うものなのですか
402: (ササクッテロラ Sp23-MrO9) 2018/05/09(水)02:25 ID:PD0iDBLsp(1) AAS
完全表記しても良いんだよ?
403: (ワッチョイ cf17-jSUp) 2018/05/09(水)17:57 ID:8iDq54Sd0(1) AAS
嫌なら全部同じ名前空間内に入れ込んでしまえ
悩まなくて済むぞ
404: (ワッチョイ 1fe3-XJxX) 2018/05/09(水)18:15 ID:GFIhYWfG0(1) AAS
別に名前空間分ける意味ないよな。
405
(1): (ワッチョイ 53b3-EG9I) 2018/05/09(水)18:19 ID:nbiQ9nbF0(1) AAS
分業の為の仕組み
406
(4): (ワッチョイ 1fe3-jSAq) 2018/05/09(水)19:48 ID:lSrhXmV/0(2/2) AAS
>>405
逆に無駄な混乱が起きない?
同じ名前のクラスとかあるとちょっと面倒じゃない?
407: (ブーイモ MMef-fCfW) 2018/05/09(水)19:49 ID:D7X0frHnM(1) AAS
C#好きだけどnamespaceでネスト一つ深くなるのはあかんわ
408: (スッップ Sdaa-xC2/) 2018/05/09(水)20:08 ID:4zjT3ksId(1) AAS
>>406
全て自分で書くコードならいいんだけどね。サードパーティのライブラリのクラスと衝突する可能性なんていくらでもあるから。
409: (ワッチョイ 03e7-m5Zl) 2018/05/09(水)20:10 ID:QZYGN7xi0(1) AAS
>>406
書き分けのために命名が歪むのは良くない
NM1.Class/NM2.Class
NM1Class/NM2Class
単にプリフィクス付けるだけなら
名前空間があろうとなかろうとやってる事は同じ
410: (ワッチョイ 8ab3-XUQH) 2018/05/09(水)20:22 ID:SavMNDDu0(1) AAS
>>406
むしろ同じ名前でも被らないようにする仕組みなんだが...
411: (ワッチョイ bbb5-MrO9) 2018/05/09(水)20:54 ID:EkWsGx0u0(1) AAS
やたら長い名前付けて重複を避けるのさ。
ダイビングがかったるいって?
最初のusingに書くだけだから大丈夫。
412
(1): (アウアウエー Sa82-oFLj) 2018/05/09(水)21:00 ID:EHFfoX53a(1) AAS
>>406
自分(同じチーム)で同じ名前の違うクラスが必要になるケースは
少ないが(ないことはない)他人が書いたライブラリで既に使われているのと
同じ名前が必要になるケースなんかいくらでもあるよw

例えばSystem.Drawing.Point以外のPointが使えなかったら困るでしょ

あと、名前空間の目的は名前のバッティングの回避だけじゃない。
むしろ一番の目的は分類と整理でしょ。
省5
413: (ワントンキン MMa3-k/8h) [sage釣] 2018/05/10(木)00:36 ID:yXMj8vMdM(1) AAS
using エイリアス ディレクティブ でggr
414
(1): (ワッチョイ 6de3-V2If) 2018/05/10(木)01:45 ID:m/SOSTAZ0(1/2) AAS
>>412
普通にdrawingのcolorとmediaのcolorがバッティングしてるじゃん
それと自作のcolorとこれまた別の奴の作ったcolorがバッティングするだけでもう面倒臭くて死にそうになる
415
(1): (ワッチョイ 6de3-V2If) 2018/05/10(木)01:55 ID:m/SOSTAZ0(2/2) AAS
もっというとwpfでも別のcolor作ってんじゃん
バッティングうぜぇんだよ

こんな簡単なクラスでもう再利用効かないんだから名前空間まで作って管理するなよバカっタレかよ
当のMSからもうまともなことやってねぇっていうかできないんだから
いい加減ファンタジー設計はやめるべき
いや、もうファンタジーじゃないな
メルヘンの領域まで入ってる
416
(1): (アウアウエー Sa13-5wbU) 2018/05/10(木)02:19 ID:di97fd/ta(1) AAS
>>414-415
何を言ってるのか意味がわからねいよ。
417: (ワッチョイ 237f-iSle) 2018/05/10(木)02:30 ID:yIfUPK8/0(1) AAS
この程度で死ぬほど面倒臭がってたら、プログラミング自体が向いてないな。
418: (ワッチョイ 23d2-UqMB) 2018/05/10(木)04:06 ID:R4f/WJPq0(1/2) AAS
C#8.0のpreviewきましたねえ
外部リンク:github.com
419: (ドコグロ MM93-V2If) 2018/05/10(木)07:27 ID:1WB9uyi8M(1/2) AAS
>>416
バカじゃん
何でwinformにcolorあるのにwpfでも作ったの?
再利用できてないじゃん
役に立たないじゃん
名前空間分けてそれで?
新しいもの作ったら元気一杯に捨ててるじゃん
省1
420: (ワッチョイ 7daf-RQhD) 2018/05/10(木)07:37 ID:CKE2Ak/10(1) AAS
Color構造体とColorsクラスの事かな?
421
(1): (ワッチョイ cb81-nFcL) 2018/05/10(木)07:48 ID:M9xdMPFN0(1) AAS
こいついつものアレだろ
触るな
422
(1): (ドコグロ MM93-V2If) 2018/05/10(木)08:08 ID:1WB9uyi8M(2/2) AAS
>>421
反論できないならcolorクラスはもう作らせないぞ
423: (アウアウウー Sa89-27Jw) 2018/05/10(木)09:17 ID:l4uhHAvqa(1) AAS
全く話題になってないけどC#7.3も正式リリースされたぞ
念願の where T : Enum
424
(2): (ワッチョイ 2dd3-Iyo3) 2018/05/10(木)09:36 ID:EV77m/Hv0(1) AAS
>>422
> それと自作のcolorとこれまた別の奴の作ったcolor

> バカじゃん
> 何でwinformにcolorあるのにwpfでも作ったの?

え、なんで自分でcolor作ったの?
425: (ラクッペ MM01-nFcL) 2018/05/10(木)09:51 ID:2wmh3oy2M(1) AAS
>>424
触るなって言ってんだろテメーマッチポンプか?
それとも別種の頭かわいそうな生ゴミか?
426
(1): (ササクッテロラ Sp21-4FyP) 2018/05/10(木)10:30 ID:Yjx9MaDJp(1/2) AAS
つか、同じ名前で違う用途に割り当てる方が難儀だろ普通は名前変える。
427
(1): (スッップ Sd43-UqMB) 2018/05/10(木)12:33 ID:kan/O/6Ed(1) AAS
>>426
だから世の中にどんだけクラスが存在すると思ってんの?
428: (アウアウウー Sa89-Iyo3) 2018/05/10(木)12:51 ID:YLAKf1v1a(1/2) AAS
普通の初心者だったらSystem.IOのPathとWPFのPathが競合することが気になると思う
429: (アウアウウー Sa89-Iyo3) 2018/05/10(木)12:53 ID:YLAKf1v1a(2/2) AAS
イギリスだったらつづりはcolour
430: (ワッチョイ 23e3-Iyo3) 2018/05/10(木)19:43 ID:M5rAF93d0(1) AAS
コロワァ
431
(1): (ササクッテロラ Sp21-4FyP) 2018/05/10(木)20:53 ID:Yjx9MaDJp(2/2) AAS
>>427
自前クラスを組み込むクラスの組み合わせだけ考えりゃよかんべよ。
432: (ワッチョイ 23d2-UqMB) 2018/05/10(木)22:10 ID:R4f/WJPq0(2/2) AAS
>>431
日本語で
433
(2): (ワッチョイ 6de3-V2If) 2018/05/11(金)00:30 ID:F4aYSsq30(1/3) AAS
>>424
WPF「WinFormなんて爺さんのクラスなんて使えるかよ」
434: (アウアウウー Sa89-27Jw) 2018/05/11(金)00:58 ID:TW3IXpUfa(1) AAS
>>433
WinFormsが定年間近の爺さんだとしたらWPFは35歳無職童貞だな
435: (ドコグロ MM93-V2If) 2018/05/11(金)13:52 ID:sq5ITweXM(1) AAS
drawimageって自分でクリッピングしないとはみ出たら遅い?
436: (ササクッテロラ Sp21-4FyP) 2018/05/11(金)14:13 ID:NZxgVNkdp(1) AAS
formとwpfで、似て非なる部品ってどうにかならんの?
ネットで使い方調べる時、紛らわしいんだよな。
437
(1): (ワッチョイ 23ea-Ca5/) 2018/05/11(金)14:36 ID:SfoScckv0(1) AAS
>>433
UWP「そろそろWPFさんにはご退場願おうか」
438: (スフッ Sd43-RQhD) 2018/05/11(金)15:23 ID:oUtXC/5od(1) AAS
>>437
メーカー「そろそろUWP用のコントロールつくっか?」
439
(1): (ブーイモ MMeb-GlfE) 2018/05/11(金)16:30 ID:DPTi05MZM(1) AAS
親フォームからnewした子フォームは親とは非同期ですか?それとも同期処理となりますか?
440
(1): (ブーイモ MM43-27Jw) 2018/05/11(金)16:50 ID:Kz4/xaqBM(1) AAS
正しい言葉の使い方では非同期だけど、たぶん君が言ってるのは同期か非同期かではなくて同じスレッドかどうかだろう
それでいえば同じスレッド
441
(2): (ワッチョイ 25b5-4FyP) 2018/05/11(金)17:48 ID:n/c4W3DX0(1) AAS
つか、聞きたいのは、モーダルかモードレスかじゃね?
442
(1): (ワッチョイ cb9a-k37M) 2018/05/11(金)17:56 ID:+Mrz0iyE0(1) AAS
ここで質問するときは自分が何をやりたいかを書いてもらった方がいいな
>>439
>>441の意味なら
方法 : Windows フォームをモーダルおよびモードレスで表示する
外部リンク[aspx]:msdn.microsoft.com
1-
あと 560 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.034s