ふらっとC#,C♯,C#( ..
[2ch|▼Menu]
686:デフォルトの名無しさん
08/01/31 11:16:39
まあ今から棒グラフみたいなものを書きたかった、描画知識0の俺には
ちょうどいい話題だったぜ。

687:デフォルトの名無しさん
08/01/31 11:27:55
ごめんなさいはマダー? (・∀・ ) っノシ凵 ⌒☆チンチン

688:デフォルトの名無しさん
08/01/31 11:30:33
質問がネタに見えて仕方が無い。質問主はこれ試してみろ。
>>683>>685Save()メソッドはデフォルト.png保存じゃなかったっけな?


using System.Drawing;
using System.Drawing.Imaging;

class Hoge{
static void Main(){
Image img1 = Image.FromFile("1.jpg");
Image img2 = Image.FromFile("2.jpg");
Graphics g = Graphics.FromImage(img1);

g.DrawImage(img2,100,100,200,200);

img1.Save("hoge.jpg",ImageFormat.Jpeg);
}
}

689:デフォルトの名無しさん
08/01/31 11:49:22
お前らの優しさは南半球まで響き渡るわ。

690:デフォルトの名無しさん
08/01/31 12:22:41
>>681
>Graphicsクラスを使わずに
なんか初め>>643から新しく条件加わってるけど、何でGraphicsクラス使ったらいけないんだ?
Graphicsクラスでやりたいことが楽にできるのに、わざわざ自分で新しく作る必要ないだろ?

691:651
08/01/31 12:24:16
>>643
だからよう、Graphicsクラス自体は描画機能を持っているだけで、描画対象は別に必要なんだよ。
だから、描画対象となるオブジェクトを指定せずにGraphicsクラスのインスタンスを作成出来ないようになってるわけ。
Graphicsクラスのインスタンスメソッドを使用して実際に変更されるのは描画対象オブジェクトのほう。

>>688
指定した拡張子に対応するImageEncoderがあれば、自動的にその形式で保存されるはず。

692:デフォルトの名無しさん
08/01/31 12:32:02
>>679
こっちはコード書いたことあるからわかってんだよ
それで動かないってどんな糞コード書いたんだよ
晒してみろよ
アホすぎて生きてる価値ないんじゃね

693:デフォルトの名無しさん
08/01/31 12:36:48
なるほど、このスレでは横柄な態度で質問したほうが答えが付きやすいってことだな

694:デフォルトの名無しさん
08/01/31 12:38:33
>>681
> もしもGraphicsクラスを使わずに、かつImageオブジェクトで泥臭い全量ループすることなしに、 
> 他のアプローチでもっと簡単に実現できる方法があるのであれば、是非ご教授願いたい。
bitmap

695:デフォルトの名無しさん
08/01/31 12:41:13
>>643にたいして>>644で答えが出ているというところが恐ろしい

696:デフォルトの名無しさん
08/01/31 12:42:27
横レスだけど正直>>643の切れ方は意味がわからないな。
いきなり「オブジェクト指向が〜」とかキレてるのよんでリアルでコーヒー吹いちゃったよw

というか、適当にレスを拾い読みした感じでは、>>643はWinの描画の考え方っていうか
デバイスコンテキストって概念を知らないんだと思う。

まあ最近の.NET用の入門書はこのあたり解説してないのが多いと思うから無理もない。

697:デフォルトの名無しさん
08/01/31 12:45:06
たぶんさ、PC-98時代のビットマップスクリーンと同じ発想で
Winのグラフィックも考えてるんだろうね。
だとしたら結構年長のオジサマなんだと思うよw

698:デフォルトの名無しさん
08/01/31 12:47:58
いやこれどうみてもガキだろ

699:デフォルトの名無しさん
08/01/31 12:54:09
>>679の一番痛いところは
> Graphicsクラスのインスタンスを使わないで、どうやってGraphicsクラスの 
> インスタンスメソッド(DrawImage)で描画しようとしているオブジェクトを保存するんだ?
ここ
描写しようとしているオブジェクトは Graphicsクラスのインスタンス となんら関係がない
勝手に持ってろって話

700:デフォルトの名無しさん
08/01/31 12:57:59
ここまで能無しだと釣りに思えるんだが・・・
本気でこんな事言う人間が居るのか?

701:643
08/01/31 13:16:43
ごめんなさい

702:デフォルトの名無しさん
08/01/31 14:09:14
それだけ?

703:643
08/01/31 15:53:11
全面的に私が悪かったです。
これまでの暴言を心よりお詫び申し上げます。
何卒お許し下さい。

経緯及び結果を説明します。
>>617=>>643=>>646=>>648です

流れとしては、1600*1200の画像から台形補正をするために、
1600*1ずつ切り取っていって、それを目的の等脚台形にするために横にのばして
貼り付けていくという手法を試みたのです。

画像処理は初めてだったので、>>643の質問をしてみました。

Graphicsクラスを使って実現するためには、Graphicsクラスのメンバ変数にImageオブジェクトが
格納されていなければならないと思いこんでいました。←勘違い

実際は、
Graphics newG= Graphics.FromImage(img);
この引数で渡されたImageオブジェクトをGraphicsオブジェクトがPrivate変数で保持していて、
それに対して処理を行っているということなんですね。
だから引数で渡されたオブジェクトそのものが変更されると。
値型との区別が付いていなかったようです。←低脳

ということで、結果としてはやりたいことができました。
以下にコードを記します。


704:643
08/01/31 15:55:34
using System.Drawing;
using System.Drawing.Imaging;

