やっぱりダメな奴はなにやらしてもダメなんだよな。
プログラミングの腕は三流。
文章の読解力は小学三年生w
だから全部のメソッドをTryブロック内に書け、なんていってた奴は
一人もおらんからw
DataTableのSelectメソッドで第2引数にSortを渡せますが、
列1+列2のような計算式付きのソート条件を指定すると、エラーになります。
MSDNから引用↓
【引数 filterExpression を作成するには、DataColumn クラスの Expression プロパティの値を作成するときと同じ規則を使用します。
引数 Sort は、クラスの Expression 文字列を作成するときと同じ規則も使用します。】
↑これもDataColumnクラス?
DataColumnのExpressionのように指定をしても駄目でした。
これは私の指定方法がおかしいのでしょうか?
わかる方よろしくお願いします。
pictureboxのクリアーメソッドはどう使えばいいでしょうか?
clearcolor()の()内には何を入れればよいのでしょうか?
Public Sub ClearColor(e As PaintEventArgs)
' Clear screen with teal background.
e.Graphics.Clear(Color.Teal)
End Sub
はぁ?
無料のCoolbarとVS.NETのエディタのスライドバーみたいなのない?
12 :
デフォルトの名無しさん:2006/10/19(木) 22:50:12
>>7 小学三年生以上の読解力があるんだろ?
それなら
>>6は読めるよな?
ちょ 単一インスタンス設定してコンパイルして
2個目起動したらアクセス違反起こして終了するぜwwwwwww
怪しいと思ってプロジェクト新規作成して
コードも打たずにform1個だけでやってもなったぜ
…俺だけ?('A`)
ちなみにアプリケーションイベント実行直後にアクセス違反してるな
next〜〜 イベントにmsgbox("a") やって試したら
メッセージボックス出たままアクセス違反のダイアログでたぜ
ウィルススキャン止めたらなおったりして。
>>14 天才。マジ天才。ありがとう
ウイルスチェックソフト終了してもプロセス残ってたので
アンスコしたらアクセス違反起こさなかったぜ
Sースネクストちゃんのウイルスチェックソフトですた。
報告しておいたからバージョンアップで直るかもねー
5台分のライセンスあるのに使うPCとりあえずアンスコか('A`)
AVGだったら問題なかったからとりあえずAVG入れるか・・・
あ、ちなみに 開発環境に入れてると〜 って条件じゃなく、
クライアントにインスコしてると だから
VB.net 2005で単一やって配布するときは
気をつけてあげたほうがナイスガイだぜ?
確かMSからパッチでてなかったっけかな?
リモーティングのipcチャネルで発生する問題だと思う。
あいやipcでなくてもおこったかな?
ちょっと思い出せない…
>>8 多分 DataView.Sort と同じ文字列しか使えない。
DataTable に計算列を後から追加すればなんとかなるんじゃない?
前スレの事件をよーーく考えたが
やはり全メソッドにtry〜catch〜finally〜 は必要だろ。
ON ERROR GOTO の時代に逆戻りする意味はない。
ちょっと知識があるからって初心者をたぶらかしちゃいかんよ。
>>20 幼稚なガキは鬱陶しいからラウンジでもどこでも行ってくれないか。
場違いなんだよ馬鹿。
23 :
8:2006/10/23(月) 14:01:55
>>19 やっぱりその方法しかないのか・・・
列を追加して、ソート後削除すれば、確かに出来るので、
その方法で行きます。
ありがとう
DataGridViewのソートボタンで、
数値としてソートさせることは可能ですか?
文字としてソートされるようなので、
1〜100まであるとしたら、1,10,100,11,12・・・となってしまいます。
DataSource が数値型の列ならちゃんとやってくれるよ
DataSource 使ってないなら SortCompare イベント
26 :
デフォルトの名無しさん:2006/10/25(水) 02:37:29
DirectXってVB.NETでも使えますか?
Managed DirectX
で検索
28 :
デフォルトの名無しさん:2006/10/25(水) 09:34:21
質問させてください。
仕事でモバイルWebフォームを使って携帯サイトを作らなくてはなりません。
フォームに貼り付けたテキストボックスにフォーカスがきたときに、
全角入力(imeModeをon?)にしたいのですが、わかりません。
(そもそもドコモやAUやソフトバンクの携帯にimeModeはないと思うのですが)
教えていただけないでしょうか。
29 :
デフォルトの名無しさん:2006/10/25(水) 11:57:42
質問です。宿題で期限が土曜日正午です。
「多倍長整数を使うことによって、フィボナッチ数列の100番目
までを正しく計算するプログラムをC言語で作成しなさい。」
いろいろ調べたんですが、多倍長整数がなんなのかよくわかっていないので。。。
よろしくおねがいします。
30 :
デフォルトの名無しさん:2006/10/25(水) 12:00:38
↑書き込む場所間違えましました。すいません。
外部ファイルのリソースを抽出するには、どうしたら良いでしょう。
例えば、ntoskrnl.exeから起動ロゴのビットマップを抽出するとか、shell32.dllからアイコンを抽出したり、、、
Win32API
33 :
31:2006/10/26(木) 21:58:36
アイコンの取得はWinAPIのExtractIconで出来ることがわかりました、、、
でも、ビットマップのほうは資料があまり無いみたいで、、、わかりません。
VB2005でスケジュール管理ソフトを作ろうとしているんだけど、
画面上と印刷レポートにスケジュールの棒グラフを表示できるような仕様にしたいと思ってます。
適したコントロールってありますか?
36 :
デフォルトの名無しさん:2006/10/29(日) 18:09:30
教えてください。
固定長のテキストデータをまず読み込んで
各行の1バイトごとにxor値をとり
それを行末に吐き出して再度保存するって、
VBで可能でしょうか。
アイウエオカキクケコ(改行)
サシスセソタチツテト(改行)
↑この各行11バイトのファイルをバイナリで読み込み、
nullとアのxor値をとり、次にそのxor値とイのxor値をとり、
・・・トまで繰り返します。この結果をトと改行の間に
吐き出し、最後はファイルに保存します。
このようなファイルとなります。
アイウエオカキクケコ?(改行)
サシスセソタチツテト?(改行)
(?のところは文字とは限らないので、化けます)
これをVBでやろうと考えているのですが、
可能なんでしょうか。
VBに詳しい方教えてください。
だからさあ、大雑把に可能でしょうかってなんだよそれ。
まず自分で調べろよ。
その上で不明なことを人に聞くんだよ。
不可能ってことがありえると思うのか?
39 :
デフォルトの名無しさん:2006/10/29(日) 20:23:43
どこぞの掲示板じゃねえんだから
えらそうに「まずは調べろ」とかいわずに
答えてやったらどうなんだ?
ちなみにおれも偉そうに答え書いてやろうとしたが
VBSだとバイナリ読みしてバイト変換できねんだな・・・
明日会社でVBでやってみるけど、結構深い内容かも。
ところで
>>36 xor値をそういうかたちでとるのではなく、
単に2バイトの文字列だけの排他的論理和とるだけでもいいか?
あとは自分でやってくれ。適当にまわせばできるだろ。
おっと、ここはsage進行なのか・・・
訂正
1バイトずつの文字列の排他的論理和 ね。
>>36 単純に一行読み取って一文字(1バイト)ずつ取ってくればいいだけじゃまいか?
まずは何かを試してダメだったらそれを質問すれば良いのでは?
43 :
36:2006/10/30(月) 10:58:20
たくさんのお返事ありがとうございます。
たとえばこれができないんです。
最後のxorの計算の行が「型が一致しません」というエラーになります。
BASP21使ってるんですが・・・
Option Explicit
Dim bobj
Dim BinAll
Dim BinXor
Set bobj = CreateObject("basp21")
BinAll = bobj.BinaryRead("C:\test01.txt")
BinXor = bobj.MidB(BinAll,1,1) Xor bobj.MidB(BinAll,2,1)
44 :
36:2006/10/30(月) 11:15:34
ちなみにtest01.txtの中身は
abc123
と書いてあるだけです。
この末尾にバイナリのxor値を入れて
別ファイルに書き出すのが最終目標なんです。
abc123?
みたいなやつに。(?はバイナリ)
45 :
デフォルトの名無しさん:2006/10/30(月) 12:00:12
質問する奴が非常識なら答える方も日本語もロクに読めない低能か
>>43 VB.NETにはSetステートメントなんて無いよ。スレ違い。
48 :
36:2006/10/30(月) 12:45:23
スレ違いですか。
了解しました、相応のスレを探してそこに書きます。
汚してすいませんでした。
49 :
36:2006/10/30(月) 12:52:02
しかし、どこのスレになるんでしょ・・・
CとかJAVAとか.netしか見当たらないんですが。
51 :
36:2006/10/30(月) 13:06:52
>>50 トン
すげえいい人、ありがとね。
ではそちらに書いてきます。
失礼します。
いまいろいろと調べながらVB2005の学習をはじめたのですが……、
フォームデザイナで作成されるコードで判らない箇所があります。
【判らない箇所】
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim iRet As Integer
Dim Api As New Calib.OBReadLibNet.Api
Dim Def As New Calib.OBReadLibNet.Def
iRet = Calib.OBReadLibNet.Api.OBRLoadConfigFile()'-----------@
・
・
・
・
End Sub
*******************************************************
以上のようなコードでDLLの呼び出しを行っているのですが、
@の箇所で次のような警告が表示されてしまいます。
【エラーメッセージ】
「インスタンスを経由する共有メンバ、定数メンバ、
列挙型メンバ、または入れ子にされた型へのアクセスです。
正規の式は評価されません」
どなたかご教授お願いできませんでしょうか?
馬鹿なの?少しは自分であがけよ。
googleで「正規の式は評価されません」で検索したら一発で答えが見つかったけど。
ボタン1を押すと”別ウィンドウに”グラフが描画されるようにしたいのですが、どなたか御教授ください。
Form1にはボタンがあって、それを押すと別のフォームが出現して、そこにあるpictureBoxにグラフが出力できるようにしたいのです。
で、何が分からないの?
VB2005ってVB.NETの発展型っすよね?
カラオケBOXみたいな部屋管理システムを試しに作ってみようと思ったんですが、
VB6とVB2005ならどっちのほうが向いてますかね〜?
当方VB6は6年ぐらいやってますがVB.NETとVB2005は初です
テキストボックスに文章打ち込んでボタン押すと
左右逆向きで表示させるにはどうすれば良いんでしょうか?
[あいうえお]って打ってボタン押したら下に[おえういあ]って感じで
substringを使ってどうこうだったと思うけど思い出せない・・・・
[this is a pen]って打ったら[nep a si siht]ってlableに表示させたいです
エロイ人おすぃえてください><
>>57 Label1.Text = StrReverse(TextBox1.Text)
あれ、そんな簡単に出来たんだっけ・・・・orz
ありがとうございます><
ちなみによければsubstringとloopつかったコードも教えてもらえますか?
Substring使わんでもStringのn文字目は取れるんだが。
Dim sb As New System.Text.StringBuilder(TextBox1.TextLength)
For i As Integer = TextBox1.TextLength - 1 To 0 Step -1
sb.Append(TextBox1.Text(i))
Next i
Label1.Text = sb.ToString()
61 :
デフォルトの名無しさん:2006/10/31(火) 18:47:59
textboxが10個あるとして、それぞれを1から順番に処理したい場合、forやwhileでループさせる事は出来ますか?
要するにtextbox(i)みたいな感じで番号部分だけ変えて同じ処理を使いまわす事は可能かという事なのですが・・・
可能であればどのように指定すれば良いか教えて下さい、お願いします。
VB6のコントロール配列ね。
だから散々既出だけど、自分で配列なりコレクションなりにぶち込みましょう。
ほかにもっと覚えるべきことたくさんあるから、VB6のやり方に固執して
無駄に時間を使わない方がいいよ。
63 :
61:2006/10/31(火) 22:44:08
調べてみました。自分はVBの勉強を始めたのも.NETからだったので知らなかったのですが、
以前のバージョンではコントロール配列なんて便利なものがあったんですね。
自分なりに色々やってみたけどもう訳わかんねぇ・・・
>>61 どっちが便利かは微妙。
動的に扱うことを考えると.NETのようにコレクション化して自由にやれるほうがよい。
それ自体をデザイナで自由にいじれる何かがあればもっと良いとは思うけどね。
どちらにしても今更VB6なんて使う気になれん。
Dim a As New Integer
とせずに、
Dim a As Integer
と、Newがいらないのは何故ですか?
何故どちらも0に初期化されるのかという意味ならIntegerが値型だから
DataGridViewでTOPの2行を固定行とし、ソートの対象外に
したいのですが、froznで固定してもソートの対象になってし
まいます。
どうすればいいでしょうか?
VB.NETでIE上で動作するActiveXコンポーネントのようなものを
作る事は可能なのでしょうか?
何処か参考になるサイトがありましたら教えて下さい。
delegateがよーわからん。厳しく教えて。
WindowsCEのエミュレータの作り方って……、
1、Platform Builder5.0でWindowsCEのエミュを作成
2、出来上がったものを叩いてエミュレータをインストール
からどうするか判る方いませんか?
デバッガ上で動かすと最初に起動するフォームにTry〜Catchを入れておけば
子フォームの例外もキャッチしてくれるのにEXEにすると各フォームの
イベントにTry〜Catch入れないと駄目なんでしょ?
73 :
デフォルトの名無しさん:2006/11/02(木) 07:54:31
プログラムを実行したときに、コンボボックスにあらかじめ+が表示されてるようにしたいんですが、
イベントプロシージャに、
ComboBox1.SelectedIndex = "+"
と書いたんですが、ダメだったので、答えを教えて下さい。
75 :
デフォルトの名無しさん:2006/11/02(木) 08:05:22
よく分かりません、
コンボボックスのSelectedIndexプロパティに値を設定すればいいとヒントにあったので
SelectedIndexに設定するんなら突っ込んであるアイテムの何個目が"+"かと言う数値を入れる
たぶんおまえさんがやりたいのはこっち
ComboBox1.SelectedItem = "+"
77 :
デフォルトの名無しさん:2006/11/02(木) 08:13:19
Dim A As hoge = New hoge
Dim B As hoge = New hoge
B=A
ってやるとBの参照が入れ替わるんだけどBの実体はどこにいってしまうの?
78 :
デフォルトの名無しさん:2006/11/02(木) 08:13:40
ComboBox1.SelectedItem = "+" をやってみましたがダメでした
>>78 Public Class Form1
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
ComboBox1.SelectedItem = "+"
End Sub
End Class
試験用に上のコードで試したが正しく動作するぞ?
あらかじめコンボボックスの中身をフォームで設定済みって事前条件があるが
VB2005.netな
>>72 イベントにTry〜Catchなんて不要
答えは前スレ
82 :
デフォルトの名無しさん:2006/11/02(木) 08:28:43
そこで止まるけどなw
>>67 ソート用の項目を設ける。第一Keyと第二Keyとして。
>>81 Application.ThreadExceptionイベントを使うのか〜
知らんかった。アリガトン
この繰言馬鹿いつまで同じことやってるつもりだろうね。
っていうか、ここ1年ぐらいボケ老人みたいにひたすら同じこと書き続ける奴が
異常に増えた気がする。
こういう奴って自分で自分の繰言にバカウケしてるんかな
全メソッドにtry〜catch〜finally〜
当然の処理だよな
>>88 エラーのthrowされるメソッドには1ステップ毎にtry〜catchでしょ?
もちろんちまちま捕まえずに As Exception でごっそり頂きだよな
>全メソッドにtry〜catch〜finally〜
>当然の処理だよな
もうこのネタじゃ誰も釣れない。
クマー
ま、エラーの起きる可能性がある箇所をきちんと対処していれば、
必要以外try〜catch〜finally〜なんていらないのは事実。
つまり、しっかりバグを潰せということだ。
ただ、バグが無くても例外が起きる可能性はあるので、
例外処理が全て同じならApplication.ThreadExceptionイベントだけあればよく、
特別な処理をさせる必要があるメソッドがあるなら、上記+そのメソッドだけtry〜catch〜finally〜を記述。
これで完璧だろ。コストも低くて無駄もない。メモリ使用量も激減。
そのうえ、コーディング時に例外を意識する必要もなくなる。
例外が起きても続行というのは絶対にありえないしね。
>>6はVBに限った話じゃないから議論にならない。
まあtry-finallyはいっぱい使うがな
> 例外が起きても続行というのは絶対にありえないしね。
原理主義者はこれだから…
ユーザビリティとかって死ぬまで分からんのだろうな…
>>96 もし例外(予想外の事態)が起きたとき、気づかずに処理を続けていたらやばすぎるだろ?
もし例外(予想外の事態)が起きてることに気づけるアプリなら、気づいたら止めるだろ普通!
どんなユーザビリティか教えてくれよ。
>>96が言ってるのは、
バグが沢山あるひどいプログラムだから、
何かあっても、まるでバグが無いかのように続行させるための手法で、
結果が正しくない等、バグ報告があったらバグフィックスすればいいという発想。
つまりちゃんとバグとれってことなんだよな。
tryと打ったら、馬鹿の一つ覚えみたいに、Catch節を補完するIDEが悪い。
tryと打ったら、finally節だけを補完しやがれ糞が
せめて設定で変えられるようにしやがれ
>原理主義者はこれだから…
>ユーザビリティとかって死ぬまで分からんのだろうな…
痛々しい。
だからThreadExceptionって以下省略。
>>99 try〜catch〜finallyと全部補完して欲しいな。
ま、catchの方は消すけど。
>>99,101
tryf、trycfのコードスニペット使えばいいのに
と思ったけど2005にしか無いんだっけ
>>102 trycf <Enter> ってやったら trycf() ってなって怒られるが
^^^^^
trycf <Tab> でやるとちゃんと出るスゲェ〜
コードオナペットって便利だな。
コードスニペットってTabで移動する所に色が付いてるけど
あれってどうやったら消えるの?
C#だとEnterで消えるんだが。
105 :
デフォルトの名無しさん:2006/11/03(金) 17:29:15
初心者向けの参考書って何?
vb.net 2005では、Application.ThreadExceptionイベントの代わりに
My.Application.UnhandledException イベントを使えばよいのですか〜?
C#からも使えるらしいけどVB2005のMy機能ってなんかVB独自路線。
2005は使ったこと無いけど、色んな情報を
見る限り、デグレートした気分。
Myって初めて聞いたけど、なんか曖昧な感じがする。
System.DateTime.Now.Ticks
Now.Ticks
Date.Now.Ticks
My.Computer.Clock.LocalTime.Ticks
System.Environment.TickCount
My.Computer.Clock.TickCount
上の4つと下の2つが同じものか?
Tick値を取得するのが6つもあってVB厨は混乱するばかりだな。。
C#だとSystem.〜の2つだけになるのか
>>107 デグレート? VB6.0への回帰現象か。
>>109 そう。
VB6.0以降はオブジェクトを知らない人でも
上手に使えるように設計されてるけど、逆に
曖昧さが出来てしまってる。
その証拠にインスタンスなんて知らなくても、
なんでもできるじゃん。
そこで、Myって何?って思わない?
昔の鶴太郎の持ちネタにマイ爺さんっていうのがあった。
単に「マイ?」しかいえない爺さんのネタなんだが。。
>>110 VB6.0からVB.Netに切り替わった時にVB6.0の関数なんか全部切り捨てればよかったのにね〜
同じ名前の関数でVB6.0とVB.Netで微妙に動きの違うのなんか百害あって一利なし。混乱の元。
>>108のなんかNow, Date, MyはVB独自のものだから無くなればすっきりする。
これ以上、VB6.0への回帰現象が進むと.NetでもVB6.0のような怪奇現象が起きる様になるかも。w
>>102 2005使いだけど、初めて知った。サンクス!!
これは便利だわ。
みんな思ってるが、慣れてくると
テキストエディタにタイプした方が
全然早い。
「2005使いだけど」という時点で、なんか素人くさい。
>>116 みんなと言うのは、その人物の器によって決まる。
>>115 の場合は自分と他数人だけでみんな。
オレの場合のみんなは全人類だな。人類の罪を背負ってVBプログラマやってんだ。
やっぱりあほだったね。
VB.NET 2003なのですが、ComboBoxのテキストを中央揃えにするには
どうすればよいのでしょうか。
TextBoxみたいにTextAlignプロパティってないんですね・・・
>>120 面白い発想だけど、難しいね。
中央揃えって、文字の長さとコントロールの幅を
考慮して、勝手に真ん中にしてくれてるじゃん。
あれをオーナードローで、表示文字とコンボボックスの
幅を考慮して適切な位置に描画する処理を実装。
天才ハッカーさんたちお願いしまふ。
(Diskette Tips)
Create a Diskette Tips application that displays one of the following messages when Tip is clicked:
*Keep diskettes away from electrical and magnetic devices.
*Do not expose diskettes to either extreme cold or heat.
*Store diskettes away from dust, dirt, and moisture.
*Never touch the diskette's magnetic surface.
The program code should include a DisplayTip() procedure that uses RndInt() from Review 10 to
randomly display one of the tips in a label.
>>123 (ディスケット・チップス)
先端がクリックされるとき、以下のメッセージのうちの1つを表示するディスケット先端アプリケーションを作成しなさい:
ディスケットを電気で磁気装置から遠ざけなさい。
ディスケットをどちらの極端な寒さもまたは熱にさらすな。
ちり、ほこりと湿気から離れてディスケットを保存しなさい。
ディスケットの磁気表面に決して触れるな。
プログラム・コードは、ラベルでランダムに先端のうちの1つを表示するために再検討10からRndInt()を使うDisplayTip()手順を含まなければならない。
VB2005を勉強中なのですが、質問させてください。
別の人が作ったTCPサーバーアプリケーションに接続するクライアントアプリケーションを作っているのですが、
接続は、
Dim (クライアント名) As New System.Net.Sockets.TcpClient
(クライアント名).Connect("(ローカルに接続できればいいので)Localhost", (ポート番号))
Dim networkStream As System.Net.Sockets.NetworkStream = (クライアント名).GetStream()
でいいんでしょうか。
その後、確認のため
Dim kakunin As String = "(クライアント名)が接続しました"
というメッセージをサーバーアプリケーション側に流す場合、
kakuninをByte型に変換する必要があるのか、それともそのまま送れるのかがよくわかりません。
よろしければご教授ください。
まあ試してみろよ
'エンコードを指定
Dim sysenc As System.Text.Encoding = System.Text.Encoding.UTF8
'バイト型配列に変換
Dim bytes As Byte() = sysenc.GetBytes("ここに変換したい文字")
'君が宣言したネットワークストリームでデータを送信
networkStream.Write(bytes, 0, sendBytes.Length)
サーバー側がリスナーを開始してないと何にもならないけどな
すいません。教えてください。
テキストエディタを作っているのですが、ファイルを開くときにシフトjisで読み込むようにしたいのですが、
'Dim reader As New StreamReader(fn, False, System.Text.Encoding.GetEncoding("shift-jis"))←のコードを下のコードのどこに入れればいいのかわかりません。
よろしくお願いします。
Private Sub FileOpen()
OpenFileDialog1.Filter = "CSVファイル|*.csv|テキストファイル|*.txt|HTMLファイル|*.html;*.htm|すべてのファイル|*.*"
If OpenFileDialog1.ShowDialog = DialogResult.OK Then
Dim reader As StreamReader
Try
reader = New StreamReader(OpenFileDialog1.FileName)
main.Text = reader.ReadToEnd
Catch ex As Exception
MessageBox.Show(ex.Message)
Finally
If Not reader Is Nothing Then
reader.Close()
End If
End Try
End If
End Sub
はぁ?
面と向かってこんなアホな質問する奴がいたら俺なら頭殴るなマジで。
つーかプログラミング向いてない奴が無理にやることないと思うんだが
流石にこれはネタだよな
好きな所に入れればいいんじゃないの?単なるコメントなんだから。
ただそれじゃShift-JISでは読み込まんけどな。
VS2005のプロパティウィンドウみたいなコントロールってありますか?
、、、探しても見つからなくて。
PropertyGrid
みたいなではなくてそのまんまだが
135 :
132:2006/11/05(日) 03:48:26
あ、ありました。
「すべてのWindowsフォーム」隠してたから分からなかったorz
136 :
デフォルトの名無しさん:2006/11/05(日) 09:58:01
"shift-jis"って書いてあるのを良くみかけるがMSDNでは"shift_jis"になってるんだがな。
"shift-jis"でも動くようだが間違った記述で解説しているWebページ多杉。
IANA的には"Shift_JIS"が正しいようだが。
137 :
136:2006/11/05(日) 10:10:52
こいつらも"shift_jis"の別名として使えるのか。orz
csShiftJIS
csWindows31J
ms_Kanji
shift-jis
x-ms-cp932
x-sjis
GetEncoding(932)が最強
おまいら、こんなのどうよ。
コンボボックスが5個。
選択項目も5個
しかし、一つ選択するとすべてのコンボボックスで
選択肢が一つ減る ダイナミックな作り。
逆に、選択を解除するとその分選択肢が増える。
どう、実装するよ?
>>139 全てのコンボボックスの選択肢が1つ減るということは
自分自身も1つ減るのではないか。
>>139 まずその舌足らずな仕様説明をなんとかすべきだろうね。
少なくとも俺はエスパーじゃないんで、そんな説明では不十分な理解しかできない。
>>140,141
失せろ。
1から10まで説明しないと実装できないのがお前ら
ブービー坊がカスだと言われる所以なんだよ。
現場で、詳細設計書はどこですか〜?なんて言うのか?
ダイナミックってなんだよ?わからないんだろ?
お前の頭の中がダイナミックなことだけは分かった
そうか、詳細設計も無しに作るのか…
何が出来ることやら…w
言語にもよるけど、ブービーで詳細設計書まで作ってもらってる
PGって、上流工程の人間から見ると本物のカス。
まぬけなロジックを多大な工数をかけて作らせるのを防止する
ために、親切丁寧な詳細設計書を書いてあげる。
少しはできる人間なら、基本設計書ないし、要件定義をみれば
詳細におこせるから。
ここは少し難しい問題がでると、とりあえずなんとかしてごまかすよネ。
まあ139がネタかマジがわからんけど、
日本人のコミュニケーション能力の低さは問題だよね。
とにかく上から末端まで、意思疎通の重要さと難しさが認識されてない。
仕事でも2chのこういう板でも、読み手の視点に立てない奴が独りよがりに書きなぐった
要領を得ない説明文ばかりなわけで。
>>139 選択肢が減らないとして 5 x 5 x 5 x 5 x 5 = 3125通り
ひとつ選ぶ毎に減るとしても 5 x 4 x 3 x 2 x 1 x 5 = 600通り
こんなもん実装してなんに使うんだ?
UIとしては糞だと思うが。
>>147 ネタにマジレスあんがと。
しかし、600通りの場合、なんで最後にx5?
順列だから5の階乗=5・4・3・2・1=120通り。
UIは、ある選択肢の中から、優先順位を選択させる
ためにコンボボックスが5つ配置してあるとしよう。
当たり前だけど、120個もSELECE CASE文を書いたりしない。
どうするよ?
>>148 選択したものに対して残りの選択肢の内容が替わると考えて x5 だが。計算が違うか・・・
>当たり前だけど、120個もSELECE CASE文を書いたりしない。
120個くらいならSELECE CASE文で済ませるが。
それの方が単純明快だろ?
多いときはコレクションでも使うかな。
>>149 話が終わっちゃうじゃん(´;ω;`)
それに、120個もcaseがあるソースをみたら、死にたくなる。
先々、コンボボックスが増えたら・・・
コレクションという考えはわるくはないけど・・・
有名なダイナミック・プログラミングの簡単な応用だよ。
二次元配列を使うから、コレクションだと出来なくないけど
わかりにくい。
やっぱり馬鹿の考えることはわからん。
どうするよ?ってなんのこっちゃw
どうすべきか、は目的(何を実現したいのか)から導かれるもの。
目的が一切提示されていないのに一体何をいっているんだこの馬鹿は。
>>151 何度も同じ事をいわせるなよ。
お前の脳みそじゃ、理解できない事も世の中には
たぁぁぁぁあくさん、あるんだよ。
153 :
デフォルトの名無しさん:2006/11/05(日) 14:46:47
txtファイルに
00010
11000
01001
01101
このような0と1の羅列があるんですけど
これをVBのプログラムで読み込んで、これらの数字を二次元配列に入れるという場合は
どういったプログラムを作ればよいのでしょうか?
ぐぐったりしてみたものの、全くわからず困っております。
流れをぶったぎってスマン。
VB2005でReportViewerを使って印刷用の帳票を作成しているんですが、
A4用紙の設定ってどこを設定すればいいの?
エロい人教えてください。
>>150 ダイナミック・プログラミングってのでぐぐったらアカデミックなのが沢山ヒットしたが
厨房プログラマーの多い実務のVBプログラムにそんな高尚なものを実装されたらメンテする方が迷惑だな〜
それに、コンボ5個を同じ画面に並べると期待した順番に選んでくれるとは限らんしな。
UIにするのならウイザード画面にする方が良くないか。ま、選択肢120個は同じだが。
>>153 'テキストを読み込んだ後に、何を二次元の配列に
'したいか考えろ。
dim sr as System.IO.StreamReader
dim strLine as string
sr = New System.IO.StreamReader("ここに対象のファイルをフルパス指定")
Do Until sr.Peek() < 0'ファイルが終了するまでループする
strLine = sr.ReadLine()
Loop
sr.Close()'ファイルのクローズ処理
>>154 ReportPageSettings クラス
>>155 たまには、おもしろいネタがあってよくない?
そういうコンボボックスリアルで作ったことあるなあ。
エクセルVBAでだけど
158 :
154:2006/11/05(日) 15:38:47
>>156 レスサンクス
そのReportPageSettingsクラスって
Microsoft.Reporting.WinForms.ReportPageSettings.PaperSizeをいじるってことですよね?
これ読み取り専用ですが・・・
>>158 ごめん。適当にいった。
もしかしたらPaperSourceクラスかもしれん。
160 :
154:2006/11/05(日) 17:49:39
>>159 PaperSourceは用紙トレイの指定では?
まだ模索中・・・できない。。。orz
帳票はクリレポとか使うからな〜
クリレポなら、
CrystalDecisions.Shared.PaperSize
とかであるんだけどなぁ?
ReportDocumentクラスとかつかっちゃだめなの?
164 :
154:2006/11/05(日) 18:14:01
>>161>>162 スタンダードなのでクリレポ使えないんです。。。orz
>>163 ReportDocumentで行けそうなんですけど、
VB2005初心者なので、
ReportViewerとReportDocumentクラスの関係がいまいちわかってないのです。。。
お恥ずかしい限りです。
>>164 ブビー坊って文句をたれるヤシは多いんだけど、
教えるだけのスキルが居るヤシは少ないんだ(´;ω;`)
プロジェクト→参照の追加とかで、クリレポの参照って
追加できなかったっけ?
ごめんけど、家にVSいれてないから曖昧な記憶しか
提供できないんだけど・・・
その二つのオブジェクトをDirectCastとかで
キャストできない??
みんなリアルキティに付き合いがいいなあ…
>>166 おまいも寂しいんだろ?
カマって欲しいんだろ?
やらないか?
168 :
デフォルトの名無しさん:2006/11/06(月) 23:05:07
VS2005でこうマウスが乗っかると現れて、マウスが離れると消える、
スタートメニューみたいな物を作りたいんだけども
PanelのMouseHoverイベントでPanelのVisibleをEnableにして
PanelのMouseLeaveイベントでPanelのVisibleをFalseにするような風にプログラムを書くと
消す事は出来るけど復活しないんだ。
何でだろう?
VisibleがFalseじゃイベント起きないだろ
赤青のジャージ着た芸人?
確かに消えたまま復活しないな
171 :
168:2006/11/06(月) 23:12:01
×VisibleをEnable(意味不明)
○VisibleをTrue
EnableがTrueだったらイベントは拾うんじゃなかったのか!
そしたらどうやって消えたり付いたりするの作ればいいんだろう?
VisibleをFalseにすれば、イベント拾わないよ。
、、、そもそも、ある場所に来たら突然コントロールが表示されるって、どんなUIだよ。
素直にBackColor変える程度にすればいいのに。
173 :
168:2006/11/06(月) 23:33:57
Panelを二重にして、下側のパネルで上側のパネルが
Visible=Falseの時のイベントを拾うようにした。ちょっと動きがギコチナイけども
> どんなUI
とりあえず見た目だけニョキニョキうごきまくって、何か凄そう!言うのを
前面に押し出したUI
174 :
デフォルトの名無しさん:2006/11/07(火) 00:11:24
form1に入力したtextbox1のテキストをform2のlabelに表示したいのですが
モジュールで設定した以外に設定がわかりません。
ご教授お願いします。
やりたいことは
表示クライアント画面 管理クライアント画面
↓ ←管理 ↓
45型プラズマ出力 プラズマへ出力する内容入力
病院の外来担当表なんですが、外注するにももったいなので
つくってます。
もう釣りなのかマジで聞いてるのか訳がわからんw
>>174 label.text=form1.textbox1.text
177 :
デフォルトの名無しさん:2006/11/07(火) 08:26:03
>>176 ありがとうございます そのコードは入力したのですが
通らないと言うことはモジュールの設定がおかしいと言うことですね
もうちょっと勉強します。
>>177 まぁ、その、なんだ。がんがれ。
>>168 お前が実装しようとしているのは、世に言うドッキングコントロール。
IDEなんか、そうだろ?
ドッキングコントロールはせめてC#じゃないとつくれねぇ。
つくったソースあるけど、お前じゃ使い方さえもわからねぇ
179 :
デフォルトの名無しさん:2006/11/07(火) 11:36:13
VB2005でパネルの優先順位(Zorder?)を指定したいのですが、どうす
ればいいのでしょうか?
例えば、フォームにパネル1とパネル2を置き、パネル1をのdocをTopに
パネル2にdocをFillにすると、パネル2がパネル1の下に入り込んでしま
います。パネル1をパネル2の下に入り込まないように設定するには
どうすればよいでしょうか?
>>181 splitocontainerは、それはそれで使用しています。
menustripやstatusstripなどをいろいろ組み合わせて配置したいので、
出来れば楽に設定できる方法が無いかと探しているところです。
みなさんは、dock機能は使わずに、アンカーやその他の方法を使用して
いるのでしょうか?
>>80 168とは別人ですが?
>>182 うそつけw
>>168,173,179
お前以外誰がいるんだよw
正直にいったら、なんでも教えてやるぞ。
面白い奴だな。
185 :
179:2006/11/07(火) 14:05:14
まじ別人なんだけどw
書き込む時間帯が全然違うじゃないかボケwww
まぁ、同一人物扱いさせてどうするつもりなんだ?
正直に言ったから早く教えろよ馬鹿www
>>185 マジ、面白いやつだw
ヒント
コントロールで右クリック。最(ry
ガンガレ!168!
187 :
デフォルトの名無しさん:2006/11/07(火) 14:38:58
お前の返事の前に判ったんで、そのことを書こうと思ったら、
先に書かれてた。
ふざんけんな、ボケ!!
もっとのんびりレスしやがれwww
でも、まぁ、先に返事を書いてもらってしまったからには
礼を書いておく。ありがとよ。
それと別人だと何度言ったらわかるんだ?www
俺は昨日の23時ごろは、くりいむなんとかを見てたっつーのw
(,,゚Д゚)∩先生方、質問です。
VB2005 Express Edition から、Oracle9iへの接続ってどうやったらいいのでしょうか?
いろいろ調べたところ、データベース エクスプローラーを利用できず、
コードなら使用できるということらしいのですが、その方法がぜんぜん分かりません。
どこか、参考になるサイトなどありましたら、紹介よろしくお願いします。
ODBC接続だから、
コンパネから設定が必要。
Editionてなんだ?
>>188 初心者にはADOがオススメだ。
udlという拡張子udlのテキストファイルを使って、どんなDBにも接続できる。
ADOでぐぐって、頑張って部品作れ
192 :
188:2006/11/07(火) 19:17:26
レス感謝です
>189
理由はよく分かりませんが、ODBC接続だとタイムスタンプを取得できないらしいので、ODBCは避けるつもりでした。
>191
udlファイルで試したところ、先ほど無事にADOで接続確立できました。
ありがとうございました。
193 :
デフォルトの名無しさん:2006/11/07(火) 21:13:46
ComboBoxをグレーダウンさせないで入力不可に出来ませんか?
そうですか・・・
194 :
デフォルトの名無しさん:2006/11/07(火) 21:25:45
>>176 いろいろ聞いた結果 モジュールを使わなくてもできるみたいです。
.NET2003でやってるのですが Meがうまく認識できないのですが使えないのかな?
>>193,194
オマイラ、オレは今日はもう酔っぱらったw
明日、会社から教えてやるよ
つーかフツーodp使わね?
MCADって、取る価値ある?
-----チラシの裏-----
C#やり始めてあまりの情報量(実用的な)が何無でやっぱVBなめちゃいかんなと
VBやり始めた初心者だけど構文とか自分にはとてもすっきりしてC#がすきだな。
でもC#の言語(Colsoleアプリ)中心のしか出回ってないから挫折しそう。。。
やっぱり初心者なら多数の本が出てるVBから入るほうがWindowsアプリ作るにしても早道かなと
自分を説得してがんばとっります。またはがんばってC#に移植するしかないですね。
ヘルプみてもどこうをどうみればいいのか・・
PCやWord&Excel等の実務Lvの操作方法には初心者というわけではないですが。
ちと愚痴と自分へのがんばれの意味をこめて。またC#に戻りそうだ。。orz
199 :
198:2006/11/08(水) 00:19:28
もしヘルプ見るにしてもこうやって見るんだよ!
というアドバイスがあればぜひ教えてほしいです。
201 :
デフォルトの名無しさん:2006/11/08(水) 06:24:01
VB.NETを1から勉強したいと思うのですが、お勧めの本などありますでしょうか?
>>193 適当で申し訳ないが、ドロップダウンイベントでイベントを
キャンセルできないのかな?
>>194 正確には、Meに対して、相手のフォームのインスタンスを格納している
オブジェクトにデータを渡すようにすればおk
すまんな。今日は朝からドカタ仕事が舞い込んできたから適当。
質問です。
Button1をクリックして、PicturoBox1に図形を描く事はできるのですが、
PicturoBox1上にウィンドウが重なっても図形が消えないようにしたいのですが
だれか御教授ください。
鳳ドロー
>>203 PictureBoxのImageにBitmapをセットしてそこに描画する
206 :
198:2006/11/08(水) 18:29:02
>>200 感動しました!!ありがとう!
ひとまず動かしてみる。これが一番・・・普段自分が言ってることでした・・
理解を深めるためにヘルプなり本なり読めばいいんだ。
しかし、英語サイトは情報豊富ですね。びっくりした
207 :
デフォルトの名無しさん:2006/11/08(水) 23:58:38
Perlで言うHTML::TemplateやTemplateToolkitみたいな
所定のルールで書かれたテンプレートファイルを読み込んで
プログラムから置換するようなのってVB.NETではどうすればいいの?
WindowsアプリケーションからHTMLを吐く用事があって探してる所
なんか簡単な事の筈なのに簡単に出来ないこの屈辱・・・
>>207 javaスクリプトでいいんじゃない?
Ajaxでぐぐってちょ。
209 :
デフォルトの名無しさん:2006/11/09(木) 07:51:44
VBでコールバック関数について知りたいのですが
載っている本はたはwebを教えてください
VB2005でPCからPDAにファイルをコピーするプログラムを作成しています。
その際、PCからPDAのフォルダを参照する方法がわかりません。
ローカルの場合だと、Dim SavePath As String = "C:\Data\"のように設定するかと
思いますが、PDAの場合はどのように指定すれば良いのでしょうか?
よろしくお願いしますm(_ _)m
PDAによる。
212 :
210:2006/11/09(木) 12:19:22
>>211 レスありがとうございます。
情報足らずでスミマセン。
PDAはNTTのhTcZです。(Windows Mobile 5.0)
213 :
デフォルトの名無しさん:2006/11/09(木) 19:39:18
logフォルダに入っているlogファイル一覧を表示させるプログラムを作りたいのですが
パス指定がよくわからなくて困っています。
私は普段Dドライブで作業しているのですが、提出用のプログラムなので
提出後Cドライブや他の場所で実行されるかもしれないので、
ドライブ場所に影響されることのないパス指定をしたいのですが・・
最終的には
フォルダ--------exeファイル
|
------logフォルダ-------logファイル
という形にしたいと思っています。
>>213 Application.StartupPath
Application.StartupPath とか
My にもなんかありそうだな
制限ユーザでは program files 以下には書き込めないと言う事実をどれくらいのホビープログラマが知っているだろう
>>214-215 ありがとうございます。
現在制作環境にいないのでアドバイス通りに制作してないのですが
先にお礼を言わせてください。
PictureBox1を縦横違うスケールに拡大,あるいは縮小すると,
図形と一緒にテキストまでゆがむんですがどうすればいいでしょうか
はぁ?
どうすればいいでしょう、ってそんなことでつまずく馬鹿はプログラムなんて
書かなければいいと思うよマジで。
>>214 お前、本当の意味でマヌケだな。
>>213 相対パスでぐぐれ。
あと、マヌケな回答が多いから注意汁。
>>217 まぁ、その、なんだ。
がんがれ。
しいていうなら、何がしたいんだ?
カレントディレクトリは常に exe のある位置であるという立場の人ですか?
なんていうか、口調が偉そうな奴は例外なく無能の法則って絶対だなw
みなさま、すんません。
知ってたら教えてください。
VS2003でWebアプリをつくっております。(VB.NETです)
DBがオラクルなので
.NET Framework Data Provider for Oracle
(System.Data.OracleClient)
のクラスをつかってるのですが
タイムアウトの設定でできないのでしょうか?
すんません T_T
Microsoft FlexGrid Cotrol,version6.0を使っている
formをshowdialogで開くとForm_Loadで何をやっても反映されないんだけど
どうして?
ちなみにshowdialogを使わずに直接実行すると反映された
>>225 OracleCommand.CommandTimeout
メモ : このプロパティは、.NET Framework version 2.0 で新しく追加されたものです。
MSはボラクルに冷たいな〜
System.Data.OleDb使えば?
>>226 Form_Load時点でFlexGridが表示されてないから?
>>227 ありがとうございます。
現行の環境が1.1なもので…
やはりOleDbがいいですかね?
私の設定が悪かったのかもしれませんが
OleDb空間のクラスで接続しレコードを取得したら
ROWIDまでとってきちゃってたので
OracleClientにしたのです。
OleDbでもっかい試してみます。
どもです。
230 :
193:2006/11/10(金) 00:04:27
Win32APIを使わないと駄目っぽいな。Orz
何でODP使わないんだろ
>>231 しつけぇよw
おれが講師で初心者にDBアクセス教えるなら
絶対、ODPなんか使わない。
教える側もそう思ってるから、教えない。
ほんと、バカの一つ覚え(ry
>制限ユーザでは program files 以下には書き込めないと言う事実をどれくらいのホビープログラマが知っているだろう
制限ユーザでも program files 以下に書き込む方法があると言う事実をどれくらいの職業プログラマが知っているだろう
234 :
217:2006/11/10(金) 16:19:08
>219
pictureboxのスケールを変えてグラフを書きました.しかし,ラベルや目盛りが
drawstringではゆがんで掛けないんです.
横のスケール伸ばしたら文字も横に伸びるってことです.
どうか助けてください
>234
引き伸ばしてからdrawするのが普通だろ!
>>231 クライアントが8.1.7なんです。
バージョンアップの許可がおりるかどうか…
>>237 ハハハ、ウチなんか8.0.5ですぜw
OO4O以外テがありませんorz
Webサービス使えば?
別に、なんでアクセスしようがどうだっていい。
>>239 oci.dllを参照に追加しようとしたら「正しいdllでありません」と言われたが…
>>242 <Runtime.InteropServices.DllImport("oci.dll", ・・・以下省略
ドゥルル
管理ツールの中に
Microsoft .NET Framework 1.1 Configuration
Microsoft .NET Framework 1.1 Wizards
Microsoft .NET Framework 1.1 構成
Microsoft .NET Framework 1.1 ウィザード
の四つがあるのに
Microsoft .NET Framework 2.0 Configuration
はひとつしかありません。
インストールに失敗したということですか?
Microsoft .NET Framework 1.1 Configuration
Microsoft .NET Framework 1.1 Wizards
Microsoft .NET Framework 1.1 構成
Microsoft .NET Framework 1.1 ウィザード
みんなひとつしかないと思うのだよ。
247 :
217:2006/11/11(土) 17:47:58
>235
すいません、その方法をどうか御教授ください。
おねがいします。
クソ言語 VB.NET
>247
どうやって描画してるのかしらんけど。。
描く順番と拡大縮小する順番を逆にするだけだろ!
>>245 Microsoft .NET Framework 2.0 構成 だね。
ランゲージパックのインスコは失敗してるな。w
251 :
デフォルトの名無しさん:2006/11/13(月) 05:26:27
クソ言語 VB.NET
フォームのデザインをやり直したいのですが、今フォーム上にある
コントロールをどこかに一時的に退避させておくことってできますか?
>>252 ソリューションエクスプローラでファイル選んで
コピー&ペーストしてから、コピーの方のコード開いて
クラス名変えたらええやん。
flexgrid.netについてですがやさしいかた教えてください。
CellのstyleにComboListを設定したのですが
実行時にそのセルをダブルクリックすると
ComboList内の値に順次変更されます。
これをやめたいのですがキャンセルする方法はありますか?
あと、一度に表示するリストの数の設定方法もわからないのですが
ご存知のかたおられましたら教えてください。
よろしくお願いします。
>>254 .NETってMSでフレックスグリッドあったっけ?
グレープシティのとは別?
あとフレームワークのバージョン教えれ。
>>255 グレープシティのです。すみません。
VB.net2003です。
textbox1.textと同じ文字列が、Listbox1のリストの中に存在するかどうかを調べ、
存在する場合はリストの中から消すという一連の動作を実装したいのですが、どのように書けば良いでしょうか?
For i = 0 To x
If String.Equals ( textbox1.text, listbox1.Items,Item ( i ) ) = True Then
listbox1.Items.RemoveAT ( i )
End If
Next
これでいけるかと思ったのですが2行目でエラーが出ます。
どうやら引数の2つ目がStringではなくObjectだからなんだと思うのですが、
どうすれば良いのか判りませんorz
よろしくお願いします。
ToString
>>257 なんつー気持ち悪いコードだ
String型の比較は、=にしやがれ
今日、.NET Framework SDK1.1をインストールしたのですが、
インストールすると見れる.NET Framework SDKドキュメントを
CDなどに焼いて他のネット環境の無いPCでも見ることは可能でしょうか?
もしスレ違いなら誘導していただけると助かります。
しかもこれ該当する場所が複数あって
最後のほうにもっかい見つかったら例外起こすよなw
For文も step -1 で逆順にして
>>259の意見には同意するなw
if listbox1.items(i).ToString = textbox1.text then
だよなぁ
たしかListboxで読み取るだけならitems(i)までで文字列取得できたかと
>>259,261
カスめ。
OOPわからないんだったら、VB6.0で遊んでろ。
>>257 .NETでの文字列比較はオブジェクトから派生したStringクラスが持つ
Equals メソッドを使うのが一番いい。レスポンスも高い。
だから、お前はちょっとおしい。
If TextBox1.Text.Equals(ListBox1.Items.Item(1).ToString()) Then
’ここに処理既述
End If
で、おまいがやろうとしている事は知恵をつかわないとできない。
たとえば、いきなり消すんじゃなくて、ループの中で消したいアイテムを
選択状態にして、ループの終了後に選択項目だけを削除するようにするとか。
ガンガレ。
>>254 面倒くさいからためしてないけど、ダブルクリックイベントで
イベントをキャンセルするか、現在選択している項目を再選択
させるかで実現できない?
あと、一度に表示できる行数だけど、プロパティにないなら、APIじゃないと
だめなんじゃないの?
最後に、スキルがあるなら、セルに合わせて通常のコンボボックスを
ぴったり描画してやると、グレープシティのウンコグリッドよりも余程使い勝手が
いいと思うよ。
>>257 String.Equalsメソッドは、引数オブジェクトのToStringメソッドをコールする癖をつけないと、
痛い目見るぞ
それがいやなら=使っとけ
あと
>>261の言うとおり、
ListItemCollectionのitemをRemoveすると、Collectionの中身が前詰めされるので、気をつけろ
>>265 2個前のレス(
>>263)くらい読めよ。
第一、step -1 で逆順にしてもループする回数がかわらねぇだろうが。
本当の意味で救いようがない。
バカなんだから、半年ROMってろ。
逆順にしてケツから消していくのは定石じゃない?
定石だよ
>>263 > たとえば、いきなり消すんじゃなくて、ループの中で消したいアイテムを
> 選択状態にして、ループの終了後に選択項目だけを削除するようにするとか。
コードで書いてくれ
フラグ立てて刈り取りじゃないか
質問させてけれ〜。
VS2003
VB.NET
.NET Framework1.1
で開発してるんだけども、VB6以前で比較的よく使われてたフォームの表示の仕方
Load frmObj
frmObj.Show
と同じようなことってVB.NETで出来ないかな?
過去同じような質問がでてれば、ポインタかキーワード
がもらえると助かります…。
272 :
263:2006/11/15(水) 12:21:30
>>269 そういう時は先生にエロ画像でも提供汁。気がきかねぇ。
Dim x As Integer
Dim y As System.Windows.Forms.SelectionMode = ListBox1.SelectionMode
'描画停止
ListBox1.BeginUpdate()
'選択解除
ListBox1.ClearSelected()
'複数選択可に変更
ListBox1.SelectionMode = SelectionMode.MultiExtended
For x = 0 To ListBox1.Items.Count - 1
If TextBox1.Text.Equals(ListBox1.Items.Item(x).ToString()) Then
ListBox1.SetSelected(x, True)
End If
Next x
'選択されている項目を削除
For x = ListBox1.SelectedIndices.Count - 1 To 0 Step -1
ListBox1.Items.RemoveAt(ListBox1.SelectedIndices(x))
Next x
'選択モードを退避前に戻す。
ListBox1.SelectionMode = y
'描画再開
ListBox1.EndUpdate()
>>271 もし、それがドトネトでできないなら、OOPとは言わない。
うんこから帰ってきたら、教えてやるよ。
>>272 Equalsが一番レスポンスがいいとか言ってるくせに
非常に無駄なことをしているように見えるのは俺だけ?
なんか馬鹿と馬鹿が争ってる感じだねw
このスレらしいけど。
.NETでは文字列の等価性の検査に= とか==演算子使え、っていうの自体は正論だけど
Equalsが気持ち悪いっていうのはどうかね。
気持ち悪いっていうのは不自然と言い換えていいと思うが、文字列の等価性が
=で検査できちゃうことの方が(便利ではあるが)不自然で気持ち悪いんだよ本来は。
それからコレクションのアイテムをシークして削除するときに
シークしてるループの中で直接削除しちゃうデザインっていうのはどうなの?w
ループカウンタをデクリメントで回すとかそういう問題か?
そういうのは普通、あらかじめ削除する(または逆に「削除せず残す」)アイテムのコレクションを
作成しておいてからまとめて削除(あるいは総とっかえ)するコードを書くでしょ。
276 :
263:2006/11/15(水) 12:52:49
本当にごめんなさい。
これですんでしまいました。
Dim x As Integer
For x = ListBox1.Items.Count - 1 To 0 Step -1
If TextBox1.Text.Equals(ListBox1.Items.Item(x).ToString()) Then
ListBox1.Items.Remove(ListBox1.Items.Item(x))
End If
Next x
ちょっと吊ってきます。
>>271 dim f As frmObj
’この時点で画面にあるコントロールのイニシャライズが走る。
Set f = New frmObj
#Region " Windows フォーム デザイナで生成されたコード "
↑この中のNewのメソッド(オブジェクトのコンストラクタ)が走る。
次に自分がフォームに事前にやらせたい処理、例えば、VBの頃に
ロードイベントに書いていたような処理をやらせたいのであれば、
その処理を外部に公開するメソッドとしてフォームに書いておいて
Set f = New frmObj
Call f.初期化処理
のようにメソッドをCallする。
もしくは、あまり進めないが、オブジェクトのコンストラクタ配下に書いても
処理は走る。
最後にShowすればおk。
278 :
271:2006/11/15(水) 13:03:52
ありがとう。助かったデス。
>>275 Items.RemoveAtによってSelectedIndicesも削除されるのを知ってて言ってるんだよな?
直接逆順ループでRemoveするのと何が違うんだ?
>>279 気にするな。
デザパタをちょっと勉強して、コードにデザインを持たせようと
してるようだけど、全てが当てはまるわけじゃない良い例がコイツ
>>275 ちなみに、
>>275はjava糞くせぇにおいがする。
C房はそんなことしない。
>275
定番中の定番なんだから、デクリメントで回せばいいって問題以外の何者でもないと
思うが。どうしてもインデックスループ中での削除が嫌ってのなら、効率は
落ちるが
Dim count As Integer
Do
count = ListBox1.Items.Count
ListBox1.Items.Remove(TextBox1.Text)
Loop While count <> ListBox1.Items.Count
とかもありだな。ListBoxで扱う量が大した事無ければ、実際には効率が
問題になることもないだろうし。
しかし、インデックスループがアレだからといいつつ、結局インデックスループを
してるし、意図がよくわからん。
282 :
デフォルトの名無しさん:2006/11/15(水) 13:46:21
>>264 こんなものに知恵なんか使うか、理屈ばっかりで頭は良くないな。
Dim i As Integer = 0
Do
If ListBox1.Items(i).ToString.Equals(TextBox1.Text) Then
ListBox1.Items.RemoveAt(i)
Else
i += 1
End If
Loop While (i < ListBox1.Items.Count)
>>282 志村・・・あ、アンカー・・・
それに、お前のコードよりもまだ
>>281の方がマシ。
お前は理屈すら屁がついてる。
>275の9行目以降のような合理的というか効率的な(?)考え方ってどうやって身に着けるものなんでしょうか
なぜ>275のようにした方が良いのかという点からしてわかりませんが・・・
良い教科書無いかなぁ
>275を読んだ時点で書き込んだけど後についてるレス見ると>275が正しいとも云えないみたいですね
でも結局>284の質問は変わらないのでよろしくお願いします
すぐ教科書を欲しがるのは良くないですよ。
VB.netのくだしつスレが見当たらなかったからここで質問してみる
P2Pのチャットソフト作ろうと思ってるんだけど
使う両者が特定の人間ならIPでつながる?
>282
志村〜。やっぱ知恵は使ったほうがいいとおもうよ?
あからさまにバグってるぞ。
ループの中で要素数が変わるんじゃないか
つか、境界条件。
空のリストで動かせば一発。
空の境界。
ごめんなんでもない
本来=で比較できるのがおかしいって
本来ってなんだ本来って
>>295 いや、それに関しては否定できないと思う。
演算子のオーバーロードはデグレードなのか?
演算子のオーバーロードと言う言い方は良くない。
ちなみになんのことをいってるの?
299 :
275:2006/11/15(水) 22:01:19
>>284-285 正しい正しくないという問題というより、
どちらがシンプルで直観的であるか、あるいは応用が利くか、という問題だね。
まあどういう方法がより直観的かはあるいは意見が分かれるかもしれないけど、
応用度の方は自明だね。
例えば後から「文字列が一致するアイテムの前後のアイテムも削除する」という
仕様変更があった場合、
>>261みたいなプログラマは困るんじゃないの?w
デザパタとか言ってる人がいるけど俺はいわゆるデザパタにこういうパターンが
あるのかどうか知らない。
ただある程度まともなPGならこういう場合は
>>275のように考えるだろう。
>284-285
OOPらしくというなら、ListBox1に対し「○○をリストから消せ」と指示して
Itemsの何番目かとかの細かい話はListBox1にやらせる>281の方が、言ってることと
やってることがデタラメな>275よりずっと近いよ。
根本的に後で修正がきかないような箇所ならともかく、
その時点で完全に変えてしまうようなコードの部分に
応用度を最初から用意しておくのは、悪くはないけど、
そうしないのが馬鹿みたいなのはどうか。
XPの理念にも反する。
応用にもなんにもなってない上に、
>>272にしても
>>282にしてもどっちも不必要に複雑にして
さらに副作用やらバグありやらだしなー。
悪くはないじゃなくて、率直に言ってダメコードの見本だ。
>>301 いやいや!
本当に演算子の\だの=だのをオーバーロードしてるね!
オレは2005はまだ案件も来てないし使ってないけど
こんな機能が追加されたのか〜・・・
う〜ん?2005のフレームワークを逆コンパイルすると
演算子のクラスでもあるのかな?
そこはちょっと興味ある。
305 :
275:2006/11/16(木) 08:15:10
>>275 もうお前飽きたから、雑談がしたいなら雑談板にいけ
>>275 度し難しなのはお前。反論するならコードでも出してやるこった。
単なる俺様マンセーな話を続けるなら他所でやってくれ。
308 :
デフォルトの名無しさん:2006/11/16(木) 09:53:58
>>307 同意、書けるんだったら初めから書いてる罠。
と言うことで一件落着、次いってみよう。
こんな奴らばっかりだからVBプログラマは一段下に見られるんだよね。
馬鹿な癖に馬鹿を自覚してないし、物事をシンプルに考える能力がない。
Private Sub RemoveMatchItems(ByVal Text As String)
Dim aliveItems As New ArrayList
For Each item As Object In ListBox1.Items
If item.ToString <> Text Then
aliveItems.Add(item)
End If
Next
ListBox1.Items.Clear()
ListBox1.Items.AddRange(aliveItems.ToArray)
End Sub
まあ
>>261のような考え方で書いたコードとどちらがより可読性があり
どちらがより仕様変更に強いかの判断は任せるよ。
まあその判断能力自体がビッグクエスチョンなんだけどw
>309
あのさ、さんざん指摘されてるが、そのコードでは削除対象に含まれない
SelectedItem(s)とかもクリアされちゃうとか、リストビューが必要以上に
スクロールしちゃうケースが出てくるとかの影響なんかは理解してる?
実務経験が少ないのなら仕方ないけど、リストボックスみたいな
UIコントロールは見た目の動きも重要なんですよ。
だから
>>309は一段下に見られちゃうってことでFA?
>>312 見ろよ。こいつ
>>309 >馬鹿な癖に馬鹿を自覚してない
一段どころか、モノホンのバカなんだよ。
で、もうこの話題は飽きたんだ。
314 :
デフォルトの名無しさん:2006/11/16(木) 17:12:24
>>309 文字列どうしの比較はEquals()を使えって行ってるだろ。
まさかおまえ275と同一人物じゃないだろうな。
もういい、次、次、次。
エクアルスとか面倒なだけだろ
>>315 ( ・ω・)・・・イコールだよ・・・・
>>314 Equals使えってじゃばじゃないし。
ポカリスエットとはちがうのか
319 :
デフォルトの名無しさん:2006/11/16(木) 19:55:34
>>318 それはアミノサプリだろ!
…???あれ????
エアリスのことかーーー!!
>309が話題を流そうと必死になっているようだ。
322 :
デフォルトの名無しさん:2006/11/16(木) 20:49:50
データグリッドについてきいてもいいか
標準の?
フレームワークは?
325 :
デフォルトの名無しさん:2006/11/16(木) 21:57:18
データグリッドで、
プロパティから「編集、更新、キャンセル」
ボタンを追加したのですが、編集モードに
切り替わらないのです。もちろん、EditCommandの
イベントハンドラにコードは記述してあります。
ステップ実行すると、イベントとして認識されて
いないように思えるのですが。(Page_loadメソッドを見にいく)
教えてください、神様。
>>309 「物事をシンプルに考える能力がない」には同意。
簡単な事を小難しくコーディングするヤツが大杉。
物事の本質的な部分がわかってないからそうなるんだな。たぶん。
マッチする項目がなくても全部消して追加すんのかよ
>327
既出の動きが変わる件やら、DataSourceにbindingされていたらダメじゃんとか、
応用応用いいながらListboxコントロールをCheckedListBoxに変更されたら
やり直しじゃんとか、突っ込みどころ満載なのはもう十分わかってるから、
せっかく逃亡しているんだからそっとしておいて、次の質問に備えようよ。
で、いまいち説明がよくわからんので、出せる範囲でいいのでコードを
つけて説明してもらえるとコメントがつきやすいぞ >325
あと、DataGridなのか、DataGridViewなのかもね。
>>326 そういうやつらは少ない時間に多量のコーディングができると思われるので逆に評価が高い
>>328 突っ込みどころ満載、って
それこそ突っ込みどころ満載だな。
馬鹿な癖に馬鹿を自覚してない、とはこういうことを言うんだけどねえw
具体的に突っ込んでくれないと説得力ないよ
>>330 せっかく逃亡したのなら、そのまま逃げてりゃいいのに。
なんでわざわざ恥をさらしに戻ってきたがるのやら。
別にあんたたちのために帰ってきたんじゃないんだからね
>>314 まだこんなこと言ってるやつがいるのか……
>>325 まさかまた、Page_LoadでPostBack時にもDataGridの中身をBindしている、
とかいうオチじゃないだろうな?
編集ボタンが押された後は
Page.PageLoadイベント
↓
DataGrid.EditCommandイベント
の順でイベントが発生するけど、
PageLoadイベントのイベントハンドラーで、DataGridの中身を、再バインドしてたら、
DataGridのイベントは、発生しないぞ
337 :
デフォルトの名無しさん:2006/11/18(土) 18:48:23
初めての質問です。プログラムを書いていて何点か質問です。
ビルドしたbin の中に ja ってフォルダがあるのですが、これも配布しなくては
いけないものでしょうか?なくても動く気がしたので。
また、同様にFrameWorkに依存するのではなかろうかというDLL関係は
一緒に配布したほうがよいのでしょうか?
Microsoft.VisualBasic.dll
System.Web.dll
他 よろしくお願いします。
>>337 jpフォルダはFormのLanguageプロパティを日本語にするなどで、日本語リソースを作るとできる。
要配布。もしその中が空なら無視してよい。
Microsoft.VisualBasic.dll 、System.Web.dll は.NETフレームワークが入っていれば必ずあるのもで、
配布したいなら再頒布可能パッケージ(dotnetfx.exe)を添付するべし。
339 :
337:2006/11/18(土) 19:32:13
>338 ありがとうございます。
もう一つ質問させてください。
.net 2003 使用してますが、SP1 を当てた場合。
配布先に新しくビルドしたプログラムを入れた場合、なにか注意点ありますか?
FrameWork に準ずると思ってるので関係ないとおもってるのですが確信が
なくて。また、Framework1.1 にも微妙にバージョン違いのものがあるかと
思いますが、開発環境ビルドものPCのFramework1.1 のバージョンと配布先
クライアントのFramework1.1のバージョンは合せて置くものでしょうか?
グレープシティの製品のDLLが微妙にアップデートがあったりで
統一した方が良いのでしょうけど台数が数百台とかある場合みなさま
どうされてるんだろうと思いまして・・・
340 :
337:2006/11/18(土) 19:36:58
読み直したらめちゃくちゃ理解しがたい文章書いてしまいました。
すいません。
よろしくお願いします。
理解しがたいと自覚したならリライトしようよ。
SP はバグつぶしのためのものなので当然当てるべき。
SP 当ててりゃ .NET Framework のバージョンは悩まないで良い。同じ。
サードパーティのはサードパーティにバージョン管理のポリシを聞くべきだな。
Microsoft はマイナーバージョンまでが同じなら相互互換性を達成させておくべきだというガイドラインを示してるけど。
342 :
デフォルトの名無しさん:2006/11/18(土) 20:19:39
NetworkStreamクラスのWriteメソッドについて質問させてください
Writeメソッドは書き込むデータをbyteの配列で指定するようなのですが
byte型だと負の値が使用できません
NetworkStreamクラスで負の値を使用したい場合はどうすればいいんでしょうか?
何をしたいのかさっぱり分からんが、BinaryWriter 使えば?
>>343 JavaのDataOutputStreamクラスのwriteメソッドと同じ機能を.NETで実現したいんです
BinaryWriterだとファイルIOにしか使えなくないですか?
ネットワークIOでbyte型の負の値を使用したいです
BinaryWriter は Stream に対するバイナリ書き込み用クラスだ。
意味は分かるな?
言っておくが StreamWriter もそうだぞ。> Stream に対する
つーか正か負かなんて関係ないんじゃね?
>BinaryWriterだとファイルIOにしか使えなくないですか?
何を見てそう思ったのか不思議だ。
VB.NET 2003でボタンを押すたびに音声ファイル(WAV)が流れるように
するにはどんなコードを書けばいいんでしょうか?
349 :
337:2006/11/20(月) 09:11:54
いつも、開発環境とクライアントの環境で意味不明のエラーがでてまして
どうやらそのあたりに関係がありそうです。
これから調べはじめます。
.dll とかそのた依存ファイルがBin の中にうんざりするほど
入れてたのでそれの整理からはじめます。
いろいろありがとう御座いました。
あまりに初歩的な質問で恐縮なのですが、子供の為にボタンを使ったゲームを作っています。
ボタンが複数ある場合で任意のボタンの色を変えたいのですが、その際10個のボタンがある場合に
b=変えたいボタンの番号
if b=1 then Button1.BackColor = System.Drawing.Color.Blue
if b=2 then Button2.BackColor = System.Drawing.Color.Blue
・
・
・
のようなコードになるのでしょうか。
配列変数のように
button(b).BackColor = System.Drawing.Color.Blue
のようなボタンの指定の出来れば一行ですむのですが、VBでは出来ないのでしょうか?
>>350 Buttonをあらかじめ配列やリストにつっこんどいてループ。
あるいはform1.Controlsをループでまわして当該ボタンと比較
352 :
350:2006/11/20(月) 11:23:05
>>351 >Buttonをあらかじめ配列やリストにつっこんどいてループ。
回答ありがとうございます。
Buttonを配列変数に代入するということなのでしょうか?
Private btn(9) As System.Windows.Forms.Button
とかでもいいんでね?
で、最初に上の変数にボタンオブジェクトを代入しておいて
変えたい場合に
btn(0).BackColor = System.Drawing.Color.AliceBlue
354 :
337:2006/11/20(月) 12:24:45
度々すいません よく、Binの中に
AxInterop.・・・
Infragistics.・・・
Interop.・・・
という、ある程度ルールに基づいてファイルができているかとおもいますが
この3つのファイルの名前の付け方の意味をご教授願えますでしょうか
検索したのですが詳しくわかるページがなかったもので・・・
よろしくお願いします。
355 :
350:2006/11/20(月) 12:33:34
>>353 回答ありがとうございます。
ボタンのそれぞれの名前をbtn(0)〜btn(9)のようにしておけばよい
ということなのでしょうか。
大昔の行番号のあるBASICしかやったことがないのでオブジェクトというものが理解出来ておらず
要領を得ない質問ですいません。
>>355 いやいや。
ドトネトになってコントロール配列は不可になったんだよ
ボタンの名前はなんでもおk。
試しにボタンのオブジェクト名が【btnTest】【btnHoge】 として
最初の起動時にでもさっきのPrivateの変数に対して
btn(0) = btnTest
btn(1) = btnHoge
・
・
・
というように10個分変数に代入。
そのあとは変数を参照して5個目のボタンなら
btn(4).BackColor = System.Drawing.Color.AliceBlue
見たいにすればおk
358 :
350:2006/11/20(月) 13:34:59
>>354 フレームワーク以外の参照が必要なDLLとか、プロジェクトでbin配下に
ファイルを入れてるなら、それがそこに入る。
ただそれだけ。
360 :
350:2006/11/20(月) 13:57:00
またひとつ疑問が。
今度は色の指定なんですが、こっちは配列変数には出来ないのでしょうか?
c(0)=”red”
c(1)="blue"
c(2)="green"
for i = 0 to 2
Button1.BackColor = System.Drawing.Color.c(i)
時間待ち
next
などとするとエラーになってしまいます。
算数で正解するとボタンがイルミネーションのようにくるくる色が変わるようにしたいのですが。
しかしVBってBASICって名ですが昔のとはかなり違いますね。
>>360 c(2) が、どう型を宣言しているかによる。
ボタンで勉強した応用だよ
Private c(2) As System.Drawing.Color
と今度は色の型宣言をして、この変数にいれるのもちゃんと
色の型を持つもの。
c(0) = System.Drawing.Color.AliceBlue
みたいに。
362 :
350:2006/11/20(月) 15:02:50
>>361 そんな型宣言も出来るんですか。
変数にボタンやらを代入してそれを操作出来る、それがオブジェクト指向っていう理解でいいのかな???
厨房の頃趣味でBASICとアセンブラをちょこっとやっただけなんで、すっかり様変わりした環境にとまどうばかりです。
ありがとうございました。がんばってみます。
>>362 そうだね〜
原点をオブジェクトとして、全てをオブジェクトから派生させたのが
オブジェクト指向なのかなぁ
フレームワークをみると、全てはオブジェクトから派生しているから
その考え方はとってもスマートで、いい感じ。
364 :
337:2006/11/20(月) 20:44:09
bin の中身の件 いろいろありがとうございます。
もう一つ質問させてださい。
全部で10個くらいのEXEで運用してるアプリケーションです。
クライアントフォルダはC:\D-AP で固定としまして
このフォルダの中にEXEを10個入れてます。
で、各EXEでコンパイルしたbinの中身をあわせた物を入れています。
ただ、新しくコントロールを追加した際DLLが足りない等の警告を極力
少なくしたいため、購入した.net ツールは前もって入れておきたい
(NetAdvantege とかInputMan ) で、インストールされている関係する
DLLやJaフォルダの中身を前もって全部入れて置くってのはありですか?
いつもありがとうございます。
よろしくお願いします。
>>364 ソリューションで、その今のところは使う予定はない.NETツールも
参照設定を入れておいて、インストーラで一緒に
配布してもいいんじゃないかな。
366 :
337:2006/11/21(火) 11:28:51
> 365
ありがとうございます。
そういえばそのパターン前にVB6.0の時それやったことありました。
今回もその手で行こうとおもいます。
ただ、プロジェクトに6.0からアップグレードしたのが結構あるので
依存関係やらなにやらいろいろありすぎて6.0のランタイムも
走らせてます。なかなかきれいなものができなくて
現在も格闘中です。
最近気がついたのですが .net のプロジェクトに参照設定がフルパスで
書いてあったのでそれを参考に.netツールは余分にいれたりしています。
いろいろとありがとうございました。
367 :
デフォルトの名無しさん:2006/11/21(火) 22:43:29
クラスとかオブジェクトとかインスタンスとかよくわからないので基礎からじっくり理解していきたいと思うのですが、
何かお勧めの本はありませんか?
じっくりやってる暇なんてないお
369 :
デフォルトの名無しさん:2006/11/22(水) 11:38:00
フォーム1で相対パスのアドレスが入ったstring形式の「pass」
というデータをフォーム2で使うようにしたいんですけど
どのようなプログラムをすればいいのでしょうか?
プログラムの仕様はフォーム1にあるボタンを押すとフォーム2に遷移。
その後フォーム2でフォーム1で取得した「pass」の中にあるtxtデータを元にプログラムを作っていく予定です。
ぐぐっても検索ワードが悪いのか上手く引っかかりませんでした。
ヒントだけでもいいのでよろしくお願いします。
>>369 passの内容をレジストリに登録
form2でレジストリを読む
いやいや、form1がメールで送ってform2で受け取ればいいだろ
>>371 ばかだなぁ
form1でソケットを生成して、form2で受信すればいいだろw
今風にするならWebサービスかな
374 :
369:2006/11/22(水) 13:34:05
>>370 即レス感謝です。
おかげさまで実装したい通りのものを作ることが出来ました。
他の方々もレス感謝です。
375 :
デフォルトの名無しさん:2006/11/22(水) 13:38:30
>>374 ほかの人をやきもきさせないように、
ネタかマジかかいとくんだ。
pathがpasswordになるのかもしれないじょのいこ
>>374 しかも、なんでよりによってレジを選ぶんだw
万が一、削除処理なんていれてたら・・・ヽ(ill゚д゚)ノ
shared って staticのこと?
381 :
369:2006/11/22(水) 15:17:17
>>376 ネタじゃなくてマジです。
>>377-378 すみません。プログラム内ではpathを使っていたのですが
こちらではpassで質問していました。お恥ずかしい。
パスワードはとは一切関係ないです。
>>379 他に方法があるのですか?
もしよろしければ参考にしたいので教えていただけると嬉しい。
ちなみに削除処理は入れてません。入れるとまずいのですか?
無学で申し訳ないです。作りながら学んでいるのですが難しいですね…。
>>380 まぁ、にたようなもの。
スコープが違って、sharedはクラス間でも共有されちゃうよよよよん。
>>382 マジで?
じゃあstaticの代わりになるものってなんですか?
>>381 dim f as new form2
f.pass = pass
f.show
>>383 staticは無くなってないよ(´・∀・` )
>>384 それは、form2がpassというメンバ変数かプロパティを
もっていないと使えない。。。。
C#のstaticに該当するのはsharedでいいんですか?
>>387 C#のstaticはいくつか意味があるから、どれのよ
C#のstaticはいろんな意味があるんですか?
これは驚いた。
VBでは意味が違うとワードも変わるということですか?
すげー
そういやC#のstatic classはどう書くのだろう。
NotInheritedで継承を禁止して、あとインスタンス化を抑制するのが見当たらない。
プライベートのコンストラクタでも書くのかいな。Moduleでもいいけどなんかいやだ。
>>392 VBに(今のところ)Shared Classはないよ。
>>389の変換結果は常に正しいわけじゃない。
394 :
デフォルトの名無しさん:2006/11/22(水) 18:55:45
Reflectorだと以下のようになった
static class Class1
{
public static int sum(int a, int b)
{
return a + b;
}
}
↓
Friend MustInherit NotInheritable Class Class1
Public Shared Function sum(ByVal a As Integer, ByVal b As Integer) As Integer
Return (a + b)
End Function
End Class
まんどくさいから、シングルトンに汁。
まあ、動けばなんだもいいさ
>>394 MSILレベルでは抽象クラス宣言と継承禁止宣言の2つを行うことで静的クラスを実現しているからね。
でもこれをVB.NETでやろうとしてもコンパイル通らない。
>>391 継承禁止にして、コンストラクタの隠蔽によるインスタンス化禁止でほぼ同等のことが実現できる。
>Moduleでもいいけどなんかいやだ。
Moduleと静的クラスは全く別物だからダメだよ。
ModuleにはStandardModule属性が付いているからね。これだけでもう全く別物。
VBAのスレが立っていないのでここで質問させてください
組込み定数でタブはvbTab改行はvbCRとかあるのですが
スペースとカンマと括弧()の組込み定数を教えてください
もし無ければJISコードでも結構ですのでお願いします。
なぜスレがたつまで待てないのか
なぜヘルプを見ないのか
なぜAsc()で調べないのか
怠惰で傲慢で愚昧だから
>>398 >Moduleと静的クラスは全く別物だからダメだよ。
>ModuleにはStandardModule属性が付いているからね。これだけでもう全く別物。
何が困るわけ?
ああ、クラス名での修飾がいらんとかそういう話?
404 :
デフォルトの名無しさん:2006/11/24(金) 22:23:28
テキストファイルにある数字を一つずつ2次元配列で格納したいんですが
上手くいきません(ノД`)誰かご教授お願いします。とりあえず恥さらしソースのせてみます
Dim sr As New System.IO.StreamReader("ファイルパス", System.Text.Encoding.Default)
Dim buf As String
Dim retu As Integer = 0
buf = sr.ReadLine
retu = Len(buf)
Dim gyo As Integer = 0
Do Until sr.Peek = -1
gyo += 1
buf = sr.ReadLine
Loop
Dim array(retu, gyo) As Integer
Dim i , j As Integer
Do Until sr.Peek
For i = 0 To gyo
For j = 0 To retu
array(i, j) = sr.read
Next
Next
Loop
sr.Close()
効率的な方法もあるんでしょうがとりあえず行と列を求めて(テキストファイルの列数と行数は同じの前提)
ためしにテキストボックスでretuとgyoを表示させたところ
ちゃんとした数字が入ってるんで一応そこまでは合っているようなんですが配列が全くできません(ノД`)誰かよろしくお願いします
>>404 うへへははははwww
い、いんてじゃぁwww
406 :
デフォルトの名無しさん:2006/11/24(金) 22:28:48
もしかしてIntegerが違うんですか?
ご存知でしたら教えてください
お願いします(ノД`)
>>406 うへへははwww
もう、酔っぱらってよく分かんねww
でも、デバッグでbufを見たらちゃんと出てただろw
arrayはなんでいんでじゃぁなんだよw
うへwうへへへへww
408 :
デフォルトの名無しさん:2006/11/24(金) 22:54:33
レスありがとう
でも Dim array(retu, gyo) As Stringでも上手くいかない(ノД`)
integer、string以外で試して見れば?
>409
ぶはははっはwww
あほだw
あほがいるwwww
peekに達したんだからよめね〜だろwww
あほだwwwwwwwwうわははははははwwww
いやそれ以前におかすぃだろ
Dim sr As New System.IO.StreamReader("c:\data.txt", System.Text.Encoding.Default)
Dim buf As String
Dim retu As Integer
buf = sr.ReadLine 'よーしおにいさん1行よんじゃうぞー。
retu = Len(buf) '列の長さはどの行も一緒。と仮定しちゃうぞー。
Dim gyo As Integer = 1 '既に1行読んでるからなー
Do Until sr.Peek = -1
gyo += 1
sr.ReadLine()
Loop
sr.Close()
sr = New System.IO.StreamReader("c:\data.txt", System.Text.Encoding.Default)
'いったん閉じて開きなおす。よーしまた最初から読み直しだぞー。
Dim array(gyo, retu) As Char 'おにいさんは文字と数値の区別をつけるぞー。行と列逆やんか。
Dim i, j As Integer
Do Until sr.Peek = -1
For i = 1 To gyo 'よーしおにいさん0オリジンなんか嫌いだぞー
buf = sr.ReadLine '↑早くも撤回。
For j = 1 To retu
array(i, j) = buf(j - 1) 'bufは0個目から
Console.WriteLine(array(i, j)) '出力ウィンドウで確認だぞー。
Next
Next
Loop
sr.Close()
3686
4556
6784
1883
1868
1118
1587
c:\data.txt
VB.NET久しぶりすぎる。
ってかVB.NETだよな?
414 :
デフォルトの名無しさん:2006/11/24(金) 23:42:40
VB.NET使ってます
最凶VB厨房先生、超親切な解答ありがとう
説明文も丁寧で嬉しいです
本当にありがとう(ノ∀`)
415 :
407:2006/11/24(金) 23:45:00
>>414 なぁんだよぉ
俺には感謝の言葉はないのかよぉ?うん?
416 :
デフォルトの名無しさん:2006/11/24(金) 23:46:05
酔っ払いの兄ちゃんもありがとう(ノ∀`)
みんな優しくて嬉しいです
本当ありがとう
VBにジャグ配列ってないの?
VBAでEXCELのワークシートからCのenum構造体に変換するマクロ作らされたんだが
あっさりと出来てしまった
VBもこんな感じなの?
VC8でヒーヒーいわされただけに物凄く簡単に思えてしまう漏れは勘違いなのでしょうか?
>>404 VS2005/.NetFramework2.0以降を使用してたらジェネリックメソッドを使用して
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim sr As New System.IO.StreamReader("c:\data.txt")
Dim intArray() As Integer = Array.ConvertAll(sr.ReadToEnd().Split(vbLf), New Converter(Of String, Integer)(AddressOf StringToInteger))
sr.Close()
End Sub
Private Function StringToInteger(ByVal value As String) As Integer
Return Integer.Parse(value)
End Function
というかんじでもできる
(vbLfのところは、テキストファイルの文字コードによってvbCrLfに変更汁)
>>404 ごめ、2次元配列だったな
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim sr As New System.IO.StreamReader("c:\data.txt")
Dim buf() As String = sr.ReadToEnd().Split(vbCrLf.ToCharArray())
Dim gyo As Integer = buf.Length - 1
Dim retu As Integer = buf(0).Length - 1
Dim arrbuf() As Integer = Array.ConvertAll(Join(buf, "").ToCharArray(), New Converter(Of Char, Integer)(AddressOf CharToInteger))
Dim arr(gyo, retu) As Integer
Dim p As IntPtr = Marshal.UnsafeAddrOfPinnedArrayElement(arr, 0)
Marshal.Copy(arrbuf, 0, p, arrbuf.Length)
sr.Close()
End Sub
Private Function CharToInteger(ByVal value As Char) As Integer
Return Integer.Parse(value)
End Function
簡単なことを難しくやる典型的な例ですね
PinnedArray とか言いつつどこにも Pin している形跡がない件について
>>421 うははwどこのサイトで調べたかわからないけど、
お前のスキルじゃ、使いこなす事はできないよw
>>423 ヘルプみるとメソッドが、GCHandleに対してpinを発行してるんだってさ
そりゃ誤読だ
>>426 ありゃ誤爆ちゃたのか俺
まあ、読解力低いからな
プロセスのアイコンを取得することは出来ませんか。(taskmgr.exeのアプリケーションタブにあるように)
やはりAPIが必要なんですかね、、、
429 :
デフォルトの名無しさん:2006/11/27(月) 19:11:28
C#でのstatic classがShared Classって書けないのはモジュールがあるから?
C#で作ったstatic classをReflectorでVB.NETとして開いたら、
Friend MustInherit NotInheritable Class
ってなったよ。意味は分からないけど。
絶対に継承しろよ
ただし継承はできないぞ
VB では未サポートだってば。>静的クラス
モジュール>>>>越えられない壁>>>>静的クラス
頼むから、モジュールは死んでほしい。
VB厨と仕事をする度に思う。
死んでほしい。
ブラウザのリンク上で特定のキーを押したら
タイトルとアドレスをコピーというものを実装させたいのですが、
ヘルプを見る際どういったキーワードで検索を
すればいいのか教えてください。
VB2005で、ゼロで除算するとエラーじゃなくて∞が返る
明日からVB.NETの研修が1ヶ月間はじまります。
テキストでの座学(独学)3日間→インベーダーゲーム作成
→オリジナルゲーム作成(題材は自由)
です。
VB.NETという言語がいまいちわからないのですが、
ゲーム作成などに優れた言語なのでしょうか?
オリジナルゲーム作成ではテトリスかリバーシを考えております。
グラフィカルな部分でも相当頑張らないといけないみたいで、
今から気が重いです。
御愁傷様
>>441 何やってる会社?
VB使うゲーム会社はないだろうし・・・
>>443 基幹システム設計・開発
ウェブサイト構築・デザイン
携帯電話アプリケーション開発
などなど。正直良くわかっていません。
ゲーム会社ではないのですが、
VB.NETは主にどんな分野で使用されている言語なのでしょうか?
>>444 >VB.NETは主にどんな分野で使用されている言語なのでしょうか?
答えは自分で書いてるジャン
っていうか言語の研修なんだろ?
構文や制御くらいしか説明する時間がないから
テーマは簡単なゲームになることが多い。
VB.NETに限らず、なんにも知らんヤツに2〜3日で
データアクセスまで説明できんだろ。
よってVBがゲームに向くとかどうとか関係なし。
ゲームのほうがロジカルだからいいんじゃね?
んなこたーない。
ゲームづくりっつー課題は、道具の使い方を覚えるには適切な教材だよ。
450 :
デフォルトの名無しさん:2006/11/29(水) 12:36:49
オセロとテトリス、
初心者が作るとしたらどちらが難しいと思いますか?
オセロ <<< テトリス
オセロは、ユーザーからのアクションをただ待てば
いいだけだから、簡単そう。
.DropDownStyle = ComboBoxStyle.DropDownList;
じゃ駄目なのか?
454 :
452:2006/11/29(水) 13:50:21
いや、選択されたリストの変更もさせたくないのよ
455 :
デフォルトの名無しさん:2006/11/29(水) 13:53:19
コントロール派生させて作ればいいじゃん。
DataBindingとか上手く使えば別に50ステップも無く作れる。
456 :
452:2006/11/29(水) 14:22:40
うーん、DataBindingをどう使えばConboBoxを変更不可にできるのか、
いまいちピンときません。
もうちょっとヒントお願い。
457 :
デフォルトの名無しさん:2006/11/29(水) 17:38:41
コンボから離れろ。
普通のラベルで内部にHashMapなり、値・表示値を保持。
初期化でコンボと同じようにそれを与えて、設定されたValueに対してText表示を変える。
>>452 いまだにこういう人っているんだね。
WinのGUIの思想が全然わかってない人。
いや、コントロールなんて所詮道具なんだから別に思想に反したって
結局使いやすけりゃそれでOKなんだが、どう考えてもそんなコンボボックスは
ユーザーにストレス与えると思うわ。ス元みたいなGUI使いたくないわ
いやホント、それってどうしてラベルじゃいけないのか分からん
入力させない、選択させないって時にコンボ使う理由は?
>>459 保護したときにグレーダウンして字が薄くなるのがだめなんでしょ?
だからそれが発想が逆立ちしてるんだよ。
ユーザー目線で物考えられないのかな。
見た目普通なのに入力も選択もできないコンボボックスなんて
イライラ製造機以外のなんでもねえだろう
462 :
デフォルトの名無しさん:2006/11/29(水) 22:27:56
VB.NETでウィザードページみたいなのを作っているのですが
沢山のテキストボックスの内容をチェックして、NextボタンをTrueにしたり
間違いがあるならその項目の文字列を赤にするなどのフォーマットチェック
の凄いバージョンをしたいのですが、どのようにするとスマートなのでしょうか
今はCheck()と言うサブルーチンを作って、それですべてのテキストボックスの
内容を調べて、ボタンをEnableにしたりFalseにしたり、文字を赤にする等を行
なうようにして、すべてのテキストボックスのイベントでCheckが発生するよう
にしています。
>>461 ほっとけばいいんでない?
>>452 コンボボックスを継承したクラスをつくって、イベント内で
処理をキャンセルするようなプロパティをついくればおk
プロパティ名はIsReadOnlyでおk。
>>462 コントロールチェック用のクラスを作る。
コントロールをオブジェクト配列にでも格納。
チェックを行いたいタイミングで、そのクラス内でチェックを
行えばいいんでない?
>>461 見難いから見やすくしろというユーザーも少なからずいるんだけどな
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
AddHandler Application.Idle, AddressOf Check 'Check開始してみるてすつ
End Sub
Private Sub Check(ByVal sender As System.Object, ByVal e As System.EventArgs)
'ずらずらと
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
RemoveHandler Application.Idle, AddressOf Check 'Check終了してみるてすつ
End Sub
>>465 お前、意外とバカというか、マヌケだな。
模範解答どうぞ。
最凶VB厨房が怒ったw
今回の要件は
>すべてのテキストボックスの内容を調べて
>すべてのテキストボックスのイベントでCheckが発生する
の二点かな。
チェック関数をそのままつかったら、意味ないじゃん。
cpuのアイドリングをまって、描画がちょっと良くなるくらいじゃない?
ドトネトになって、イベントの集約が可能になったのは知ってる?
Handles と続けて。
で、チェック用にオブジェクトを格納するクラスを作って、
やりたいチェックを行うメソッドを作れば、いいじゃん。
おれなら、ControlCheckクラスとかなんとかいって作る。
他でも使い回しができるし。
酔いちくれが言える事はこのくらいかな。
469 :
461:2006/11/30(木) 00:11:02
>>452 まあ文句言うだけだとアレなんで一応方法考えてみたよ。
試したところこれで一応可能なようだけど。
Win32のメッセージに明るくないんでどこかおかしいかもしれないが。
ReadOnlyってプロパティが既に実装されていることを前提としている。
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
Const WM_LBUTTONDOWN As Integer = &H201
Const WM_LBUTTONDBLCLK As Integer = &H203
If Me.ReadOnly = True Then
Select Case m.Msg
Case WM_LBUTTONDBLCLK, WM_LBUTTONDOWN
'MyBase.WndProc(m)
Case Else
MyBase.WndProc(m)
End Select
Else
MyBase.WndProc(m)
End If
End Sub
470 :
461:2006/11/30(木) 00:11:33
Protected Overrides Sub OnKeyPress(ByVal e As System.Windows.Forms.KeyPressEventArgs)
If Me.ReadOnly = True Then
e.Handled = True
End If
MyBase.OnKeyPress(e)
End Sub
Protected Overrides Sub OnKeyDown(ByVal e As System.Windows.Forms.KeyEventArgs)
If Me.ReadOnly = True Then
If e.KeyData = Keys.Delete Then
e.Handled = True
End If
End If
MyBase.OnKeyDown(e)
End Sub
>>462の前半は要件(やりたいこと)。後半は現状じゃないのか?
いまいち言ってることがわからん。
472 :
461:2006/11/30(木) 00:14:37
ああ↑↓キーも禁止しないと不完全だね
473 :
デフォルトの名無しさん:2006/11/30(木) 00:31:56
VBってC,JAVAでいうところの演算子「%」ってないんですか?
文字では有効ではありませんと怒られたんですけど
>>471 違う違う。
オレら回答者にとっての要件という意味。
なんてったて、スマートにしたいんだろw
sub ちぇっく()
handles てきすとぼくす.leave, ちがうてきすとぼくす.leave
でも、なんでもやってとりあえず一個にまとめたらどう。
477 :
デフォルトの名無しさん:2006/11/30(木) 14:18:10
グローバル変数みたいなのはどうやれば使えますか?
あとでオブジェクト指向にのっとった作法どおりのコーディングに
直しますので、とりあえず勉強しなくても使えるやりかたを教えてください。
どっかのクラスにSharedでPublicな変数?
使おうとも思わないから良く判らんが。
OOでやるなら、しんぐるとん実装したクラスから取れば同じでしょ。
>>477 そんな素敵な君に
System.Reflection クラス
を教えよう!
これを極めれば、どんなスコープだろうとも、どこからでも
参照できます!
MethodInfoなんて取得できれば、関数だって実行できちゃいます!
480 :
デフォルトの名無しさん:2006/11/30(木) 15:59:15
リフレクションとグローバル変数はちがうべさ。
しったかこくでねー。
リフレクションは単に動的にオブジェクト実体を名前(型)から生成できるだけ。
アドイン機能とか、可変メニューで使うが吉。
まあ空気以前に間違っとるわな。
483 :
デフォルトの名無しさん:2006/11/30(木) 19:18:53
ラベルの配列を作ってフォームに並べる処理を行った後で、
「ラベルの上でクリック」をイベント発生の条件にしたいのですがどのように書けば良いのでしょうか?
ラベルは二次元配列です。クリックされたラベルの添え字をどうやって検出すれば良いのかが判りません・・・
>>470 Win32 API を使えば、もっと簡単に出来るぞ
ComboBox1.Enabled = False
ComboBox1.DropDownStyle = ComboBoxStyle.DropDown
EnableWindow(GetWindow(ComboBox1.Handle, 5), 1)
486 :
452:2006/11/30(木) 22:17:51
急な用事で1日ぶりにやってきたら、なんかえらい不評かってる・・・。
絶対みんな欲しがってると思ってたのに。
ラベルとコンボの切り替えなんて、そんなのVB4.0の時からやってたけど、めんどくせーじゃん。
逆に.netでまだそんなことしてるのかよと笑われるかと思ったら、皆さんベタなのがお好きなようで。
今回やろうとしてることとラベルの違いなんて、右端に矢印ボタンがあるかどうかの違いだけだし、
矢印ボタン1つでそこまでGUIの思想とやらが狂うものかね。
ちなみに見た目普通じゃないぞ。バックカラーも変えてるぞ。
ともあれ、
>>469、470 のソースいただきました。
ソース完璧でございました。
ありがとうございました。
希望通りのものが出来たよ。
>>484も勉強になったけど、APIはあんまり使いたくなかったの。
>>484 「簡単」とはコードの短さのことじゃないだろうw
それに、その方式だとユーザーがEnabledの動作もオーバライドする必要があり、
しかもそのコードは非直観的なものにならざるをえないんじゃないの?
>>487 ComboBoxをDisableにして中のEditBoxをEnableにしているだけだから簡単だろ?
戻すときはComboBoxをEnableにするだけで戻ったはず。
で、どこが直感的でないんだ? Win32 Api を知らない人にとってはって意味?
>>488 ああ今わかったよ。
>>484はある意味非OOP的な考え方をしてるんだね。
ComboBoxを継承して新機能を付加する、って発想じゃないわけだ。
そうじゃなくて、あくまでComboBoxを使うユーザーのコードのなかでComboBoxをいじる、という発想。
話が噛合わないわけだ。
ついでに言えば、やっぱりそういう発想はスパゲティ的であって「簡単」とは言わんでしょう
何をおっしゃっているのかマジでわからんw
どこをどうみたらスパゲティ的なのか。
ふふふ
うへへははw
やっぱり、ブービー厨を酒のつまみにするのは最高w
うん??
なぁんだよ。
495 :
デフォルトの名無しさん:2006/11/30(木) 23:31:23
どなたか教えて下さい。
環境はORACLE9iでVS2003です。
DBからテーブルをDaTaSetに落とし、そのDataSetをDataGridViewに表示させると少数が近似値をとってしまうようです。
例…0.02が0.02000000002みたいになります。
DataGridColumnの型をなおすにはどうすればよいでしょうか。
>>495 基本的には必要な桁までに丸めればいいんじゃないの?
あるいはDataSetにぶち込むオブジェクトのToStringをオーバーライドして
必要な桁までの文字列になるようにするか。
>>489 ComboBoxを継承して中の人をオーバーライドすれば簡単にOOPという物になるだろ?
応用が利かないのか。
オレは、スパゲティ好きのWin32 SDKな人だが文句あるか?
>>498 文句とかそういうガキ臭いこと言わないの。
まあもし
>>487の話読んで何言ってるのかピンとこないなら、
実際にComboBoxをオーバライドしてReadOnlyの機能を実装する際に
>>484みたいな
やり方で実装してみればたぶんわかるよ。
その感じだとひょっとしてコーディングしてるうちには能天気にも
問題に気づかないかもしれないけど。
コンボボックスをおーばーらいどするという表現で
おれは、ジョッキ一杯は飲めるw
なにをジョッキ一杯れすか
503 :
デフォルトの名無しさん:2006/12/01(金) 14:04:13
ル・ラーダ・フォルオル!
>>502 びーる以外のものがジョッキに入ってたら
たまげるぜ。
お前のそのかわいさで、もう一杯はいけるな。
しかし、ドットネットは便利だ。
System.Diagnostics.Process.GetCurrentProcessのCPU使用率を取得したいのですが、どうしたら良いのでしょうか。
TotalProcessorTimeから取得できそうですが、どうすれば取得できるのか、、、分かりませんorz
プロパティに無けりゃ無理だろ
NT 系限定で良いなら PerformanceCounter とか使えるかも知れんな
>>500 >>484みたいなやりかたでComboBoxをオーバライドするとどんな問題が起きるのだ?
VB厨にわかるように教えてくれ!
もう、オレのパトスは限界だ!
びゅっ!とでる!
コンボボックスをオーバーライドするんだ!
wwwww次元が歪んだ世界wwwwwww
どこの世界も心の働きがズレている、というか幼いのが増えたよな。
何が楽しいんだかねまったくw
俺には理解できんセンスだ。
>>508 継承、な。
まずやってみれば?
話はそれから。
皮肉も理解できん奴も増えたよな
ガクガク(((゜Д゜)))ブルブル
>>508 つ s/ComboBox1/MyBase/
>>512 それが「皮肉」として成立すると思っちゃうような感性を、人は幼稚と呼ぶんだよw
(゜∀゜)(∀゜)(゜ )( )( ゜)( ゜∀)(゜∀゜)
517 :
デフォルトの名無しさん:2006/12/02(土) 03:15:26
【使用環境】VB.NET2003
string形式の文字列を配列使わないで
ループで一文字ずつ取り出していく方法ってありませんか?
a(i)
519 :
デフォルトの名無しさん:2006/12/02(土) 04:30:31
>>518 それすると配列じゃないってエラー出るんですよね
2005なら全く同じソースで動いたんですけども
a.Chars(i)
for i=0 to len(str)-1
part=str.substring(i,1)
next
じゃあかんのか?
あほか
523 :
低脳無能な愚民:2006/12/02(土) 15:27:14
MP3とWAVEとWAVEを3つ同時に流したいのだが、どーすりゃいいんだぁー??泣泣泣
お前には無理。
GUI作成中にラベルの境界が見えないのは改悪だろ
常識的に考えて
.textに識別がつくようになんか入れとけばいいじゃん。
527 :
デフォルトの名無しさん:2006/12/02(土) 22:18:03
超初心者ですみません
図形を描写するプログラムはPictureBox1_Paintに書かないといけないんですか?
Form1_Loadだと描写できないんですかね?
マジレスすると超初心者のまずすべきことはこんなところで人に質問することじゃなく、
入門書をあさることだろう。
まあ、すでにこうやって質問してる時点で見込みがない人だと思うけど
529 :
デフォルトの名無しさん:2006/12/02(土) 22:29:56
入門サイトは見てるんですけど調べたいことは載ってないんですよね
ボタンクリックすると表示されるソースはあるのに
フォームロードで作ってみても描画されないしもう諦めて寝ます
だから初心者のクセにやりたいことだけピンポイントで調べよう、なんて考えが間違ってるんだよ。
そんなの10年早いわw
現にお前さんがそうであるように、初心者の思う「やりたいこと」っていうのは
的外れなことだったりするからな。
ぶっちゃけ
Loadイベントで描画
→CreateControlされた時等にだけ呼ばれる
→Formが表示されたときに消える
Paintイベントで描画
→画面がInvalidateされるたびに呼ばれる
→ずっと表示されてるように見える
>>530 一通り書かれている入門書は読むべきだな。
そうでなければ、入門サイトを調べるのとは別に、各コントロールのイベント、メソッド、プロパティを見る事。
>>530 が言ってるように、ピンポイント情報ではなく全般的に知識を持つ事が重要。
533 :
532:2006/12/02(土) 23:05:31
DLLで void xxx(char* str); な関数を実行して、strの内容を取り出すにはどうしたら良いでしょうか、、、
この関数はstrの内容を書き換えるようなのですが、、、
素直にCharを指定しても最初の1文字しか取得できないし、StringBuilderの使い方も分からない、、、orz
Private Declare Ansi Sub xxx Lib "dll.dll" (ByRef s As System.Text.StringBuilder)
Dim aaa As New System.Text.StringBuilder(256)
xxx(aaa)
AccessViolationException、、、ググっても分からないorz
あーバカだった。ByRefじゃねぇ、ByValだ。お騒がせしました、スレ汚しスマソorz
538 :
デフォルトの名無しさん:2006/12/04(月) 01:38:55
文字列の左右の空白を削除する関数で
Trim( )っていうのがあると思うんですが
string型の文字列を入れても空白が削除されないんですが
どんな問題が考えられるでしょう? 何度やってもだめです。
ただinteger型の数字を入れると空白が削除されます。
これは何が起こってるんでしょうか?
>>538 多分君の頭に問題があるんじゃないかな。
マジレスして欲しかったらその現象が起こるコード書こうね。
540 :
538:2006/12/04(月) 01:50:44
>>539 VBAですがいいですかね?
VBAスレ無くなっちゃってるので書き込んだのですが。
541 :
デフォルトの名無しさん:2006/12/04(月) 01:51:00
文字列の内容次第だが、
ExcelのTrim関数で同じコトがおこるか確かめてみて、
同じコトがおこるとしたら、
そのときは、 「Excel Trim 文字数」 とかでググってみそ?
(オイラがググってないため回答が得られるかはナゾw)
おそらく、世の中の大概のプログラマが一度は経験したことがアル問題だわw
この手の話、自分で調べて納得して解決するのが一番良いよ。
542 :
538:2006/12/04(月) 02:00:25
>>541 おきますね、ワークシート関数でもおきます。
文字数はそんなに多くはないんですけどね。。。
何が原因なんでしょうか?
今ぐぐってますが、ちょっと判らないなぁ。
もうちょい調べてみます。
543 :
541:2006/12/04(月) 02:13:26
オイラが、プログラミングを始めた頃は悩んだ問題のことだと思ったので、
初歩的なコトだったら良いんだけど、
的外れだったら申し訳ないから、確認・・
実際、どんな文字列を、
どうやって関数にたたき込んで、
どんな結果になるのかな?
そして、どんな結果が欲しいのかな?
544 :
538:2006/12/04(月) 02:21:57
>>543 貼っちゃいますね。
といっても貼った所でどうにもならないコードですが−−;
Sub aaa()
Dim a As String
a = Trim(Cells(1, 1))
Cells(2, 1) = a
End Sub
中に入れた文字列は「ジャスダック」「ヘラクレス」「マザーズ」です。
コピペしてきたんで「 ジャスダック 」こんなふうに隙間が開いちゃってるんですよね。
この隙間を無くしたいんですができないんですよね。。
色々な文字列で試しましたが基本的に全部ダメですね。
でも数字だけはなぜかできるんですよね。。。
545 :
デフォルトの名無しさん:2006/12/04(月) 02:25:28
546 :
538:2006/12/04(月) 02:28:10
普通の文字列ですよ、↓の感じです。
?マザーズ?
?マザーズ?
?ジャスダック?
?東証1部?
?ジャスダック?
?東証2部?
ってなんだこりゃ?
コピペしたら前後に何かついてますね。。。
なんだろこれ?
VBマガジンてまだあるのか?
dotNETマガジンに移行した
WDMに移行した
休刊ポストに…。
551 :
デフォルトの名無しさん:2006/12/04(月) 12:19:28
配列の一つを削除して、中身を繰り上げる処理をする関数みたいな物ありませんか?
絶対あると思うのですが。
イメージとしては
a[0]=5 a[1]=6 a[2]=7 a[3]=8 a[4]=9 a[5]=10
という配列があっとして、2の配列の中身を削除して繰り上げると
a[0]=5 a[1]=6 a[2]=8 a[3]=9 a[4]=10 a[5]=0
こんな感じになるイメージです。
まあ、ちょっとMSのポチになり過ぎて世の中の需要とずれちゃったのが失敗だったよねw
「日経ソフトをもうちょっと実践的にしてみました」みたいな誌面を目指せばよかったのに。
>>551 絶対ないw
ArrayListでも使えば?
つーか、いい加減そういう「関数」とか「中身を繰り上げる」みたいな発想やめたら?
前者はともかく、後者みたいな発想でそういうことに下手に手を出すと
脅しじゃなくて危険だよ。
555 :
デフォルトの名無しさん:2006/12/04(月) 12:54:22
>>552 問題は、今後まともなプログラム雑誌がなくなることだな。
日経ソフトウェアは正直ホビーレベルで実務イメージが一切無い。
RemoveAtとかなかったっけ?
惚けてた、固定サイズだな…
一発じゃないだろ
>>555 まあでも実務というのとは違うにしても、日経ソフトにも質の高い記事は(たまに)あるんだけどね。
安室さんの記事とか。
561 :
デフォルトの名無しさん:2006/12/04(月) 21:45:56
simei = miyoji & 全角スペース & namae
全角スペース ってどうやればできるの?
JPEG形式でクリップボードに書き込む方法ってある
DirectXSDK入れてもプロジェクトにアイコン出てこないのは仕様?
>>562 ビットマップとJPEGファイル両方クリップボードにsetすればいいんでは?
VB2005ではMSChartってインストールされないんでしょうか?
もしそうなら、代わりの機能とかどうにかしてMSChartを使うこととかできませんか?
566 :
デフォルトの名無しさん:2006/12/05(火) 20:05:54
>>565 質問する前に自分で少しはあがけよw何もしてないだろ?ググることすら。
COMのコントロールなんだから普通にVB2005でも使えるでしょ
直で使って問題あるならVB6でラップすればいいじゃん。
まあ、そこまでして2005使う意味がよくわからんが
567 :
565:2006/12/05(火) 20:27:15
>>566 すいません。かれこれ半日くらいググってるんですが、よくわからなかったもので・・・。
ツールボックスのカスタマイズのCOMコンポーネントタブに表示されるリストに
見当たらなければ使えないんでしょうか?
無いなら使えるわけなかろう。
質問に答えないで煽るだけの奴って何でいるんだろうな?
VB.NETにMSChartはついてこない。
VB6などMSChartを含んでるアプリが別途インストールされているならVB.NETから使える。
>ツールボックスのカスタマイズのCOMコンポーネントタブに表示されるリストに
>見当たらなければ使えないんでしょうか?
その通りで、別途インストールされていれば表示される。
別途インストールしていないなら 「無いなら使えるわけなかろう。 」
571 :
565:2006/12/06(水) 06:50:15
>>570 わかりました。有難うございます。
VB6インストールしてないので代わりになるものをググってみます。
572 :
デフォルトの名無しさん:2006/12/06(水) 08:51:06
画像を反転させるには(回転)どうしたらいいんでしょうか?
ゲームで主人公が武器を回転しながら投げるという感じです。
投げるまではいけたんですが。
573 :
デフォルトの名無しさん:2006/12/06(水) 09:42:17
みんな使ってね
ぼくの人柱になりなよ
音楽、映像、WEBデザイン等幅広く活動していきたいと思います。
[email protected] BIZNOT ART WORKSでは随時募集しています。悪用だろうが非商用だろうが一切代金は頂きません。
。下記メールアドレスまでいろいろメッセージ頂戴ね。
[email protected] 文句あ???
あはハハはああh
最高のデザインと音楽だよ
>>564 EncoderしてJFIFでクリップボードに入れたんだけど
どうしてもオフィスで貼り付けできないっす・・・・
根本から間違ってるのか俺orz
流れ乱しますが、
vb.net の課題と その課題の作成例?
が 置いてあるサイトがあれば教えていただけませんか?
579 :
デフォルトの名無しさん:2006/12/07(木) 10:36:43
こんなやつに拾ってきた課題だされるやつもかわいそうだな。w
課題設定できない、せめて自分でみつけられないやつに、教えるなんてできるんか?
580 :
デフォルトの名無しさん:2006/12/07(木) 11:23:16
VB.NET初心者です。
皆様のお知恵をお貸しください。
アプリAで行ったデータ更新を
アプリBに通知し、アプリBで表示中のグリッドのデータにアプリAで
行った更新が反映される(データ再読込み)というものです。
以上の事を非同期プロセス間通信で行えばいいといわれ、
PostMessageについて色々と調べたのですが、いまいち使い方がわかりません。
ユーザ定義のメッセージを PostMessageする方法について
ご教授お願いします。
WM_USER
WM_COPYDATA
そしてCOPY〜はポスト出来ないって話
つい最近@何とかで見たネタだな
584 :
デフォルトの名無しさん:2006/12/09(土) 21:32:37
(,,゚Д゚)∩先生方、質問です。
VS2003+SQL SERVER 2000です
LAN上なら普通にDB接続できるのですが、web上ではDBに接続できません。
ASP.NETだとDB接続は問題なくできているのでソースに問題があると思いますがイマイチ判りません。
SqlConnectionをopenする時にシステムエラーが出るので
"Server=hoge.co.jp;Database=DB;Integrated Security=SSPI;"
と書いていますが、hoge.co.jpの部分が全く違うのでしょうか?
あぁ〜酔った。
>>584 おまいのSQLさーばーは、認証はどうしてるの?
web上でDBに接続てどういう意味?
(,,゚Д゚)∩WINDOWS認証であります
LAN上ならできてWeb上ではできなくて
ASP.NETだとできる。
あー、つまり、どういうこった?
文盲スマソ
元々はIEを使ってデータ接続をしていたのです。(ASP.NET)
SERVERは会社にあり、自宅からIEだとDBに接続は問題なく出来ているのです。
今日フト思いVB.NETでアプリケーションとしても作って見たところ会社(LAN上)では
問題なくDBに接続できましたが、自宅にソースを持って帰り今やってみたところ繋がらない始末です
そんな恐ろしいことができるようになってんのかよ
なってないからできないんだろうがな。
ファイアーウォール、ポート開放、名前解決、ユーザ登録などの問題点が考えられる。
+
実はWindows認証ではなくSQLServer認証だったり。
そもそもインターネットからDBサーバが見えるようになってるとは思えん。
クライアントからSERVERを共有したけりゃ
「セッション」
があればいいよ
頭良さそうだし、ぐぐってみたら。
う、うへへあはははwwww
もう、たまらんwww
いんたーねっつから、DBがみえないんだってよwww
うははははははwwwww
いろいろ意見ありがとう御座います。
ひょっとして今自分がやろうとしている事ってかなり特殊なのかなと感じつつあります
例えばヤフオクに自社の商品(DBに格納してあるデータ)出品する場合IEを使って出品するけど大量に出品する時はとてもメンドクサイし管理が大変
そこでアプリケーションを作り自宅からでも商品の管理・出品が効率よくできるような感じです。
IEがアプリケーションに変わるだけと言いましょうかそんな感じのものです
実はナンセンス?
>591にある火壁・ポート開放・・・は、問題なくできているはずです。
会社のHPにもアクセスでき、外部(自宅)からもDBのinsertやらできているので大丈夫だと思っています。
認証はWINDOWS認証です。SQL SERVER認証は訳がわからなかったのでやめた記憶があります。
>593
セッションちょっと調べて見ます
あのさ、結局「DBに接続するコード」はどこのマシンで動くのよ。
繋がらないのに「外部からはinsertできる」っておかしいじゃんよ。
まさか、WEBアプリならどこからでもOKって当たり前な話じゃないよな?
区別がついてないんだろ。
インターネットから直接接続できるDBなんて
ぶっ壊してくれといってるようなもんだろ
まあしかし前になんだっけ、ウィルスはやったよね。
まあ大抵はあれで懲りたはずだけどな。
VBでお手軽に別のプログラムから他のアプリケーションプログラムを起動させたり、
入力ボックスに自動で入力したり、ボタンを押したりさせるような関数とかって
あるんですか。やはり、WIN32APIでの話題になるのでしょうか?
起動だけなら System.Diagnostics.Process で容易に可能だが、
操作となると .NET の標準ライブラリだけじゃ不可能だな
603 :
デフォルトの名無しさん:2006/12/10(日) 18:37:20
┌─┬─┬─┬─┐
│ │ │ │ │
├─┼─┼─┼─┤
│ │ │ │ │
├─┼─┼─┼─┤
│ │ │ │ │
└─┴─┴─┴─┘
ピクチャーボックスで描いた表のマスそれぞれを二次元配列にしていきたいんですけどどうすればよいのでしょうか?
最終的にはクリックしたマスが何列何行目のマスか一発でわかるようにし処理を加えたいと思っています
(例えば左から2番目上から3番目をクリックすると配列(2,3)で処理を行う)
表はなんとか作成できたのですが、ここで詰まっています
'縦の線
For X = 0 To Xmax
g.DrawLine(Pens.Black, X * MasuSize, 0, X * CellSize, Xmax * MasuSize)
Next
'横の線
For Y = 0 To Ymax
g.DrawLine(Pens.Black, 0, Y * MasuSize, Ymax * MasuSize, Y * MasuSize)
Next
Xmax、Ymaxは行と列の数、MasuSizeはマスの幅がそれぞれInteger形式で入っています。
>>603 他人にわかる人語すら満足に書けない人が
コンピュータのコード書けるわけないよ、悪いけど。
ここで詰まってます?
「ここ」って何だよ?w
605 :
デフォルトの名無しさん:2006/12/10(日) 18:57:19
「ここ」って言うのは最初に説明した
ピクチャーボックスで描いた表のマスそれぞれを二次元配列にしていきたい
ってことです。わかりにくくてごめんなさい。
最近煽るだけ煽っていくやつがいるな
他人にわかる人語すら満足に書けない人が
コンピュータのコード書けるわけないとか
自論持ち出してるけど証拠はあるのかよw
>>605 悪いがなんの説明にもなってない。
表のマスをそれぞれ二次元配列にする、とはどういう意味だ?
うざ
うざくてもなんでもいいが、自分の問題を正確に言葉で表現しない限り、
他人の協力は永遠に得られないよ。
606のような自分の言葉を自分自身に適用できない馬鹿は湧いてくるかもしれないがw
まあ問題を表現できないのは、表現力の問題もあるだろうがそれ以前に
本人が自分の問題がよくわかってないから、問題を分析的に把握できてないからだろう。
把握できてもいない問題のコードなんて永遠に書けるはずがないだろ。
>>609の言いたいことは俺も同意する。
だが、
>>603の言いたいことは、わかるだろ。
イマジーネーションがなければ、言葉で正確に表現できたとしても、
新しいものは生み出せないだろう
と言ってみる。
611 :
デフォルトの名無しさん:2006/12/10(日) 20:01:54
お目汚し失礼しました。
どうせこれ以上説明したところで上手く説明できないでしょうし
恥の上塗りになるだけでしょうから
他に頼る人もいないし自力で頑張ります。
要はなんだ?
>>603はオセロ系のゲームを作りたいのかな?
>>603 .NETのことあまり知らんが、クリックされた時に発生するイベントがあるだろ?
そのイベントでクリックされた座標Cx,Cyがとれるだろ??
そしたら、
Tx=Cx/CellSize
Ty=Cy/CellSize
配列(Tx,Ty)=????
みたいな感じでいいじゃないかね??
この場合、グリッドの左上を原点とした場合だけど、あとは適当に
補正してくれ。
>>611 つか、気にするなよ。はじめは、みんなだいたい新しい言葉を上手く
使いこなせいもんだよ。
うははw
やべぇ、酒の肴がたくさんだw
エンドユーザの意見を吸い上げる事に比べれば、
>>603は全然わかりやすい
614のとおり、気にするなw
なにより、AAうまくね??
いろんな解釈ができそうだ
動的にコントロールを作って、配列にぶちこんでるのか、
単純に座標をつついたときに、配列にビットでもたてるのか。
まぁ、もういいのか。
616 :
デフォルトの名無しさん:2006/12/10(日) 21:00:35
>>613 ありがとうございます
今出かけてるんで明日家に戻ったらやってみます
>>614-615 優しいですね。ありがとうございます
<<612さんの仰るとおりオセロではありませんがそんな感じのゲームにする予定です
まずはプログラムの知識がないと質問するのも難しいものですね
勉強になりました
デリゲートって、どんなレベルになると必要になるんですか?
初心者は必要ない?
イベント使うだろ?
ま、意識はしてないだろうけど。
質問です。
ClickOnceで配布するプログラムを作成しているのですが、
その場合、ユーザーが個別に設定を保存するのに適した方法は分離ストレージ以外に存在しますか?
spreadの列幅などを保存したい時は列幅分だけ項目を作るのは手間なのですが・・・
622 :
621:2006/12/12(火) 12:11:35
訂正
引っかかる場所はacmFormatSuggestを呼び出す場所です。
623 :
619:2006/12/12(火) 12:37:01
>620
いえ、プログラム中で新規に項目を追加する方法が見つからなくて。
>>622 まず自分の「ひっかかる」って説明が説明になっているかどうかって点に
ひっかかろうよ。
>624
説明って言われてもコンパイルエラーも出なければ
実行時にエラーをはくわけでもないからどうともいえないんですよね。
ただきっちりと実行してくれないという感じなんで。
>>625 引数とか構造体のサイズまちがってんじゃねーの?
そのフッタがどうのってVBの話だろ? .net関係ないじゃん
いきなりハンドルをLongとかしちゃってるけど
627 :
619:2006/12/12(火) 13:20:14
>>626 ほかのサイトも調べてたんですが
ハンドルの型はVBの場合だとLongかIntegerでいいそうなんです。
構造体のサイズはLen関数でとってるんでおそらくあってると思います。
今考えてみたらかなりスレ違いみたいですね。
申し訳ないです。
↑名前間違えた
621です。
>>623 グリッドレイアウトなんかは静的だと思うからプログラムで
新規項目作る必要なんてあるのか?というのは置いといて
シリアライズするとかコレクションに入れればなんとかなるんじゃない
いやスレ違いでしょ。619はVB6ユーザーみたいな感じだね。
っていうか、
>>625みたいな寝ぼけたこと言ってるようじゃ、
相当救い難いお方だとお見受けするね、619クンは。
>ハンドルの型はVBの場合だとLongかIntegerでいいそうなんです
>ハンドルの型はVBの場合だとLongかIntegerでいいそうなんです
>ハンドルの型はVBの場合だとLongかIntegerでいいそうなんです
633 :
621:2006/12/12(火) 19:58:42
こんな丸投げ馬鹿に手取り足取り教えてやろう、
なんてお人よしが果たしているかね。
普通質問っていうのは自分で調べた上で不明点を聞くものだろう。
635 :
621:2006/12/12(火) 20:27:23
丸投げにしてるわけではないんですよ。
ただそう思われてるんならもう聞かないことにします。
あわてんな。ゆっくりせぇ
とりあえずWebに書いてあるコードがVB6かVB.NETか区別できるようにしような
VB.NETスレに初心者スレがないのはみんな初心者だから?
>>634 なんのためにこのスレいるんだよ。
回答者面して、何も解決する気ないなら、このスレ一切覗くなよ。
そのほうが、おまえの精神衛生上よろしいだろ。
お ま え の 憂 さ 晴 ら し は う ぜ え ん だ よ
べつにここはサポセン仕事じゃないんだから答えなくていいんだぞ
と っ と と う せ ろ
煽り屋は回答を行わない法則
まあ「エラーの値が返ってきたけど意味がわかりませんでした」
ってその値書かなかったり、その意味の調べ方を訊ねないのもな……
だから
>>634みたいに書いちゃうのもあまり責められない。
それでどうしたいの? って言いたくなる気持ちも分かるよ
>>639 お前さん、いい加減自分の言葉を自分自身に適用することを覚えろよ……。
っていうか、お前さん、自分の発言が俺を擁護するものであることに気づいてるか?w
そう、お前さんの言うとおり誰も答える義務はない。
だから「気に入らない奴」には回答しないんだよ。
「気に入らない奴」とは、一言で言えば自助努力をしない奴、する気のない奴だな。
「気に入らない」奴がスレに居つくのは俺の精神衛生上よくないから、
あえて「気に入らない」奴にとって居心地が悪いスレになるように心がけてるって訳。
隊長!自作自演警報発令中であります!
VB2005ExpでWindowsフォームで、データバインドしたDataGridViewにバインドしない列を最後尾に追加しました。
で、この列の並びがビルドするたびに前のほうに行ってしまうのを防ぐためには「列の自動生成オプション」とやらをオフにすればいいところまでは分かったのですが、どこでするのか分かりません。
AutoGenerateColumnsであってます?DGVのプロパティに無いし…しかもForm1.Designer.vbを覗くと
'DataGridView1
…
Me.DataGridView1.AutoGenerateColumns = False
ってなってるんですけどねぇ…あうぅ…
>>642 質問者レベルをコントロールしたいなら、
自分で管理する掲示板でしろ。
理解不足を棚に上げ煽り、1行レスで返す方が多いようですが、
そのような方はスレの皆様を混乱させるだけでなく
スレの雰囲気を崩しかねないのでお黙り下さい。
また質問者は回答者に知識を披露する場を与える貴重な存在なので、
質問者を見下した回答、あまりにも儀礼を欠いた回答も厳重に禁止いたします。
忙しい中、少ない時間の合間を縫って質問しに来てるわけですので、
その辺ご承知下さい。なお、当方が質問に対して有意義な答えであると
判断した方には評価いたしますので各自よく調べ、よく考え正確な回答をするように。
>>647 君が評価してくれるの?
コテハンにしてくれない?
/ ///// ////ハヾヽト、ヾリメヽ
/ //////|l|l|l|l川l|j iメ!l|l| | l|l|l|lト、
/ l|l|l | |l|!|l|l|l川l|! | |l|l| | l|l川l|l|
/ // ィl|l|| | |l| |l|l升十ト、 | !|l|l| 川l川l|l|!
| / / |川||l |l|川|| 川川 升ト川l|リ
| / / /|l|l| | |l ヽーr==、 ___|ノノ
|// / ∠川 川 ヽヾ:::::ノ イ::::「
|////´r-、ヾl `'ー‐' 、゙ーヘ
V/ハ ヽ l| //// !
V/彡、 \ ノ /
ヾミミ>-、 ⌒ /
>>647いつにもましてキモイなこいつ
ト=-、彡ヘ、 J /
|川|l川l| ノ)、 /
|川l川l|!(((ハ 「 ̄´
|川l|川l|_,ノ_,ノ! |、
|川l|<ヾ、 `ヽ、 〉`ー-、
!川/⌒ヽ、ヽ、 `'ー<⌒ヽ 川
川l| \`'ー------ `ヽハ|l|lト、
/|l|ll| `ヽ、ヾ、_`'ー-=ニ三ヾ!l|\
正規表現と置換についての質問です
例えばPerlで1行全体の文字列に対してTABをSPACEに変換したい場合
s/\t/ /g;
このように書きますが
.NETの場合どの様に書いたらいいのでしょうか?
String^ str = "hoge hoge hoge";
str = Regex::Replace(str, "\t", " ");
これでは部分マッチングしかできないですよね?
651です
スマソVBスレでしたね(^^;
ごめんなさい、でも分かる人いたら教えてもらえませんかVBでもいいので
タノンマス
なんでリファレンス見ないの?
リファレンスの見方が良く分かんないんだよね、ぐぐったけど
旨くヒットしないし・・・・
こんな奴が C++/CLI か。世も末だな。
str = Regex::Replace(str, "\t", " ");
コレデ全体の置換もOKだったなワハハ
【使用環境】vb.net2003
PictureBox1_Paintイベントで
e.FillRectangle(Brushes.black, 0, 0, 500, 500)
と黒色の四角を描画し、
PictureBox1_MouseDownイベントで
Dim g As Graphics = PictureBox1.CreateGraphics
g.DrawEllipse(Pens.white, 0, 0, 100, 200)と、
PictureBoxをマウスで押すことによって黒色の四角の上に円を書くプログラムを作ったのですが
実行したウィンドウを最小化したりすると描いた円が消えてしまいます。
ウィンドウを最小化したり、サイズを変えたりしても
黒色の四角の上に円が描かれ続けているようにするにはどうすればよいのでしょうか?
ご存知の方いましたらよろしくお願いします。
ResizeRedraw
PaintやMouseDownでGraphicsに直接描かずに
pictrureBox1.ImageにつっこんだBitmapに描く
VC8をよく使いますが、自前のANSI Cで書いた関数をDLL化して
.NETで呼び出すことって可能デツカ?
可能
662 :
デフォルトの名無しさん:2006/12/17(日) 13:40:35
以前、相互に循環する画面遷移を、
DLLでやってたプロジェクトに参加してたけど、
どうやって、可能にしていたのだろう?
いみがわかんない
2次元のarraylistって作れるんですか?
ジャグ配列的になら
初心者な俺には理解できない用語がorz
伝票発行するソフトつくらなきゃいけないんですがDBだと難しくなりそうなんでCSVと配列でどうにかならないかなと思って。
部門、商品、相手先、入力データそれぞれ横6要素以上あって読み書きを頻繁にするとなるとおとなしくADOかなんか
勉強するしかないのかな・・・
>>666 ジャグ配列なんてどうでもいい。
正規化はわかるのか?
667が日本語をうまく使えない、ということはよくわかるよ。
え、俺?
え、え、俺?
え、え、え、俺?
673 :
666:2006/12/17(日) 21:20:52
えっと俺はどうボケればいいんでしょうか?ヽ(;´Д`)ノ
ちょっとマジレスしますよ
>>666 伝票発行ソフトってことだけど元になるデータはどこ?
675 :
666:2006/12/17(日) 21:33:52
元のデータですか?
えとMDBかCSVにいれておこうかと思ってるんですが・・・
\1,980で買えるアプローチでいいじゃん
678 :
674:2006/12/17(日) 22:23:05
CSVを「これから作る」でおk?
だったら
一行分の構造体orクラスを定義して
配列なりファイルアクセス用のクラスなりを使えばいける
ただしデータ構造が単純であることが大前提になるけど
単なる検索やソート以上の処理をするならAccessの方が楽かと
679 :
674:2006/12/17(日) 22:33:29
簡単にインターフェースの概要をば
一行分のデータのクラス(以後一行データ)
各アイテムのアクセサ
Shread Parse(string):一行データ (Newを利用する方法もある)
ToCSVLine():string(ToStringをオーバーライドする方法もある)
ファイル全体のクラス
Item(int) : 一行データ
Load:(IO::FileInfo):void
Save(IO::FileInfo):void
で
Loadのときは一行ずつParseで一行データを生成、
Saveのときは一行ずつToCSVLineで文字列に変換して書き込み
まあその説明でわかればたぶん質問しないわな。
こういう自己陶酔型の人ってヒトから自分がどう見えるか考えないから微笑ましいというか、
ちょっと困ったクンだよねw
っていうか、ここ何のスレだかわかってんの?w
うんこに群がるフンコロガシのためのスレッド
きもいよ
>>679 1000件のレコードがあった場合は、一行分の子クラスの
インスタンスを1000回生成するの???
684 :
666:2006/12/18(月) 07:07:48
みなさんありがとうございます。
元データの商品マスタと部門マスタはあります。
それぞれ列6要素ぐらいで行100〜1000ぐらいです。
初心者なんで理解しきれてないのですが、マスタの一要素ごとに一次元配列を作ってそれをコレクションとかにいれて使うっていうことでしょうか?
あ、ちなみにVB2005EXPRESS使ってます
>>666 まず具体的に実現したい処理内容をかかなきゃ誰も答えようがないと思いますが。
こういう人って本当どういう頭してるんだろう。
他人はアンタの考えてることが言葉にしなくてもわかるエスパーか何かだと思ってんの?
なんにしろ、説明能力に問題がある時点でプログラマには向いてないといわざるを得ない。
>>539,634,609,680,685
これ以上、辿るのめんどくさいからやめた。
この人って本当どういう生活してるんだろ。
仕事では、対人関係の問題で使い物にならないんだろうな。
ネットで延々と煽って憂さ晴らし。ご愁傷様です。
フォームのサイズを変えたら一緒に
ボタンやラベルを大きくする方法ないですか??
Anchor
Dock
>>688 もうちょい詳しくおしえてください・・・
Anchor 【あんかー】
Dock【どっく】
いじめられた・・・
アンカー 船舶が使用する錨のこと
ドック 船舶の製造、修理などに際して用いられる設備
碇、後戻りはできんぞ
さすがドックだ、なんともないぜ
これほど「ぐぐれかす」が似合う男もそういないぞ。がんばれ。
VBのランタイム関数って.NETになってからも追加されているんですかね?
Microsoft.VisualBasic
Windows2000(SP4)でVB2005を動かした場合なんですが
フォームにListViewを置いて、そのListViewにToolTipを設定した時
ListViewの空白部分をマウスでポイントすると普通にToolTipが表示されるのですが、
行(ListViewItem)が表示されている部分をポイントすると
ToolTipが一瞬だけ表示されて消えたり、ちらちらと点滅したり
異常な動きをします。
原因、対処法をご存じでしたらお教え下さい。
VB6 から VB2005 に移行して勉強した人が、
以前からの会社の都合でどうしても VB.NET 2003 とかで開発する
必要がある、というような場合、言語上で新たに覚えないといけないような点
はありますでしょうか?
Version としてはバックすることになりますが、VB2005 の方が楽になっている
ので VB.NET 2003 とかに戻ると オブジェクト指向プログラミング的に
厳密にやらないといけない部分が出てくると思うのですが、その辺で
やっかいな部分から列挙するとどんな感じになるでしょう、、
このあたりを心配していましたが、すみませんが、よろしければこの件で
ご指導くださればありがたく、よろしくお願いします
それとも、VB.NET 2003 で開発していた案件はすべて
VB2005 に移行していくと考えてよいでしょうか
この辺もよろしければ教えてくださると助かります
699 :
デフォルトの名無しさん:2006/12/20(水) 11:59:19
上げるの忘れました、スマソ
言語よりむしろNET Framework 2.0と1.xの違いの方が大きいと思われ。
一番大きいのは Using が無い事か?
ジェネリクスの方はどうも VB ではあまり聞こえてこないんだが導入に積極的でないのかね
このスレは既にPart17ですが、いったいみなさんはVB.NETで何を開発してるのでしょうか??
やっぱ、ほとんど、サーバーサイドのWebアプリケーションでしょうか??
クライアントサイドの.NETアプリをあまり見かけないので質問しました。
703 :
デフォルトの名無しさん:2006/12/21(木) 08:33:23
質問があります。
エディタにxxxxx.ToStringと入力した時にToString()って
自動的にカッコが付く様にはできないのでしょうか?
VS、というかVBのエディタの設定項目なんて数える程しかないのにな。
仮に500以上の設定項目が幾重かの階層になっている、とかなら
>>703みたいな質問もさもありなんと思うんだけど。
まあ703みたいな人がPGに基本的に向かない性格なのは疑いようがない
>>704 真性のキチガイやろう。
湧いて来るんじゃねぇよ。
(・∀・)ジサクジエンデシタ
お前ら耐性なさ杉だ
「教えて君」「教える君」というのは、
ネット上に存在する2種類の人種の人たちを示す揶揄された敬称のことであるが
その影には「教えない君」という人種が多数いるの事にはあまり注目されていない。
しかし、実はその「教えない君」という人種が一番厄介かつ迷惑な存在だったりするのである。
そもそも荒れる原因というものは「教えない君」の、無秩序かつ、無神経なレスにある部分が
大多数なのだが、彼らの多くは、そういった感覚はどうやら持ち合わせていないようである。
第三者がそうした場面を見た場合に、誰に一番の非があるというのは
「教えない君」にあるというのが客観的事実であるのは明らかなのであるが、
彼らは認めようとしない。
表面上は、「教えない君」はネット上のルールや倫理や秩序などを叫ぶのであるが
どうやら真相は、現実社会において蔑まれる存在である「教えない君」の
鬱憤晴らしのようである。
上記でそういった悲哀のレスを付けた人たちは、勇気を持って自らの弱さと過ちを認め
反省しなければならない。
それがキミたちニートの人間的に成長できる少ないチャンスなのである
長文カキコorコピペする「粘着くん」もいるみたいですよ
500以上の設定項目が幾重かの階層になっているなら質問OKだってw
ハハハハハ
死ねよクズ
500もの設定の中から探すような
規模の事しか質問してはいけないって オイオイ
ComオブジェクトのShockwave Flash Objectをコントロールとして利用したいのですが、
依存する COM 参照 "stdole, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" を解決できませんでした。
タイプ ライブラリ "AxShockwaveFlashObjects" のラッパー アセンブリを作成できませんでした。種類 'Microsoft.Build.Tasks.ComReferenceResolutionException' の例外がスローされました。
などのエラーが発生して、利用することが出来ません。前までは出来ていたのですが、、、
>>713 外してたら、スマソ。
2003で使ってたのが、2005で使えなくなったとか。
いえ、2005環境で使うことが出来ていました。今試したところ、Delphi6でも貼り付けることができました。
・・・何が原因なんでしょう。
内部でラッパーのAxShockwaveFlashObjectsにアクセスできてない
みたいだから、AxInterop.ShockwaveFlashObjects.dllが悪いのは
確かと思う。
フレームワークが同居してるなら、そのDLLを探してみるのも
いいかも。
ちょっとDelphiは知識ないから、スマソ。
717 :
713:2006/12/21(木) 21:03:13
原因が分かりました。
参照の追加でCOMタブのOLE Automationを参照させないと実行できないようです。
お騒がせしてすいませんでした。
719 :
デフォルトの名無しさん:2006/12/23(土) 11:47:03
データグリッドの最初の列を足したいんだけど、For eachで書けないかな?
下ので一応いけるんですが。
Dim sum As Single
For i = 0 To DGV.RowCount - 1
sum += DGV.Item(0, i).Value
Next
MessageBox.Show(sum)
変数名からして DataGridView のようだが。
Option Strict Offなソースを見ると何か嫌な気分になる
>Dim sum As Single
なんでSingle…
>723
少数があるので。
>724
ありがとうございます。参考にさせてもらいます。
すみません、オブジェクト志向プログラミングについて日が浅いもので
よくわからないのですが、、
たとえば、あるクラスから生成されたオブジェクトのコレクションが定義されているとして、
そのADDメソッドには、その元のクラスから派生されたオブジェクトを指定してコレクションに
追加していくことはできるでしょうか
たとえば、TreeViewコントロールにおいて、あるノードに子ノードを追加するという場合、
その子ノードは(ノードのコレクションである以上)TreeNodeクラス型オブジェクトでなければ
ADDできないと思っていましたが、実際には、「TreeNodeクラスの派生クラスのオブジェクト」
でもADDできているようでした。
これは通常の コレクションにおけるADDメソッド のデフォルトの性質でしょうか?
ヘルプの説明では普通に TreeNodeクラス型のオブジェクトをADDするようになっています
ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.ja/CPref17/html/M_System_Windows_Forms_TreeNodeCollection_Add_1_526d62f3.htm
初心者ですみませんが、よろしくお願いします
ArrayList というコレクションが標準ライブラリにある。
これの Add メソッドは引数に Object 型を要求する。
さて、Object 型しか入れられないのならこのコレクションの存在意義ってなんだ?
>>727 どうもです、ありがとうございます
要するに ADDメソッド の基本機能が、そもそもどんなオブジェクトでもADDできる
ようになっている、ということなのですね
ArrayList.Add メソッド を見ると、はじめから ADD(”・・・”) で String型 の値を
渡してもそのままADDされるということは、ADDの引数は始めからオーバーロード
で定義されているということもあるのでしょうか、ただ
ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.ja/cpref2/html/M_System_Collections_ArrayList_Add_1_b4c5a2da.htm
には、オーバーロードの複数引数定義は書かれていませんでした
それとも、Object型として引き受けるということ自体が、String型の値でも元々引き受ける
ようにできているということなのでしょうか、つまりオブジェクト指向での必要条件として
元々 ADDメソッド はこういう構造になっていると・・・)、このどちらなのでしょう?
派生クラスのインスタンスは基底クラスのインスタンスとして振る舞う事が出来る。
それだけ。
ついでに言うと全てのクラス・構造体は Object クラスから派生する。
String クラスのインスタンスは基底クラスである Object クラスのインスタンスとして振る舞う事が出来る。
例として
TreeNodeCollection.Add メソッド
の説明ですと、
ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.ja/CPref17/html/O_T_System_Windows_Forms_TreeNodeCollection_Add.htm
のように、
String型の値のADD、TreeNode型のオブジェクトのADD
も共にオーバーロードの定義が明示されていましたので、型の拡張は明示されて
初めて利用可能になるものと考えたのでした
>>729 あ、すみません、かぶりました
>派生クラスのインスタンスは基底クラスのインスタンスとして振る舞う事が出来る。
つまりオブジェクト指向の標準として、そういうことななのだと、
わかりました。
ありがとうございました。
>>730の 「TreeNodeCollection.Add メソッド」 のような場合は
他の引数のオーバーロードも定義したので、基本的な標準の
String型の値のADD、TreeNode型のオブジェクトのADD
もついでに記載した、ということなのでしょうね。
ご指導ありがとうございました。
いやTreeNode型のオーバーロードが標準だろ
あとはそれに皮をかぶせただけのオマケ
Windows Media Playerを制御することってできますか?
ファイルを指定して再生、停止、開始/終了時間の範囲指定など。
できます
こんばんは
例外を以下のように処理しようとしているのですが、
メッセージボックスが表示されずに、通常のエラーメッセージが表示されます
原因は何でしょうか?
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim A As String = "aaa"
Dim B As Integer
Try
B = CType(A, Integer)
Catch ex As Exception
MessageBox.Show("Error")
End Try
End Sub
ネタ?
ネタだよな?
738 :
デフォルトの名無しさん:2006/12/26(火) 06:48:40
質問です。
1を2のように記述したら警告になってしまうのですけど、
この警告を出ないようにするにはどうすればいいですか?
おしえてちょ。
1 Me.DialogResult = Windows.Forms.DialogResult.OK
2 Me.DialogResult = DialogResult.OK
理由がわかるようになるまで学習を進める、が正解だと思うよ。
740 :
734:2006/12/26(火) 08:27:26
>>735 どのクラスライブラリを使えばいいんでしょうか?
よかったら教えてちょ
>>736 ∧ ∧
(*‘ω‘ *) ちんぽっぽ
( )
v v
ぼいんっ
川
( ( ) )
>>740 wmp.dllを参照に追加
742 :
デフォルトの名無しさん:2006/12/26(火) 14:05:23
皆様お疲れ様です、またよろしくお願いします。
(タイトル) デザイン環境による作成時にコントロールを初期化する方法について
(開発環境) VS2005Pro
(実現したい内容)
コンポーネント・クラスの作成の仕方として、そのコンポーネントを アプリケーションの
フォーム・デザイン時に単に貼り付けた時点でのみ動作する初期化どのように実装するか
(試行)
<System.Diagnostics.DebuggerNonUserCode()> _
Public Sub New()
MyBase.New()
'この呼び出しは、コンポーネント デザイナで必要です。
InitializeComponent()
End Sub
に追加しますと、実行時にも実行されてしまう
(その他に)
ComponentDesigner.InitializeNewComponent メソッド
ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.VisualStudio.v80.ja/dv_fxdeveloping/html/914eaa03-092f-4556-9160-b8a2a40641d9.htm
ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.ja/cpref3/html/M_System_ComponentModel_Design_ComponentDesigner_InitializeNewComponent_1_d8aa9975.htm
を用いる説明があり、Public Overrides Sub InitializeNewComponent(ByVal defaultValues As IDictionary)〜End Sub
を *..Designer.vb に追加してみるものの継承元のクラスには同メソッドはなくエラーとなり、
Overrides をはずしてエラーを回避し実装したが (ComponentDesignerクラスは特に利用して
いないためか)その中にに書いたコードは実行されず
(・・・) フォーム・デザイン時に単に貼り付けた時点でのみ動作する初期化はどのようにして実装するべきか、よろしくご指導ください、お願い致します
ネイティブジャパニーズとはとても思えない日本語だな
if DesignMode
744 :
734:2006/12/26(火) 14:23:53
>>741 できません。。。
ぐぐると
http://www.users.gr.jp/blogs/hidori/articles/5302.aspx ツールボックスにWindows Media Player コンポーネントが
出てくるらしいのですが、出ません。
当方、
・WinXPSP2Pro
・Windows Media Player10
・VB2005Express
なんですが・・・orz
ちなみに上記からダウンロードしたソースをC#2005Expressで開くと実行できましたが、
やはりツールボックスにはWindows Media Player コンポーネントがありません・・・
もしかしてExpressEditionではダメなんですかね?
>>743 日本語下手ですんません、どう書くと整理できるか編集中にてにをはが狂いました。
実は Windowsアプリケーションに貼り付けるコントロールだったのですが、
>if DesignMode
これを書いてみたところデザイン時も、実行時も常に False のようで、どちらでも
実行されませんでした(継承元のクラスは TreeView)。
ヘルプによると、DesignMode は
名前空間: System.Web.UI
アセンブリ: System.Web (system.web.dll 内)
とあったので Web部品用のものなのでしょうか?
747 :
734:2006/12/26(火) 14:52:47
>>745 ありがとうございました。
できました(´∀`)
>>746ですが、実際には System.Web.UI を Imports していなくても
使えていたので、「Web部品用」でなくても持ってるプロパティですよね
うーん、どうしてだろ。。。
>>749 どうもです、そうでした、System.ComponentModel.Component にも
DesignMode はありました。
Parent の DesignMode はその記事の通りやはり Protected だった
ようでエラーとなりました。
いまいろいろ調べてみましたがまだ解決していませんが、
さらに調べてみます。
ttp://www.be-interactive.org/index.php?itemid=118&catid=10 これをVB2005で行いたいのですが、どのようにすれば良いのか分かりません。
Const WM_COPYDATA As Integer = &H4A
Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hWnd As Integer, ByVal MSG As Integer, ByVal wParam As Integer, ByVal lParam As COPYDATASTRUCT) As Integer
Sub main()
Dim sendMes As New COPYDATASTRUCT
sendMes.lpData = _
New System.Text.StringBuilder("TestAPP" + Chr(0).ToString + "Music" + Chr(0).ToString + "1" + Chr(0).ToString + "{0} - {1}" + Chr(0).ToString + "TEST" + Chr(0).ToString + "TEST")
sendMes.cbData = sendMes.lpData.Length + 2
SendMessage(132030, WM_COPYDATA, Nothing, sendMes)
End Sub
Public Structure COPYDATASTRUCT
Const dwData As Integer = 1351
Public cbData As Integer
Public lpData As System.Text.StringBuilder
End Structure
このようにしたところ、SendMessageのところでTypeLoadExceptionを吐いてしまいます。
よろしくお願いします。
・文字コードはそれで大丈夫?
ANSIだと
sendMes.cbData = sendMes.lpData.Length + 1
だと思うけど。
SendMessageWにしてCharSet = CharSet.Unicodeにし、
その場合
sendMes.cbData = (sendMes.lpData.Length + 1 )*2
・シグネチャ
ByVal lParam As COPYDATASTRUCT → ByRef lParam As COPYDATASTRUCT
回答ありがとうございます。・・・しかし無理でした。COPYDATASTRUCTのlpDataが悪さしているようですが、、、
Const WM_COPYDATA As Integer = &H4A
Declare Ansi Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Integer
Declare Unicode Function SendMessage Lib "user32.dll" Alias "SendMessageW" (ByVal hWnd As Integer, ByVal MSG As Integer, ByVal wParam As Integer, ByRef lParam As COPYDATASTRUCT) As Integer
Sub main()
Dim sendMes As New COPYDATASTRUCT
sendMes.lpData = _
New System.Text.StringBuilder("TestAPP" + ChrW(0).ToString + "Music" + ChrW(0).ToString + "1" + ChrW(0).ToString + "{0} - {1}" + ChrW(0).ToString + "TEST" + ChrW(0).ToString + "TEST")
sendMes.cbData = (sendMes.lpData.Length + 1) * 2
SendMessage(FindWindow("MsnMsgrUIManager", Nothing), WM_COPYDATA, Nothing, sendMes)
End Sub
Public Structure COPYDATASTRUCT
Const dwData As Integer = 1351
Public cbData As Integer
Public lpData As System.Text.StringBuilder
End Structure
もうぶっちゃけちゃうと、
COPYDATASTRUCT.lpData をIntPtrにして文字列をMarshal.AllocHGlobal, Marshal.StringToHGlobalAutoで割り当てる
(あとでFreeHGlobal)
んで
sendMes.cbData = (sendMes.lpData.Length + 1) * 2
COPYDATASTRUCTそのものもMarshal.StructureToPtr, Marshal.StructureToPtrでメモリに割り当てて
(あとでFreeHGlobal)
そいで
SendMessageの第4引数をByVal IntPtrにする。
もうこれはあきらめるしか無いのですかね、、、
Const WM_COPYDATA As Integer = &H4A
Declare Ansi Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Integer
Declare Unicode Function SendMessage Lib "user32.dll" Alias "SendMessageW" (ByVal hWnd As Integer, ByVal MSG As Integer, ByVal wParam As Integer, ByRef lParam As System.IntPtr) As Integer
Sub main()
Dim sendMes As New COPYDATASTRUCT
Dim str As String = "TestAPP" + ChrW(0).ToString + "Music" + ChrW(0).ToString + "1" + ChrW(0).ToString + "{0} - {1}" + ChrW(0).ToString + "TEST" + ChrW(0).ToString + "TEST"
Dim ptr As IntPtr
sendMes.lpData = System.Runtime.InteropServices.Marshal.AllocHGlobal(System.Runtime.InteropServices.Marshal.StringToHGlobalAuto(str))
sendMes.cbData = (str.Length + 1) * 2
System.Runtime.InteropServices.Marshal.StructureToPtr(sendMes, ptr, True)
SendMessage(FindWindow("MsnMsgrUIManager", Nothing), WM_COPYDATA, Nothing, ptr)
System.Runtime.InteropServices.Marshal.FreeHGlobal(sendMes.lpData)
System.Runtime.InteropServices.Marshal.FreeHGlobal(ptr)
End Sub
Public Structure COPYDATASTRUCT
Const dwData As Integer = 1351
Public cbData As Integer
Public lpData As System.IntPtr
End Structure
ミスしました。
Dim ptr As IntPtr = System.Runtime.InteropServices.Marshal.AllocHGlobal(System.Runtime.InteropServices.Marshal.SizeOf(sendMes))
これだとうまくいくっぽい、、、
やっぱりダメでしたorz
一度メッセージ受けるだけのアプリ作ってみれば?
とりあえずメッセージとその内容が正しく届いてるか確かめるためにさ。
文字列をマーシャリングするときに\0で終了と認識されてるのかも。
byte配列とかにする必要があるかもね〜
こいつの(Cで書かれた)ソースにもコメントに書かれているんだが。
途中の区切文字は"\0"であって、
chr(0)でもchrW(0)でもvbNullCharでもvbNullStringでもString.EmptyでもNothingでもない。
Structure COPYDATASTRUCT
Dim dwData As Int32
Dim cbData As Int32
Dim lpData As IntPtr
End Structure
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As IntPtr, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal data As IntPtr) As IntPtr
Private Declare Ansi Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As IntPtr
Private Sub SongNameSendToMessenger()
Dim dtstrct As New COPYDATASTRUCT
Dim buf As String = Nothing
Const WM_COPYDATA As Integer = &H4A
buf = "OrgApp\0Music\01\0{0} - {1}\0曲名\0アーティスト名\0アルバム(シングル)名" & vbNullChar
dtstrct.dwData = 1351
dtstrct.cbData = buf.Length * 2
dtstrct.lpData = Marshal.StringToHGlobalUni(buf)
Dim MyPointer As IntPtr = Marshal.AllocHGlobal(Marshal.SizeOf(dtstrct))
Marshal.StructureToPtr(dtstrct, MyPointer, False)
Dim hWnd As IntPtr = FindWindow("MsnMsgrUIManager", Nothing)
Dim ret As IntPtr = SendMessage(hWnd, WM_COPYDATA, 0, MyPointer)
Marshal.FreeHGlobal(MyPointer)
End Sub
ネタだろといわんばかりだ。
>>755 たぶんこれでいけるんじゃないかな?
なんちゃらメッセンジャーなんてクソ鬱陶しいソフトは使ってないので試してないが、
とりあえずメッセージの送信はこれでできているはずと思う。
見ればわかると思うけど、Formのコマンドボタンのクリックで送信するようになってる。
あと、いろんなところに属性がくっつけてあるけど、あまり考えずテキトーに使っているので
たぶん冗長なものがあると思う。
Const WM_COPYDATA As Integer = &H4A
<DllImport("user32.dll", CharSet:=CharSet.Unicode)> _
Private Shared Function FindWindow(ByVal lpClassName As String, ByVal lpWindowName As IntPtr) As IntPtr
End Function
<DllImport("user32.dll", CharSet:=CharSet.Unicode)> _
Private Shared Function FindWindow(ByVal lpClassName As String, ByVal lpWindowName As String) As IntPtr
End Function
<DllImport("user32.dll", CharSet:=CharSet.Unicode)> _
Private Shared Function SendMessage(ByVal hWnd As IntPtr, _
ByVal MSG As Integer, _
ByVal wParam As Integer, _
ByRef lParam As COPYDATASTRUCT) As IntPtr
End Function
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode, pack:=4)> _
Public Structure COPYDATASTRUCT
Public dwData As Integer
Public cbData As Integer
<MarshalAs(UnmanagedType.LPWStr)> _
Public lpData As String
End Structure
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim sendMes As COPYDATASTRUCT
Dim strArray As String() = {"TestAPP", "Music", "1", "{0} - {1}"}
Const separator As String = "\0"
Dim str As String = String.Join(separator, strArray)
Dim byteCount As Integer = Encoding.Unicode.GetByteCount(str)
With sendMes
.dwData = 1351
.lpData = str
.cbData = byteCount + 2
End With
'メモ張のウィンドウハンドルを取得してみる。
Dim hWnd As IntPtr = FindWindow("Notepad", IntPtr.Zero)
Console.WriteLine("hWnd = " & hWnd.ToInt32.ToString("X8"))
Dim ret As IntPtr = SendMessage(hWnd, WM_COPYDATA, 0, sendMes)
Console.WriteLine("SendMessage = " & ret.ToInt32.ToString("X8"))
'自分にも同じメッセージを送ってみる。
ret = SendMessage(Me.Handle, WM_COPYDATA, 0, sendMes)
End Sub
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
MyBase.WndProc(m)
Select Case m.Msg
Case WM_COPYDATA
Dim dat As COPYDATASTRUCT _
= CType(Marshal.PtrToStructure(m.LParam, GetType(COPYDATASTRUCT)), COPYDATASTRUCT)
Console.WriteLine("Received String = " & dat.lpData)
End Select
End Sub
Visual Basic 2005 Express Editionで手軽に使用できるフリーのグラフを描画できるライブラリってありませんかー
VB2005には、ExcelのScreenUpdateのように描画を後でまとめて処理する
ような関数は用意されているんでしょうか?
VB2005で作成したDLLファイルなどのクラスライブラリを使用する
Windowsアプリケーションを構成すると、それらのDLLを含む形で
Releaseフォルダーが出来上がりますが、それらのDLLファイルを
初めから実行ファイル.exeに入れ込んでしまうようなビルドって
できましたっけ?
ソリューションのプロパティのコンパイルのところの
ビルド出力パスの設定をすればOK
じゃないな
出力ディレクトリにコピーというところを する に設定
すればってことか?
フォルダごと自己解凍形式のEXEにする
>>766 フルマネージドなアセンブリなら、ildasm/ilamsを使って統合できるよ。
バッチを組めば全自動でできる。
ILMerge
こんにちは
VB2005使ってPACMAN作りたいんですけど
どんな風に作ればいいですか?
正方形のPicBOXを並べて中の画像を入れ替えたりするのか
それともPicBOXを移動させるべきなんでしょうか・・
移動させるとなると、どこからどこまで移動できるのかなどは
どのように定義してやれば良いんでしょうか;;
アドバイスお願いします
作りたいように作れば?
どんな風って、中華風のコピーでしょ?
>>767-774 ご教授助かります、
>>772 ilasm
>>773 ILMerge
というのがあったんですね!
現在まだ明確に理解できていませんが、MSIL や JIT 等についても
調べつつありました
>>772 ilasm
で生成される実行可能ファイル.exe は、MSILファイルをポータブル実行可能
ファイル.exe にするためのアセンブラーで、統合する機能はあるかどうか
(参照)
http://msdn2.microsoft.com/ja-jp/library/496e4ekx(VS.80).aspx
・・・単一のファイルのアセンブル用(つまり通常のVS環境で生成される
exeと同等のアセンブル用)なのかもしれないかとも思われました
>>773 ILMerge
こちらですとDLLファイル等をexeファイルに統合するようでした(現状実施未確認)
これらと、JITコンパイルとの関係がまだよく理解できていませんでしたが、次のように
考えておいて良いでしょうか?
1.通常VSによるコンパイル=ilasm → ソースからMSILを経て単一の exe や dll へ
2.ILMerge → それら exe や dll を一つにまとめるまでを行い、JITコンパイル相当の
アセンブルは行なわれない
3.JITコンパイル → 1や2で作成されるファイルはすべて実行時に初めてマシン固有の
機械語に落ちる
>>777 これに関連してですが、一旦 ILMerge で作成された統合実行ファイル exe は、
もはや ildasm で 逆コンパイルすることはできないのでしょうか?
もし逆コンパイルできないようになってしまう場合は、リバースエンジニアリング不能に
なってソースのセニュリティ上は都合がいいかもしれませんが・・・
なんかかわいいな、せにゅりてぃ
単にILのコードを繋げるだけじゃないの
781 :
777:2006/12/29(金) 17:53:30
ILMerge を使って試しに1本のファイルを作ってみたところ、確かにそれ1本だけで動作しました。
>>780 どうも’MSIL へのコンパイル ’
http://msdn2.microsoft.com/ja-jp/library/c5tkafs1(VS.80).aspx
によりますと、
-------
”MSIL とメタデータは、実行可能ファイルのファイル形式として使用されてきた従来の Microsoft PE と
COFF (Common Object File Format) に基づき、それらを拡張したポータブル実行可能 (PE) ファイル
に格納されます。
MSIL、ネイティブ コード、およびメタデータを保存できるこのファイル形式を使用すると、オペレーティング
~~~~~~~~~~~~~~~~~~
システムが共通言語ランタイムのイメージを認識できるようになります。MSIL と共にメタデータが
このファイルに格納されるため、コードは自己記述型になります”
-------
とあり、どうも VS開発環境 および ilasm が出力する exe ファイルそのものが、
「ポータブル実行可能 (PE) ファイル」
であり、ということはその中にすでに ネイティブ コード が埋め込まれているかのような説明に読め
ましたが、現実にPE形式のファイルにはすでに JITコンパイルされた後にできるはずの ネイティブ コード
が含まれてしまっているのでしょうか?
C++/CLIとかで意図的にネイティブコードを混ぜることができることを指してるのかな
784 :
777:2006/12/29(金) 19:44:57
>>782 あ、なるほど、そういうことか、であればJITコンパイルで出来上がるネイティブ・コードが
含まれていることはなさそうですよね
ということは、結局MSILレベルで複数のexeやdllがうまく結合されて1本にまとまっている
ということになり、逆にいえばコードの構造は ildasm (逆アセンブル)可能となって
>>778のリバース読み込みも不可能ではない、ということになるのかも
結局、「MSIL → *.exe」 を行なっている ilasm は 「実際にはアセンブルというほど
”コード変換” は行なっていない」 ということなのか・・・
だから俺解釈するなと。
>「MSIL → *.exe」 を行なっている ilasm
なんでそうなる。
ああ、それともMSILをMSILのソースコードの意味で書いてるのか?
ならまさにアセンブルだろうに。
786 :
765:2006/12/29(金) 20:37:23
スルーされてますが、無いでFA?
>>785 >ああ、それともMSILをMSILのソースコードの意味で書いてるのか?
>ならまさにアセンブルだろうに。
なるほど、そういわれてみれば・・・わかりました
>>786 Bitmapオブジェクトに対して描画しといてあとでDrawImageする
>>788 おいおいw
あのさあ、
>>765は愚問なんだよ。
愚問というより、質問として成立してないだろ。
こういうエスパーでなければ理解できない質問書く奴も馬鹿だが、
エスパーでもないのに理解できたつもりになって回答する奴も同じぐらい馬鹿だと思うよ。
まあ俺もエスパーじゃないんだがあえて答えるとするなら、
エクセルのScreenUpdatingと同等のプロパティを持つコントロールはあるよ、って回答になるかな。
>>765 コントロールの配置や再描画ならこの辺でいけたはず
つControl.Invalidate
つControl.Update
つControl.SuspendLayout
つControl.ResumeLayout
画像の話なら
>>788でおkかと
>>789 エスパー向け質問ってのは"俺が理解できない質問"のことではないぞ
少なくとも俺は
>>765の質問は簡潔で具体的だと思うが
792 :
デフォルトの名無しさん:2006/12/30(土) 12:07:02
>>791 お前さんも馬鹿だな。
偉そうに人に講釈たれたいなら、まずエクセルのScreenUpdate(正確にはScreenUpdatingだが)
の動作を調べてからにしたらどうだ。
ついでに言えば、具体的なのは妄想癖持ちのお前さんの脳が勝手に補完した妄想なのであって、
765の文章では決してないから。
794 :
791:2006/12/30(土) 20:31:10
>>794 >SuspendLayoutでいいと思うんだけど問題ある?
だからいいかどうかは質問者本人とエスパーにしかわからん。
たとえば次のコードのような場合はエクセルのScreenUpdatingに期待される機能と違う。
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
With TextBox1
.SuspendLayout()
.AppendText("test" & vbCrLf)
End With
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
TextBox1.ResumeLayout()
End Sub
>ところでこの機会にエスパー向け質問の定義について教えてくれないか?
「自分自身の想像と妄想による勝手な補完」と、「文面に書いてあること」、
あるいは「相手が言わんとしていること」の区別が付かない君にそれを教えろって言われても
それは無理な相談だよ。
うるせー馬鹿
797 :
デフォルトの名無しさん:2006/12/30(土) 23:11:47
MenuSpritの区分線ってどうやって出すんだ・・・?
MenuStrip?
ならToolStripSeparatorをAddするだけっしょ
799 :
デフォルトの名無しさん:2006/12/31(日) 00:01:31
MenuStripでした・・。
選択項目の中にSeparatorは出せるんですけど、MenuStrip自体に下線を出したいんです。
「&」
くだらない質問かもしれませんが許してください
たとえば、TextBox1.textに変数を代入したいとして、この"1"の部分を
変数で指定することはできませんか?
802 :
デフォルトの名無しさん:2006/12/31(日) 10:15:52
>>801 formHOGE.Controls("TextBox" & Cstr(1)).Text
名前で呼ぶよりは、必要なコントロールの参照を別変数に抱えておけば?
dim textList as Dictionary(of String, TextBox)
textList.Add(TextBox1.name, TextBox1)
textList("TextBox1").text = "xxx"
>>802 説明ありがとうございます。助かりました。
>>802 結局名前をキーにしたら一緒だろ
配列使え
805 :
デフォルトの名無しさん:2006/12/31(日) 11:41:27
>>804 フォームだと、スプリットパネルなどを置いた場合に階層の上にコントロールがのるので。
最初の例はフォーム上においてるだけならOKだけど。
ディクショナリにしておけば、配列としても、名前アクセスも使えるし。
大体、入れるものが限定されてるのに普通の配列を使うメリットは?
連想配列やHashMapやらわかってるのかね。
807 :
デフォルトの名無しさん:2006/12/31(日) 11:58:27
順序性を求めるならDictionaryを使わないよ、当然。
そこに引っかかってるの?いちいち。
どれつかったらいいなんて、ヘルプ見れば数分でしょ。
元質問に対してこんなんどう?って出しただけなのに。
>名前で呼ぶよりは、
>textList("TextBox1").text = "xxx"
ここだろ
計算量じゃないか?
>>809 非常に申し訳ない。
酔って寝てた。
自宅にフレームワークが1.1しかないから、検証もできない。
ただ、javaだと、HashTableとHashMapでは同期、非同期という
違いがある。
誰が見ても、可読性という意味で配列で
Private TextBoxes() As TextBox
とした方がいいと思う。
あと、メタ文字の使い方が変。
ますます意味がわからんな。
正直、この程度のこと実装にこだわるような類の問題とも思えないが。
機能的に等価であれば方法はなんでもいいだろ。
μSオーダーの周期でコントロールのプロパティ設定するわけでもなかろうにw
とはいえ、簡略的にとにかくインデックスでコントロールにアクセスできればいい、ってことなら
普通は配列使うだろうけどね。
コントロール名その他いろんな方法でもアクセスしたいとか、VB6のコントロール配列みたいに
イベントまでまとめて処理したいならクラスにまとめるだろうけど。
>>799 >>798 ただし自分でAddするコードを書く必要がある。
this.menuStrip1.Items.Add( new ToolStripSeparator() );
2005において、配列も集合クラスも大差ないのに、配列に拘る意味がわからん。
815 :
デフォルトの名無しさん:2007/01/01(月) 13:05:16
下のような変数宣言で型名を[]で囲んでいる、
ソースがあるのですが、どんな意味があるのですか?
Dim str As [String]
エスケープ識別子
っていうか、そんなレベルの質問してる時点であんたの才能知れたもの。
どうせ馬鹿なら正月ぐらいのんびりしてればいいのに。
でも、そこを囲む奴の考えも知れたものだね。
または超のつく偏屈野郎。
正月なんだからVB厨同士仲よくしろよ
820 :
デフォルトの名無しさん:2007/01/01(月) 20:11:45
>>816 元旦早々、返信ありがとうございます。
こんな機能があったんですね。
>>817 MSDNのサンプルコードにあったもので。
Dns.Resolve メソッド
.focusを利用してテキストボックスのコントロール配列にフォーカスを
指定しても、実行後、設定されていません
テキストボックスではなくタブページにフォーカスが設定されてしまいます
考えられる原因としては何があるのでしょうか
日本語でおk
>>822 まだ生きてたの?
おまえは何も答えずに死ねよ。
821の追記ですが、
タブページ上にテキストボックスを貼り付けて、
そのテキストボックス配列にフォーカスを設定したいのです
825 :
超初心者。:2007/01/02(火) 05:59:23
>>825 EXEだと?ふざけんな。ウィルスだったらどうする。
zipでソースを上げろ。コンパイルして走らせる。
827 :
超初心者。:2007/01/02(火) 06:44:09
>>826 .zipにすることは全然可能ですけども、
ソースを晒すことは不可能です。
ウイルスじゃないのでご安心を。
(・∀・)カエレ!!
829 :
超初心者。:2007/01/02(火) 06:52:00
>>826=828
しょぼいコードですが、ソースを晒す気は全くありません。
.exeとなっていますが、解凍が実行されるだけです。
その際も、解凍先を指定する際、一度止まります。
解凍した後は、オセロフォルダの中の
Othello.exeをダブルクリックして実行してください。
オープンソースではないというだけです。
つーかスレ違いだ
ほか池
それにしてもここまで醜悪なプログラムは見たことがないw
石の色を文字列でもってるとか、あまつさえHashtableに格納してるとか
ほとんど同じ処理の連番の関数が何個もあるわ、
盤の一枡ごとにPictureBoxつくって、おまけにHashtableで管理してるわ。
神にしてやられますた。
黒駒焼きは最悪だなw
まぁでも二回勝ったわ。
全部マス埋められてんのに、CPUがPASSしますってバグだろ。
ちょっとそのメソッド長いんじゃないか?w
なかなか楽しめたが、スレ違いだ。
MSDN のフォーラムでも聞いておりましたが、まだわかりませんでした。
こちらでもお聞きしますがよろしくお願いします。
実行時におけるコントロールのDragによるサイズ変更方法についてお尋ねします。
SplitContainerの場合は、同一コントロール内での間仕切り位置の変更という形、
またSplitterコントロールを利用する方法もDockingされたコントロール間の間仕切り
としての利用法はHelpにも書かれていました。
VB6.0では、例えばLabelコントロールなどを利用し、単独でサイズ変更したい
コントロールのBorderの一辺におき、それをDragすることでMouseの位置変更情報を
読み取り、その情報から該当のコントロールのサイズ変更を行なうといった方法を
使っておりました。
VB.NETまたはVB2005以降でもやはり上記のようにVB6.0で行なっていたような方法
による以外にはないでしょうか?
それとも、もっと楽にできる方法があればと思いました。
たとえばビルトインされているスマートな方法が実装されていたりするとだいぶ助かる
のですが、そういったものはすでにあるでしょうか。よろしくお願いします。
非常に手抜き
パネルの上にピクチャボックス乗せて
Private Sub PictureBox1_MouseEnter(ByVal sender As Object, ByVal e As System.EventArgs) Handles PictureBox1.MouseEnter
_OnCtrl = True
End Sub
Private Sub PictureBox1_MouseLeave(ByVal sender As Object, ByVal e As System.EventArgs) Handles PictureBox1.MouseLeave
_OnCtrl = False
End Sub
Private Sub Panel1_MouseEnter(ByVal sender As Object, ByVal e As System.EventArgs) Handles Panel1.MouseEnter
_OnPan = True
End Sub
Private Sub Panel1_MouseLeave(ByVal sender As Object, ByVal e As System.EventArgs) Handles Panel1.MouseLeave
_OnPan = False
End Sub
Private Sub Panel1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Panel1.MouseUp
_OnDrg = False
End Sub
Private Sub Panel1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Panel1.MouseDown
If Not _OnDrg Then
_OnDrg = True
_PrvPnt = New Point(e.X, e.Y)
End If
End Sub
Private Sub Panel1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Panel1.MouseMove
Dim _wk As Integer
If Not _OnCtrl AndAlso _OnPan AndAlso _OnDrg Then
_CurPnt = New Point(e.X, e.Y)
Console.WriteLine(_PrvPnt.ToString + " " + _CurPnt.ToString)
If _CurPnt.Y < PictureBox1.Top + PictureBox1.Height Then
_wk = Panel1.Width
_wk += _CurPnt.X - _PrvPnt.X
If _wk < 6 Then _wk = 6
If _wk > 480 Then _wk = 480
Panel1.Width = _wk
PictureBox1.Width = _wk - 5
Else
If _CurPnt.X < PictureBox1.Left + PictureBox1.Width Then
_wk = Panel1.Height
_wk += _CurPnt.Y - _PrvPnt.Y
If _wk < 6 Then _wk = 6
If _wk > 480 Then _wk = 480
Panel1.Height = _wk
PictureBox1.Height = _wk - 5
Else
_wk = Panel1.Width
_wk += _CurPnt.X - _PrvPnt.X
If _wk < 6 Then _wk = 6
If _wk > 480 Then _wk = 480
Panel1.Width = _wk
PictureBox1.Width = _wk - 5
_wk = Panel1.Height
_wk += _CurPnt.Y - _PrvPnt.Y
If _wk < 6 Then _wk = 6
If _wk > 480 Then _wk = 480
Panel1.Height = _wk
PictureBox1.Height = _wk - 5
End If
End If
_PrvPnt = _CurPnt
End If
End Sub
ってデバッグ用のコード抜き忘れたw
マウスカーソルの変更とかはどなたかよろしく
>>835-838 ありがとうございます。これだけ書かれると大変でしたでしょうね。いろいろすみませんです。
しかし実際にやってみますとこれだけやってもまだ書き足してたくさん調整していかないと
いけないかと思いました。大変な量ですよね。
VB6のときはlabelのDragでやりましたが、あれでも最適化できるまで苦労しました。
VB2005になってもやっぱりこの辺の処理はまだ開発困難の部分かと思いました。
Microsoftが初めからControlクラスのメソッドに入れてくれていたらよかったのですが、
実際にそれはないわけですよね。
必要になる事なんてまず無いしな
コントロールを単独でサイズ変更するUIって何に使うの?
フォームエディターみたいな画面を作るとか?
画面デザインをある程度カスタムできるとか?
まあ、企画壮大、実務未使用な画面のような・・・。
Googleツールバーみたいにテキストボックスのサイズを変えるときとか。
まあそんなに悩むほどのコードじゃないがな
844 :
839:2007/01/03(水) 13:13:02
大変どうもです。
>>840-843 こういう機能は確かにアプリケーションで使う使わないはありますね。
>>843 確かに一回でできてしまえばいいわけですが、いろんな調整も含めて
最適化するなどもあり数日以上掛かるとなると負担ではありました・・・
ところでVS2005のHelpについてですが、
「Helpのお気に入り」 の並び順はカスタマイズすることはできるものでしたっけ?
最低でもABC順にしたいのでしたが、皆様はどうされていますか?
>>846 どうもです、お正月ということもあるかもしれませんが、あちらでもおt答えは
まだいただけていないのですが・・・、この先何か情報がいただけましたら
こちらでもご報告させていただきますです。
たぶん、新Controlクラスに含めてくれるのはたぶんサードパーティの
グレープシティさんあたりでしょうかね・・・そういうクラスライブラリを作ると
けっこう売れる、かもしれません。
Controlオブジェクトに
>>835-837のイベントハンドラを差し込むだけなんだから
Controlを引数にとる汎用的なメソッドを定義しとけばいいだけだろ
>>848、
>>835-837さん
現在のところまだ不具合が取りきれてはいない状態でしたが、アドバイスの
汎用化の方向も検討します。(まだまだそこまで行ってませんが)当面は
ユーザーコントロールの形で考えてみます。
本件、アドバイスと具体的なご指導のおかげでとても勉強になりました、
大変どうもありがとうございました。
XML パーサの件で聞いてると思うけど、もう一度聞くね
あのね xmlns って予約語の様なんだけど、その属性値を設定したいんだけど
予約語だから無理って言われるんよ、なんとかパーサ使って設定できない?
テキストライターとか無しでよ、OK
名前空間
853 :
デフォルトの名無しさん:2007/01/05(金) 16:49:12
指定した個数分のLabelを並べて描画したとします。
例えば値が5ならば□□□□□このような形になります。
このラベルをクリックした際に、どのラベルをクリックしたのかを検出するにはどうすれば良いでしょうか?
ラベルはBlockという名で配列化してあり、左端のラベルをクリックしたらBlock(0)のイベントを実行するといった具合です。
まだ勉強初めてからあまり経っていないので書き方が不味くてわかりにくいという事もあるかもしれませんが、宜しくお願いします。
・それぞれに別々のイベントハンドラを関連付ける
・同じイベントハンドラを使う場合は,sender引数にイベントを送ったオブジェクトが入っているので
それを使って判断する
激しくデジャブを感じるな。
それも本当につい最近のことのはずだ。
っていうか、同じ奴なんじゃねえの?
まあ同じ奴かどうかわからないけど、なんで
>>853見たいな奴って素直に
「VB6のコントロール配列と同じことがしたい」って言えないんだろうなw
こんな発想する奴はVBer以外にありえないのに。
真面目に入門書やwebの情報ぐらい一通り目を通す、
ということをしようともしない自堕落なメンタリティもVBer丸出し。
856 :
853:2007/01/05(金) 19:01:21
>854
とりあえずよくわからないのでそれらの単語で調べてみます、有難う御座います
>855
同じような質問があったのですか。課題とかそういうのでは無いんですけどね・・・
自分は今年からVB.NETの勉強を始めただけで、VB6?とかは全く知らないです
こんな発想、との事ですがこのやり方って不味いのでしょうか?
具体的に何をやりたいのかというと、ラベルで升目を作ってボードゲームを作ろうとしているのですが
>>855 違うみたいね。
単にセンスがないだけ。
ラベルで升目ね……
もうちょっと勉強を先に進めて,
升目の描画とマウスクリック位置の判断はコントロール任せじゃなくて自分で書け
自分で描画する手間を考えたらラベルを使うのは場合によっては
悪くない選択だと思うけど俺は。
まあ、がんばっても5x5あたりが限界って気は確かにするが。。
>>856 VB.NET的にはボードを構成するラベルを統括的に管理するクラスを作って、
そいつがラベルがクリックされた時にそれを「座標(x,y)がクリックされたよ」
ってイベントに変換することを考えるのが正道だと思うけど、全くの初心者じゃきついかもね。
っていうか、こうやって基本も理解しないうちから人に質問しようって発想はありえんと思うわやっぱ。
何万円もする高度な学術書にしか書いてないことならともかく、どんなぼったくりの
入門書にも書いてあることだろ。
>>855 いつもの説教ジジイうぜえええええええええええええええええええええええええ
いつもの説教ジジイうぜえええええええええええええええええええええええええ
いつもの説教ジジイうぜえええええええええええええええええええええええええ
いつもの説教ジジイうぜえええええええええええええええええええええええええ
いつもの説教ジジイうぜえええええええええええええええええええええええええ
いつもの説教ジジイうぜえええええええええええええええええええええええええ
いつもの説教ジジイうぜえええええええええええええええええええええええええ
いつもの説教ジジイうぜえええええええええええええええええええええええええ
いつもの説教ジジイうぜえええええええええええええええええええええええええ
いつもの説教ジジイうぜえええええええええええええええええええええええええ
いつもの説教ジジイうぜえええええええええええええええええええええええええ
861 :
デフォルトの名無しさん:2007/01/05(金) 20:23:46
ここは、質問者に説教するスレではありません。
ここは、質問者のプログラミングセンスを測るスレではありまえん。
ここは、質問者のプログラマ適性を診断するスレではありません。
何か勘違いしてる人がいますが。
>>855,859
好きなだけ、説教していいからコテハンにしてくれ。
三連投 乙
まあ好きなだけ説教させてもらうし、コテハンなんてやなこっただし、
自分の言葉を自分自身に適用できない馬鹿をからかうことも止めるつもりないけどねw
>>863 どれだけ、バカで自己中なんだよ。
お前の事をウザイと思ってるヤシがこの少ない住人の中に
三人いたんだよ。
一人じゃねぇよ。
何万円もする高度な学術書wwww
階層何百もの設定項目以上www
お ま え の 基 準 な ん て ど う で も い い
とりあえず例外投げときますね
当事者だからわかるが、確かに俺も含めて2人はいる。
誰も相手にされないお局さまが輝ける唯一のスレなんだから、
そっとしておいてやれよ。
コテにはなって欲しいが。
それを言うならここでレス返すみんなお局なんじゃね?
ここで質問者の意図を繊細に汲みつつ適切なアドバイス返すなんてのは
面倒だし骨が折れるから
自己満足&優越感&無私の奉仕の法悦という代価を受け取りたいとしても
仕方ないんじゃね?
代価ほしけりゃ、このスレに来ることなく、仕事して報酬を受け取れ。
バカを罵倒することでしか代価が得られないなんて、
おまえ気持ち悪いんだよ。
一人やたら攻撃的な奴が混じってるな
ここが質問スレだということを忘れるな
>>874 見た。個人で使う分にはコードの量も少なくていいんじゃないの。
仕事でやるなら(多人数で開発)、機能が整理できていないと思う。
例えば、CallByNameではなく、リフレクションを簡単に使える
クラスを一つ作り、拡張していく等。
あとOOPの理解度に難ありかもと感じた。
よそのスレッドのオブジェクトに直接アクセスしたいようだけど、
NUNITとかC#だけどオープンソースだから、参考になると思われ。
モジュールwww
いたるところにある、
Catch Ex As Exception
Throw Ex
End Try
は何のためでつか?
例外の再スロー…だけど,これは間違い。
Catch Ex
Throw
End
が正しい。
879 :
878:2007/01/06(土) 15:30:10
間違えた無視して
それ以前にTryブロックがいらんだろw
>>877-880 お前らの頭の悪さは、無視できない。
そんなお馬鹿なお前らに例外を投げてあげるのも
部品作成者の仕事。
なにを言ってんだお前は。
>>881 Try
冷害投げるかも知れない何か処理
Catch ex As Exception
Throw ex
End Try
これみて何でそう思う。
お前の頭の悪さも無視しがたいな。
>>883 ステップ実行を行えるIDEで、例外が想定できる処理で
Tryで囲むのは、デバッグ上必要。
よほど、くやしい
>>877-880とみえる。
デバッガで未処理の例外または例外スロー時に
ブレイクするように設定するのが常識。
デバッガでとめるためだけにキャッチしてThrow exなんて論外。
大体お前は部品利用者のために例外投げろっていってたんじゃなかったのかよ。
まあなんで論外なのかがそもそも分かってないんだろうけど。
キャッチして再スローしないと例外は上まであがってこないと思ってました。
デバッガでとめるためにはキャッチするしかないと思ってました。
キャッチしてそのままThrow exすると何がまずいのか知りませんでした。
てことでFA?
嫌なやつだな
一人で盛り上がってるヤシがいる。
891 :
デフォルトの名無しさん:2007/01/06(土) 16:55:38
ログ記録のためのCatchで記録後さらに呼び出し元にリスローする場合
Throw ex
するとそこでException発生したことになってしまうぞ。
Throw
でりすろう。
例えばStreamReaderを使用してテキストファイルを読む際に、
指定したアドレス(0x000014Aなど)から読み込む方法ってありますか?
BaseStream.Seek
894 :
デフォルトの名無しさん:2007/01/06(土) 17:42:12
質問です
VB2005のWindowsフォームにCrystalReportViewerを埋め込んで帳票出力をしています。
(Windows2000SP4)
実行時、CrystalReportViewerの印刷ボタンを押すとWindows標準の印刷ダイアログが表示されますが
この時、「印刷範囲」の「選択した部分」チェックボックスが
グレーアウトしてクリックできません。
原因として何が考えられるでしょうか。
CrystalReportViewerを使うとこうなるものなんでしょうか。
そういうものなのか、そんなはずはないのかだけでもわかると助かります。
バージョンはCrystal Reports XI Release 2です。
>>891 ログ出力も何もしないのにキャッチして再スローするやつが多い。
なぜだ?
ぼーやだからさ
キャッチしてログ出力しかしないのも考えものだけどな
かなり勉強になるね。
>875
リフレクションなんて便利な代物があったとは知らんかった。
アセンブリって色々詰め込まれてるんだな。
NUNITは今ダウソしたとこ。
>876
えっ?
使ってくれる人の既存のソースの動作を変えないように、
標準関数の上位互換を目指したつもりだったけどダメ?(;´Д`)
>877-884
Try
〜〜〜〜
Catch
Throw
End Try
にしろって言いたいんだな。
コードの自動挿入で"Catch Ex As Exception"って入っちゃうから、
"Throw Ex"ってやらなきゃいけないと思ってたよ。
>891
再スローってそうだったのか! トンクス。
ありです。
GCはファイナライザから例外がスローされるとプロセスを終了させて、全てのリソースを開放しようとする。
つまり、ファイナライザが例外をスローすべきなのは、開放すべきリソースの開放に失敗したとき。
AccessViolationExceptionがでるのは既にリソースが開放されているときだから、例外は握りつぶしてよい。
903 :
デフォルトの名無しさん:2007/01/07(日) 11:17:00
Form1 のイベントハンドラから Form2 にある
テキストボックスにアクセスするには手っ取り早く
MsgBox(Form2.TextBox1.Text)
がいいのかな?
がいいのかな? じゃねーよ
こんにちは
質問があります
Webアプリで
Googleにあるような「検索結果ページ: 1 2 3 4 5 6 7 8 9 10 次へ 」みたいなリンクは
一般的にどのコントロールを使って実現させてますか?
もちろんページに表示させる項目によって動的に変化させます。
まだ初心者なので
教えていただけると助かります。
よろしくお願いいたします。
>>903 コントロールを公開して直接アクセスさせるのは極力避けろ
Form2.Textみたいなプロパティを作って間接的に公開する
907 :
デフォルトの名無しさん:2007/01/07(日) 16:20:59
VB.NETで作ったプログラムをexeにするのってどやるの?
普通にビルドした時点でexeですが何か?
>>900 一番下に寿命管理する方法が載ってるだろ
>>909 >載ってるだろ
・・・回答済みを偉そうに・・・(´ι _` )
1週間くらい前からプログラミング始めたんだけど、今の所さっぱり
わかりましぇーん。
913 :
907:2007/01/07(日) 21:06:05
VB6で言う「コンパイル」のようなものです
vbc.exeがコンパイラです
MSBuildだっけ?で検索してみれば?
nAntとかでも引っかかるかな?
ビルドの仕方を訊いてるんじゃねえの?
920 :
デフォルトの名無しさん:2007/01/08(月) 06:37:53
>>920 普通にNewして座標など指定してVisibleをTrueにすればOK。
イベントはAddHandlerで紐付け。
作り方はフォームのパーシャルクラス(プロジェクトのすべてのファイルを表示)で出てくる。
form.Designer.vb を見れば理解できる。
>>921 ご教授ありがとうございます。試してみます!
Releaseフォルダに、.pdbファイルが作られますが、
何のためにあるんですか?
配布するときはこれも含めないといけませんか?
デバッグ用のデータベースファイル。
Debugフォルダに生成されるのはわかりますが、
Releaseフォルダにまで生成するのは許せません。
何様なんですか><
お前が何様だ
リリース構成でデバッグしようと思ったら
まあ仕方ねーんじゃねーの?
嫌ならオフにすりゃいい。
>>928 >>929 オプション>プロジェクトおよびソリューション>ビルド/実行
オプション>デバッグ
に無いっぽいけど。どこにあるの?
詳細コンパイルオプション
自己解決しました。
プロジェクトのプロパティ>コンパイル>構成(Release)>詳細コンパイルオプション>デバッグ情報を作成(none)
だな。俺天才。
Releaseフォルダの.xmlも生成しないようにするには、
プロジェクトのプロパティ>コンパイル>構成(Release)>xmlドキュメントファイルを生成する(off)
だな。俺天才。
時々いるね、こういうどうでもいいことに固執する人って。
俺にはこういうの強迫神経症って奴そのものに見えるよ。
何かの代償行動なんだろうなきっと。
つまんない
>>934 > こういうどうでもいいこと
君のようにガサツでずぼらな人にはな。
君、まともなプログラム書けないんじゃないの?
ビルド生成物について気にするのは、誰もが通る道。
勘違いしているようだが、代償行動だといっているのは
生成物の正体を知ろうとすることではなく、生成を抑制することに固執することだよ。
938 :
デフォルトの名無しさん:2007/01/08(月) 21:44:06
ビルドした時にできる bin フォルダと obj フォルダってどう違うの?
配布する exe は以下のどっちのでもいいのですかね
bin\Release
obj\Release
>>929 >設定で変えられるだろ
・・・偉そうに・・・(´ι _` )
>>937 > 生成物の正体を知ろうとすること
をしていないなんて、どうやって分かったの?
いつもの説教ジジイは、
エスパーさんのようです。
精神・心理関係用語を多発していることから、
この方は精神も病んでいるようです。
流石VBスレだな
>>941 しかも、説教ジジイはファンネル使い。
IDでない事をいいことに、名無しで連投しまくり。
TabPage に Dock.Fill の WebBrowser を追加しまして、マウスがのるとフォーカスを移したいのですが、
WebBrowser クラスにはマウスイベントが見当たりません。
次いで TabControl のマウスイベント等は、どうもツマミの部位にしか反応しません。
そこで、WebBrowser コントロールの上にマウスがのったかを検知したく思うのですが、なにぶん知恵不足です。
どなかた知恵をかしていただけないでしょうか。
>>861に4つ目追加w
ここは、質問者に説教するスレではありません。
ここは、質問者のプログラミングセンスを測るスレではありません。
ここは、質問者のプログラマ適性を診断するスレではありません。
ここは、質問者の精神病・神経症を診断するスレではありません。
ん、すまんよく見るとやっぱり非サポートみたいだね。。。
変なの。
>>944 そのタブに切り替わったときにフォーカスを移せばいいんじゃね?
>>944 馬鹿にされがちなやり方だけど愚直にタイマつかってポーリングするのが
一番簡単だと思う。エレガントでは全然ないが。
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Dim rect As Rectangle
With WebBrowser1
rect = .RectangleToScreen(.ClientRectangle)
If rect.Contains(Control.MousePosition) Then
.Focus()
End If
End With
End Sub
隠してもどうせヤルんだから
ゴムのつけ方くらい教えたほうがいいでしょ
>>946 > 他人に説教するのはケシカラン、と「偉そうに」他人に説教している自分には
> 気が付かないのか、自分だけは特別だと思うジャイアニズムなのか。
と「偉そうに」他人に説教している自分には
気づかないのか、自分だけは特別だと思うジャイアニズムなのか。
こんな再帰文章書く奴って、ほんとに頭おかしいね。
お前の頭、無限ループでメモリ不足じゃね?
> しかし本当自分の言葉を自分に適用できない馬鹿が多い。
この文章好きだね、決め台詞のつもり?www
で も 、 そ れ お 前 の こ と で す か ら w w w
自分の言葉を適用できていたら、
> 他人に説教するのはケシカラン、と「偉そうに」他人に説教している自分には
> 気が付かないのか、自分だけは特別だと思うジャイアニズムなのか。
この2行は絶対に書けない。
偉そうに