class Hoge
{
  static public void Main()
 {
   int newX = 3200;
   int newY = 3200;
   Image bmp = new Bitmap("input.jpg"); //画像読み込み[1600:1200]
   Image newbmp = new Bitmap(newX, newY); //編集後イメージ(等脚台形格納用)
   Image tmpbmp = new Bitmap(newX, bmp.Height); //編集作業用イメージ(台形格納用)

   RectangleF destRect = new RectangleF(0, 0, 0, 1);
   RectangleF srcRect = new RectangleF(0, 0, bmp.Width, 1);
   Graphics newG = Graphics.FromImage(newbmp);
   Graphics tmpG = Graphics.FromImage(bmp);
   Point[] pt = new[]
   {
    new Point(0, 0),
    new Point(newX, 0),
    new Point((newX + bmp.Width) / 2, newY)
   }; //等脚台形変換用平行四辺形の3頂点


//続く

705:643
08/01/31 16:02:49
//続き


int tan = (newX - bmp.Width) / bmp.Height; //台形積分計算用

//台形作成用ループ
for (int i = 0; i <= bmp.Height; i++)
{
  srcRect.Y = i;
  destRect.Y = i;
  destRect.X = newX - i * tan;

  //tmpbmpに貼り付けていく
  tmpG.DrawImage(bmp, destRect, srcRect, GraphicsUnit.Pixel);
}

//tmpbmpの保存
tmpbmp.Save("tmp.jpg", ImageFormat.Jpeg);

//等脚台形に変換してnewbmpに格納
newG.DrawImage(tmpbmp, pt);

//jpgで保存
newbmp.Save("output.jpg", ImageFormat.Jpeg);

//終了処理
tmpG.Dispose();
newG.Dispose();
newbmp.Dispose();
tmpbmp.Dispose();
}
}

706:643
08/01/31 16:06:46
補足ですが、この台形補正では逆透視変換は実現できませんでした。
こんな単純なアルゴリズムで実現できるはずがないということにもっと早く気づくべきでしたかね。

結局OpenCVの力を借りて実現する方法にしたいと思います。
Cの勉強しなくては・・・
.NET脳の私には頭が痛いです。

707:デフォルトの名無しさん
08/01/31 16:27:03
     ,.――-、
     ヽ / ̄ ̄ ̄`ヽ、        勇者トンファーパーマン惨状
      | |  (・)。(・)|
      | |@_,.--、_,>         俺が着たからにはもう色々と駄目だ
      ヽヽ___ノ          
        /:::::::::::::::::l   /77
       /::::::::::i:i:::::::i,../ / | 
       l:::/::::::::i:i:::、:::/ / |  
       l;;ノ:::::::::::::::l l;.,.,.!  |  
        /::::::::::::::::l/ /  冂 
       /:::::::;へ:::::::l~   |ヌ|
      /:::::/´  ヽ:::l   .|ヌ|  
      .〔:::::l     l:::l   凵
      ヽ;;;>     \;;>

いろいろつっこみたいけど、とりあえず
URLリンク(www.google.co.jp)


708:デフォルトの名無しさん
08/01/31 16:47:03
本当に初心者な質問で恐縮なのですが……

Windowsアプリ(VC#2005)で、XMLとCSVから読み込んだデータをDataGridViewに表示させようとしています。
そのときのバインド方法なのですが、下記の2パターンの差がわかりません。
BindingSourceのデータソースとして(DataTableではなく)DataViewを使用するメリットって何かありますか?

DataTable→DataView→BindingSource→DataGridView
DataTable→BindingSource→DataGridView

709:デフォルトの名無しさん
08/01/31 17:06:44
DataTable.DefaultView以外のDataViewを使える

710:デフォルトの名無しさん
08/01/31 18:04:08
C#でスタック関係の直接操作ってできますか?

711:デフォルトの名無しさん
08/01/31 18:05:41
なんでスタックなんか弄りたいんだ?

712:デフォルトの名無しさん
08/01/31 18:17:07
関数のカリー化を実装したいとか

713:デフォルトの名無しさん
08/01/31 18:17:58
それならdelegateでいいだろ

714:710
08/01/31 18:22:59
うまく説明できないのでまとめると
ウィルスチェックってどうなってるんだろう?
→全ファイル走査するにはどんなやり方がスマートなんだろう
→再帰処理を使って全部辿るのがベターらしい
→なんだか重くなる
(ここら辺から迷走気味)
→コールスタックとかを知る
→すたっくおーばーふろー・・?
(本格的に迷走)
→スタックを直接操作できればどうにかなるんじゃね?

こんな感じです
質問をするにもどう質問すればいいかわからず>>710のような具合で質問しました

715:デフォルトの名無しさん
08/01/31 18:29:04
再帰処理をほぐす、すなわち、

再帰処理で、保存・復帰してる情報(今探索してるフォルダの情報)を、
インスタンス変数にリストか何かで保持するようにして、そのリストで、
保存したり取り出したりして、本体はループになるように書き直す、
というのがだいたい定番。

ファイルシステムの場合、親フォルダを ".." で探せることを利用すれば、
そういう面倒なことをしなくてもうまくいくかもしれない。

716:デフォルトの名無しさん
08/01/31 18:30:34
吹いたw

とりあえず重くなる原因を確認したほうが良いよ

717:デフォルトの名無しさん
08/01/31 18:30:59
再帰関数でローカルな変数が多すぎなら、
関数を何とかする手もある。

718:デフォルトの名無しさん
08/01/31 18:31:54
そもそも再帰の脱出条件ミスってて、無限に掘ってるかもしれんなw

719:デフォルトの名無しさん
08/01/31 18:35:02
>>715
つまり再帰処理を行う回数を最初に逆算しておくってこと、かな
ディレクトリの階層数があって更に木構造のように枝分かれしていくのを考えると
すごく大変そうですがちょっと調べつつがんばってみます・・・

>>716-718
しっかり終了はするんですが、時間が経つとだんだんと重たくなってきます
CPU使用率の方が、他アプリケーションをがんがん使うと結構きつくなったりするようです


720:デフォルトの名無しさん
08/01/31 18:36:50
お前のパソコンはウィルス検索中に他アプリケーションがんがん使ったら重たくならないか・・?

うちのノートン先生は重たくなる

721:デフォルトの名無しさん
08/01/31 18:39:22
>>719
> つまり再帰処理を行う回数を最初に逆算しておくってこと、かな

「配列」じゃなくて「リスト」って書いた意味を汲んでくれないかな...

722:デフォルトの名無しさん
08/01/31 18:42:53
>>709
なるほど! ありがとうございました。

723:デフォルトの名無しさん
08/01/31 18:44:13
・探索中にサブディレクトリを見つけたら、現在の状態をスタックに積み上げて、
 サブディレクトリの探索を開始する。
・現在のディレクトリの探索が終了したら、スタックから状態をとってきて、
 そのディレクトリの探索を再開する。
・スタックが空になったら終了。

何も難しいことはない。

724:デフォルトの名無しさん
08/01/31 18:48:28
再帰をループにするときはスタックに変数を入れるんじゃなかったっけ。

725:デフォルトの名無しさん
08/01/31 18:49:05
Directory.GetFiles(@"c:\", "*.*", SearchOption.AllDirectories);
とかじゃだめなのか?

726:デフォルトの名無しさん
08/01/31 18:49:13
あ、かぶった。

727:デフォルトの名無しさん
08/01/31 18:50:23
>>725
あんまり変なことを教えるなよ…

728:デフォルトの名無しさん
08/01/31 18:54:15
>>725
それだとXP以降のOSではシステムフォルダを検索しようとして権限がないので例外が発生する。
また拡張子のないファイルが取得出来ない。

729:デフォルトの名無しさん
08/01/31 18:57:45
コールスタックの知識自体に間違いがあると問題なのですが、
再帰呼び出しをするからスタックが溜まっていってしまうのであって
ループで何度も何度も呼び出す分には問題ないのでしょうか?

>>721
すみません調べてみます

>>723
やってることは同じなのは感覚として掴めました
しかし全然想像つかないです、じっくり考えてみます

>>725
調べていてDirectoryInfoとかそういうのは見つけました
.GetFiles()とかは使っていましたが引数渡すのは試してないです
ちょっとやりたいことがやられちゃう感じなので今回はパスでお願いします

730:デフォルトの名無しさん
08/01/31 19:02:47
関数を呼び出すたびに、その時点の実行状態がコールスタックに積み上げられる。
しかし、コールスタックは小さいから、すぐに溢れる。
だから、再帰呼び出しをループに展開する。
そのときには、もとと同じようにスタックを使って実装すると楽。

731:デフォルトの名無しさん
08/01/31 19:12:04
コールスタックについて学ぶのは良いことだけどさ、

たかがコールスタックが増えたごときで動作は遅くならん。
ましてやディレクトリの深さが 1000 や 2000 も無いかぎり溢れるなんて。

732:デフォルトの名無しさん
08/01/31 19:13:27
どうでもいいかもしれないけどファイル階層列挙場合はQueueの方が好きかなあ
並び的に

733:デフォルトの名無しさん
08/01/31 19:49:26
>>730
つまり関数の中で関数が呼ばれてその中で更に・・・みたいのだとあふれちゃうんですよね
スタックはC++でクラスを勉強する時にそういう構造を作ってみた記憶があるので
やってみようと思います

>>731
ですよね・・ちょっと1から作り直してみます

ありがとうございました、助かりました

734:デフォルトの名無しさん
08/01/31 19:56:24
それにしても良い子であった

スタックの実装にArrayListを使ってくれればいいけど

735:デフォルトの名無しさん
08/01/31 20:06:27
>>734
なんで”Array”Listなん?

736:デフォルトの名無しさん
08/01/31 20:16:56
Stack<T>でおk

737:デフォルトの名無しさん
08/01/31 20:39:51
.NETってどうしてもっさりなん?

738:デフォルトの名無しさん
08/01/31 20:59:41
メモリ大量に積んだvista使ってから言え!
ってゲイツが言ってた

739:デフォルトの名無しさん
08/01/31 21:02:21
32bitCPUだといまのメモリで限界だろ(2GB)

740:デフォルトの名無しさん
08/01/31 21:04:38
つーか、スタックぐらい自分で作ればよくね?

741:デフォルトの名無しさん
08/01/31 21:46:08
Expression Treeって面白いな
時々話題になるT Multiply<T>(T left, T right)みたいなのも簡単に作れる

742:デフォルトの名無しさん
08/01/31 21:57:21
Mapが見当たらないので作ってしまったが,拡張性高いのはいいなC#

static class Extension {
    public delegate Y MapFuncor<X, Y>(X item);
    public static IEnumerable<TDst> Map<TSource, TDst>(this IEnumerable<TSource> source, MapFuncor<TSource, TDst> functor) {
        foreach (TSource s in source) {
            yield return functor(s);
        }
    }
}

743:デフォルトの名無しさん
08/01/31 22:00:26
Enumerable.Selectでいいだろ

744:デフォルトの名無しさん
08/01/31 22:37:36
>>743いまわかた^p^

745:デフォルトの名無しさん
08/01/31 23:29:50
.netもっさりとか言ってるやつはどんなボロいPC使ってるん?

746:デフォルトの名無しさん
08/01/31 23:33:35
.netもっさりって気分は分からんでもない。
結局は結構windowsのAPI使用することが多いし。
何のための.netなんか分からんときがある。

747:デフォルトの名無しさん
08/01/31 23:36:31
それでも楽じゃん。

748:デフォルトの名無しさん
08/01/31 23:42:18
>>745
Athlon64 3500+ですがもっさりです

749:デフォルトの名無しさん
08/01/31 23:46:47
それじゃあたりまえ。

750:デフォルトの名無しさん
08/01/31 23:58:33
どれ位のCPU使うともっさりしなくなりますか?

751:デフォルトの名無しさん
08/02/01 00:04:34
>>750
ヅアルコア

752:デフォルトの名無しさん
08/02/01 00:06:00
>>748
日ごろのメンテナンス次第でいくらでも遅くできるよ

753:デフォルトの名無しさん
08/02/01 00:13:31
Pen4とかでも、チューニング次第じゃそこそこ動くんじゃね?

754:デフォルトの名無しさん
08/02/01 00:24:18
今Core2Duoを買う金がないのでAthlon64 X2にでもしてみます。
あの重い2005が軽くなるなら。

755:デフォルトの名無しさん
08/02/01 00:26:14
メモリ搭載量の方が重要

756:デフォルトの名無しさん
08/02/01 00:30:04
今AMDは駄目だろ。

757:デフォルトの名無しさん
08/02/01 00:30:50
メモリ3G詰め込めばOK

758:デフォルトの名無しさん
08/02/01 00:31:20
2G積んでます。
それと2度目以降の起動はキャッシュが効いて速いです。
よく見ると2005自体にNTFS圧縮が掛けてあるみたいです。

759:デフォルトの名無しさん
08/02/01 00:32:42
>>754
OS入れなおしだよ

760:デフォルトの名無しさん
08/02/01 00:32:50
常駐プロセスいくつあるよ?

761:デフォルトの名無しさん
08/02/01 00:33:28
>>756
安いのならコストパフォーマンス高いんじゃね?
15k以下のラインで

762:デフォルトの名無しさん
08/02/01 00:35:52
>>759
それやっても大して変化なかったです。
>>760
42個です。極力いらないものは切っています。


763:デフォルトの名無しさん
08/02/01 00:36:36
NTFS 圧縮のせいじゃね?

764:デフォルトの名無しさん
08/02/01 00:36:49
4万だせばX2 4000+でGeForce6150のケース付きが変えます。
メモリは別ですが今は5000円あればお釣りが来ますので。

765:デフォルトの名無しさん
08/02/01 00:37:53
>>763
わかりました。やはりNTFS圧縮のせいでもっさりなのかもしれません。
WordやExcelにもNTFS圧縮掛けていますがもっさりしませんけど。
あとC++Builder2007にも圧縮掛けてありますがもっさりしません。

766:デフォルトの名無しさん
08/02/01 00:38:19
中間ファイルに圧縮かかってたらもっさりしそう

767:デフォルトの名無しさん
08/02/01 00:38:44
CPU : pentium4 3ghz 
mem : 256*2

これでも十分。

768:デフォルトの名無しさん
08/02/01 00:39:52
>>764
4万出してそれはないわ。

769:デフォルトの名無しさん
08/02/01 00:40:09
>>767
えー
やっぱりNTFS圧縮のせいっぽいですね。
他に原因が思いつかない。

770:デフォルトの名無しさん
08/02/01 00:40:15
おまえらPC自作板かよ

771:デフォルトの名無しさん
08/02/01 00:41:44
今思い出しましたが2003の時はNTFS圧縮を掛けてなかったのでか
もっさりしてませんでした。
さっそく圧縮を解除してみます。これでだめなら本格的にPCの交換を
考えます。

772:デフォルトの名無しさん
08/02/01 00:42:56
俺NTFS圧縮掛けてない
ちなみにCドライブは80GB

773:デフォルトの名無しさん
08/02/01 00:51:56
>>762
常駐多すぎ
ノートンいれて起動時に30切るくらい、スタンドアロンで20弱くらいで

774:デフォルトの名無しさん
08/02/01 00:54:39
>>773
30個?どうやったらそんなに少なくなるんだろう。
WinampエージェントとかDaemon Toolsとか切るしかないか。

775:デフォルトの名無しさん
08/02/01 00:55:32
俺今3GBだけど起動直後で60個くらいあるわ・・・
しばらく前までは1GBで常駐プロセスとか気にしてたんだが・・・

776:デフォルトの名無しさん
08/02/01 00:56:42
60は多すぎ。

777:デフォルトの名無しさん
08/02/01 00:58:40
ちなみに仮想メモリは切ってある

778:デフォルトの名無しさん
08/02/01 00:59:39
変態的にカスタマイズし過ぎかと

779:デフォルトの名無しさん
08/02/01 00:59:55
>>774
デーモンとかwinampは関係ないだろ・・・切れよ・・・

780:デフォルトの名無しさん
08/02/01 01:01:19
>>779
切りますか・・・・

781:デフォルトの名無しさん
08/02/01 01:02:33
msconfigして、スタートアップとサービスから
マイクロソフトとセキュリティ関係のやつ全部とめて
デーモンバスターいれて、不要なwindowsプロセスとめるといいよ

782:デフォルトの名無しさん
08/02/01 01:03:08
それくらいはやってるが

783:デフォルトの名無しさん
08/02/01 01:03:48
ituneHelperとかなめてるよな。


784:デフォルトの名無しさん
08/02/01 01:04:24
QuickTimeのおそろしさは異常

785:デフォルトの名無しさん
08/02/01 01:05:14
まったくだw

786:デフォルトの名無しさん
08/02/01 01:06:03
それ考えるとAcronis True ImageとDiskeeper2007入れてるのが
痛いかもなあ。

Acronis True Imageは定期的にバックアップ取るので仕方ないとして
Diskeeperはバックグラウンドでデフラグするので止めた方がいいのかも。
でも何かやってる間はデフラグ止めてくれるんだけど。

787:デフォルトの名無しさん
08/02/01 01:06:46
>>784
QUick Time Alternative入れてます。

788:デフォルトの名無しさん
08/02/01 01:08:34
>>787
賢いな

789:デフォルトの名無しさん
08/02/01 01:14:54
なんか話がスレとかなり違ってきている。



790:デフォルトの名無しさん
08/02/01 01:15:14
コーデックそのものがffdshowしか入れてないので・・・・って
だいぶスレチになってきました。

791:デフォルトの名無しさん
08/02/01 01:15:36
こういう話なら敷居が低くなるから盛り上がる

792:デフォルトの名無しさん
08/02/01 01:35:50
うんこな話題にハエがよって来てるだけだろ

793:デフォルトの名無しさん
08/02/01 02:05:46
そのうんこをためらいなく踏み潰す >>792。かっこいー!

794:デフォルトの名無しさん
08/02/01 03:01:02
開発環境は「できるだけ」素のOSっぽくしときたいよな

795:デフォルトの名無しさん
08/02/01 03:07:05
まっさらなHDDにOSだけ入れればいいんじゃね?

796:デフォルトの名無しさん
08/02/01 03:10:54
でもそれだと不便だよ
最低限便利なファイラとか解凍ソフトが欲しい

797:デフォルトの名無しさん
08/02/01 03:12:28
おまえら学生とかアマグラマ?

798:デフォルトの名無しさん
08/02/01 03:59:14
cvsサーバーが必要だよな

799:デフォルトの名無しさん
08/02/01 04:47:17
>>798
どこの古代人だw

800:デフォルトの名無しさん
08/02/01 04:55:18
Windows専用ソフトならWin標準GUI使って欲しい

正直.NET快適、Javaは起動以外快適、動作はもっさり
.NETがもっさりするPC使ってみてえ
Win98時代のが残ってるけどそっちはHDD小さすぎてなんもできないしな

801:デフォルトの名無しさん
08/02/01 05:10:56
日本語でおk

802:デフォルトの名無しさん
08/02/01 05:28:12
常駐起動時50くらいだしStylerとか入れてるがすいすい起動する
ブートファイルデフラグを何回かやっていくと起動が目に見えて早くなることがあるから
ブートファイルデフラグ→再起動繰り返しでちょくちょく様子みてる

803:デフォルトの名無しさん
08/02/01 11:10:58
.NET2.0のMDIアプリで親フォームと子フォームの両方にToolStripPanelを付けたのですが、
なぜか、この親子間でToolStripPanelのドッキングツールバーが移動できていまうのですが、
両者のツールバーは全く意味が違うツールバーなので移動できないようにしたいのですが、
どうすればよいでしょうか?

804:デフォルトの名無しさん
08/02/01 15:14:59
何故そんなことをする必要があるのかは抜きにして、
labelに表示してある文字列をstring型で再取得する方法ってあるのでしょうか?

805:デフォルトの名無しさん
08/02/01 15:36:10
label.Text

806:デフォルトの名無しさん
08/02/01 15:42:40
その方法だと表示してある文字列じゃなくて
"label1"という文字列を取得してしまうのですが・・・やり方が悪いのかな

807:デフォルトの名無しさん
08/02/01 15:46:41
それはlabelにlabel1って入ってるんじゃないの

808:デフォルトの名無しさん
08/02/01 16:04:34
すみません、情報が小出しになってしまって。

DateTime nitiji = DateTime.now;
label1.Text = nitiji.ToString("d");

これでlabel1に「2008/2/1」って表示されてるとしたら
label1に表示されている"2008/2/1"ってのを
文字列で取得したいんです。(nitijiを使わずに)

これがやりたいんですが、出来ますか?

809:デフォルトの名無しさん
08/02/01 16:06:09
いや、だからlabel1.Textだって

810:デフォルトの名無しさん
08/02/01 16:06:15
小出しにするやつは相手にしない

811:デフォルトの名無しさん
08/02/01 16:06:16
>>808
>>805

812:デフォルトの名無しさん
08/02/01 16:12:50
labelに表示するタイミングとlabelの文字列を取得するタイミングが
後者の方が早くなってしまっていたみたいです。
最初から正解を教えていただいていたのに申し訳ありませんでした。
>>805さん、807さん、809-811さんありがとうございました。

813:デフォルトの名無しさん
08/02/01 16:28:39
人の悩み所って色々あってすごいね・・

814:デフォルトの名無しさん
08/02/01 16:30:34
最近C#を習い始めてまだよく分からないのですが、
学習本の中にはインターフェイスを定義するとき、

public interface Itest {

}

と、インターフェイスの先頭にpublic修飾子を付けているものがあります。
本の中で詳しく解説されていないのでよく分からないのですが、
このpublicを付ける場合と付けない場合とでは、何か違いがあるのですか?


815:デフォルトの名無しさん
08/02/01 16:33:22
>>814
publicでアセンブル(DLL)の外部から使える。
何もつけない場合はinternalで内部のみで有効。

816:デフォルトの名無しさん
08/02/01 16:48:56
>>815
素早い解答有難う御座います。
なるほど、デフォルトではinternalとなるのですか。
分かりました。

817:デフォルトの名無しさん
08/02/01 19:20:21
挫折するタイプだな。


818:デフォルトの名無しさん
08/02/01 19:21:13
すみません。質問いいですか?

サーバーに置いたC#のexeってそのままじゃクライアントから起動できないんですか?
セキュリティ関係なんでしょうか。。。。

誰かお力をお貸しください

819:818
08/02/01 19:22:40
すみません。ローカルサーバーです。

言葉が足りませんでした

820:デフォルトの名無しさん
08/02/01 19:24:27
サーバーソフトは?

821:デフォルトの名無しさん
08/02/01 19:25:41
どちら側のCPUを使って処理するかによるんじゃないの?

822:818
08/02/01 19:26:58
んー、すみません・・・
知識不足で理解できません・・・

\\hogehoge\\hore\foreって感じのパスになるんですが。

本当にお世話掛けます。すみません

823:818
08/02/01 19:28:01
×\\hogehoge\\hore\fore

○\\hogehoge\hore\fore

でした

824:デフォルトの名無しさん
08/02/01 19:30:51
パスとか何の役にも立たない情報を提供されてもw
ちなみに hoge の次は fuga, piyo と続く。

825:818
08/02/01 19:31:52
>>824
wすみません><

> fuga, piyo
これ信じていいんですか?

826:デフォルトの名無しさん
08/02/01 19:32:23
ここまでの情報で言うと
おそらくSequrityExceptionが発生して終了かと

827:818
08/02/01 19:34:34
>>826
会社でちょっとしたツール作ってるんですけど
会社で2chはまずいので自宅から書き込みです。

。。ですので詳細を説明する事ができないのが申し訳ないのですが・・・・

828:デフォルトの名無しさん
08/02/01 19:34:44
そもそもC#じゃなくても実行ファイルは・・・・・・・・・・・起動できるの?
かなり危険だよね。

829:デフォルトの名無しさん
08/02/01 19:38:56
C#でサーバに置いたファイル、ということならクリックワンス使うのがいい気がするな

830:デフォルトの名無しさん
08/02/01 19:39:35
.net言語は一度中間言語に直してから必要な部分をそのつどコンパイラして実行しているわけですよね?
これをサーバー側のpcのcpuで行ってデータだけをユーザー側に送るなら、サーバーのPCに対してユーザーにアクセス権?を与える必要があるんじゃないですか?



831:818
08/02/01 19:39:38
>>828
!!
・・・・なるほど。そういうもんなんですかぁ・・・
こちらの住人さんがおっしゃるなら正しいと思います。(本気ですよ)

ありがとうございました。そしてお騒がせしました

832:デフォルトの名無しさん
08/02/01 19:41:17
>>831
いや、聞いているんですけどね・・・・・・・・・・・・・・・・

833:デフォルトの名無しさん
08/02/01 19:42:14
実行ファイルをを CGI に使うのはわりと普通だよ。

834:818
08/02/01 19:42:43
> .net言語は一度中間言語に直してから必要な部分をそのつどコンパイラして実行しているわけですよね?

なるほど!目からウロコです。そうですよね、JITコンパイルするのは
サーバー側になってしまいますよね。

んー簡単に考えていた私が浅はかで恥ずかしいです><

835:デフォルトの名無しさん
08/02/01 19:44:16

クリックわんこで解決。

836:デフォルトの名無しさん
08/02/01 19:44:57
>>830
\\hoge~.exeでクリックすると実行されるFWはローカルじゃなかったかな
でもセキュリティ例外が出るので鯖での権限設定は必要だったかと

・・・あきらめてEXEばら撒いたので解決策はよくわからない^^

837:デフォルトの名無しさん
08/02/01 19:47:26
webブラウザが要求してプログラムを起動させるんですよね?


838:818
08/02/01 19:47:36
すみません。会社から呼び出しが掛かってしまいました・・・・・・・

もし宜しければ色々と情報をお教えいただけると助かります。

クリックわんこも自分なりに調べてみますね


・・・・・・んでは行ってきますorz

839:818
08/02/01 19:48:50
>>837
あ、すみません。サーバーフォルダのexeをショートカットで直に叩くつもりなんです

840:デフォルトの名無しさん
08/02/01 19:49:06
クリックわんこが気になる・・・・・・・・・・・・・

841:デフォルトの名無しさん
08/02/01 19:58:56
会社から2chで質問って・・
MSDNフォーラムにでも行っとけまじで。

つかその状態ならクリックワンス配信だろJK

842:デフォルトの名無しさん
08/02/01 20:00:22
たしかにClicOneceに可能性がある。
すごいなC#・・・・・・・・・・。

843:デフォルトの名無しさん
08/02/01 20:10:02
ClickOnceでは、配置時のオプションとして、アプリケーションを配布(=デプロイメント)する方法を、次の2種類から選択できる。

(1)ローカル環境へインストールするモード(オンライン/オフライン・モード)
(2)ネットワーク上から起動するモード(オンライン・モード)

(2)だね。
参考に張っておきます。
URLリンク(www.atmarkit.co.jp)



844:デフォルトの名無しさん
08/02/01 20:43:51
Func<>でパラメータにvoidを指定したいのですけどどうやるのでしょうか?
voidってかいたらだめだといわれました.

845:デフォルトの名無しさん
08/02/01 20:53:42
何故コードとエラーメッセージを書けないのか、頭がおかしいのだろうか

846:デフォルトの名無しさん
08/02/01 20:55:07
>>844
読み取りも書き込みもできない型なんてあるだけ無駄だからコンパイラさんがエラー吐いてくれてるんだとおもえ

847:デフォルトの名無しさん
08/02/01 21:00:36
>>844
型引数無しのActionを使え

848:844
08/02/01 21:02:23
Actionなんてのもあるのですね.これまで見たのがFuncだけだったのでこれしか知りませんでした.
ありがとうございました.

849:デフォルトの名無しさん
08/02/01 21:17:57
Sequrity とか Onece とか……一体このスレはどうしちゃったんだ

850:デフォルトの名無しさん
08/02/01 21:21:09
Let's Engrish with me!

851:デフォルトの名無しさん
08/02/01 21:36:37
ク・・クナイフ

852:デフォルトの名無しさん
08/02/01 22:02:20
ホ・・ホングコング

853:デフォルトの名無しさん
08/02/01 22:10:57
キ・・キングコング

854:デフォルトの名無しさん
08/02/01 22:16:10
頭が不自由な奴らってのはどうして繰言が好きなんんだろね。
そういや知的障害の子とボケ老人も繰言ばっかり言ってるよなw

855:デフォルトの名無しさん
08/02/01 22:22:59
Engrishなのだろうかこれ…

856:デフォルトの名無しさん
08/02/01 22:29:57
エイゴリアン見ないと・・・

857:デフォルトの名無しさん
08/02/01 22:35:01
エイドリアン

858:デフォルトの名無しさん
08/02/01 22:35:14
繰言・・・クリゲン?

859:デフォルトの名無しさん
08/02/01 22:56:50
>>824ってマジ?

860:デフォルトの名無しさん
08/02/01 23:00:21
そんなちょっとしたツールで軽い気持ちでクリックワンスに手を出したら後悔するぞ

861:デフォルトの名無しさん
08/02/01 23:03:28
JITコンパイルも実行も全部ローカルだよ。
ってか適当なこと書きすぎだろ。
サーバに実行ファイルがある場合はイントラネットゾーンになって
デフォルトの権限が弱くなるだけだ。

862:デフォルトの名無しさん
08/02/02 00:36:55
>>859
マジ
英語だとfoo,bar,baz

863:デフォルトの名無しさん
08/02/02 02:27:17
タスクトレイに登録されているアプリケーションまたはプロセスの一覧は取得できないのでしょうか?
Process.GetProcess()や
Process.MeinWindowHandleを試したのですがうまくいきませんでした
ご存知の方おられましたらよろしくお願いいたします

864:デフォルトの名無しさん
08/02/02 02:42:17
「C#の絵本」ってどうなの?

865:デフォルトの名無しさん
08/02/02 03:23:10
>>864

>>C#を気軽に学べる一番やさしい解説書!

だってよ。

866:デフォルトの名無しさん
08/02/02 03:34:01
>>863
むりぽ

867:デフォルトの名無しさん
08/02/02 03:36:01
>>866
そうですか・・・(´・ω・`)
実行時にタスクトレイに常駐(ウィンドウなし)する
アプリケーションがあるのですが、プロセスを殺していいかどうかの判断ができないんですよね・・・
どうしたらいいんだろう

868:デフォルトの名無しさん
08/02/02 03:36:58
最近C#はじめてびっくり
C++とか糞に見えてきた

869:デフォルトの名無しさん
08/02/02 03:53:27
>>868
んなこたあない
グラフィックはGDI+で遅いし.NETはなぜかもっさりする

870:デフォルトの名無しさん
08/02/02 04:08:59
C#でもポインタ使えば早いじゃん

871:デフォルトの名無しさん
08/02/02 04:10:27
C#最高、.NETがダメ

872:デフォルトの名無しさん
08/02/02 04:11:10
>>869
何故かもっさりって原理分かってれば当然かと。

873:デフォルトの名無しさん
08/02/02 04:20:30
>>872
JITコンパイル終わった後ももっさりするんだよ
吐くコードが糞なのか?

874:デフォルトの名無しさん
08/02/02 04:31:28
書くコードが糞

875:デフォルトの名無しさん
08/02/02 04:57:26
つまり糞を見て「なんでこんなに糞なの?」って考えてるようなもん

876:デフォルトの名無しさん
08/02/02 05:43:23
>>873がうんこした後便器を覗きながら>>875を言ってる姿を想像した

877:デフォルトの名無しさん
08/02/02 09:05:32
そしてそのうんこをひりだしたのが>>873自身ってわけだな

878:デフォルトの名無しさん
08/02/02 09:57:22
>>873
もっさりって言っても、Cのコードの2倍以内だろ?
もっさり感じるのは、やっぱGUIとか他の要因だと思われ。

879:デフォルトの名無しさん
08/02/02 12:16:41
WinForms以外で遅いなら書いた奴が糞だと考えざるを得ない

880:デフォルトの名無しさん
08/02/02 12:26:12
wpfももっさりしてる

881:デフォルトの名無しさん
08/02/02 12:36:42
直接Direct3D使うならC++とほとんど変わらないくらい速いのにな
なんであんなに重くなるのか

882:デフォルトの名無しさん
08/02/02 12:43:30
WPFが重いのはポトペタ開発の支援にそこかしこでリフレクション使ってるからじゃないかな。

データベースの内容を表示して変更するだけみたいな、ちょこっとしたプログラムなら、
IDEでコントロール置いてプロパティ編集するだけで、ほとんどコード書かずに済んだのには感動した。

883:デフォルトの名無しさん
08/02/02 12:58:21
WPFはフリッカーフリーとかティアリングフリーとか
最悪の状況を回避が基本だからというのがあるんだろう
今までのWin32が持ちにくかったものだな
逆に言えばやっとではあるんだが・・・

つかWPF重くないと思うよ。実現している内容を考えるに

884:デフォルトの名無しさん
08/02/02 12:58:38
C#で作りました。

ソフトが起動できるかどうか確かめて頂けると助かります。
URLリンク(www.ts-scorpion.info)

よろしくお願いします。

885:デフォルトの名無しさん
08/02/02 13:00:43
実行ファイルを起動するのは・・・・・・・・・・・・・・
本当に大丈夫だろうね?

886:デフォルトの名無しさん
08/02/02 13:00:57
>>883
大抵の場合においてオーバースペックだから、formsの単純な代用にはならんのだよなあ。

887:デフォルトの名無しさん
08/02/02 13:02:51
>>884
レジストリ云々のメッセージが出てきた。

888:デフォルトの名無しさん
08/02/02 13:03:50
>>884
こんなところでわざわざ紹介するならせめてソースくらい付けろよ
まあ見るまでもなく想像つくし見ようと思えば見られるけど

889:デフォルトの名無しさん
08/02/02 13:08:26
>>884
ソース出せバカ。
出せないならC#スレに書くな。ボケ。

890:デフォルトの名無しさん
08/02/02 13:08:34
>>884
regファイルでいいじゃん・・・

891:デフォルトの名無しさん
08/02/02 13:16:34
こんな素人丸出しの奴が作ったレジストリを触るプログラムなんて誰が動かすんだよw

892:デフォルトの名無しさん
08/02/02 13:26:32
WMEの接続人数を変えたい!

├ 1.PCを買い換える
│                              
│    [まちがい]                         
│      確実な方法ではありますが、お金がかかるのが難点です。
│      それよりも別の手段を探してみませんか?
│      ちょっとしたフリーウェアでなんとかなるかも?
│              ↑
│          ココがポイント!

└ 2.RegSeekerを使う

      [せいかい]

893:デフォルトの名無しさん
08/02/02 13:31:12
>>886
>オーバースペック
だったらDataGridViewとか無茶やコントロール生まれねえー!

894:デフォルトの名無しさん
08/02/02 13:35:12
日本語書けよ。
なんだその意味不明な一行レス

895:デフォルトの名無しさん
08/02/02 13:37:51
や→な
タイポですたゴメンナサイ

896:デフォルトの名無しさん
08/02/02 13:41:01
そこ直してもやっぱり意味不明だと思いますがw
こういう人が質問するとエスパー召喚質問になるんだろうねw

897:デフォルトの名無しさん
08/02/02 13:48:36
?複合コントロールとして肥大化しまくった最たるものだろ?
オーバースペックならこんなもの生まれない。

898:デフォルトの名無しさん
08/02/02 14:00:12
WPFはかなりオーバースペックだが、Windows Formsはそこそこオーバースペック

Formsに比べればWPFはよりオーバースペックで、何も矛盾することはない。

899:デフォルトの名無しさん
08/02/02 14:25:41
visualC#(Express)の、プロジェクトのプロパティ→リソースで画像ファイルを追加しました。
この画像リソースのアクセスレベルをpublicにするには、
Resources.Designer.csのコードを直接いじくるしかないのでしょうか?

900:デフォルトの名無しさん
08/02/02 14:41:48
>>898
えーと、WPFはプリミティブコントロールを現在の要求に合わせて
整理している感じなのが重要なんであって上位な複合コントロールが
たくさんあったりするわけじゃないぞ。つかその視点ならFormsに劣る

901:デフォルトの名無しさん
08/02/02 18:17:48
>>882の1行目が理解出来なんだけど誰か解説頼む。

902:デフォルトの名無しさん
08/02/02 20:36:20
URLリンク(dobon.net)

Assembly.LoadFromで読み込んだAssemblyを保持してないようですが
使ってる最中にアンロードされたりしないんでしょうか?

903:デフォルトの名無しさん
08/02/02 20:43:56
Assemblyは一旦AppDomainにロードされたらそのAppDomainがUnloadされない限り残る

904:デフォルトの名無しさん
08/02/02 20:44:50
あ、
>Assemblyは
って分かりづらいな
アセンブリは、と言い換えとこう

905:デフォルトの名無しさん
08/02/02 20:59:05
C#でWinAPIって使えないんですか?

906:デフォルトの名無しさん
08/02/02 21:00:06
>>903-904
なるほど、よくわかりました。ありがとうございました。

907:デフォルトの名無しさん
08/02/02 21:01:40
.NETの色々あるクラスの定義を見たいけどどこにあるんでしょうか?
あれ・・スレ違いでしょうか?

908:デフォルトの名無しさん
08/02/02 21:04:14
MSDN

909:デフォルトの名無しさん
08/02/02 21:04:34
>>905
使える
>>907
MSDNじゃ足りないの?

910:デフォルトの名無しさん
08/02/02 21:08:52
>>908-909
えっと使い方というか各メンバ(メソッド)の説明はあるんですが
その実際のコードはあるのかなと思いまして質問しました
MSDNライブラリってそこまでしかないですよね?

911:デフォルトの名無しさん
08/02/02 21:12:27
VS2008で見れるようになったんじゃなかったっけ

912:デフォルトの名無しさん
08/02/02 22:15:11
Image.FromFile等でアニメーションGIFを読み込めますが
複数の画像とフレーム間の時間のデータからプログラム中で
Imageを生成するにはどんな感じにすればいいのでしょうか?

913:デフォルトの名無しさん
08/02/02 22:49:31
GDI+じゃ無理
普通にタイマで描画してくんじゃ駄目なの?

914:デフォルトの名無しさん
08/02/02 23:22:01
SelectActiveFrame って使えないの?

915:デフォルトの名無しさん
08/02/02 23:37:48
既存のGIF画像になら使える

916:912
08/02/02 23:54:37
アプリケーションからはアニメーションなImageは作れないんですか…
自分でアニメーションさせてみます。
ありがとうございました。

917:デフォルトの名無しさん
08/02/02 23:56:45
Win32のPtInRectと同等の機能を持つメソッドって.NETにありますか?
今探していますが見つかりません。
Rectangleのスタティックとしてあるのかと思ったらありませんでした。

918:デフォルトの名無しさん
08/02/02 23:57:52
gifはファイル構造が比較的単純だから自前でヘッダ書いてく手もあるけどね

919:デフォルトの名無しさん
08/02/03 00:00:17
>>917
〜〜と同等の機能じゃなくて言葉で機能を説明しろと
まあ普通にRectangleのインスタンスメソッドにあるけどな

920:デフォルトの名無しさん
08/02/03 00:03:30
あったあったよく見てなかったわサンクス

URLリンク(msdn2.microsoft.com)(VS.80).aspx

921:デフォルトの名無しさん
08/02/03 01:33:18
サウンド関連で教えてください。
テキストボックスに入力を行った際、エンターキーを押すとシステム設定のエラー音が鳴ってしまいます。
これをプログラム上から鳴らなくするにはどうすればいいのでしょうか?
winXP sp2 で VS2005です。

922:デフォルトの名無しさん
08/02/03 01:41:29
TextBox ビープ音

923:899
08/02/03 01:46:57
自己解決しました。2008にはデザイナに項目が追加されてました。

924:デフォルトの名無しさん
08/02/03 01:50:50
課題終わらない\(^o^)/

925:デフォルトの名無しさん
08/02/03 01:54:02
>>924
先生は一人だがお前には俺らがついてる!

926:921
08/02/03 02:18:03
ググって

e.Handled = true;

としてもやっぱりBeepは消えてくれません。

927:デフォルトの名無しさん
08/02/03 11:46:23
インテリセンスで拡張メソッドが候補に表示されるときは頭に「(拡張子)」と表示される
しかしMSDNのメンバ一覧では「Extension のメソッド」として記載されてる
しかしMSDNではその他の場合は全て「拡張メソッド」
なんだこれ

928:デフォルトの名無しさん
08/02/03 11:48:48
英語版使え

929:デフォルトの名無しさん
08/02/03 13:13:04
プログラムを発行する際に 特定のファイルも自動的にインストールされるようにするにはどこに置けば良いのか教えてください

930:デフォルトの名無しさん
08/02/03 13:29:47
C#の良書があったら教えてください

931:デフォルトの名無しさん
08/02/03 13:49:58
プロパティを使うと遅くなるから
for文などの繰り返し処理の中では
使わない方がいいと聞いたんですが
そういうもんなんですか?

932:デフォルトの名無しさん
08/02/03 13:55:01
プロパティの実装による
コントロールのプロパティは中で色々やってて遅いのが多いかも
フィールドの値を返すだけの単純なプロパティならインライン展開されてほとんど変わらん

933:931
08/02/03 14:50:19
今実験してみたら300倍以上違ったwww
簡単な画像処理でテスト。

1: 12889msec
2:   38msec

1.プロパティ使いまくる場合

for (int y = 0; y < bmp.Height; y++){
for (int x = 0; x < bmp.Width; x++){
if (data[y * bmpData.Stride + x * 3] == Color.White.B){
data[y * bmpData.Stride + x * 3] = Color.Black.B;
}
}
}

2.変数を使う場合

int w = bmp.Width;
int h = bmp.Height;
int yPos;
byte white = Color.White.B;
byte black = Color.Black.B;

for (int y = 0; y < h; y++){
yPos = y * bmpData.Stride;
for (int x = 0; x < w; x++){
if (data[yPos + x * 3] == white){
data[yPos + x * 3] = black;
}
}
}


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4963日前に更新/230 KB
担当:undef