VB.NET質問スレ(Part33)
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2010/01/17(日) 23:35:29VB.NET質問スレ(Part32)
http://pc12.2ch.net/test/read.cgi/tech/1258592769/l50
テンプレは >>2-4 あたり
0002デフォルトの名無しさん
2010/01/17(日) 23:36:02http://msdn.microsoft.com/ja-jp/library/ms229284.aspx
どぼん!のVB道のトップページとTipsページ
http://dobon.net/vb/
http://dobon.net/vb/dotnet/index.html
Insider.NET
http://www.atmarkit.co.jp/fdotnet/index.html
宇宙仮面の C# プログラミング
http://uchukamen.com/
.NET TIPS
http://www.atmarkit.co.jp/fdotnet/dotnettips/index/index.html
緑のバイク ★ 初めてのC# プログラム全般
http://homepage3.nifty.com/midori_no_bike/CS/
VB.NETとC#でデザインパターン
http://hccweb1.bai.ne.jp/tsune-1/
匣の向こう側
http://www.ne.jp/asahi/nami/mei/index.html
WisdomSoft
http://wisdom.sakura.ne.jp/
じゃんぬねっと
http://jeanne.wankuma.com/
どっとねっとふぁん - C# Tips And Samples -
http://homepage3.nifty.com/dotnetfan/index.html
http://dotnetfan.org/
C#プログラミングTips
http://www.atmarkit.co.jp/fdotnet/csharptips/index/csharptips_index.html
0003デフォルトの名無しさん
2010/01/17(日) 23:36:21http://www.codeproject.com/vb/net/
the GotDotNet Home Page
http://www.gotdotnet.com/
KEN's .NET
http://www5b.biglobe.ne.jp/~yone-ken/VBNET/index.html
Cetus Links: 19,498 Links on Objects and Components / .NET
http://www.cetus-links.org/oo_dotnet.html
HIRO's.NET
http://vbdotnet.fc2web.com/index.html
@IT:特集 .NET開発者のためのオンライン・リソース・ガイド
http://www.atmarkit.co.jp/fdotnet/special/onlineres/onlineres_01.html
.NETでいきまっしょい!
http://santamartadotnet.hp.infoseek.co.jp/
これがほしかった!厳選サンプルツール集
http://anetm.com/dev/tools/vbdotnet.htm
ぬーやんのdotNET講座
http://www.geocities.jp/nuu_yan/dotNET/index.html
PINVOKE.NET
http://www.pinvoke.net/
WinAPI Database for VB Programmer
http://www.winapi-database.com/
0004デフォルトの名無しさん
2010/01/17(日) 23:36:39http://custom.programming-in.net/
CodeZine
http://codezine.jp/
ConvertCSharp2VB
http://www.kamalpatel.net/ConvertCSharp2VB.aspx
@IT:.NET Tools
http://www.atmarkit.co.jp/fdotnet/tools/index/index.html
SharpLibrary Redirector
http://www.sharplibrary.com/
MSDN アカデミック アライアンス 技術資料
http://www.microsoft.com/japan/msdn/academic/articles/
「300 秒でズバリ !!」&「10 行でズバリ !!」シリーズ
(VS2005) http://www.microsoft.com/japan/msdn/thisweek/300x10/
(VS.NET 2003) http://www.microsoft.com/japan/msdn/thisweek/wednesday/
PAPA'n VB
http://papanvb.i-love-vb.net/
(旧コンテンツ) http://www.mitene.or.jp/~sugisita/index_old.html
VB レスキュー花ちゃん
http://www.bcap.co.jp/hanafusa/dotnet/index.html
VB中学校
http://homepage1.nifty.com/rucio/main/main.htm
初心者から中級者のためのVB
http://www7b.biglobe.ne.jp/~vb_beginner2008/
テンプレここまで
0005デフォルトの名無しさん
2010/01/18(月) 16:01:55は.NETには存在しないの?
0006デフォルトの名無しさん
2010/01/18(月) 16:09:280007デフォルトの名無しさん
2010/01/18(月) 17:37:00ただし精度は全く当てにならないから時間計測には使っちゃダメ
0008デフォルトの名無しさん
2010/01/18(月) 19:20:18表示範囲を取得するのはどうすればいい?
たとえば12ヶ月分ドーンと出てるときに、2010/01〜2010/12が今表示されてるー、みたいな感じ
SelectionRangeで取れるのは選択中の日付なんだよな…
0009デフォルトの名無しさん
2010/01/18(月) 19:28:53このpropAの規定値(My.Settings.Reset()で設定される値)を取得する方法は用意されているのでしょうか?
0010前スレ998
2010/01/18(月) 19:36:02ありがとうございます。
やっぱりネットに向けてポートを開放するのは危険ですよね。
以前、勤めていた会社では本社にあるサーバーから、支店のパソコンの
Windowsフォームアプリにマスタのデータを引っ張っていました。
そんなシステムを自作したいと思っているのです。
その時はISDN回線でした。
似たようなことをするには、どういったプログラムを組めば
よろしいのでしょうか?ヒントが掲載されたサイトだけでも
ご教示いただければ幸いです。どうかよろしくお願いいたします。
0011デフォルトの名無しさん
2010/01/18(月) 19:41:46GetDisplayRange
0012デフォルトの名無しさん
2010/01/18(月) 19:48:59My.Settings.Properties("プロパティ名").DefaultValueとか
0013デフォルトの名無しさん
2010/01/18(月) 19:55:09おお!ありがとうございます!
ライブラリの中を探しまくったのに、こんな近くにあったなんて。。
0014デフォルトの名無しさん
2010/01/18(月) 21:48:02>>http://pc12.2ch.net/test/read.cgi/tech/1263738929/1000
gj ナイスタイミングだ
0015デフォルトの名無しさん
2010/01/19(火) 08:23:27a,b,c
d,e,f
g,h,i
が格納されています。つまり、カンマ区切りの行が3行、それが1つの変数に入っています。
これを、DataTableオブジェクトに入れるシンプルな方法はありますか?
0016デフォルトの名無しさん
2010/01/19(火) 08:52:43できた!
ありがとうありがとう
0017デフォルトの名無しさん
2010/01/19(火) 08:58:04ここのサイトのCtrl+Alt+SpaceのところをF11に変えたいんですけど
どこを変えればいいんですか?
0018デフォルトの名無しさん
2010/01/19(火) 09:56:29俺にはこれが限界。
For Each r As String In 元の変数.Split(Microsoft.VisualBasic.ChrW(&HD))
If r.Trim() = "" Then
Exit For
End If
Dim row As DataRow = テーブル.NewRow()
row.ItemArray = r.Split(","c)
テーブル.Rows.Add(row)
Next
区切りが CR じゃなく CR+LF だと、最初の Split がもちっと面倒。
0019デフォルトの名無しさん
2010/01/19(火) 10:28:32ありがとうございます。うまく動きました。
&HDがvbCrですね。
0020デフォルトの名無しさん
2010/01/19(火) 10:32:14をソースで実行(Debug)しても、それからそれでできたExeファイル
を直接ダブルクリックで実行しても、同じ動作をしていました。
ところが、WindowsVista+VS2005にしてやってみると、ソースで実行(Debug)
すると動くのに、できたExeファイルを直接ダブルクリックして動かすと
Xmlファイルの読み込みで失敗するのですが、こういったことはXpでは
経験がありません。これ解決したいのですが、Vistaでは何か新しい制約
があるのでしょうか。(使用Framework=2.0)
これはVS2005からVS2008に移行すると解決するでしょうか?よろしく
お願いします!
0021デフォルトの名無しさん
2010/01/19(火) 11:48:090022デフォルトの名無しさん
2010/01/19(火) 17:15:40・UACで怒られる
・32bit⇔64bitでエラー
とか?
0023デフォルトの名無しさん
2010/01/19(火) 18:28:14ご指導ありがとうございます。数回試したのですが、>>20のような状況で
そのときのメッセージでは確かに「アクセス許可がない」といったものが
出ていました。
その後でまたやってみたところ、今度は該当のXmlファイルの中の特定の箇所
の文字(0x01)がNGだという内容のメッセージがソースでのデバッグでも出る
ようになり、それがどうやっても取れないのであきらめて、新しくファイルを
削除して初期からやり直してみたところ、今度はソースでもExeファイルでも
正常に読み込みできるようになりました。状況がはっきりわからず完全対策が
打てないのですが、またやっていく中で調べてみます。よくわからずすみません
です。ありがとうございます。
0024デフォルトの名無しさん
2010/01/19(火) 19:41:06たいていうつ病。
早目の精神科受診を勧める。
0025デフォルトの名無しさん
2010/01/19(火) 20:15:45印刷するときのページサイズ、印刷可能範囲、ページ余白とかはプロパティで取得できますが
具体的にその値ってどこから得られるのでしょうか?
0026デフォルトの名無しさん
2010/01/19(火) 21:07:510027デフォルトの名無しさん
2010/01/21(木) 00:54:07開発環境のVisualStudio2005上で実行した場合、
つまりVS内蔵の(?)WEBサーバー機能で動かした場合は意図したように動き、
Webサイトのコピーを使って本番環境(Windows2008)に丸ごとコピーし、
ブラウザにhttp://サーバー名/と打ち込んで実行させると
動きが変わります。
どのようなアプリかというとImageとButtonコントロールが配置されてあり、
ImageのImageURLプロパティで画像へのパスを設定し、表示させています。
Buttonに関しては配置しているだけでコードを追加していないため
押されるとPostBackが発生し、画像が最新のものに更新されます。
つまりある定期的に差し替えられるファイルをブラウザで最新のものを見たいので
更新ボタンを付けただけのアプリです。
本番環境ではなぜかファイルを差し替えた後更新ボタンを押すと
カチッと音がしてリロードされるのですがなぜか画像は差し替え前のままで更新されません。
F5キーを押すと更新されます。
画像のフルパスへ直接アクセスした場合は新しいものが表示され、
その後にASP上のボタンを押したら画像も更新されます。
本番環境は勝手に画像をキャッシュしてボタンを押してもキャッシュを表示しているように見えます。
ちなみに本番環境をWebに公開設定し、携帯から利用した場合はなぜか正常に動作します。
Imageコントロールがキャッシュしてるのかと思いコントロールではなく
ただのImageタグに変えても結果は同じでした。
本番環境とVSの環境で何が違うために挙動が変わるのでしょうか。
また、どうやって対処すべきでしょうか。
0028デフォルトの名無しさん
2010/01/21(木) 03:44:390029デフォルトの名無しさん
2010/01/21(木) 03:52:02filterExpression
行にフィルタをかけるために使用する基準。
sort
列と並べ替え方向を指定する文字列。
--------------------
だと行はしぼれてもすべての列が抽出されちゃうけど
特定の列だけ得るにはどうすれば
0030デフォルトの名無しさん
2010/01/21(木) 04:17:52カラム構成が変わったら、それはもう別のテーブルなわけで
「新規テーブル作成、必要なカラムを作成、行のコピー」を
自分で書くしかない。
0031デフォルトの名無しさん
2010/01/21(木) 04:55:350032デフォルトの名無しさん
2010/01/21(木) 08:09:51キャッシュをクリアする
0033デフォルトの名無しさん
2010/01/21(木) 08:34:44>>32 の言うように↓の一行追加で直ると思うよ
<meta http-equiv="Pragma" content="no-cache" />
0034デフォルトの名無しさん
2010/01/21(木) 15:51:13<img src="/images/hoge.jpg?20100121155100">
とかすればいいよ
0035デフォルトの名無しさん
2010/01/21(木) 15:57:44Do
dim Sum1 as integer ・・・�@
Sum1=Sum1+1
go to ABC
Loop
だとSum1の値が�@の部分で0にならないけどなんで
0036デフォルトの名無しさん
2010/01/21(木) 16:04:260037デフォルトの名無しさん
2010/01/21(木) 16:11:28にしないとだめだよ
0038デフォルトの名無しさん
2010/01/21(木) 17:09:540039デフォルトの名無しさん
2010/01/21(木) 17:41:07Dim sum1 As Integer
同じ変数のDim文が複数あるとエラーになるのに
>>35みたいなのがエラーにならないのは変だよね。
0040デフォルトの名無しさん
2010/01/21(木) 21:25:140041デフォルトの名無しさん
2010/01/21(木) 23:00:20004227
2010/01/21(木) 23:27:03>>33
試してみましたが症状は変わりませんでした。
念のため下記3行を追加しましたが同じでした。
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache">
<meta http-equiv="Expires" content="-1">
>>34
"20100121155100"がどこから来るのかわかりませんでしたが
画像のパスに日時をパラメータと入れることで更新前ファイルと更新後ファイルの
ファイル名が変わり、ブラウザがキャッシュを利用しなくなるという理屈ですね。
これでうまくいきました。
ありがとうございます。
開発環境(VS上)ではなぜキャッシュを使わなかったかは置いておいて、
ボタンによるpostbackとF5の更新では動きが違うんですね。
postbackだとキャッシュを利用し、F5だとキャッシュが非利用のため画像が更新されます。
一応ブラウザ(IE8)のキャッシュをOFFにするとファイル名にパラメータを入れるようなコードは不要になりますが、
そもそも今回の減少はサーバー側のキャッシュが効いている事が問題でしょうか。
それともクライアントのブラウザ側でしょうか。
画像ファイルにパラメータつけることで問題自体は回避できましたが
正攻法はどのようにすべきでしょうか。
0043デフォルトの名無しさん
2010/01/21(木) 23:31:37304が帰ってきてるだけだろ。
0044デフォルトの名無しさん
2010/01/21(木) 23:50:280045デフォルトの名無しさん
2010/01/22(金) 11:30:09スコープはアプリケーションです。
My.Settings 〜 で値を取得して利用していますが、
exe 実行中にメモ帳で app.config の中身を書き換えても
起動時の情報がキャッシュされているのか即座には反映されません。
一旦 exe を落として再起動かけると大丈夫ですが。
印字位置の調整だもんで、数値を弄って印刷させてみて〜
の繰り返しになるんですけど、exe の再起動を伴うと大変です。
My.Settings.Reload とか My.Settings.Reset とか怪しいと思って
app.config の中の値を利用する前に呼び出してみたんですが変化ありません。
何か一発で効くメソッドとかありませんか?
0046デフォルトの名無しさん
2010/01/22(金) 12:57:59>app.config の中身を書き換えても
それは Visual Studio で実行する直前に、
bin\Debug\(exeファイル名).config または
bin\Release\(exeファイル名).config にコピーされる元ファイル。
実際 (上記いずれか) の .config ファイルの方を書き換えないと。
0047デフォルトの名無しさん
2010/01/22(金) 13:52:05VB.net、VisualStudio2008で制作しています。
半透明の丸い形のフォームを作ったのですが、
フォームの縁にジャギーが残ってしまい、
フォームの縁にアンチエイリアス処理を行いたいと考えています。
アンチエイリアス処理を行った円形の描画はできたのですが、
それをフォームにしようとすると、
アンチエイリアスの効果がフォームのBackColorに適応されてしまいます。
パスにアンチエイリアス処理をかけることは難しそうで、
パスを使ってフォームの形自体を変える事もできませんでした。
0048デフォルトの名無しさん
2010/01/22(金) 14:12:26Fillしてるコントロールがサイズ変更に追従しないのだけど
どうすればいいでしょ
0049デフォルトの名無しさん
2010/01/23(土) 15:27:57あらかじめ登録したIDとパスワードでログインをしてからアクセスしないとだめなのですが、
どうもうまくいきません。
ヤフーでログインを試みたら正常にログインしてその後のアクセスも正常にできたので
リクエストのPORTやクッキーの使い方は致命的には間違っていないようなのですが
何がわるいのかわかりません。
ログインしようとしているサイトは親ドメインでログインを一括して受け付けているようなのですが、
実際アクセスしたいドメインとは違うため、クッキーコンテナから必要なクッキーを選び出す段階で
必要なクッキーが得られていないのではないかと思うのですが、そういう場合はどうしたらよいでしょうか?
(POST後にいくつかのクッキーは帰ってきています。)
IDやパスワードをPOSTするアドレスは
ttps://www.google.com/accounts/ServiceLogin?
なのですが、
実際にアクセスしたいのは
ttp://www.youtube.com/
のアドレスです。
service=youtubeを付けてPOSTしています。
0050デフォルトの名無しさん
2010/01/23(土) 15:32:23比較してみろよ。
0051デフォルトの名無しさん
2010/01/23(土) 16:27:47今のとこのソースとユーザーIDとパスワードをうpしてくれたら
直してあげるよ。
とりあえずそこまでが面倒くさいから。
0052デフォルトの名無しさん
2010/01/23(土) 16:52:24005349
2010/01/23(土) 17:13:47>>50
httpの閲覧ツールは使っているのですが、内容から原因は特定できませんでした。
httpの閲覧ツールでも一回のポストででログインが成功しているので
クッキーの使い方に問題があるような気がしてきました。
>>51
IDとパスワードはちょっとまずいような気がするのですが・・・
>>52
それだとログイン後のクッキーをローカルから持ってきて
HttpWebRequestで使える型の変数に入れるところまでが難しそうです。
(その後のアクセスはクッキーを使ってHttpWebRequestクラスとGttpWebResponseクラスを使いたいため)
0054デフォルトの名無しさん
2010/01/23(土) 17:48:130055デフォルトの名無しさん
2010/01/23(土) 17:56:030056デフォルトの名無しさん
2010/01/24(日) 14:53:470057デフォルトの名無しさん
2010/01/24(日) 19:07:270058デフォルトの名無しさん
2010/01/24(日) 19:17:150059デフォルトの名無しさん
2010/01/24(日) 19:21:53なんだオマエ?名を名乗れ!
0060デフォルトの名無しさん
2010/01/24(日) 19:26:210061デフォルトの名無しさん
2010/01/24(日) 22:18:28まともにインストールできてるなら
「プログラムの追加と削除」からアンインストールするね、普通の人は。
0062デフォルトの名無しさん
2010/01/24(日) 23:18:010063デフォルトの名無しさん
2010/01/25(月) 12:23:13配布した相手のパソコンがどんなのでもちゃんと音なる?
0064デフォルトの名無しさん
2010/01/25(月) 12:29:07音は鳴らないだろうなJK
0065デフォルトの名無しさん
2010/01/25(月) 12:42:070066デフォルトの名無しさん
2010/01/27(水) 14:08:06Alt+Tabキーで表示されるウインドー切り替え画面に表示させたくないのですが
どうしたらよろしいでしょうか
調べてみたんですけどFromBoderStyleを「FixedToolWindow」にすればいいのらしいですが
FromBoderStyleは「None」のままにしたいです
教えてくださいエロい人
0067デフォルトの名無しさん
2010/01/27(水) 14:15:550068デフォルトの名無しさん
2010/01/27(水) 14:17:590069デフォルトの名無しさん
2010/01/27(水) 14:37:40MyBaseから取ってきたCreateParamsのExStyleにWS_EX_TOOLWINDOWを追加
ShowInTaskbarもFalseにしとかないと効かないっぽいが
0070デフォルトの名無しさん
2010/01/27(水) 19:49:51comのMicrosoft Access 12.0 Objcet Libraryを参照追加してもAccess.ApplicationClassが使えません
0071デフォルトの名無しさん
2010/01/29(金) 16:20:32↓
(2)デスクトップ上に開いているFornの名前(Text)をListBox1にすべて表示する。 ←ここまでは出来る。
↓
(3)ListBox1で選択したFormを閉じる。
(3)を実行するにはListBox1で選択された名前のForm(Text)を閉じるようにすればいいと思うんですが
Formの名前(Text)を指定して閉じるってどうすればいいのでしょうか?
0072デフォルトの名無しさん
2010/01/29(金) 18:11:09取得方法がわかるんだったら、(3)の方法も思いつきそうなもんだけどな。
0073デフォルトの名無しさん
2010/01/29(金) 18:32:31例えば取得してるところでフォームのインスタンスと名前をもつ情報をListBoxのデータに結びつけて
それで処理するっちゅうのはいかが?
0074デフォルトの名無しさん
2010/01/30(土) 01:27:18(3) は Application.OpenForms("name").Close() でやればいいだけの話であって。
0075デフォルトの名無しさん
2010/01/30(土) 16:47:170076デフォルトの名無しさん
2010/01/31(日) 07:54:140077デフォルトの名無しさん
2010/01/31(日) 12:47:16Dim req As HttpWebRequest = CType(WebRequest.Create(ItaUrl), HttpWebRequest)
Dim res As WebResponse = req.GetResponse()
Dim resStream As Stream = res.GetResponseStream()
Dim sr As StreamReader = New StreamReader(resStream, Encoder)
Dim result As String
result = sr.ReadToEnd()
この方法でhtmlを受け取っているのですが、時々最後の行で
「負の値ではない数値が必要です。」というエラーが出るのですが
これの対処方法を教えて頂きたいです。リクエストをやり直すかレスポンスを待つなどの方法で
エラーを単純に飛ばさずにhtmlを取得したいです。
0078デフォルトの名無しさん
2010/01/31(日) 16:10:00Microsoft の WebMatrix(ASP.NET開発者向け支援ホスティング)を
引き継いだのに、勝手に終了宣言。
後任のサービスなし。
無料でASP.NETアプリおけるところ、
オススメを教えてください。
以下のスレではいいところが見つかりませんでした。↓
(無料ASP.NETホスティング)
http://pc11.2ch.net/test/read.cgi/hosting/1264392839/
0079デフォルトの名無しさん
2010/01/31(日) 17:46:170080デフォルトの名無しさん
2010/01/31(日) 18:14:13世の中の皆様にさらけだしてしまうだろうがw
ハードのセキュリティを考えずに自分の作ったシステムを
代理で稼動してくれるところに意義があるのに。
0081デフォルトの名無しさん
2010/01/31(日) 18:43:490082デフォルトの名無しさん
2010/01/31(日) 22:46:23こけつはいらない
こじもいらないが
0083デフォルトの名無しさん
2010/01/31(日) 23:52:120084デフォルトの名無しさん
2010/02/01(月) 04:14:00はい次の方ー
0085デフォルトの名無しさん
2010/02/01(月) 16:46:06みんな使ってないのか?
0086デフォルトの名無しさん
2010/02/01(月) 20:34:390087デフォルトの名無しさん
2010/02/01(月) 21:57:27あんまり、サードパーティ製のコンポーネントを買おう、とも思わなくなったなぁ。
0088デフォルトの名無しさん
2010/02/01(月) 23:26:33テキストボックスを作り、クリックすれば今の時間+5分としたいのですが、うまくいきません
戻り値は"hh:mm:ss"になります。
どうすればいいんでしょうか・・
Private Sub TextBox1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.Click
TextBox1.Text = Format(CDate(Now) + CDate("00:05:00"), "hh:mm:ss")
End Sub
また↓だとstring型で結合されちゃいます。超初心者でごめんなさい。全然出きなくて泣きそうです。お願いします。
TextBox1.Text = CDate(Now) + CDate("00:05:00")
0089デフォルトの名無しさん
2010/02/01(月) 23:33:090090デフォルトの名無しさん
2010/02/01(月) 23:50:03釣りじゃないよね?
はい、どうぞ
TextBox1.Text = DateAdd(DateInterval.Minute, 5, Now)
0091デフォルトの名無しさん
2010/02/01(月) 23:51:490092デフォルトの名無しさん
2010/02/01(月) 23:53:37と思っているのですが違うみたいですね。文字列で連結されちゃいました
date型って計算する時はdouble型に変換されると思ってたんですが、あれはvbaだけの仕様なのですね
now+1だと翌日になったりしてたと思うのですが
VBになって仕様が変わったようで、見た目が似てるだけに、混乱しております。おたすけ下さい
0093デフォルトの名無しさん
2010/02/02(火) 00:05:07それぐらい調べる能力もないのかしら・・・?
VB使いの底辺って恐るべし・・・www
0094デフォルトの名無しさん
2010/02/02(火) 00:17:500095デフォルトの名無しさん
2010/02/02(火) 00:21:05>>90ありがとうございました!
>>93精進します!
もうVBAの子とはしばらくわすれて、1から勉強し直します
余談ですが、vbaだとnow+nowで2120/3/8になりました。単純にシリアル値同士足してるのでしょう
0096デフォルトの名無しさん
2010/02/02(火) 00:30:07009790
2010/02/02(火) 01:09:21釣りじゃなかったのね。
ちなみに表示は91みたいにする場合は
TextBox1.Text = DateAdd(DateInterval.Minute, 5, Now).ToString("HH:mm:ss")
です。年月日も入れるときはToString("yyyy/MM/dd HH:mm:ss")
93の人が言うように『DOBON.NET』や『VBレスキュー(花ちゃん)』などが分かりやすいので
人に聞く前に調べた方が早いですよ。
VBAやVB6は、適当に書いても何となく動いちゃいますが、正確に書かないとOSや環境に
よって違う動きになったりしますよ。
0098デフォルトの名無しさん
2010/02/02(火) 09:35:10原因は+演算子のオーバーロードの仕様が違うってことでok?
0099デフォルトの名無しさん
2010/02/02(火) 11:24:230100デフォルトの名無しさん
2010/02/02(火) 12:14:22と
DateAdd(DateInterval.Minute, 5, Now).ToString("HH:mm:ss")
は、どちらの記述が望ましいの?
0101デフォルトの名無しさん
2010/02/02(火) 12:23:59減算やTimeSpanとの加算は可能
0102デフォルトの名無しさん
2010/02/02(火) 12:26:330103デフォルトの名無しさん
2010/02/02(火) 12:43:50加算が間違ってて、減算はまちがってないのか?
その意味的違いとやらを教えて欲しいが
0104デフォルトの名無しさん
2010/02/02(火) 12:56:30時刻-時刻=時間
時刻+時間=時刻
だが
時刻+時刻=無意味
ってことだろ。
0105デフォルトの名無しさん
2010/02/02(火) 13:10:41昔みたいに時間を兼ねてない
時間を表すのはTimeSpan
0106デフォルトの名無しさん
2010/02/02(火) 14:09:260107デフォルトの名無しさん
2010/02/02(火) 16:37:14絶対量である 2007/01/05 12:30 に
2010/02/02 16:35を足すとか
2倍するとか
そういう演算に意味があるというなら
むしろこっちが教えて欲しいくらいだ。
0108デフォルトの名無しさん
2010/02/02(火) 19:49:120109デフォルトの名無しさん
2010/02/02(火) 22:28:03時刻を絶対_量_って言うとそれはそれでちょっと問題があるとおもうが...
絶対量に対する演算が無意味だっていうなら
加算でも減算でも同じく無意味だろ
加算か減算かが意味をもってるんじゃなくて>>104が言うように
+と-という演算子の表す意味が違ってるって話だろう
>>104には時刻-時間=時刻ってのも書いといてほしかったな
0110デフォルトの名無しさん
2010/02/02(火) 22:34:46時刻+時間 も 時刻-時間 も同じ事だな
0111デフォルトの名無しさん
2010/02/02(火) 22:35:222番目+3番目<>5番目
0112デフォルトの名無しさん
2010/02/02(火) 22:46:050113デフォルトの名無しさん
2010/02/03(水) 01:06:31実際は時刻+時刻は時間にならないのがおかしいんだろうな
でも、時刻-時刻は直感的にも時間なんだが
時刻+時刻は直感的には時間にならないよなぁ
0114デフォルトの名無しさん
2010/02/03(水) 01:22:120115デフォルトの名無しさん
2010/02/03(水) 02:39:290116デフォルトの名無しさん
2010/02/03(水) 13:52:400117デフォルトの名無しさん
2010/02/03(水) 13:55:15DataSetから特定の1行だけを別のDataSetに入れる方法を教えて頂ければ
と思います。
FromDataSet.Tables(0).Rows(0)=ToDataSet.Tables(0).Rows(0)
こんな感じでやると勿論エラーが出ました。
VB6から.netに挑戦しようと思うのですが躓く事ばかりです。。。
0118デフォルトの名無しさん
2010/02/03(水) 16:20:22フォームがアクティブなときにF12を押すとフォームが非アクティブになるようにするにはどうすればよいですか?
0119デフォルトの名無しさん
2010/02/03(水) 17:16:51既存行を別のテーブルに新しい行として追加したいなら
追加先テーブル.Rows.Add(元の行.ItemArray)
0120デフォルトの名無しさん
2010/02/03(水) 20:19:11恐ろしい程的確な屁理屈。w
0121デフォルトの名無しさん
2010/02/03(水) 20:55:580122デフォルトの名無しさん
2010/02/03(水) 21:06:37うるせえ
0123デフォルトの名無しさん
2010/02/04(木) 01:46:280124デフォルトの名無しさん
2010/02/04(木) 11:44:350125デフォルトの名無しさん
2010/02/04(木) 23:29:44WindowsXP上であるアプリA(例えばWindows MediaPlayer)のウインドウが開いていて
自作のアプリBから、そのAのウインドウのハンドルを調べて、BからAのウインドウ
に図形を描画させてみようとしたのですが、何も描けませんでした。
そこでお聞きしたいのですが、そういうことは技術的に可能でしょうか?
原理的に不可能なら、諦めます。よろしく
0126デフォルトの名無しさん
2010/02/04(木) 23:32:000127デフォルトの名無しさん
2010/02/04(木) 23:50:080128デフォルトの名無しさん
2010/02/05(金) 12:00:41FieldInfo..::.GetValue メソッドを使って構造体の中の構造体をとってきた
※A構造体インスタンスの中のB構造体インスタンス
そして、取ってきたB構造体を編集してみたら
A構造体の中のB構造体には変化がなく
取ってきたB構造体だけが変わっていた
FieldInfo..::.GetValueで、Aインスタンスの中のBインスタンスを取ってきて
編集するだけでOKって感じにはならないもんなんでしょうか
0129デフォルトの名無しさん
2010/02/05(金) 12:17:400130デフォルトの名無しさん
2010/02/05(金) 13:36:30ダメかーありがとう
0131デフォルトの名無しさん
2010/02/06(土) 13:08:51普通にエクスプローラーから起動した場合はいいのだけど、スタートアップ
から起動するとtopmostが効かないのは何故?
内部からどんだけtopmost=trueやbringtofrontしてもダメなんだけど
0132デフォルトの名無しさん
2010/02/06(土) 17:33:25コード長いので割愛しますが、あるユーザーコントロールをtabpageに入れて
tabpageをtabpagesに入れた奴をtabpages.removeで削除すると、
当然タブの表示が消えるんですが、ユーザーコントロールのファイナライズが呼び出されていませんでした。
アプリケーションを終了するときに呼び出されてしまいます。これはどこからか参照されているままだろうということなんでしょうか?
tabを中クリックしたときにremoveを呼び出しているので、その時にnothingすればいいんだとおもいますが・・。
0133デフォルトの名無しさん
2010/02/06(土) 17:39:390134デフォルトの名無しさん
2010/02/06(土) 17:42:210135デフォルトの名無しさん
2010/02/06(土) 21:00:010136デフォルトの名無しさん
2010/02/06(土) 21:10:23ちょっとしたツールなら気にする必要もなし。
0137132
2010/02/06(土) 23:33:55やりたいことはタブを中クリックされたときに、タブに張り付けてあるユーザーコントロール内の
データグリッドビューコントロールのある値が空白のときに、タブを閉じないで警告を出すという動作をさせたかったんですが、
タブを閉じようとする操作はtabcontrolが受け取ってタブをRemoveさせています。
ユーザーコントロールにはtabcontrolから何らかの方法で知らせる必要があるようですね。ありがとうございました。
0138デフォルトの名無しさん
2010/02/06(土) 23:54:15Form1.Designer.vbにフィールドが作られていて、そこに参照が残っている。
0139デフォルトの名無しさん
2010/02/06(土) 23:59:13VBのはC++/CLIのようにもうちっとラップして欲しかった。
0140デフォルトの名無しさん
2010/02/07(日) 00:05:40かえってパフォーマンスが落ちたり余計な問題を抱えたりするだけ
C++/CLIは言語の目的上リソース管理が重要だからちょっと親切になってるけど
VBみたいに分かってない人でも使えるようにするためじゃない
0141デフォルトの名無しさん
2010/02/07(日) 00:28:26イデオムって言いたいだけだろw
0142デフォルトの名無しさん
2010/02/07(日) 00:31:370143デフォルトの名無しさん
2010/02/07(日) 00:48:47そうややこしいということはないと俺は思うけどね。
ところであのスケルトン、既に呼ばれたかどうかのフラグをフィールドにしてるのが
個人的にはダサいと思う。
せっかくVBではメソッド内static変数が使えるんだから、そっちを使って欲しかった。
0144132
2010/02/07(日) 01:20:12ポトペタではないです。自前のコードでユーザーコントロールをnewして
tabpage.controlsに入れて、
tabcontrol.tabpagesにtabpageを入れてます。
0145デフォルトの名無しさん
2010/02/07(日) 07:56:10クライアントでちまちまやるだけならまだしも
サーバーで公開するには高額なライセンスが発生するから
なにかおすすめの無料データベースは?
0146デフォルトの名無しさん
2010/02/07(日) 10:16:56http://msdn.microsoft.com/ja-jp/library/system.idisposable.dispose%28VS.80%29.aspx
>Dispose 以外のインスタンス メソッドでは、リソースが既に破棄されている場合に、ObjectDisposedException をスローできます。
ということで、ほかのメソッドか参照するため
0147デフォルトの名無しさん
2010/02/07(日) 19:36:02PostgreSQLかな
0148デフォルトの名無しさん
2010/02/07(日) 20:10:010149デフォルトの名無しさん
2010/02/07(日) 21:46:08VBでWindowsフォームアプリケーションを2つ作りました。
1つ目はテキストボックスに入力されたデータを変換して、またテキストボックスに出力するというもの
2つ目はWebclientでhtmlデータを持ってきて解析してDatagridviewに出力するというものです
これが2つともすごいメモリ使用量なんです!
OSはXPなんですが、1つ目のは14,000K、2つ目にいたっては最大で23,000K程使ってます!
これって自然ですか?
なにかメモリ使用量を節約する方法などありましたら教えてください。
0150デフォルトの名無しさん
2010/02/07(日) 21:47:440151デフォルトの名無しさん
2010/02/07(日) 22:18:30ウィンドウを最小化したりすると大幅に減ったりする意味のない数値
0152デフォルトの名無しさん
2010/02/07(日) 22:24:40それが原因かもと思ったのですが。
あまり気にしないようにします。
ありがとうございます。
0153デフォルトの名無しさん
2010/02/08(月) 00:41:06まあいいたいことは分かるけど。
0154デフォルトの名無しさん
2010/02/08(月) 10:56:54PictureBoxに画像を表示して消して表示してを繰り返すと、あっという間に
メモリ使用量が100MBを超えます。
メモリを自動的に解放するのが待てないときは、GC.Collect() で手動で
解放するといいと思ってます。
0155デフォルトの名無しさん
2010/02/08(月) 11:02:200156デフォルトの名無しさん
2010/02/08(月) 23:24:56セクションは"[ini]"でキーは"ko"です。5が返ってきて欲しいのですが0になります
どこが悪いのでしょうか?
カレントフォルダで表示される
C:\Documents and Settings\名前\デスクトップ\aaa\bosstimer\bosstimer\bin\Debug
の中にiniは入っています。
iniファイルの中身は
[ini]
ko=5
の二行だけです。ファイル名は
bosstimer.ini
です。
コードは↓です
Public Class Form1
Public Shared Function GetPrivateProfileInt( _
ByVal lpAppName As String, _
ByVal lpKeyName As String, ByVal nDefault As Integer, _
ByVal lpFileName As String) As Integer
End Function
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'Iniファイルから指定したキーの値をGET(整数値)
Dim aaa
aaa = GetPrivateProfileInt("ini", "ko", 0, CurDir() & "bosstimer.ini")
MsgBox(aaa)
End Sub
End Class
0157デフォルトの名無しさん
2010/02/08(月) 23:32:590158デフォルトの名無しさん
2010/02/08(月) 23:45:37この辺からコピーして四苦八苦やつてます
declearのあるページも参考にしてみます
0159デフォルトの名無しさん
2010/02/09(火) 00:12:40ありがとうございます。とりあえずコードを拾ってきて、iniもC直下において
下のように変えたら
8972063213919141888
と返ってきました。何故でしょう
iniファイルは上の二行だけで5の後には改行も入っていません
integerにするとエラーが来たので大きい数が入ってるような感じはしますが、なんだかわかりません
分かる方おしえてください、お願いします・・・
Public Class Form1
Public Declare Function GetPrivateProfileInt Lib "kernel32" Alias "GetPrivateProfileIntA" ( _
ByVal lpApplicationName As String, _
ByVal lpKeyName As String, _
ByVal nDefault As Long, _
ByVal lpFileName As String) As Long
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim aaa As Long
aaa = GetPrivateProfileInt("ini", "ko", 0, "c:\bosstimer.ini")
MsgBox(aaa)
End Sub
End Class
0160デフォルトの名無しさん
2010/02/09(火) 00:15:23なんでDllImportの行すっ飛ばしてるんだよ…
0161デフォルトの名無しさん
2010/02/09(火) 00:20:51エラーが出るんです・・
0162デフォルトの名無しさん
2010/02/09(火) 00:22:21CurDirって終端の \ を含んでないんじゃないかい
0163デフォルトの名無しさん
2010/02/09(火) 00:23:10Imports System.Runtime.InteropServices
をincludeするんですね。MSさん・・サンプルにも書いといてほしいですぜ・・
>>162
ありがとうございます。そちらは確認済みでした
0164デフォルトの名無しさん
2010/02/09(火) 12:09:420165デフォルトの名無しさん
2010/02/09(火) 16:52:290166デフォルトの名無しさん
2010/02/09(火) 17:40:26それより前に選択したファイルとの差が出るやつか。たまになるな。
気にはなってるんだが実害がないので、どういう時に起こるかとか調べた事ないな
0167デフォルトの名無しさん
2010/02/09(火) 19:17:49そのエラーがどこのステートメントで発生したかの
ログを取りたいのですが、どうしたらよいでしょうか?
障害の原因の早期発見のためです。
0168デフォルトの名無しさん
2010/02/09(火) 19:18:480169デフォルトの名無しさん
2010/02/09(火) 21:15:35Catchの中でStackTraceを吐けばおk
実行ファイルと同じ場所にpdbファイルを配置するのを忘れずに
0170デフォルトの名無しさん
2010/02/09(火) 21:17:580171デフォルトの名無しさん
2010/02/09(火) 21:33:38変数に何が格納されているか知りたいときは、どこかのtextbox辺りに出力するのが゛一般的ですか?
0172デフォルトの名無しさん
2010/02/09(火) 21:39:370173デフォルトの名無しさん
2010/02/09(火) 21:44:38なんででしょう
0174デフォルトの名無しさん
2010/02/09(火) 22:00:370175デフォルトの名無しさん
2010/02/09(火) 23:35:28フィールドA〜フィールドEまで5項目あるデータを百件から千件程度
プログラム内部に持ちたいと思ってます。
これをプログラムで実現するにはどういう方法がベストなんでしょうか。
・DataGridViewで保持
・arraylistで保持?
他の方法すらわからないので、普通はこう作る!というような作法が
あればご教授頂ければ幸いです。
参考になるかわかりませんがデータ容量は小さく、現在800件ほどで60kb程度です
0176デフォルトの名無しさん
2010/02/09(火) 23:39:54コレクションを使う場合はArrayListは時代遅れなので使わない。List(Of T)を使う。
0177デフォルトの名無しさん
2010/02/09(火) 23:40:060178デフォルトの名無しさん
2010/02/09(火) 23:47:01Viewなんだからデータ保持させんな
0179デフォルトの名無しさん
2010/02/09(火) 23:58:49ありがとうございます。
個人で出納帳(というか家計簿)のようなものを作ってみたく、
日付、金額などを明細で持つようにしたいのです。
画面にはひと月分表示させてあとは内部に持っておこうと
考えてます。
この考え方自体もvb.netに合わないんでしょうか。
arraylistは時代遅れなんですか、勉強になります。
DataGridViewでデータ保持してゴリゴリやればなんとかなると
思ったのですがぜんぜん考え方が違うようですね、すいません。
0180デフォルトの名無しさん
2010/02/10(水) 00:05:040181デフォルトの名無しさん
2010/02/10(水) 00:06:18その方が練習になるし
0182デフォルトの名無しさん
2010/02/10(水) 00:06:590183デフォルトの名無しさん
2010/02/10(水) 00:11:33ありがとうございます。
本格的にするならそうするのですが、
まずは小さなアプリでvb.netの勉強したいので
内部に保持しようと考えました。
入出力はとりあえずcsvにしておいて、
ステップアップする時に他へ乗り換えようかと思ってます。
0184デフォルトの名無しさん
2010/02/10(水) 00:22:040185デフォルトの名無しさん
2010/02/10(水) 00:28:560186デフォルトの名無しさん
2010/02/10(水) 09:03:430187デフォルトの名無しさん
2010/02/10(水) 10:19:12型付きデータセット使うなら先に>>184の考え方を理解するべきだとおもう
0188デフォルトの名無しさん
2010/02/10(水) 11:28:04ありがとうございます。
行クラスの考え方でやってみたいと思いました。
文献を探してみたのですが、以下をを参考にできそうな気がします。
早速試してみます。
独自コレクションクラスを作成する VB.NET2005
http://www.geocities.jp/i_love_balard/myhome/dnet/collection.html
0189デフォルトの名無しさん
2010/02/10(水) 11:42:552005なのにそんなことやってるとかもうそのサイト見ないほうがいいよ
VB2005以上ではそんなもん必要ない
ジェネリックコレクションでググれ
0190デフォルトの名無しさん
2010/02/10(水) 11:57:29>>188のような基礎的な記事は当てにしないほうがいいよ
書いてる本人がわかってない
0191デフォルトの名無しさん
2010/02/10(水) 11:59:060192デフォルトの名無しさん
2010/02/10(水) 12:12:440193デフォルトの名無しさん
2010/02/10(水) 12:15:56ArrayListでダウンキャストすればいいでしょう
ちゃんとオブジェクト指向意識しようとしてる割には
Publicフィールド使いまくりだったり俺用語俺解釈だらけだったり
メソッドをオーバーライドするときの大文字小文字が無茶苦茶だったりわけわからん
0194デフォルトの名無しさん
2010/02/10(水) 12:24:54Silverlightでは非ジェネリックコレクションは完全に撤廃されてジェネリックのみになってるよ
WM7ではSilverlightはCFに代わって標準APIになります
0195デフォルトの名無しさん
2010/02/10(水) 13:23:30・゚・(ノД`)・゚・涙が出てきます。何度もありがとうございます。
出てくるキーワードがわからなくて何度もググってみましたが
以下を見れば解決できそうです!
第5回 クラスとジェネリックなList
http://itpro.nikkeibp.co.jp/article/COLUMN/20070515/271058/?ST=develop
第6回 コレクション・クラス自由自在
http://itpro.nikkeibp.co.jp/article/COLUMN/20070709/277026/?ST=develop
それにしても難しいです。難しいというか、なんでも自由にかける分、
適切な選択をするというのかいかに難しいかというのが実感できました。
とても感謝していますm(__)m
0196デフォルトの名無しさん
2010/02/10(水) 18:05:32フォームロード時にセルの高さをColumnHeaderの高さと同じにしたいと考えています。
ColumnHeader.Heightの値は'16'に設定しているのですが、
ShownイベントハンドラからColumnHeader.Heightを見ると'23'になっています。
さらにShownイベントハンドラ内で
Me.DataGridView.ColumnHeadersHeight = 18
としても値が変わりません。
これはなぜなんでしょうか。
0197デフォルトの名無しさん
2010/02/10(水) 18:06:56半角数字とバックスペースとエンターキーはすぐに見つけられたのですが
マイナスと小数点はどのようにすればいいのでしょうか?
0198デフォルトの名無しさん
2010/02/10(水) 19:12:52プログレスバーについてなんですが、XPではValueの値を設定するだけで
正常に表示されるんですが、Win7だとモッサリ動いて100%まで到達する前に処理が終わります。
Win7で動作させる場合、モッサリ感をなくすような方法はありますか?
あるいは、XPのプログレスバーが使えればいいんですが。
0199デフォルトの名無しさん
2010/02/10(水) 22:55:45ASP.NETが昔のASP並みに、社内システムの開発程度にしか
使いどころがなくなった今、.NET Framework のネット可用性は激減だもんな。
今更デスクトップアプリって時代でもないしな。
0200デフォルトの名無しさん
2010/02/10(水) 23:02:150201デフォルトの名無しさん
2010/02/10(水) 23:07:130202デフォルトの名無しさん
2010/02/10(水) 23:30:31デスクトップアプリはずっと残る。
しかし、COBOLプログラミングに魅力を感じないように、
デスクトップアプリプログラミングも魅力を感じることはなくなるだろう。
パソコンは、一般人にとって不要な機能が多すぎる。
最低限の機能を残し、
誰でも気軽に買えるよう、低価格化し、
素人が使っても壊れないようにシステムの安定化を図れば、
いずれ、ブラウザ一枚が起動するだけのマシンが売られるだろう。
そしてそれは今のパソコンにとって変わるほどに普及するだろう。
メーラーもメモ帳もすべて包括的なWebサービスに変わる。
Windows Azure のようなOSが標準化され、
ソフトウェア使用のライセンス違反の問題も解消する。
高価なパソコンでOSを合わせ、.NET Framework などのコンポーネントを
用意しなきゃ動かないソフトなんて、開発にも利用にも金がかかりすぎる代物は
たぶん俺には会っていない。
0203デフォルトの名無しさん
2010/02/10(水) 23:37:181.VisualStyleをオフにする
2.プログレスバーの分解度を大きめにして、1大きい値を設定した後、本来の値にする。
どっちかくらいかな?
2の場合、最後の値では1大きい値にできないので、
最後だけは、最大値を設定後、最大値-1をセットすることになる。
なので、最大値-1を設定しても表示に影響がないように、
最大値を大きめにして補正しないといけない。
0204デフォルトの名無しさん
2010/02/11(木) 10:40:08やってみたら確かに再現しますね。
とりあえず不本意なやり方ですが、プログレスバーがMAXになった後に500〜1000msecの
Waitを入れることでMAX表示はできました。
0205デフォルトの名無しさん
2010/02/11(木) 12:09:20ありがとうございます。
試してみます。
ちなみに、100%時にSleepをしたら表示さえとまってしまいました。。
Wait関数があるんですね?試してみます。
あるいは、VisualStyleをオフにできるんですね?やってみます。
0206204
2010/02/11(木) 16:18:41ある程度精度を気にする場合は�Aのようにしています。
�@Sleep 10msecを100回
For j As Integer = 1 To 100
System.Threading.Thread.Sleep(10)
Application.DoEvents()
Next j
�A
msecWait(1000) '1秒Wait
Public Sub msecWait(ByVal WaitTime As Long)
Dim l As Long
l = System.Environment.TickCount
Do While System.Environment.TickCount - l < WaitTime
Windows.Forms.Application.DoEvents()
System.Threading.Thread.Sleep(10)
Loop
End Sub
0207デフォルトの名無しさん
2010/02/11(木) 16:54:02まあ稀に返ってこなくなるだけだけど。
0208デフォルトの名無しさん
2010/02/11(木) 16:55:270209デフォルトの名無しさん
2010/02/11(木) 16:58:050210デフォルトの名無しさん
2010/02/11(木) 19:05:300211デフォルトの名無しさん
2010/02/11(木) 21:10:49ttp://msdn.microsoft.com/ja-jp/vs2008/bb968856.aspx
なんどやっても開けないんだが
0212デフォルトの名無しさん
2010/02/11(木) 22:08:49ByVal hMidiOut As Integer, ByVal dwMsg As Integer) As Integer
を使ってキーボードを鍵盤のようにして音を出すアプリを作ってみたのですが、
発音するタイミングが遅く連打するとキーを放した時に音が鳴っているような感じになるのですが
もっとリアルタイムで音を出すにはどんな方法でやれば良いでしょうか?
0213デフォルトの名無しさん
2010/02/11(木) 23:27:230214デフォルトの名無しさん
2010/02/12(金) 07:05:43せめてキー判断をどうしてるかわからないとね
>>213
そもそもどうやってデータ追加してるのかね?
何らかのID等を振っておいて追加時に今までのと比較すれば?
初歩的だけど応用は効くやり方だと思う。
0215212
2010/02/12(金) 19:11:07説明不足ですみません。発音が遅れている原因はキーの判別ではないみたいです。
KeyPressイベントで音を出していますが、どのキーでも同じ音というようにKeyCodeの判別部分を削除しても
発音のタイミングは変化がないようです。
0216デフォルトの名無しさん
2010/02/12(金) 20:34:34とりあえずラベルの背景色なりなんなりをキーに連動させるとかすれば
目視でだいたいどこに問題があるのか見当ぐらいつくだろうに。
頭悪いんじゃないの本当。
0217デフォルトの名無しさん
2010/02/12(金) 22:30:59具体的に申しますと、Twitterのpostをライブラリ経由でListViewに表示させています。
その際に、ColumnA(ユーザ名)、ColumnB(投稿内容)、のようにしてItemsを追加しています。
現状の処理だと
A B
hoge huga
hoge huga
xxxx yyyy
のように、一部の投稿内容が重複して表示されてしまうので、それをListViewに追加する段階で弾けないか、と考えている次第です。
0218デフォルトの名無しさん
2010/02/12(金) 22:59:060219デフォルトの名無しさん
2010/02/12(金) 23:00:200220デフォルトの名無しさん
2010/02/12(金) 23:24:57ですね。申し訳ない。
>>219
ライブラリ側を弄ってみようかと思います。
0221デフォルトの名無しさん
2010/02/12(金) 23:26:58そんなのListViewの全ての行を追加したい文字列と比較して重複してたら追加しなけりゃいいじゃん
0222デフォルトの名無しさん
2010/02/12(金) 23:51:12新しいItemを{ユーザ名.投稿内容}といった形で追加しているのですが既存のItemsと比較する方法がわかりません
申し訳ないです。
0223デフォルトの名無しさん
2010/02/12(金) 23:56:000224デフォルトの名無しさん
2010/02/12(金) 23:57:13ありがとうございます。
投稿ごとに割り当てられたIDを取得して取捨選択をしてみようかと思います。
0225デフォルトの名無しさん
2010/02/13(土) 00:31:22A = ListView1.Items(行番号).Text
B = ListView1.Items(行番号).SubItems(1).Text
とするとAにユーザーID、Bに投稿内容が取得出来るよね。
後は追加する時に、それぞれの項目チェックして追加するしないを決めればいいんじゃない?
0226デフォルトの名無しさん
2010/02/13(土) 00:31:54そんで、ListView はあくまでもその Dictionary の表示用と割り切る。
ほら簡単。
0227デフォルトの名無しさん
2010/02/13(土) 16:21:05ありがとうございます。
試してみます。
0228デフォルトの名無しさん
2010/02/13(土) 18:37:140229デフォルトの名無しさん
2010/02/13(土) 19:53:220230デフォルトの名無しさん
2010/02/13(土) 23:11:49会社でもプログラマー、SEを経験しました。
今、何か大きいことをしたいのですが、
どうしてもプログラムが手につきません。
何かプログラムを組もうと思って紙に設計などをするのですが、
実際にプログラムを組むところまでいかず、
どうしてもVisual Studioを起動できません。
こんな自分はどうしたらいいでしょうか。
偉大な先輩方、何かアドバイスがありましたら
ご教示下さい。
0231デフォルトの名無しさん
2010/02/13(土) 23:17:100232デフォルトの名無しさん
2010/02/14(日) 00:08:35しねばいいとおもうよ
0233デフォルトの名無しさん
2010/02/14(日) 00:10:05ありがとうございました。
0234デフォルトの名無しさん
2010/02/14(日) 00:11:180235デフォルトの名無しさん
2010/02/14(日) 19:28:24基本的には新しいものを使って行った方が良いのでしょうか??
0236デフォルトの名無しさん
2010/02/14(日) 19:31:560237デフォルトの名無しさん
2010/02/14(日) 19:54:190238デフォルトの名無しさん
2010/02/14(日) 19:55:270239デフォルトの名無しさん
2010/02/14(日) 21:39:55「.NETになって色々な物が新しく追加されたようなのですが」
ってどうなの。
0240デフォルトの名無しさん
2010/02/14(日) 21:45:10昔のVBに似せたバージョンもオマケで用意されてるだけ
0241デフォルトの名無しさん
2010/02/15(月) 00:44:25下のようにIMEモードをNoControlにしているのですが、自作アプリケーションで全角にした後に
他のウィンドウにフォーカスを移して、また戻すと半角に戻ってしまっています。
ユーザーが設定した情報をフォーカスを変えても保持するようにするにはどうしたら良いのでしょうか?
よろしくお願いします。
this->ImeMode = System::Windows::Forms::ImeMode::NoControl;
0242デフォルトの名無しさん
2010/02/15(月) 02:58:43★初心者にVisual C++を教えるスレ★ Part35
http://pc12.2ch.net/test/read.cgi/tech/1256645713/
ここはどうでしょう?
0244デフォルトの名無しさん
2010/02/15(月) 07:42:11テーマであったけれど、今後は、VBAとの関係をどうするかがテーマに
なっていくのかな?
>>235あたりの流れを読んでいてそう思ったんだけど、ここの住人は
そのあたりはどう考えてるのでしょうか?
0245デフォルトの名無しさん
2010/02/15(月) 07:45:520246デフォルトの名無しさん
2010/02/15(月) 11:43:360247デフォルトの名無しさん
2010/02/15(月) 11:59:090248デフォルトの名無しさん
2010/02/15(月) 13:01:44俺も最近VB6から乗り換えた組みだが、ここまで変わってるとは思わなかった
0249デフォルトの名無しさん
2010/02/15(月) 13:26:260250デフォルトの名無しさん
2010/02/15(月) 18:46:32それは無い
0251デフォルトの名無しさん
2010/02/15(月) 20:29:01ずぶの初心者にはおススメできない>VB
C#だと int a;でいいところが
Dim a as integerってなんやねん。10文字近くも多くなってるわー。インテリセンスを使ってもこれは時間かかる。
0252デフォルトの名無しさん
2010/02/15(月) 20:50:39VSTOも知らずに>>244みたいなことを言う奴って馬鹿だなぁ、って理論
0253デフォルトの名無しさん
2010/02/16(火) 00:39:42とりあえず英文字出しておけば相手を馬鹿にできる
という理論か。
0254デフォルトの名無しさん
2010/02/16(火) 02:09:33お前が馬鹿に間違いないことだけはわかった
0255デフォルトの名無しさん
2010/02/16(火) 03:01:320256デフォルトの名無しさん
2010/02/16(火) 03:02:58DirectoryInfoのGetFilesは嫌なのです。
0257デフォルトの名無しさん
2010/02/16(火) 07:28:310258デフォルトの名無しさん
2010/02/16(火) 10:17:250259デフォルトの名無しさん
2010/02/16(火) 11:04:52VBAとVSTOについての比較などの話、もしくは別スレへの誘導はしないの?
0260デフォルトの名無しさん
2010/02/16(火) 11:10:340261デフォルトの名無しさん
2010/02/16(火) 19:45:10DBを更新するソフトを作っていて、更新処理に時間が掛かるので、
プログレスバーで進捗状況を表示させたいと思っています。
予めデータの件数が分かっていて、プログラムの中で1件ずつ処理しているような場合なら、
ループの中でカウントアップして行けばいいと思うのですが、
DB関連の処理は全てストアドに丸投げしてしまうので、その手が使えません。
何かいい方法はないでしょうか?
0262デフォルトの名無しさん
2010/02/16(火) 20:02:36なんにせよプログレスバーでやるんだったら
最大値(=終了時刻)がわかってないとできないぞ
0263デフォルトの名無しさん
2010/02/16(火) 20:07:10レスありがとうございます。
何らかの方法で、現在値や最大値を取得することってできるんでしょうか?
0264デフォルトの名無しさん
2010/02/16(火) 20:08:10もう一個コネクションを貼って読みだす
0265デフォルトの名無しさん
2010/02/16(火) 20:20:11レスありがとうございます
おとなしく FindFirstFile 使います。
0266デフォルトの名無しさん
2010/02/16(火) 23:21:11頭悪い!その手があったか。
頭悪いアドバイスありがとうございます!
0267デフォルトの名無しさん
2010/02/16(火) 23:45:030268デフォルトの名無しさん
2010/02/17(水) 06:33:28OleDbDataReaderで取得するときにうまく取得できません
openメソッドは動いているのでDBは開いているとおもうんですけどそこからが進みません
ほかにもOleDbDataAdapterなどで値を取得しようとするとOleDbExceptionでダメでした
誰か教えてください
0269268
2010/02/17(水) 06:48:280270デフォルトの名無しさん
2010/02/17(水) 06:50:590271268
2010/02/17(水) 06:52:04自己解決したんですけど
SQL文がダメ見たいでした
テーブル名が欲しくて
SELECT Name FROM MsysObjects
WHERE Left([Name],4) <> "Msys" AND Type = 1
ORDER BY Name;
を実行するとエラーでだめでした
Accessのクエリでは問題なくテーブル名がかえってきますが、VB側で実行するとダメ見たいです
0272268
2010/02/17(水) 07:15:340273デフォルトの名無しさん
2010/02/17(水) 17:43:04form1からform2をShowDialog()してるのですが、
form2で実装しているボタンを押下したとき、1回押しただけでは
画面が戻ってくれません。
form2にはボタンを2つ設けてあり、どちらのclickイベントにも
Me.Close()をいれているのですが、一度でcloseされないのは
何が原因と考えられるのでしょうか。
form2の各イベント処理の先頭にmessageboxを入れてみたのですが
1回のボタン操作で1回だけしか表示されず、どういう動きになってるのか
わかりません。
form2には new ,BtnOk.click,BtnCancel.click が実装されています。
0274デフォルトの名無しさん
2010/02/17(水) 17:47:400275デフォルトの名無しさん
2010/02/17(水) 18:59:110276デフォルトの名無しさん
2010/02/17(水) 20:10:02トレースしろよ
0277デフォルトの名無しさん
2010/02/17(水) 20:29:12例えば、Labelコントロールを配置して、そこに値が無い場合、
Visible = false にしても、空行がとられてしまい、行をつめてくれません・・・
0278デフォルトの名無しさん
2010/02/17(水) 21:40:02ありがとうございました。解決しました。
form1側で
a = new form2()のあとで
a.ShowDialog()
となってましたorz
||┃||||||
|(-_-)||| スミマセン
|(∩∩)━━━━
0279デフォルトの名無しさん
2010/02/17(水) 21:43:350280デフォルトの名無しさん
2010/02/17(水) 23:46:130281デフォルトの名無しさん
2010/02/18(木) 04:48:05普通につめて表示されないか?
.text = "" としてみた?
当方VS2005。
0282デフォルトの名無しさん
2010/02/18(木) 06:51:23うまくいきませんでした。
こちらは、VS2008でASP.NET3.5です。
Label1
Label2
Label3
と配置して、Label2.text = "" としましたが、表示したのは、
Label1
Label3
と空行が発生してしまいます。
0283デフォルトの名無しさん
2010/02/18(木) 07:06:28<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
<br />
<asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>
<br />
0284デフォルトの名無しさん
2010/02/18(木) 07:35:21すみません、もう少し詳しく教えてください。
余分な改行は発生してしまっているのに、
さらに<br />もLabelのテキストとして渡す、
というのはどういうことでしょうか。
.text ="<br />" とすると、
ラベルの文字に<br />と表示されてしまうだけのような・・・。
それとも、html 編集をする必要があるということでしょうか。
0285デフォルトの名無しさん
2010/02/18(木) 07:54:490286デフォルトの名無しさん
2010/02/18(木) 15:50:00わからんかったら、runat="server" つけた<div>でそれぞれのラベルを囲んで
<div>を非表示にしてしまえ
不要な改行は全部けしとけよ
0287282
2010/02/18(木) 17:44:40ありがとうございます。
デザイン画面では、
Label1Label2Labe3
と配置しておいて、表示するときに
Label1.Text = "Label1<br />"
Label2.Text = ""
Label3.Text = "Label3<br />"
とするのですね。うまくいきました。
0288デフォルトの名無しさん
2010/02/19(金) 20:56:440289デフォルトの名無しさん
2010/02/19(金) 22:48:24じゃあ何を使うの?おすすめを言ってくれ
0290268
2010/02/19(金) 23:02:190291デフォルトの名無しさん
2010/02/20(土) 01:57:280292デフォルトの名無しさん
2010/02/20(土) 03:26:23VBでソケット通信をするにはどうしたらいいのでしょうか?
利用するクラスすらわかりません。
具体的にはニコニコ生放送のコメントを取得したいのですが簡単にでいいのでお願いいたします
0293デフォルトの名無しさん
2010/02/20(土) 08:43:25http://msdn.microsoft.com/ja-jp/library/cc440898.aspx
0294デフォルトの名無しさん
2010/02/20(土) 09:12:18http://dobon.net/vb/dotnet/#internet
0295デフォルトの名無しさん
2010/02/20(土) 09:15:34コントロールなんか使ったら糞重いWEBアプリしかできんぞ
さくさくのWebアプリにしたったら<% %>のみにするべき
runat=serverとか最悪すぎる
0296デフォルトの名無しさん
2010/02/20(土) 11:14:540297デフォルトの名無しさん
2010/02/20(土) 14:30:25それで何を作るんだよ。
0298デフォルトの名無しさん
2010/02/20(土) 17:17:03変数の定義について、初歩的な質問です。。。
下記のように、ボタン1がクリックされるとYasaiクラスからYasaiDateインスタンスを11個
生成したいと考えています。
その後、別のボタン2をクリックしたときにこれらのインスタンスを利用したいため、
Public修飾句でインスタンスを宣言したのですが、
’Pubulic’はローカル変数宣言では有効では在りません
などというポップアップが出ます。ためしに 1行目のPrivateをPublicにしても同じでした。
プライベート宣言したプロ―ジャ内では、パブリック変数の宣言はできないものなのでしょうか?
どなたかアドバイスいただけると助かります。
01 Private Sub Button1_Click(Byval ・・・・・・・・
02 Public YasaiDate(10) As Yasai
03 YasaiDate(i)=New Yasai()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
’クラスを定義
01 Public Class Youso
02 省略
0299デフォルトの名無しさん
2010/02/20(土) 17:28:10そんなレベルの話でいちいち人に頼るぐらいならプログラミングなんてしない方がいいと思うよマジで。
なんで、例えば入門書の一冊もまず読んでみようとか思わないんだろうこういう人って。
っていうか、そんな愚問をかいた文章をつらつら書いてる暇に自分で問題解決できないか普通。
20年前ならともかく、このwebの時代に精神病んでるとしか思えん。
0300デフォルトの名無しさん
2010/02/20(土) 17:38:010301デフォルトの名無しさん
2010/02/20(土) 17:44:14ものができればいいっていう感じだからな
0302268
2010/02/20(土) 17:46:540303298
2010/02/20(土) 17:48:00無意味な投稿すんなバーカ バーカ
0304デフォルトの名無しさん
2010/02/20(土) 17:54:470305298
2010/02/20(土) 17:58:50今は02 Public YasaiDate(10) As Yasai を
ソースファイルの先頭付近(Privateプロ―ジャの外)で宣言して
使おうとしてます。
ただ、プライベート宣言内でパブリック宣言ができないと
なんか不便だなぁという気がして。仮にそういう仕様だったとしたら
何か意味があるんでしょうけど。
0306デフォルトの名無しさん
2010/02/20(土) 18:02:25最低限のものは身につけないと質問回答すら満足にできないわけよ
0307298
2010/02/20(土) 18:05:19ありがとうございました。
0308デフォルトの名無しさん
2010/02/20(土) 20:43:030309デフォルトの名無しさん
2010/02/20(土) 22:13:190310デフォルトの名無しさん
2010/02/20(土) 23:25:260311デフォルトの名無しさん
2010/02/21(日) 18:35:03知りたいのですが、そういった関数はありますか?
現在は↓のようにforでループさせていますが、他に簡単な方法があれば教えてください
Dim i As Long
urlstr = "http://pc12.2ch.net/test/read.cgi/tech/1263738929/"
sla(0) = urlstr.IndexOf("/", 0)
For i = 1 To 6
sla(i) = urlstr.IndexOf("/", sla(i - 1) + 1)
Next
0312268
2010/02/21(日) 18:41:340313デフォルトの名無しさん
2010/02/21(日) 18:48:190314デフォルトの名無しさん
2010/02/21(日) 19:00:26まあ、無理にIndexOfなんか使わずにベタに書いた方が分かりやすそうとは思う。
0315デフォルトの名無しさん
2010/02/21(日) 20:03:41>>314 検索の仕方が悪かったのでしょうか・・普通に使うのはinstrのようですね。
0316デフォルトの名無しさん
2010/02/21(日) 20:06:490317デフォルトの名無しさん
2010/02/21(日) 20:23:53ある文字列の○番目の〜〜が何文字目にあるのかを返す
0318デフォルトの名無しさん
2010/02/21(日) 20:52:24そうじゃなくて、単純に文字列の中の文字を先頭から対象の文字("/")と
比較した方が分かりやすいんじゃないのってこと。
Shared Function GetIndexOf6th(ByVal text As String, ByVal wanted As Char) As Integer
Dim foundCount As Integer = 0
For i As Integer = 0 To text.Length - 1
If text(i) = wanted Then
foundCount += 1
If foundCount = 6 Then
Return i
End If
End If
Next
Return -1
End Function
0319デフォルトの名無しさん
2010/02/21(日) 21:02:00なんと
>>318
なるほどー。ありがとうございます。ありがたく使わせてもらいます。
0320デフォルトの名無しさん
2010/02/21(日) 21:23:17update機能が便利だと思って使いたかったんだけどレンタルじゃだめぽ
サーバーない人は普通にexe配布してバージョンアップしてもDLした人に気づいて貰うしかないの?
0321デフォルトの名無しさん
2010/02/21(日) 21:25:020322デフォルトの名無しさん
2010/02/21(日) 21:35:41こんなんはどう?
スラッシュが無かったり、足りなかった場合の処理は入れていないけど・・・
Dim st() As String
st = "http://pc12.2ch.net/test/read.cgi/tech/1263738929/".Split("/")
MsgBox(Len(st(0)) + Len(st(1)) + Len(st(2)) + Len(st(3)) + Len(st(4)) + Len(st(5)) + 6)
0324デフォルトの名無しさん
2010/02/21(日) 21:40:150325デフォルトの名無しさん
2010/02/21(日) 21:59:23とりあえずclick onceで自動update通知機能を付けるならサーバが必要ってことかい?
update機能付けれないならsetup.exeとdataフォルダをまとめてupっても意味ないよね
普通にexeを配布で我慢するのがベターかな?
0326デフォルトの名無しさん
2010/02/21(日) 22:00:110327デフォルトの名無しさん
2010/02/21(日) 22:00:51レンタルでもちゃんとできます。
0328デフォルトの名無しさん
2010/02/21(日) 22:17:01次のエラーにより、<レンタルURL> に接続できませんでした: Web サイト <レンタルURL> を作成できません。 Web サーバーに FrontPage Server Extensions がインストールされていない可能性があります。
って出るからサーバー側が何かしらの設定してくれてないと出来ないのかなって判断したんだけど
っていうかどことも知れないURLをpassとかも聞かれずに設定するのはおかしいからどこかで許可する設定がいると思うんだけど
0329デフォルトの名無しさん
2010/02/21(日) 22:19:15ダウンロードURLにレンタルサーバーのURLを入れて、ローカルに発行。
そんで、FTPとかでアップすればOK。
0330デフォルトの名無しさん
2010/02/21(日) 22:19:590331デフォルトの名無しさん
2010/02/21(日) 22:31:14親切にどうも
VB2008expressなんだけど発行フォルダの場所をローカル(適当)に設定して
インストールフォルダのURL(上記と異なる場合) って項目にファイルうpった場所のURLを入れた
setup.exeを起動したら アプリケーションがダウンロードできません。アプリケーションに必要なファイルが不足しています。
うpったファイル
setup.exe
<ファイル名>.application
Application Files[フォルダ]
ちなみに発行をローカルにして、インストールフォルダを未入力にするとsetupはうまくいくけどそもそもネットを介してないんで論外
0332デフォルトの名無しさん
2010/02/21(日) 22:33:430333デフォルトの名無しさん
2010/02/21(日) 23:07:54後世のためにもここで技術提供させてもらうわ
発行フォルダ:setup.exeとかが作られるところ どこでもおk
インストールフォルダ:setup.exe実行したときにデータを取りに行くところ
サーバにセットアップファイルを置いとくURLを指定
↑の通りにやってるのになんでかセットアップ行かない人はこっからが重要ね
プロパティ > アプリケーション > アセンブリ名
ここを半角表記にすること!
全角の名前にしとくとセットアップファイルも全角になる
インストールする際にその全角のファイルをURLで指定するからおかしくなるんじゃないかな
半角にしたら上手くインストールできましたv(^q^)v
助言thx
0334デフォルトの名無しさん
2010/02/22(月) 13:57:42新規プロッジェクトを作って新規フォームを作成後、
pictureboxを1つ貼り付けて、
form_loadに以下を記述したのですが、画像(というか四角形)が
表示されません。
Dim g As Graphics = PictureBox1.CreateGraphics()
Dim p As New Pen(Color.Black, 1)
g.DrawRectangle(p, 10, 20, 100, 80)
g.Dispose()
他に何か記述するものがあるのでしょうか。
画像関連は全くさわったことないのでorz状態です。
0335デフォルトの名無しさん
2010/02/22(月) 14:14:480336デフォルトの名無しさん
2010/02/22(月) 14:21:530337デフォルトの名無しさん
2010/02/22(月) 15:37:06以下で表示できました。
Private Sub PictureBox1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) _
Handles PictureBox1.Paint
Dim p As New Pen(Color.Black, 6)
e.Graphics.DrawRectangle(p, 10, 20, 100, 80)
e.Dispose()
End Sub
onpaintで書いてみたのですが、一瞬それっぽいのが表示されて消えたので
ググってみると、かなり昔のvb6スレにあったのを参考にしてみました。
0338デフォルトの名無しさん
2010/02/22(月) 21:47:25Finallyブロックの中で呼ぶか、直接書かずにUsingを使って自動で呼び出してもらう
0339デフォルトの名無しさん
2010/02/22(月) 21:55:25pの方をこそUsingしないと
0340デフォルトの名無しさん
2010/02/22(月) 22:39:14UsingでDispose呼ばれて勝手にCloseもやってくれると信じてやってるけど
0341デフォルトの名無しさん
2010/02/22(月) 22:41:350342デフォルトの名無しさん
2010/02/22(月) 22:41:46あえて明示的に呼ぶ場合にOpenと対応した方が気持ちいいからDisposeの別名として用意してある
0343デフォルトの名無しさん
2010/02/22(月) 23:05:420344デフォルトの名無しさん
2010/02/22(月) 23:11:45それを言うならCloseとDisposeを両方呼ぶと大抵の実装では結果的にDisposeが2回呼ばれることになる
ガイドラインによれば複数回呼んでも問題のない実装にしろということになってるけど
それを信用できないなら両方呼ぶのも問題があるかもしれない
0345デフォルトの名無しさん
2010/02/22(月) 23:59:40いや普通に考えればそういうことじゃなくて、例えばStreamの派生クラスなんかは
メソッドの名前の対称性を考えるとOpenに対してDisposeではおかしいからCloseがあるわけだし、
C#(.NETのクラスライブラリはC#で書かれてる)ではVBみたいにインターフェイスの実装を
別の名前で公開できないからDisposeもあると。
単純にそういう事情だと思うけどね。
0346デフォルトの名無しさん
2010/02/23(火) 00:03:570347デフォルトの名無しさん
2010/02/23(火) 02:08:57として、
Aryの要素数は10
というのを関数で導き出すにはどんな関数を使えば
0348デフォルトの名無しさん
2010/02/23(火) 02:24:470349デフォルトの名無しさん
2010/02/23(火) 02:30:230350デフォルトの名無しさん
2010/02/23(火) 02:39:19そして息抜きがこことは・・・・
へっへっへ・・・・orz
0351デフォルトの名無しさん
2010/02/23(火) 02:42:480352デフォルトの名無しさん
2010/02/23(火) 02:45:260353デフォルトの名無しさん
2010/02/23(火) 06:54:37dispose はメモリ開放じゃないの?
0354デフォルトの名無しさん
2010/02/23(火) 07:01:52System.IO系など、Close = Disposeの実装が多いが例外もある。
ShowDialogした場合のFormがそれ。
0355デフォルトの名無しさん
2010/02/23(火) 12:15:17disposableなものは必ずDispose()で終わるようにしている
0356デフォルトの名無しさん
2010/02/23(火) 12:19:450357デフォルトの名無しさん
2010/02/23(火) 15:14:54Public WMPList() As String
Public Sub WMPListAdd()
WMPList(0) = "a"
WMPList(1) = "b"
End Sub
End Module
なんでこれ↑だとエラーで
--------------
Public WMPList(1) As String
にしたこれ↓はエラーにならないのか
--------------------
Module Module1
Public WMPList(1) As String
Public Sub WMPListAdd()
WMPList(0) = "a"
WMPList(1) = "b"
End Sub
End Module
0358デフォルトの名無しさん
2010/02/23(火) 15:34:02msdnにあるプログラミングリファレンスに、配列についての基礎を説明してるページがあるから読んできなさい。
0359デフォルトの名無しさん
2010/02/23(火) 16:15:590360デフォルトの名無しさん
2010/02/23(火) 17:23:190361デフォルトの名無しさん
2010/02/23(火) 17:37:000362デフォルトの名無しさん
2010/02/23(火) 17:40:070363デフォルトの名無しさん
2010/02/23(火) 17:45:16単に配列を作り直すなら.NETらしく WMPList = New String(3) { }とすればいい
0364デフォルトの名無しさん
2010/02/23(火) 17:45:24Hoge = New Object(3) { }
0365デフォルトの名無しさん
2010/02/23(火) 17:49:39の形の配列宣言(というか初期化の構文糖衣)は.NETになるときに撤廃するべきだった
0366デフォルトの名無しさん
2010/02/23(火) 17:53:28' VB6
Dim i As Integer, j As Integer
For i = 0 To 9
Dim t(9) As Integer
t(i) = i
For j = 0 To 9: Debug.Print t(j);: Next: Debug.Print
Next
' VB.NET
Dim i, j As Integer
For i = 0 To 9
Dim t(9) As Integer
t(i) = i
For j = 0 To 9: Console.Write(t(j)): Next: Console.WriteLine()
Next
0367デフォルトの名無しさん
2010/02/23(火) 18:13:23配列の要素数が10個以下の場合は配列宣言は不要
とかいう決まりがあったからだと思った
0368デフォルトの名無しさん
2010/02/25(木) 13:18:350369デフォルトの名無しさん
2010/02/25(木) 13:33:380370デフォルトの名無しさん
2010/02/25(木) 13:46:040371デフォルトの名無しさん
2010/02/25(木) 13:47:100372デフォルトの名無しさん
2010/02/25(木) 13:49:05不要なメモリは使わないようにすること。
0373デフォルトの名無しさん
2010/02/25(木) 13:56:490374デフォルトの名無しさん
2010/02/25(木) 14:44:450375デフォルトの名無しさん
2010/02/25(木) 15:24:59.netはushort short
0376デフォルトの名無しさん
2010/02/25(木) 16:02:32複数のWebページから共通の処理(SubとかFunction)を
呼び出すにはどのようにしたらよいでしょうか?
aaa.aspx から処理Xを呼び出す。
bbb.aspx から処理Xを呼び出す。
module.vbを使おうと思ったのですが、これをWebで使おうとすると
ここで宣言された変数や関数は、すべてのセッションで共用され
てしまうため、セッション同士で値の書き換えをしてしまって
異常な結果を返す可能性があると聞きました。
どうしたらよいでしょうか?
0377デフォルトの名無しさん
2010/02/25(木) 18:07:53SyncLock(つづり忘れた)かけるとかでいいんであればそうすればいいだろうし
どんな使い方するかによるんじゃね?
例えばアクセスカウンタなんかは簡単なサンプルになるんじゃないかな?と思うけど
0379デフォルトの名無しさん
2010/02/25(木) 19:27:58http://headlines.yahoo.co.jp/hl?a=20100225-00000002-inet-inet
0380デフォルトの名無しさん
2010/02/25(木) 19:53:00んなこたーない
0381376
2010/02/25(木) 20:43:58たしかに聞いた話と違いました・・・ガセだったのか・・・?
Module Module1
Function cntup(ByVal cnt As Integer, ByVal sleeptime As Integer) As Integer
Dim x As Integer
x = cnt + 5
System.Threading.Thread.Sleep(sleeptime)
cntup = x
End Function
End Module
カウンターとはちょっと違うけど、ローカル変数x が上書きされるか
試す処理を書いてみました。
ブラウザを2つ立ち上げることで2つのセッッションから、この処理
を同時処理させてみました。
セッション1 cntup(1,1000)
これは、x = 1+5 = 6 を1秒後に戻します。
セッション2 cntup(8,10000)
これは、x = 8+5=13 を10秒後に戻します。
まず、セッション2を実行して、10秒経過する間にセッション1を実行しました。
噂どおりならセッション2のxの値は、セッション1でセットした6が
返るはずです。
しかし、結果は、両セッションとも正しい数値を返しました。
0382デフォルトの名無しさん
2010/02/25(木) 20:48:32問題になるのはモジュールのフィールドの話
モジュールじゃなくてもSharedフィールドなら同じ問題が起こる
0383376
2010/02/25(木) 21:15:28そうですよね・・・Webの開発では、Moduleを使わない方がいいと
聞いたのですが、大丈夫みたいですね。
ちなみにセッション変数でも試してみましたが、問題なかったです。
Module Module1
Function cntup2(ByVal sleeptime As Integer) As Integer
HttpContext.Current.Session("cnt") = HttpContext.Current.Session("cnt") + 5
System.Threading.Thread.Sleep(sleeptime)
cntup2 = HttpContext.Current.Session("cnt")
End Function
End Module
0384デフォルトの名無しさん
2010/02/25(木) 21:17:020385デフォルトの名無しさん
2010/02/25(木) 21:28:30どこがおかしいか見てもらえませんか?
パスはvbです
ttp://www1.axfc.net/uploader/Sc/so/86485.zip
0387デフォルトの名無しさん
2010/02/25(木) 21:40:34あと、俺なら、共通ライブラリにして参照設定すると思う。
0388デフォルトの名無しさん
2010/02/26(金) 01:01:48お前みたいなやつが問題ないって言いながら
いつの間にかフィールド使ってぶち壊すんだよ。
0389デフォルトの名無しさん
2010/02/26(金) 01:04:00グローバル変数を平気で使う習慣があったりして
見事にはまったりする。
0391376
2010/02/26(金) 06:30:201つのプロジェクトの中で、複数のWebページから
共通に利用する関数は、どこに配置するのでしょうか?
>>389
そういう意見もいくつか聞いています。
module.vbを使わないとしたら、class.vbですか?
どうしているのでしょうか?
0392デフォルトの名無しさん
2010/02/26(金) 06:39:450393デフォルトの名無しさん
2010/02/26(金) 07:21:40問題は変数のスコープを理解してるかどうかで
0394デフォルトの名無しさん
2010/02/26(金) 10:22:45最低限の基礎的な「プログラミングの感覚」は落ち着いて本読んで身に付けようよ
0395デフォルトの名無しさん
2010/02/26(金) 10:35:04もう少しASP.NETアプリがIISとともにどう動くのかマイクロサイトのサイトでも何でもいいからきっちりドキュメント読むべき
何も分からずにやると
「高負荷になるとセッションがなくなってしまうんです><」
みたいに絶対言いだすやつがいるから
0396デフォルトの名無しさん
2010/02/26(金) 11:02:08Session.TimeOut=60*24*365*100
と書いておけばいいの?
0397デフォルトの名無しさん
2010/02/26(金) 12:50:12その言い方は語弊がありそうだ
WebサイトならApp_Codeにclass.vbつっこむ
Webアプリなら、アセンブリ(dll)つくってbinにつっこむ
なんにしても使うのはクラス
今のVB.NETでModuleとかもう存在を忘れろ
つかASP.NETのWEBサイトでモジュールが動くことにびっくりしたわ
0398デフォルトの名無しさん
2010/02/26(金) 14:04:46VB.NET(.NET Framework)と java は、言語仕様が似ているところがあり、
同じような機能が提供されていて、それを利用する際は、コードの書き方や
呼び名が一部異なっているだけだったりすると思うのですが、それにおける
対応表のようなものは無いのでしょうか?
サイトや書籍でそういうものがないかと思っているのですが。
例えば、設定ファイル関連の処理はこのあたりが該当すると思います。
[VB.NET]アプリケーション構成ファイル
http://dobon.net/vb/dotnet/programing/appconfigfile.html
[java]プロパティファイル
http://www.atmarkit.co.jp/fjava/rensai4/programer09/programer09_1.html
0399デフォルトの名無しさん
2010/02/26(金) 14:47:07http://msdn.microsoft.com/ja-jp/library/ms228358(VS.80).aspx
0400デフォルトの名無しさん
2010/02/26(金) 15:20:57ありがとうございます。完成しましたー
0401376
2010/02/26(金) 16:27:57やはり、クラスなのですね。
スコープを意識してまとめるとこんな感じでしょうか。
Applicationレベル
変数:Application変数、shared、Module内でフィールド宣言
関数:Module内に記述
セッションレベル
変数:セッション変数
関数:(セッションレベルのスコープでの関数の概念は無し)
ページレベル(Webフォーム)
変数:Webフォームクラス内で宣言
関数:Webフォームクラス内に記述
クラス(class.vb)は、どのレベルからでも使える。
クラスから生成したインスタンスは、呼び出した側のスコープが範囲内となる。
但し、クラス内でsharedしているものは、アプリ全体で同じクラスのインスタンスは
値を共有する。従って、セッションを意識するWeb系の開発では取扱い注意。
0402376
2010/02/26(金) 16:38:05Webアプリなのですが、プロジェクトの直下にclass.vbを配置して使えてます。
別途、dllを作った方がよいのでしょうか?
試しに>>381をクラスで作ってみました。
Webフォームでこのクラスのインスタンスを作成して処理を実行しました。
実験のため、変数xは、わざとFunctionの外で宣言しています。
Public Class Class1
Private x As Integer
Public Function cntup3(ByVal cnt As Integer, ByVal sleeptime As Integer)
x = cnt + 5
System.Threading.Thread.Sleep(sleeptime)
cntup3 = x
End Function
End Class
>>381と同じテストをして、複数セッションからの同時処理でも各々のセッションで
正しい結果を受け取ることを確認しました。
0403376
2010/02/26(金) 16:38:51Public Class Class1
Private Shared x As Integer
Public Function cntup3(ByVal cnt As Integer, ByVal sleeptime As Integer)
x = cnt + 5
System.Threading.Thread.Sleep(sleeptime)
cntup3 = x
End Function
End Class
これは、複数セッションでxを書き換えてしまうため、正しくない結果となりました。
「正しくない」とは、最後にこのクラスを実行したときの値が他のセッションでも
反映されるというものです。
0404デフォルトの名無しさん
2010/02/26(金) 16:47:42問題は
仮に共通の部分がXだとして
X=1として
AがXを読み込みする
BがXを読み込みする
Aが読み込んだXを+1して書き終えてから
Bが読み込んだXを+1して書き終えた
本来であればXが3になる予定のものが2になってる
こういうことが起こりえると言いたいと思うんだわ
0405デフォルトの名無しさん
2010/02/26(金) 17:05:02サイトの紹介ありがとうございます。
javaとの関連文章を探すのであれば、C#を見た方がよさそうですね。
0406376
2010/02/26(金) 17:39:53いえ、「起こりえるといいたい」のではなく、
「起こるはずがないと思うが、一部の人がModuleではそれが
起こるといってるが本当ですか?」
というものです。
これに対する回答は>>382さんのフィールドの話でした。
Module内で記述した関数の中の変数までは影響しないということです。
それで、376が一番したいことは、複数のWebフォームで同じ処理が
あるので、これを1つの関数として共通して呼び出したい。
この処理が、各セッションで潰しあうことなく独立して動作してほしいが、
どこにどうやって記述するのですか?
というものです。
これに対する回答は、dllを別途作成して参照するか、class.vbに記述するというものでした。
>>404さんが示した処理では、
セッションAの戻り値は、2、セッションBの戻り値も2になってほしい。
しかし、x=3になるのであれば、Applicatonレベルの変数になっているということで
セッション毎に独立していないということになります。
0407デフォルトの名無しさん
2010/02/26(金) 18:50:43ローカル変数は必ず「関数に入るとき」に毎回新しく作られる。
実行環境は全く関係ない。
もうちょっと複雑な処理で状態を持ちたい場合はクラスにして
インスタンスをセッションごとに作ればいい。
0408デフォルトの名無しさん
2010/02/26(金) 22:31:25意図せずフィールドが共有されてるなんてことは起こらないが、
Moduleを使うと意図せずSharedなフィールドを使ってることがある。
っていうかあまり意識せずにそういうことをしてしまう奴がいる。
だから使わない方が無難というだけ。
0409デフォルトの名無しさん
2010/02/26(金) 22:46:160410デフォルトの名無しさん
2010/02/26(金) 22:51:390411デフォルトの名無しさん
2010/02/26(金) 23:06:140412397
2010/02/26(金) 23:56:38まあ、Webアプリだとビルドすると全てのコードはdllになってbinフォルダに格納されるわけで...
今の.NETでは関数は普通、何かのクラスのメソッド(Sub,Function)として実装される
メソッドや変数がどの範囲からアクセスできるかは、そのメソッドと変数の定義による
この考え方を一般に変数のスコープっていうんだ。VB.NETだとアクセスレベルとも言われる
モジュールってのは特殊なスコープと寿命をもつ特殊なクラスっぽいもの
過去のVBとの互換以外に使う理由も必要性もありません
変数のスコープや寿命についての考え方は今の言語ならほぼ必須の考え方なので
頑張って理解してくれ
ちなみにアプリケーションやセッションっていうのは、
.NETの変数のスコープの概念ではない。ASP.NET固有の概念
ApplicatinはASP.NETの実行単位なんで、ほぼグローバルと同意と考えていいが
Sessionは.NETに該当する概念はない。
Sessionとはその単位で独立したものではなくて、ページ単位で独立しているものを
関連付けるものだ
0413デフォルトの名無しさん
2010/02/27(土) 00:04:10アクセスレベルで決まるスコープもあるけどそうでないスコープもある
0414デフォルトの名無しさん
2010/02/27(土) 00:22:43サイト?アプリ?
0415デフォルトの名無しさん
2010/02/27(土) 00:23:390416デフォルトの名無しさん
2010/02/27(土) 00:25:100417デフォルトの名無しさん
2010/02/27(土) 00:51:40クラスとか使うときは普通に別dllにしちゃうしねー
0418デフォルトの名無しさん
2010/02/27(土) 01:14:20とあるスコープ内で、そのスコープ外で定義されたものが
使えるかどうかがアクセスレベル、って感じか
まあとりあえずアクセスレベルもスコープの一種として覚えてても問題ないんじゃない
>>414
ASP.NET 1.1からの俺はWEBアプリ派
ちょろっとしたクラスとか使いたいときにはApp_Codeが欲しくなることもある
というかWebアプリ作ってたはずなのにApp_Code使いだして、気がつくと
WebアプリとWebサイトの混在したわけのわからんサイト作ってたりw
0419デフォルトの名無しさん
2010/02/27(土) 14:23:00独学でVB.NETを勉強しているのですが、例外クラスが
準備されている理由やその使い方などがぼんやりと
しか把握できませんでしたので、その理解が正しいかの
確認をしたいと思い、ここで質問してみました。
例外クラスは、アプリが予期せぬエラーが出て終了して
しまった際、それがどの部分の処理であるかの確認を
するために準備されているものである。
(あくまで、デバッグをしやすくする為のものであり、
エラーが起きにくくする為に準備されたクラスではない)
なので、独自のアプリを作る際は、例外を継承した
独自例外クラスを作っておいて、アプリの内部の処理の部分で
エラーが起きると想定される部分で、その独自例外クラスが
実行されるようにしておくと、デバッグもしやすくなる。
このような理解でよろしいのでしょうか。
間違いや不足点などがありましたらよろしくお願いします。
0420デフォルトの名無しさん
2010/02/27(土) 14:38:27たんに、エラーが起きたときにエラーを通知するためにあるだけで
アプリ内で例外を検知してしかるべき処理をするために使うのが本来の目的
つまり、予期できるエラーの予期と処理につかう
アプリが終了したときに使うのなら、アプリでハンドリングできる形にする必要はないわな
0421デフォルトの名無しさん
2010/02/27(土) 14:42:290422デフォルトの名無しさん
2010/02/27(土) 16:11:35デバッグ目的で独自の例外を投げるのは良くない。適当にInvalidOperationExceptionなどを投げた方がいい。
0423419
2010/02/27(土) 16:39:16>>422
レスありがとうございます。
レスを読むことで、イメージが明確になってきたような気がします。
例外クラスが無いプログラミング言語において、
関数を書く際、返り値が必要ない場合であっても、途中で
エラーが起きて処理が続行出来なくなったかを返す意味合いで
返り値があるように書く場合がありますが、それの延長のものが
例外クラスと考えるとよろしいのでしょうか。
正常に処理が終了したら0で、引数の値がおかしい場合は1で
それ以外の予期しない場合は2で・・・という感じで定義して
書いたりするのを例外クラス名で表記すると分かりやすいよね、
みたいな。
0424デフォルトの名無しさん
2010/02/27(土) 17:03:55前者はアサートを使ってもいいし例外を投げてもいいけど通常その例外をキャッチしてはいけない。
ArgumentExceptionやInvalidOperationExceptionがその例。キャッチさせるために投げてるわけじゃなく
コードを修正しろという意味なので独自の例外クラスを作る必要もない。
後者は利用側に適切に処理させるために例外を投げるので、具体的な独自の型の例外を作ったほうがよい。
0425デフォルトの名無しさん
2010/02/27(土) 18:35:43ちょっと古くて基本的にASP.NETの本なんだが
.NETエンタープライズWebアプリケーション開発技術大全 って本がある
それのVol.3に例外処理の考え方について書いてあるので
入手できるなら読んでみれば参考になるかと
0426デフォルトの名無しさん
2010/02/27(土) 18:52:02ttp://msdn.microsoft.com/ja-jp/library/ms229014(VS.80).aspx
ここら辺を読んでおけば大丈夫じゃない?
0427デフォルトの名無しさん
2010/02/27(土) 18:54:51Try
例外が出そうな処理
Catch ex As Exception
Console.WriteLine(ex)
End Try
こればっかり書く奴は死ねってこと
0428デフォルトの名無しさん
2010/02/27(土) 19:03:20なんかナンセンスなこと書いてる人が多いのであまり真に受けない方がいいと思う。
まあ意味不明なので真に受けようもないかw
例外なんてそんな難しく考えることはない。
コンピュータの処理(手続きとか関数とか言ってもいいけど)とは、何らかの入力にたいして
何らかの結果を出力すること。
例外とかエラーとかは、要するにこの何らかの理由でこの入力に対して出力を吐き出す操作が
正常に遂行できない事態のこと。
「例外機構」の存在意義と「例外オブジェクト」の存在意義は分けて理解した方がいいと思う。
前者の存在意義は、プログラマが想定していない例外が発生した場合(要するにバグがある)
プログラムを強制終了させるため。
後者の存在意義は、単なるエラーコードより、エラーに関するさまざまな情報が
一つのオブジェクトに一元化されている方が扱いやすいから。
0429デフォルトの名無しさん
2010/02/27(土) 19:13:26ファイルアクセスに失敗したら強制終了するんだろうか
0430デフォルトの名無しさん
2010/02/27(土) 19:15:58短い文章なんだから、反論する前にちゃんと読んだらどう?
0431419
2010/02/27(土) 20:01:24>>424
> メソッドの使い方が間違ってる場合(規約違反)と、予期できて回復可能かもしれないエラーは区別する。
私の中では、この区別の概念がありませんでした。しかし、聞いてみるとその通りだと思います。
このような考え方を持つと独自で例外クラスを作った方が良いかの区別がしやすいですね。
>>425
その書籍は、購入しようか迷った事があり、タイトルだけ知っています。
ちょっと古い上に、全部そろえようとすると結構するんですよね。
さらに、@ITにも記事が一部載ってたり・・・
>>426
URL読んで見ます。
>>427
いいたい事は伝わってきました。
どういう類のエラーなのかを書かないと、デバッグの際は分からないですもんね。
>>428
> 「例外機構」の存在意義と「例外オブジェクト」の存在意義は分けて理解した方がいいと思う。
ここの部分は凄く参考になると思いました。
レスを読み返しながらこれまで読んできたサイトを読み返してみたいと思います。
0432デフォルトの名無しさん
2010/02/27(土) 21:49:000433デフォルトの名無しさん
2010/02/28(日) 01:06:07どの辺がナンセンスでどの辺が意味不明なのか詳しく教えてくれないか
0434デフォルトの名無しさん
2010/02/28(日) 01:56:190435デフォルトの名無しさん
2010/02/28(日) 02:57:300436デフォルトの名無しさん
2010/02/28(日) 03:40:05構造化例外処理が一般的になる前の意見だぜ、それは。だから10年前だって言われてるんだろ
(要するにバグがある)って要約がなければ、最大限好意的に解釈すれば
プログラマが想定していない例外が、ってくだりで想定された例外がある=構造化例外処理で
処理すべき例外とは別の話だ、と取れなくもないが...
その場合、自分以外の人間が作成したプログラムモジュールで例外(それはバグかもしれないし
そうでないかもしれない)が発生したときにプログラムを強制終了したくないかもしれない
例外がでたからプログラムを強制終了とかいうのは、プログラムの全てを自前で作ってた時代の話だな
ほんとに10年前かどうかはわからんが、昔の考え方には違いないわな
で、どの辺がナンセンスでどこが意味不明なんだ?
0437デフォルトの名無しさん
2010/02/28(日) 04:36:00おはよう。
なんか、変な寝言口走っていたよ?
0438デフォルトの名無しさん
2010/02/28(日) 08:11:350439デフォルトの名無しさん
2010/02/28(日) 08:54:00停電
とか予期せぬ事の事?
0440デフォルトの名無しさん
2010/02/28(日) 09:38:31悪いけど全部がナンセンス。
自分の頭で物事をちゃんと咀嚼してないからそういう事になる。
俺はちゃんと「例外とはそもそも何なのか」を説明した後、「例外そのもの」と
「例外機構」と「例外オブジェクト」を峻別した上で、
「例外機構の存在意義はプログラマが想定していない例外が発生した時プログラムを
強制終了させる事にある」
と言っているのに、もうこんな簡単なことすら君は理解してない。
こういう頭の悪い人との議論はたぶん無駄にしかならないと思うが、では逆に
聞く。
俺の説明が「昔の考え」と言うなら、では現在では例外をどのように定義し、
例外機構の存在意義はどのように考えられているというのか。
まあ無理しなくていいよ本当に。
0441デフォルトの名無しさん
2010/02/28(日) 10:16:31コードの書き方に完璧な答えなんて無いのさ
0442デフォルトの名無しさん
2010/02/28(日) 10:25:55中断→別の処理 の流れを作るのが目的なんであって中断だけを存在意義と言ってるのがおかしい
0443デフォルトの名無しさん
2010/02/28(日) 11:26:04として、
Dim Ary() as string
Ary=split(S,vbcrlf)
の結果は
Ary(2)はそんざいするのだろうかするならどんな値だろうか
0444デフォルトの名無しさん
2010/02/28(日) 11:29:200445デフォルトの名無しさん
2010/02/28(日) 11:42:040446デフォルトの名無しさん
2010/02/28(日) 12:26:46Split関数とか今更使うなとは言わないが、使うならMSDNに書いてある仕様ぐらい
読めばいいのに。
っていうか、プログラマなら読まなくてもだいたい見当つかないか?
Split("a\b\c\", "\")とSplit("a\b\c", "\")の結果が同じになるような仕様だったら
いろいろ不便だとは思わない?
0447デフォルトの名無しさん
2010/02/28(日) 12:53:21str.Split(seps, StringSplitOptions.RemoveEmptyEntries)
0448デフォルトの名無しさん
2010/02/28(日) 13:02:000449デフォルトの名無しさん
2010/02/28(日) 13:23:33VisualBasic.Splitってながながかかないとつかえないと
0450デフォルトの名無しさん
2010/02/28(日) 13:45:09Microsoft.VisualBasicは2008ならデフォでインポートされてるが
0451デフォルトの名無しさん
2010/02/28(日) 13:45:27いや、>436はお前の意見を理解したうえで、
>「例外機構の存在意義はプログラマが想定していない例外が発生した時プログラムを>強制終了させる事にある」
という考え方が、昔の考え方だといってるんだろ?
なぜそれが昔の考え方なのかお前に理解できてないんじゃないのか?
現在の例外は、通常の処理ではない状態が起こったときに発生する(させる)んだよ
単にバグでエラーが出たときにだけ発生するんじゃないんだ
そして例外をキャプチャし例外の種類に応じて適切な処理をする
このための機構が構造化例外処理機構
例外=(プログラムを終了させるべき)エラーって考え方はそれこそナンセンスだぜ
では逆に聞く、とか言わないで、素直に現在の例外処理機構を教えてくださいって言えよ
0452デフォルトの名無しさん
2010/02/28(日) 13:49:230453デフォルトの名無しさん
2010/02/28(日) 14:47:49悪いけど全然理解してないから。
誰が「例外=(プログラムを終了させるべき)エラー」なんて言ってるんだ。
本当に頭わるいな。
もう「例外」と「例外機構」をちゃんと区別しましょう、
っていう話の段階から理解してないようだしw
しかし、いきなり「お前」呼ばわりか。
馬鹿の特徴の一つだねw
0454デフォルトの名無しさん
2010/02/28(日) 14:52:33「例外機構の存在意義はプログラマが想定していない例外が発生した時プログラムを
強制終了させる事にある」
という、当たり前のことが理解できないのは、そもそも「例外」って何なのかが
理解できてないからだ。
経験上そういう人間が多いことを知っているから、
>>428でそういうそもそも論から始めてるんだけど、お馬鹿さんに限ってこういう
「そもそも論」が苦手だから困っちゃうな。
0455デフォルトの名無しさん
2010/02/28(日) 14:55:150456デフォルトの名無しさん
2010/02/28(日) 15:15:270457デフォルトの名無しさん
2010/02/28(日) 15:18:56なんでそんな自信満々に語れるんだろう
0458デフォルトの名無しさん
2010/02/28(日) 15:30:34人が自分の話をわかってくれないのは周りの頭が悪いからだと思い込んでる人なんだろうな
0459デフォルトの名無しさん
2010/02/28(日) 15:59:54いるいるそういう人ww
0460デフォルトの名無しさん
2010/02/28(日) 19:59:28どうでもいいがお前も馬鹿がにじみ出てる書き方にしか見えないぞ率直に言って。
0461デフォルトの名無しさん
2010/03/01(月) 00:22:57428以外みんな頭悪いらしいからどうしようもないw
0462デフォルトの名無しさん
2010/03/01(月) 04:30:29やっぱり、鼻の穴とか目の涙腺とか、頬の皮膚呼吸の穴なんかから、
エキスのようなものがじわーっと顔に広がり、
挙句の果てには、書き込む文章にまでしたたりこんできてるんだろ。
これが人に伝染する病原菌とかだったら怖い話だが、
ただの馬鹿ってところが、なんだかほんわかしてていいよな。
0463デフォルトの名無しさん
2010/03/01(月) 07:35:02一人のむなしい努力に見えてしまうんだが・・・
0464デフォルトの名無しさん
2010/03/01(月) 10:01:440465デフォルトの名無しさん
2010/03/01(月) 10:11:17メソッドには、その引数の値がおかしいとか、計算処理中でおかしな
値になってしまっていたとか、そういう類になった場合、exceptionを
返してくるので、その種類に応じて適切な処理(messageboxを使って
警告を出して、異常終了しないような処理)をした方がいい、
ということでおk?
さらにいうと、自作クラスでメソッドを書く場合も同様な考えで
exceptionを出すような設計で考えると、それを使う人が分かりやすくなる。
0466デフォルトの名無しさん
2010/03/01(月) 11:08:22基本例外は発生させないようにするべき と俺は思ってる
トレースやなんやらで処理も重くなるし
例えばファイルなんか開く場合だと FileNotFoundExceptionが発生するだろうけど
事前にExistしてエラーメッセージを出す。
例えばチェックしたけど、チェック完了からファイルオープンまでの僅かな間に
ファイルが消された場合は例外発生は致し方ないかと
自分は基本的にエラートラップは
Application.ApplicationExit
とか
Application.ThreadException
で一括でトラップする。
いちいち処理の中に例外処理でログとったりとか書いてるのもめんどくさくない?
修正もめんどくさいし。
他の人は知らないけど俺は基本的に特殊な例を除いて例外は独自にトラップしたりはしない。
クラスの設計に関しては、それでいいと思う。
int返すメソッドとかで勝手にキャッチしてリターンが-1とかになるのも困るし。
クラス設計は使う側が引数とかを事前にチェックしているべきだと思う。
0467デフォルトの名無しさん
2010/03/01(月) 12:43:08ドキュメントに0から100までの値を指定しろ範囲外なら
ArgumentOutOfRangeExceptionを投げるぞと書いてあるなら
それは事前にチェックしておくべきでキャッチしたらダメ。例外が出るのは利用側のミス。
ドキュメントに、事前に予測できないような条件で
IOExceptionが発生すると書かれてるなら、対処可能ならキャッチして適切に処理するだけ。
0468デフォルトの名無しさん
2010/03/01(月) 20:06:47たとえば、範囲が0から100まででなければそれ専用の例外が発生する設計なら
事前チェックするより、投げて例外が発生するかどうかでチェックした方がいいような気もしないでもない
どうせ投げられた側でチェックするんだから、2回もチェックするのが冗長に思えるんだよなぁ
0469デフォルトの名無しさん
2010/03/01(月) 21:30:13文字変数に数字以外が含まれているかどうかは、
数値変数に代入してエラーが発生するかどうかで
判定してるしな。
0470デフォルトの名無しさん
2010/03/02(火) 21:06:40プログラミングを始めてみようと思い
VB2008 Express EditionをダウンロードしMSDNを参考にして
http://msdn.microsoft.com/ja-jp/library/xk24xdbe.aspx
ここら辺りは勉強したのですがこの後どういう知識をつけていけばいいのかわかりません
ひとつ勉強がてらに作ってみたいと思っているのが
オンラインゲームなどの自動ログインツールで
ブラウザでID、PWを入力しログイン、ゲームスタートなどの動作を
プログラムで自動化し、そのプログラムにID、PWを入力すると
プログラムからゲームが直接起動できるようなものを作りたいと考えています
こういうのを勉強すればいいよなど
なにかアドバイス、指摘等頂ければ幸いです
よろしくお願いします
0471デフォルトの名無しさん
2010/03/02(火) 21:08:050472デフォルトの名無しさん
2010/03/02(火) 21:11:040473デフォルトの名無しさん
2010/03/02(火) 21:19:21全くプログラミングの勉強にはならない
0474デフォルトの名無しさん
2010/03/02(火) 21:39:49HTTP
0475470
2010/03/02(火) 21:45:23とりあえず今チュートリアル的なものを見ながらブラウザを作ってみているのですが
フォームタイトル(?)フォームのtext部分を変更することは出来ないのでしょうか?
連続の質問となりますがよろしくお願いします
0476デフォルトの名無しさん
2010/03/02(火) 21:45:32一般的な方法は無いので個別にゲームを解析するしかない
0477デフォルトの名無しさん
2010/03/02(火) 21:55:19できるよ。やり方は、ヘルプに書いてある。
0478470
2010/03/02(火) 21:55:40考えていたものはランチャー自体に入力でなく
http://elsword.hangame.co.jp/
このような感じでブラウザでログインし、ゲームスタートを押す
というものを考えていました
どちらにせよ難しそうなのですが・・・T-T
0479470
2010/03/02(火) 21:58:23ちょっと情報不足だったかもしれないのですが
アプリケーションを起動中にTextboxなどに入れた文字をタイトルとして変更する
という事をしたいのですが
Form1.text = TextBox1.text
では
'WindowsApplication1.Form1' は、既定のインスタンスからそれ自体を参照できません。'Me' を使用してください。
のようなエラーが出てしまうのです・・・
0480デフォルトの名無しさん
2010/03/02(火) 21:59:17ログインはできるだろうけど、その先の Flash でどうしようもなくなると思うよ。
0481デフォルトの名無しさん
2010/03/02(火) 21:59:54Me を使え、って書いてあるんだから、使えばいいだろ。
0482デフォルトの名無しさん
2010/03/02(火) 22:03:46ありがとうございます
Meはてっきり
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
の部分でしか使えないと勝手に思い込んでしまっていました
自分の頭の出来に呆れるほどです・・・
本当申し訳ないです
0483デフォルトの名無しさん
2010/03/02(火) 22:05:070484デフォルトの名無しさん
2010/03/02(火) 22:57:20まあ意味も無い議論で埋まるよりはマシかもしれないが
0485デフォルトの名無しさん
2010/03/03(水) 06:43:160486デフォルトの名無しさん
2010/03/03(水) 19:42:350487デフォルトの名無しさん
2010/03/03(水) 19:56:320488デフォルトの名無しさん
2010/03/04(木) 06:51:32相手にファイルを送ったとき人によってファイル位置が変わってしまいますが
再生させることはできるのでしょうか?
どこのページ見ても音声ファイルの場所を〜とか書いてあって
自分用にしか作れない説明ばかりでわかりませんでした
0489デフォルトの名無しさん
2010/03/04(木) 07:18:48もうちょっと他人に分かるよう話す努力をしてみてくれんか
0490デフォルトの名無しさん
2010/03/04(木) 07:19:07ルール決めればいいじゃない。
適切なフォルダ構成で展開されるよう圧縮するか
インストーラ作ればいいじゃない。
0491デフォルトの名無しさん
2010/03/04(木) 11:02:03プログラム上からアイテムを選択するには
ListView.items(*).selected = true/false
にしてListView.select()とやるようなことを見つけたんですが
今テキストボックスで入力を受け付けて入力内容によって選択を変えるというのをやっています
問題はselect()を呼んだ瞬間にキーボードフォーカスがListViewに行って入力がさえぎられるんですが
フォーカスを移動せずに選択場所を変えるにはどうすればいいんでしょうか?
フォーカスが無くても選択を反転表示するプロパティを設定してるので
テキストの入力でリアルタイムにその選択が移動するようにしたいのですが
0492デフォルトの名無しさん
2010/03/04(木) 11:05:360493デフォルトの名無しさん
2010/03/04(木) 11:15:33ああ、出来ましたありがとう
0494デフォルトの名無しさん
2010/03/04(木) 21:12:26送るってどうやって送ってるんだ?
どの場所に保存してるかくらいわかりそうなもんだが・・・
0495デフォルトの名無しさん
2010/03/04(木) 21:20:29どのクライアントからでも同じ場所にアクセスすれば
ファイルの位置の問題は解決する。馬鹿じゃねーの。
0496デフォルトの名無しさん
2010/03/04(木) 21:24:350497デフォルトの名無しさん
2010/03/04(木) 21:26:40>>496
漫才の練習なら他でやれ
0498デフォルトの名無しさん
2010/03/04(木) 22:56:30あ?
0499デフォルトの名無しさん
2010/03/05(金) 01:54:52アホとしか言いようがない。
0500デフォルトの名無しさん
2010/03/05(金) 02:31:140501デフォルトの名無しさん
2010/03/05(金) 09:06:08GOMぷれいやーのようにデスクトップ右上あたりにもっていくと
カチッ!って感じで画面端にくっ付くような事を実現するにはどうすればいいんですか?
おねがいします
0502デフォルトの名無しさん
2010/03/05(金) 10:11:56GOMぷれいやーがどんな動きするのか知らんけど
移動後の座標が一定範囲内だったら
強制的に移動すればいいのでは
1024*768の場合に
Rightの位置が1014より大きければ右に強制移動
Topの位置が10より小さければ上に強制移動
0503デフォルトの名無しさん
2010/03/05(金) 11:45:19こういう動きするソフトけっこうあるけど個人的には好きじゃない
画面端とはちょっとスキマ空けときたい派なんだおれは
0504デフォルトの名無しさん
2010/03/05(金) 11:57:050505デフォルトの名無しさん
2010/03/05(金) 13:11:04どういうコードにすればよろしいでしょうか?
"<あいう123abc>"→"a"といった感じです。よろしくお願いします。
0506デフォルトの名無しさん
2010/03/05(金) 13:20:45Regex使って"<[^>]*>"を置換
0507デフォルトの名無しさん
2010/03/05(金) 13:42:54ありがとうございます
ちなみにそういう記号?はなんというのでしょうか?
0508デフォルトの名無しさん
2010/03/05(金) 13:44:530509デフォルトの名無しさん
2010/03/05(金) 19:18:30ListViewで作成した列タイトルを動的に設定したいのですが
どのようにしたらよいでしょうか?
WebFormの定義は下記のとおりです。(レイアウトの部分を抜粋)
<asp:ListView ID="ListView1" runat="server">
<LayoutTemplate>
<table ID="itemPlaceholderContainer" runat="server" border="1">
<tr id="Tr2" runat="server"><th id="Th1" runat="server">
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</th></tr>
<tr ID="itemPlaceholder" runat="server"></tr>
</table>
</LayoutTemplate>
ListView1の中のLabel1に列タイトルをセットすることで動的に変更しようとしています。
プログラムの部分は下記のとおりです。
Dim lblth1 As Label = CType(ListView1.FindControl("Label1"), Label)
lblth1.Text = "項目1"
これを実行すると、"項目1"を代入するところでエラーになります。
「オブジェクトインスタンスの作成にはnewキーワードを使用します」
どのように記述したらよいのでしょうか?
0510デフォルトの名無しさん
2010/03/06(土) 05:46:45これからは企業内開発でしか使われなくなる言語。
自分の所有スキルを磨きたいのなら、
javaかphpでプログラム組んだ方がいい。
vb.netはまだ無料で開発、公開できるからいいけど
asp.netは無料で公開できなくなる。
asp.netは、vb.net でも c#でも組めるが
社内サーバなど自由に使えるサーバがないと意味がないよ。
0511デフォルトの名無しさん
2010/03/06(土) 08:17:310512デフォルトの名無しさん
2010/03/06(土) 09:15:28とか思ったけど、それならヌルリかなぁ。
0513509
2010/03/06(土) 13:01:54そうですね。そう思います。社内環境でASP.NETしか使えない状況です。
>>511
ありがとうございます。
そうします。
>>512
どうやらそのようです。
0514デフォルトの名無しさん
2010/03/07(日) 00:07:05arraylistとsplitを組み合わせるべきでしょうか?
具体的には2chのdatで、"<>"と改行を区切り文字にしたいのです
よろしくお願いします
0515デフォルトの名無しさん
2010/03/07(日) 00:11:380516デフォルトの名無しさん
2010/03/07(日) 00:27:510517デフォルトの名無しさん
2010/03/08(月) 22:46:34Do Loop
Till 〜
でも動くの?
0518デフォルトの名無しさん
2010/03/08(月) 22:58:320519デフォルトの名無しさん
2010/03/08(月) 23:04:080520デフォルトの名無しさん
2010/03/08(月) 23:24:12Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
raiseevent Button1.Click
End Sub
とコードを書くと
'Button1_Click' は 'WindowsApplication1.Form1' のイベントではありません。
とでます。Button2.ClickでButton1.Clickと同じ動作をさせたいのですが、どうすれば良いでしょうか
0521デフォルトの名無しさん
2010/03/08(月) 23:25:51http://dobon.net/vb/dotnet/control/performclick.html
0522デフォルトの名無しさん
2010/03/08(月) 23:28:350523デフォルトの名無しさん
2010/03/09(火) 07:53:27textboxの内容や、チェックボックス
0524デフォルトの名無しさん
2010/03/09(火) 07:54:46textboxの内容や、チェックボックス、オブジェクトなどの状態もそのまんま保存したいのです
設定を個別にiniファイルやレジストリに書き込むしか無いのでしょうか
0525デフォルトの名無しさん
2010/03/09(火) 09:50:330526デフォルトの名無しさん
2010/03/09(火) 11:16:350527デフォルトの名無しさん
2010/03/09(火) 13:17:50コントロールの状態を保存するというような考え方はしない
0528デフォルトの名無しさん
2010/03/09(火) 16:58:25ありがとうございました
0529デフォルトの名無しさん
2010/03/09(火) 19:29:28少なくともコントロールの状態については、アプリケーション設定とやらを使えば
2005以降はアホみたいに簡単に保存できるよ。
まあ基本は>>527の言うとおりで、本来はアプリケーション設定は
フォームのサイズとかコントロールの配置ぐらいにしか使うべきではないけど。
0530デフォルトの名無しさん
2010/03/10(水) 09:40:27うおおおこれがほしかったんですーありがとうございました
0531デフォルトの名無しさん
2010/03/10(水) 12:01:29なんつうか、思想的に微妙だと思うんだが
0532デフォルトの名無しさん
2010/03/10(水) 13:34:45うちではファイルに保存してるけど
0533デフォルトの名無しさん
2010/03/10(水) 13:35:58表示位置とかはあると思うんだけどね
入力内容も結構あるのか・・・
うちはそう言った要望特にないからイイほうなのかな?
0534デフォルトの名無しさん
2010/03/10(水) 13:38:23さくっとディスコンパイルしてくれるツール知りませんか?
探してみたけどうまく見つけられないです、お助けを
0535デフォルトの名無しさん
2010/03/10(水) 14:03:39入力というよりタブブラウザのようなイメージじゃないかな
0536デフォルトの名無しさん
2010/03/10(水) 15:23:12すげぇ納得した サンクス
0537デフォルトの名無しさん
2010/03/10(水) 15:24:51Reflector for .NET
とかじゃだめ?
最近使ってないからまだあるか知らんけど
難読化されてたらきびしそうだ気がする
0538デフォルトの名無しさん
2010/03/10(水) 15:29:52Jpegファイルを読み込んで加工する為にビットマップに変換して保存しているのですが、2回目の保存でGDI+汎用エラーが出てしまいます。
ファイルが使用中になっている為と思われるのですが、使用中から解放するにはどのようにすれば良いのでしょうか?
Dim _bmpJ As New Bitmap("d:\Blue.jpg")
Dim _bmp As New Bitmap(640, 480)
_bmpJ.Save("d:\tmp.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
_bmp = New System.Drawing.Bitmap("d:\tmp.bmp")
_bmpJ.Save("d:\tmp.bmp", System.Drawing.Imaging.ImageFormat.Bmp) ' ←ここで「GDI+ で汎用エラーが発生しました。」
_bmp = New System.Drawing.Bitmap("d:\tmp.bmp")
_bmp.Dispose()
_bmpJ.Dispose()
0539デフォルトの名無しさん
2010/03/10(水) 15:48:150540デフォルトの名無しさん
2010/03/10(水) 17:05:53ありがとう、難読化はしてません
DLしてちょっと試してみました、ウ〜〜ム
コンパイル可能なソースコードとして出てくるわけじゃあないんですね
もとのソースに近い状態まで復元するのはかなり骨が折れそうですが
もうちょっといじってみます
0541デフォルトの名無しさん
2010/03/10(水) 20:54:520542デフォルトの名無しさん
2010/03/10(水) 21:03:40http://ruffnex.oc.to/kenji/text/fire_a/
0543デフォルトの名無しさん
2010/03/10(水) 21:23:03なんか以前は普通に、
Funtion Hoge(sender as Object, e as EventArgs)
を、例えばMouseClickイベントに紐付けできたような記憶があるんだが
今日試したら出来ないのな。
C#だと普通に出来るのに何だろうな。
0544デフォルトの名無しさん
2010/03/10(水) 22:03:34thx
0545デフォルトの名無しさん
2010/03/10(水) 22:19:570546デフォルトの名無しさん
2010/03/10(水) 22:21:07どんだけ頑張ってもゲームになるほどのフレームレートは出ない
0547デフォルトの名無しさん
2010/03/10(水) 22:26:59なるほど、ありがとうございます
ライブラリ探してやってみまする
0548デフォルトの名無しさん
2010/03/11(木) 16:30:17結構便利だけどvbのサンプルはあまり無いみたい
0549デフォルトの名無しさん
2010/03/11(木) 18:04:50AクラスからBクラスのプロパティ(Cクラスとして宣言)にアクセスする場合、
AクラスとCクラスの間に依存関係にあるのでしょうか?
例えば、Bクラス内にてCというプロパティがCクラスの方として宣言されていて、
Cクラス内にはtest1,test2をstring型のプロパティとして宣言している状態で、
AクラスからB.C.test1と記述しA内のフィールドに代入する場合です。
また、よく複雑な依存関係は良い設計ではないといいますが、
具体的にどのような設計が複雑な依存関係と言えるのでしょうか?
依存関係などに詳しい書籍、Webサイトなど教えていただけたら幸いです。
よろしくお願いします。
0550デフォルトの名無しさん
2010/03/11(木) 18:47:250551デフォルトの名無しさん
2010/03/11(木) 20:42:38一度、コーディングなどから離れて、もっと広い視野になって、
オブジェクト指向の理論について学んだ方が良いと思う。
厳密なものは無い。
いろいろなプログラムで使う事が出来る汎用性のあるクラス設計が
出来る事、というのが目的なので、その目的を考えると答えが
見つかってくるんじゃないかな。
0552デフォルトの名無しさん
2010/03/11(木) 22:35:12Me.BackColor.ToArgb()
を
System.Drawing.ColorTranslator.FromOle(RGB(1, 1, 1))
のRGB()の部分に入れれば何とかなりそう?な感じがするんですがエラーばっかりです
どなたか助けて下さい〜
0553デフォルトの名無しさん
2010/03/11(木) 22:44:300554デフォルトの名無しさん
2010/03/11(木) 23:00:460555デフォルトの名無しさん
2010/03/12(金) 01:16:33ありがとうございます。
オブジェクト指向を基礎から学びなおします。
0556デフォルトの名無しさん
2010/03/12(金) 01:17:25連続で読むとエラーなのに、放置してたら解放されてるとか。
0557デフォルトの名無しさん
2010/03/12(金) 01:18:100558デフォルトの名無しさん
2010/03/12(金) 09:34:02現在、イベントログを出力するプログラムを作成しているのですが、
一部のマシン上でイベントログが以下のように出力されてしまいます。
『イベント ID (50000) (ソース *** 内) に関する説明が見つかりませんでした。
リモート コンピュータからメッセージを表示するために必要なレジストリ情報またはメッセージ DLL ファイルが
ローカル コンピュータにない可能性があります。
この説明を取得するために /AUXSOURCE= フラグを使用することができる可能性があります。
詳細については、ヘルプとサポートを参照してください。次の情報はイベントの一部です: ***』
インターネットで調査を行うと、『EventLogMessages.dll』というメッセージのDLLが
インストールされていない場合に発生するようなのですが、
現象が発生するマシンにはインストールされているようでした。
(レジストリ内にも記載されていた)
開発言語及び現象が発生しているマシンのOSは以下です。
開発言語:VB.NET2005
発生中のOS:Windows2003Server
※WinXPのマシンでは正常にイベント出力される事を確認
他に何か原因はありますでしょうか?
0559デフォルトの名無しさん
2010/03/12(金) 10:36:14VBを使って整理してみたいと考えています
(それを元に特定のキーワードに反応するように)
ログはチャットの性質上、それなりのスピードで流れ
常に更新されていきます
なのでログを最新な状態同期をとる方法に困っています
何かヒントがあれば教えて頂けると幸いです
開発言語:VB.NET2005
0560デフォルトの名無しさん
2010/03/12(金) 13:11:43一つ目。form1からform2を呼び出すのですが、
エクセルのセルのように大きさを連動して変えたいのですが、そういったことは出来ますか?
form1を正方形とすると、form2の一つ目を10:7、二つ目を10:3のように呼び出し、
真ん中の境界線をドラッグして10:5、10:5のように変えたりしたいと思います
またこういうことがもっと簡単に実現できるコントロールが他にあれば、教えてください
二つ目。form2をform1のtextbox1に呼び出したすることは出来ますか?
よろしくお願いします。
0561デフォルトの名無しさん
2010/03/12(金) 13:20:57そこまで明確にやりたいことが決定しているのに
なぜやってみてから質問しない
設計書はあるんだからコーディングするだけだろうに
あと、そんなことできるコントロールなんて標準ではないだろう
2つ目
TextBoxの中にフォームを表示するとかそんなこと?
日本語で頼む
0562デフォルトの名無しさん
2010/03/12(金) 13:26:11ないですか、ありがとうございました
サイズ変更で何とかやってみます
2つめはそうです。
textbox等、フォーム以外のコントロールの中にフォームを表示したいのです
0563デフォルトの名無しさん
2010/03/12(金) 13:27:520564デフォルトの名無しさん
2010/03/12(金) 13:28:150565デフォルトの名無しさん
2010/03/12(金) 13:51:21HTML ドキュメン形式なるものがどんなのか不明
生成される素材って、どこにどんな風に生成されるのか不明
そこにVBをどう絡めるのか不明
ログがどこに流れてどういう風に更新されているのか不明
ツッコミ切れねぇ
0566デフォルトの名無しさん
2010/03/12(金) 14:14:17どんなデータ形式をどんなふうに整理しタイのかが判らないと無理じゃね?
何が聞きたいのかも不明瞭
何かヒントがあれば とは言ってるけどどんなヒントを出せばいいのかが判らない
なので今出せるヒントは もう少しkwsk
0567デフォルトの名無しさん
2010/03/12(金) 14:23:13みんなわからなくてうれしー
0568デフォルトの名無しさん
2010/03/12(金) 14:36:10おかげさまでTableLayoutPanelにたどり着きました
本当にありがとうございました
0569デフォルトの名無しさん
2010/03/12(金) 14:42:290570デフォルトの名無しさん
2010/03/12(金) 14:49:360571デフォルトの名無しさん
2010/03/12(金) 14:50:16MDIのブラウザを作ってみたいと思ってまして、
それぞれのウィンドウが境界線を触るだけで表示サイズ変更できれば便利かと思ったんです
単体のブラウザはできているので、そのフォームごと呼び出せたら便利かな、と・・
どうもコントロールの中にフォームは呼び出せないようなので、
TableLayoutPanelとwebbrowserを組み合わせようと思います。
0572デフォルトの名無しさん
2010/03/12(金) 14:51:27そういうのが無いようなので作ってみたかったんです。
0573デフォルトの名無しさん
2010/03/12(金) 15:06:33親フォームMDIにすりゃいいだけじゃねぇのか?
0574デフォルトの名無しさん
2010/03/12(金) 21:34:450575デフォルトの名無しさん
2010/03/12(金) 22:36:25簡単にかける方法を教えて下さい。
Releaseモードでコンパイルするときにプロテクトをかけることはできないのでしょうか?
ツールはVisualStudio2008Proを使用しています。
0576デフォルトの名無しさん
2010/03/12(金) 22:37:430577デフォルトの名無しさん
2010/03/12(金) 23:14:02VB6に有ったIMEStatus関数はどこへ行ったんですか?
現在の入力モードを取得できる関数は無くなったんですか?
0578デフォルトの名無しさん
2010/03/12(金) 23:20:360579デフォルトの名無しさん
2010/03/12(金) 23:46:00ありがとうございます。
では、モードの取得はどうすればよいのでしょうか。
0580デフォルトの名無しさん
2010/03/12(金) 23:52:390581デフォルトの名無しさん
2010/03/13(土) 00:23:02API呼出が必要になったんですね。
0582デフォルトの名無しさん
2010/03/13(土) 06:59:41>>576
それでは、ユーザーコントロールのDLLをVS2008で
ツール→ツールボックスアイテムの選択
でDLLを指定したら追加されてしまうのは仕方が無いんですね?
0583デフォルトの名無しさん
2010/03/13(土) 07:12:140584デフォルトの名無しさん
2010/03/13(土) 11:28:54そうしても嫌ならシリアル入力させるとかしないとダメだろ
どっちにしろ使うときにチェックかけれるだけで参照されるのは防げない
0585デフォルトの名無しさん
2010/03/13(土) 12:11:13俺自身はそんなセコいことしたことないけど、これで出来るんじゃない?
簡単かどうかは知らない。
http://japan.internet.com/developer/20051011/29.html
まあ時代の流れから言ってもVB5の時代ですら考慮されてたことが
今日日未サポートなはずがないよね。
0586デフォルトの名無しさん
2010/03/13(土) 15:10:280587デフォルトの名無しさん
2010/03/13(土) 17:41:32http://dobon.net/vb/dotnet/programing/mysettings.html
ここにあるような方法でテキストボックスの値を保存しています。
基本的に問題なく書込み読み込みできているのですが、
保存しようとした値が半角空白のみだった場合にうまく復元されません。
app.configを覗いてみると、半角空白のみだった場合は
<setting name="testString" serializeAs="String">
<value>
</value>
</setting>
このように保存されていて、読み込み時に</value>の前のインデントの空白が値として読み込まれてしまっているぽいのですが・・・
使い方や設定等に問題があるのでしょうか
0588デフォルトの名無しさん
2010/03/13(土) 17:45:20どうしても気になるなら、[] とかを付けて保存するようにして、復元するときに外す
とかすればいいよ。
0589デフォルトの名無しさん
2010/03/13(土) 17:51:190590デフォルトの名無しさん
2010/03/13(土) 17:52:550591587
2010/03/13(土) 17:57:34まぁ>>588さんの例の様に自分でデータ弄れば回避はいくらでもできそうなのでその方向で何とかすることにします
0592デフォルトの名無しさん
2010/03/13(土) 18:07:56そんな馬鹿なことあるか、と思って試したみたけど、
ちゃんと保存されるでしょ。
ただし、確かにMultiline = Trueの時には、存在しないはずの改行が入るバグがあるようだけど、
それにしても空文字になったりはしない。
そもそもアプリケーション設定の保存先ってapp.configじゃないしw
設定のスコープを「アプリケーション」にしてる、なんてオチだったりしない?
0593デフォルトの名無しさん
2010/03/13(土) 18:12:09すいませんuser.configの間違いでした
スコープはユーザーにしてます
しかしMultilineはfalseのままですね・・・
やっぱり何かしら間違ってるのでしょうか
0594デフォルトの名無しさん
2010/03/13(土) 18:14:50Saveしてないとかね
0596デフォルトの名無しさん
2010/03/14(日) 00:33:060597デフォルトの名無しさん
2010/03/14(日) 00:39:150598デフォルトの名無しさん
2010/03/14(日) 00:59:080599デフォルトの名無しさん
2010/03/14(日) 02:01:12どうやればいいんでしょうか。↓だとインスタンスは作成されているようですが見つかりません。
Dim sss As New TextBox
sss.Show()
0600デフォルトの名無しさん
2010/03/14(日) 02:14:51textbox一つだけ配置したフォーム作って保存してから、そのフォームの.Designer.vbをメモ帳で開いてみ。
0601デフォルトの名無しさん
2010/03/14(日) 02:26:420602デフォルトの名無しさん
2010/03/14(日) 07:57:570603デフォルトの名無しさん
2010/03/14(日) 14:11:01フォームに貼り付けただけのwebbrowserコントロールに
自動ログイン設定されているウェブサイトのURLを
ドロップすると画面は表示されますが、ログイン情報は
わたってないようでゲストさん扱いでした。
これは、自分でクッキーを探してセットしてnavigateメソッドを
呼び出さないといけないということですか?
またコンテンツ内のmetaタグにrefreshが記述されていた場合は
自分でrefreshしないといけないということでしょうか。
0604デフォルトの名無しさん
2010/03/14(日) 14:41:110605デフォルトの名無しさん
2010/03/14(日) 15:02:510606デフォルトの名無しさん
2010/03/14(日) 16:53:45クッキーはIEと共有だからIEでログインしとけばいいはず
0607デフォルトの名無しさん
2010/03/14(日) 17:41:24さっそく実験してみたのですが、やはりゲストさん扱いでした。
テストしたのはIEでポイントサイトにログイン(というか自動でログイン済み)して、
次に新規formにwebbrowserコントロールを貼り付けただけの画面を起動し、
そこにURLをドロップしてみたのですが、ようこそゲストさんになってしまいました。
0608デフォルトの名無しさん
2010/03/14(日) 19:27:09俺的にはニコニコは大丈夫だよ
0609デフォルトの名無しさん
2010/03/14(日) 23:01:43ニコ動もやってみましたがダメでした。
IE側でログインしてそこのリンクをドロップしてみたら
ログイン画面が出てきましたorz
0610デフォルトの名無しさん
2010/03/14(日) 23:22:53うちは大丈夫だよ
環境の問題か
0611デフォルトの名無しさん
2010/03/14(日) 23:37:440612デフォルトの名無しさん
2010/03/15(月) 01:12:500613デフォルトの名無しさん
2010/03/15(月) 01:14:05読み替えてください
0614デフォルトの名無しさん
2010/03/15(月) 14:26:28一度webbrowserコントロール内でログイン後、IEも開発画面も落として
再度起動し、IEからリンクをドロップしてみた所、無事ログインされた状態になりました。
この状況だとクッキーはIEと共用になってないということですよね?
OSはVistaでIEのバージョンは8.0.6001.18882となってます。
IEの「インターネットオプション」でゾーンの設定は「中」にしているのですが、
これが怪しいのかと思い「低」にしてみたのですが結果は変わりませんでした。
Web巡回アプリを作るとしたら、ログイン画面が出てるか判断して
IDやパスワードをプログラムから入力させて・・・という処理を加えないとダメってことですよね。
0615デフォルトの名無しさん
2010/03/15(月) 20:02:49何とも言えないな
0616デフォルトの名無しさん
2010/03/15(月) 20:13:150617デフォルトの名無しさん
2010/03/15(月) 21:08:53ですが、 Public Function〜の行で
定数式が必要です
とエラーが出てしまいます。何がダメなんでしょうか?
Public Function yomi(Optional ByVal oCon As TextBox = TextBox15) 'ここでエラーが出ます
End Function
0618デフォルトの名無しさん
2010/03/15(月) 21:13:440619デフォルトの名無しさん
2010/03/15(月) 21:20:15NUMBER
______________
1
2
3
↓ランダムに並べ替えた結果
3
1
2
偏りが無く並び替えたいです。
0620デフォルトの名無しさん
2010/03/15(月) 21:21:090621デフォルトの名無しさん
2010/03/15(月) 21:22:58ないと思う。
0622デフォルトの名無しさん
2010/03/15(月) 21:24:14>>619
新しいInteger列をDataTableに追加して、
行数分のInteger配列を用意して0から一つずつ埋めてそれをシャッフルして、
各行の追加した列に設定していって、
でDataView.Sortでその列でソートさせる
0623デフォルトの名無しさん
2010/03/15(月) 21:29:17素早いレスに感謝します。どうもありがとうございます。
0624デフォルトの名無しさん
2010/03/15(月) 21:46:11なんで無理なんでしょう?本当にわかりません・・
textbox15はもちろんあります。関数呼び出しの時、指定しなかった時はこれを指定したいんです
Optional ByVal oCon As TextBox =Nothingではエラーは出ませんが、これだと無いのと同じです
Optional を付けなければエラーは出ませんが、今までの関数呼び出し部分を全部変えることになりますし
そもそも何故ダメなのか分からないのがもどかしいので助けて下さい><
0625デフォルトの名無しさん
2010/03/15(月) 21:47:570626デフォルトの名無しさん
2010/03/15(月) 21:52:54End Function
をもう一個作ればいいよ
0627デフォルトの名無しさん
2010/03/15(月) 21:55:54なるほど分かりました、ありがとうございます!
コントロールはフォームの生成の後に作られるんですね。勉強になりました
>>626
ありがとうございます。解決出来そうな気がします
0628デフォルトの名無しさん
2010/03/15(月) 21:57:23Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
Private Sub hoge()
MsgBox("hoge")
End Sub
Private Sub hoge(ByVal ocol As TextBox)
MsgBox("hoge2")
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Call hoge(TextBox1)
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Call hoge(TextBox1)
End Sub
End Class
0629デフォルトの名無しさん
2010/03/15(月) 21:58:58Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
Private Sub hoge()
Call hoge(TextBox1)
End Sub
Private Sub hoge(ByVal ocol As TextBox)
MsgBox("hoge2")
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Call hoge()
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Call hoge(TextBox1)
End Sub
End Class
0630デフォルトの名無しさん
2010/03/16(火) 07:39:13VB2005から Call は記述しなくてもよくなったのでは
なかったでしたっけ?
トンチンカンなこと言ったらごめんなさい。
0631デフォルトの名無しさん
2010/03/16(火) 12:08:540632デフォルトの名無しさん
2010/03/16(火) 12:57:380633デフォルトの名無しさん
2010/03/16(火) 13:14:05Call使ってたな
0634デフォルトの名無しさん
2010/03/16(火) 14:27:020635デフォルトの名無しさん
2010/03/16(火) 14:52:270636デフォルトの名無しさん
2010/03/16(火) 18:00:28>>630です。
参考になりました。ありがとうございます。
初心者なもので何がよくて何が悪いのか
てんで見当が(^^ゞ
0637デフォルトの名無しさん
2010/03/16(火) 18:41:25Dim dtab As New DataTable
Dim drow As DataRow
dtab.Columns.Add("f0")
dtab.Columns.Add("f1")
dtab.Columns.Add("f2")
drow = dtab.NewRow
drow(0) = "a"
drow(1) = "b"
drow(2) = "c"
dtab.Rows.Add(drow)
drow = dtab.NewRow
drow(0) = "d"
drow(1) = "e"
drow(2) = "f"
dtab.Rows.Add(drow)
Call objwatasi(dtab)
GridView1.DataSource = dtab
GridView1.DataBind()
End Sub
Protected Sub objwatasi(ByVal wtab As DataTable)
wtab(0)("f0") = "x"
End Sub
0638637
2010/03/16(火) 18:42:13f0 f1 f2
x b c
d e f
呼出元が変わっています。ByVal wtabとしているのに参照渡しに。
そうなる理由は、wtabには値渡ししているが、オブジェクトが参照型であることから、その値は参照アドレスであり、事実上、参照渡ししているのと同じことになります。
ここで呼出元が変わらないようにするにはどうしたらよいでしょうか?
0639デフォルトの名無しさん
2010/03/16(火) 18:45:220640デフォルトの名無しさん
2010/03/16(火) 19:08:14(a as string........
b as integer.......
c as integer....
d as string.......
)
dim atable as new list (of table)
というのがあって、このa、bをキーにソートしたいのですが、
IComparerを使わないとソートできないのでしょうか?
SQLでいう
select a,b,c,d from table order by a,b
みたいなことをしたいのですが、簡単に実現できる方法は
他にないでしょうか。
DBに放り込むのがいいかもしれませんが、ソートするため
だけに使うのは気が引けます。
ずるい方法でもあればありがたいのですが、VB初めてまだ1ヶ月では
何も思い浮かびませんでしたorz
for each で取り出すときにキー順に並んでさえすればいいのですが
素直にIComparerを使わないといけないのでしょうか。
0641デフォルトの名無しさん
2010/03/16(火) 19:23:06VB2008ならLinq OrderBy辺りで検索してみるとか
0642デフォルトの名無しさん
2010/03/16(火) 19:37:58ListView突っ込む
0643デフォルトの名無しさん
2010/03/16(火) 21:23:47listviewをヒントに探している途中でみつけたのですが、もしかして
もともとdatatableを使うように変更してselectしたら
OKってことでしょうか。
0644643
2010/03/16(火) 22:38:45LINQ使いました。
お昼ごろから悩んでたのがたった数行で解決しましたOrz
0645デフォルトの名無しさん
2010/03/16(火) 22:42:19なんでそんなに嫌がるんだw
0646デフォルトの名無しさん
2010/03/16(火) 22:43:31デリゲートとかきちっと理解してないと嵌まる
0647デフォルトの名無しさん
2010/03/16(火) 22:56:16「ファイルまたはアセンブリ 'a Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'、またはその依存関係の 1 つが読み込めませんでした。指定されたファイルが見つかりません。」
どのようにすれば下記のようなディレクトリ構成でmain.exeを実行できるのでしょうか?
ちなみに、DLLはDLL参照で参照しています。
TEST----main.exe
|
|--DLL
|-----a.dll
|-----b.dll
0648デフォルトの名無しさん
2010/03/16(火) 23:04:00IEのお気に入りのようなものを実装したいのですが、どんな方法が良いでしょうか
表示されているものはものはページのタイトルですが、実際にはURLを追加や移動したいと言った感じです
・予め項目とURLを二次元配列に入れておいてmousedownの瞬間に入れ替え、戻す
・項目とURLの二種類のlistboxを表示させておき、mousedownの瞬間に表示・非表示
・・・など変なことしか思いつかないです。ぐぐっても初心者向けのページ(IEお気に入りの使い方等)しか見つかりません。よければ助言下さい
0649デフォルトの名無しさん
2010/03/16(火) 23:04:09検索したらすぐ見つかったよ、と嫌味たらしく言ってみる。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=9189&forum=7
でも、普通はやらん方がいいし、それ以前に何かそんなことする必然性があるのかと。
0650648
2010/03/16(火) 23:05:163行目は 表示されているものはページのタイトルですが、実際にはURLのデータをリストに追加や移動・削除したいと言った感じです
0651デフォルトの名無しさん
2010/03/16(火) 23:27:52VB6上がりの人かな?
ListBox.Itemsで取得されるObjectCollectionに追加できるのは文字列だけ、なんて思ってない?
違うよ。
例えばMSDNのObjectCollection.Addメソッドの説明見てみ?
Addの引数の型はObjectだ。つまり何でも入る。
ListBoxは、アイテムを表示するとき、各アイテムのObject.ToString()を呼び出して
表示している。
これだけ理解すればどうすればいいか自ずと見えてくるはず。
0652デフォルトの名無しさん
2010/03/16(火) 23:29:28検索してすぐに見つけていただきありがとうございます^^
0654デフォルトの名無しさん
2010/03/17(水) 09:51:25例えばこのスレのURLは
http://pc12.2ch.net/test/read.cgi/tech/1180406037
とするか
http://pc12.2ch.net/test/read.cgi/tech/1180406037/
と最後にスラッシュを付けるのかどちらが一般的でしょうか
0655デフォルトの名無しさん
2010/03/17(水) 10:06:550656デフォルトの名無しさん
2010/03/17(水) 10:33:450657デフォルトの名無しさん
2010/03/17(水) 11:24:33うーん?とりあえずつけておくことにします
0658デフォルトの名無しさん
2010/03/17(水) 12:58:45VB2008でADOを使ってmdbファイルにアクセスしようとしています。
SELECT * FROM hoge
WHERE f = False
ORDER BY a;
だと動くのに、
SELECT a, b, c, d, e, f FROM hoge
WHERE f = False
ORDER BY a;
だと動かないのはどうしてでしょう?
フィールド名は全てチェックし、プログラム内で生成したSQL文を
アクセスのクエリにコピペして動作も確認してみましたが、きちんと表示されています。
エラー内容は
「エラーを特定できません (HRESULT からの例外: 0x80004005 (E_FAIL))」
となっています。
0659658
2010/03/17(水) 12:59:59エラーで止まるのは、RecordsetのOpen時です。
0660デフォルトの名無しさん
2010/03/17(水) 13:05:42;が要らない
0661デフォルトの名無しさん
2010/03/17(水) 13:16:50SQLClientは確かセミコロンで区切ってDataSetを取得できたような気がする。
0662デフォルトの名無しさん
2010/03/17(水) 13:26:46セミコロン抜いてみましたがダメでした。
色々試して自己解決しました。
一つずつフィールド名を試して、SECTION というフィールド名でエラーを
起こしているのが判明したので、POSTUNT と変えてみたら動きました。
何故 SECTION がダメなのかまでは分かりませんが、、、
ともあれ、ご回答ありがとうございました。
0663デフォルトの名無しさん
2010/03/17(水) 13:39:200664デフォルトの名無しさん
2010/03/17(水) 13:41:240665デフォルトの名無しさん
2010/03/17(水) 13:42:080666648
2010/03/17(水) 15:30:20クラスを新しく作ってプロパティにurl(string)とタイトル(string)
tostringをオーバーライドして・・
としようとしているのですが、他に楽な方法ってあるような気がしてなりません
二種類の文字列を格納でき、tostringでタイトルが帰ってくるような
そんなクラスってありますか?
0667デフォルトの名無しさん
2010/03/17(水) 15:43:32フォルダ内に
DateTime型で 更新日時が 2010/03/15 23:16:52
のようなファイルが多数あると仮定して
最新のファイル名を取得するのに
どのような方法があるでしょうか?
Dim dt As DateTime
Dim file_name_new As String = "ファイル名"
dt = File.GetLastAccessTime(file_name_men)
で 配列にdtを入れ
dt(1) > dt(2) のようなソートの単純比較で最新ファイルを探し出せるのものでしょうか
0668デフォルトの名無しさん
2010/03/17(水) 16:56:32でもアクセス日時なんてファイル開いたりして変わったりするから
例えばファイル名に日時でも入れておけばいいんじゃね?
どんな用途に使うかによると思うんだけど・・・
0669デフォルトの名無しさん
2010/03/17(水) 17:22:54要は>>640と同じ
とりあえずクラス作ってコレクションに入れて、ソートはIComparer(Of T)を使うのが
正解だけど>>667には難しいだろうからちゃんと勉強するのが嫌なら既出のいかにもVBらしい方法でごまかす
0670デフォルトの名無しさん
2010/03/17(水) 17:47:20threadtitledatクラスの配列thretai(3)をnewで作成した後、ボタン1クリックでthretai(0).datに代入したいと思っています
thretai(0).dat = "e"の行で
{"オブジェクト参照がオブジェクト インスタンスに設定されていません。"} と出ます。助けてください!
Public Class Form1
' threadtitledatクラスの配列thretai(3)をnewで作成
Dim thretai As threadtitledat() = New threadtitledat(3) {}
'クラス
Class threadtitledat
Private datstr As String
Property dat() As String
Get
Return datstr
End Get
Set(ByVal value As String)
datstr = value
End Set
End Property
End Class
'ボタン1クリックでthretai(0).datに代入
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
thretai(0).dat = "e"
End Sub
End Class
0671デフォルトの名無しさん
2010/03/17(水) 17:55:36初期化した時に0,1,2の中に New threadtitledat でもして実体を入れないと・・・
0672デフォルトの名無しさん
2010/03/17(水) 18:06:33おおできました!
Dim thretai As threadtitledat() = New threadtitledat(3) {New threadtitledat, New threadtitledat, New threadtitledat, New threadtitledat}
ちゃんと動きました。ありがとうございました
0673デフォルトの名無しさん
2010/03/17(水) 18:15:59良いことだけど
0674デフォルトの名無しさん
2010/03/17(水) 18:24:55回答ありがとうございます
単純に日付形式で
A>Bのようなモデルで
間違いなくソート出来るのか知りたかったのですが
便利な関数も教えていただき
さらに分かり易く指導を受けたことを感謝致します
0675デフォルトの名無しさん
2010/03/17(水) 18:34:40初心者ならいきなり自作クラス作成ではなく
DataTable使っての管理が楽だと思う
DataTableのDefaultView使えばソートも抽出も出来るから
ソート後にDefaultViewの1つ目の要素で目的のものが取得できる
0676デフォルトの名無しさん
2010/03/17(水) 20:04:18複数の関数があって、ソフト起動後に任意の順番で実行させるにはどのようにすれば良いのでしょうか?
if文でやるのは綺麗では無いですよね・・・?
Private sub aaa()
End sub
Private sub bbb()
End sub
Private sub ccc()
End sub
Private sub ddd()
End sub
Private sub eee()
End sub
aaa:3番目
bbb:2番目
ccc:1番目
ddd:5番目
eee:4番目
とか
aaa:2番目
bbb:5番目
ccc:4番目
ddd:3番目
eee:1番目
など・・・
0677デフォルトの名無しさん
2010/03/17(水) 20:15:24少しの限られたレベルならそれでもいいと思うし
デリゲート変数にでも突っ込んでリストで持てば?
0678デフォルトの名無しさん
2010/03/17(水) 20:19:220679デフォルトの名無しさん
2010/03/17(水) 22:13:06現在、アプリケーションの設定を起動時に読み込み、
モジュールのpublic変数に格納しています。
いくつか検索してみて調べたのですが、
それはよくないので、設定用のクラスを作成し、
読取専用プロパティやフィールドに格納したほうがよいとありました。
試しに作成してみたのですが、
moduleの場合は、変数をhogeで参照できたのに、
クラスを作成した場合は、Class1.Instance.hogeとか
長くなってしまい、不便です。
すごく勘違いしてそうなんですが、
普通はどのようにアプリケーション設定を管理するのでしょうか?
必要な時はClass.Instance.hogeとか全部打ち込むものなんでしょうか?
基本すぎる事かもしれませんがどうぞよろしくお願いします。
0680デフォルトの名無しさん
2010/03/17(水) 22:16:500681デフォルトの名無しさん
2010/03/17(水) 22:27:20VSのアプリケーション設定の機能使えばクラスを作ったり読み込んでくれたり全自動でやってくれる
0682デフォルトの名無しさん
2010/03/17(水) 22:39:59ADOとFileSystemObjectを使うにはどうすれば
0683デフォルトの名無しさん
2010/03/17(水) 22:41:510684デフォルトの名無しさん
2010/03/17(水) 22:42:100685デフォルトの名無しさん
2010/03/17(水) 22:44:030686デフォルトの名無しさん
2010/03/17(水) 22:47:170687デフォルトの名無しさん
2010/03/17(水) 22:59:03>>681
ありがとうございます。
newでインスタンスを作成してしまうとだめなんですよね?
設定クラスのプロパティをclass.hogeで参照するにはどうしたらいいのでしょうか?
0688デフォルトの名無しさん
2010/03/17(水) 23:07:490689デフォルトの名無しさん
2010/03/17(水) 23:29:28つまりフィールドにもsharedをつけ
プロパティにもsharedをつける
とのことでしょうか?
というか値を保存するだけならsharedなフィールドだけでいいのでしょうか?…
ますます分からなくなってきました
0690デフォルトの名無しさん
2010/03/17(水) 23:34:340692デフォルトの名無しさん
2010/03/18(木) 00:50:00プロパティも内部的な動作はメソッドにしろってことですかね
0693デフォルトの名無しさん
2010/03/18(木) 12:46:28一番楽なのは取り込んだらBMPファイルとして保存し、それを読み込むことでしょうけど、これだと時間かかるので・・・。
すいませんが、よろしくお願いします。
0694デフォルトの名無しさん
2010/03/18(木) 12:51:45イミフ
0695デフォルトの名無しさん
2010/03/18(木) 12:59:140696693
2010/03/18(木) 13:22:37送られてきたデータをバイト変換したら、0x89 0x50 0x4E 0x47... となってたので、Jpeg形式なのかなと
とりあえず、BitmapクラスにはJpegデータとして格納されているので、これをBitmap形式に変換したいのですが、何か良い方法はありますでしょうか?
0697デフォルトの名無しさん
2010/03/18(木) 14:02:51LockBitsやGetPixel使えば内部表現がどうだろうと普通にピクセルデータ取れるし
保存形式も好きなの選べるし
0698693
2010/03/18(木) 14:05:33一度BitmapDataで取り込み、LockBitsを使用してBitmapにしています。
その時のフォーマットはPixelFormat.Format24bppRgbを使用しています。
(これでBitmap形式になっていなところも不思議ですが)
0700デフォルトの名無しさん
2010/03/18(木) 14:11:270701デフォルトの名無しさん
2010/03/18(木) 14:22:070702デフォルトの名無しさん
2010/03/18(木) 14:22:15Lockbitsで出来ない処理なの?
0703デフォルトの名無しさん
2010/03/18(木) 14:36:07普通にLockBitsすれば生のピクセル取れるはず
0704693
2010/03/18(木) 15:32:31ですよね・・・。
とりあえず描画は出来ているのですが、バイトの先頭が&H42,&h4Dになってない時点で何かおかしいですし。
試験的に同じ処理でJpegファイルを読んでみたところ、先頭のバイトが同じになったので、Jpegに変換されているのかなと。
0705デフォルトの名無しさん
2010/03/18(木) 15:36:000706デフォルトの名無しさん
2010/03/18(木) 15:54:32あと、思っただけじゃなくて少しは検証しろよ。もしもJpegになってたら圧縮されてるってことだから総バイト数減ってないとおかしいだろ
知識持ってない奴は始めっから手抜きなんか考えんな
0707693
2010/03/18(木) 16:39:18どうなんでしょう?
Bitmapクラスであっても、Jpeg形式のデータを入れればJpeg画像として処理されるってことですよね。
>>706
いろいろと検証しているのですが、少し混乱してます。
BitmapのWidthとHeightの値を見ると720×470のデータで、
出てくる総バイト数は593508Byteや540966Byteとカラーとして考えたら半分くらいに圧縮されてますね。
m_Bitmap.UnlockBits(m_BitmapData)
m_BitmapData = m_Bitmap.LockBits(New Rectangle(0, 0, getWidth, getHeight), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb)
m_Bitmap.UnlockBits(m_BitmapData)
や
m_Bitmap.UnlockBits(m_BitmapData)
m_Bit = m_Bitmap.Clone((New Rectangle(0, 0, getWidth, getHeight)), PixelFormat.Format24bppRgb)
の処理で無理矢理Bitmapにしようとしている時点で、確かに手抜きですね。
とりあえずbitmapクラスにヘッダを自力で入力して、GetPixelで画素を拾って再構築してみたところ動きましたが・・・処理が遅すぎ。
0708デフォルトの名無しさん
2010/03/18(木) 16:49:57その最初のm_BitmapDataはどこから来た
0709デフォルトの名無しさん
2010/03/18(木) 17:02:060710693
2010/03/18(木) 17:09:41.SnapShot(m_BitmapData.Scan0, getSize(), 1)
で、データを取得してます。
>>709
ですよねー。
そこに圧縮が入ってるだけで、ここまで苦労するなんて思わなかった。
0711デフォルトの名無しさん
2010/03/18(木) 22:31:29infoやmenubarなどを選ぶ方法はありますか?
color.infoはありませんでした。
0712デフォルトの名無しさん
2010/03/18(木) 22:48:21一度Form1の適当の奴の色をデザイナで設定して、
プロジェクトのあるフォルダのForm1.designer.vbを見てみると良いよ
0713デフォルトの名無しさん
2010/03/18(木) 22:53:54これはとても便利です!ありがとうございました
0714693
2010/03/19(金) 05:06:13ああああああ、おもいっきり混同してたあああああああああああああ
pixelformatって圧縮形式だったのか
・・・そろそろ寝る
0715デフォルトの名無しさん
2010/03/19(金) 09:54:51PixelFormatはピクセルごとの形式だから圧縮は関係ない
0716デフォルトの名無しさん
2010/03/19(金) 10:14:010717デフォルトの名無しさん
2010/03/19(金) 12:29:51関数 'hoge' は、すべてのコード パス上では値を返しません。結果が使用されるときに、null 参照の例外が実行時に発生する可能性があります。
と警告が出てしまいます
Public Function hoge() as void
のように最初から値を返さないと決めて宣言することはできないでしょうか
それとも関数の終わりを
Return 0
End Function
のようにするしかないでしょうか。できれば二行も使いたくないのですが・・
0718デフォルトの名無しさん
2010/03/19(金) 12:46:010719デフォルトの名無しさん
2010/03/19(金) 12:47:48ありがとうございます。私が余計な事をしていたのですね・・
0720デフォルトの名無しさん
2010/03/19(金) 12:48:420721デフォルトの名無しさん
2010/03/19(金) 12:51:050722デフォルトの名無しさん
2010/03/19(金) 13:12:42今はよくてもメンテを後でやるときに困る
そういえば昔VB6の保守案件で見たソースがすべてFunctionで宣言されてたソースを見た
やりづれぇことこの上なかったなぁ
0723デフォルトの名無しさん
2010/03/19(金) 13:24:530724デフォルトの名無しさん
2010/03/19(金) 13:34:52書き換えると影響が出まくる可能性があるので怖くて手を出せなかった
時間もあんまりなかったので、同じ機能でも元のソースをコピペして関数作ったり
おかしいなりにキッチリ動いてたんでねorz
0725デフォルトの名無しさん
2010/03/19(金) 22:34:29下のC#をVBに変換するとしたら
while((line = sr.Read()) != null){
if(line_ct++ < analy_line)
contine
}
どんな感じになるでしょうか
null がnothing に
!= が<> だとしても うーん
0726デフォルトの名無しさん
2010/03/19(金) 22:37:52代入と比較を条件節で書くのは無理だから分けるしかないね
0727デフォルトの名無しさん
2010/03/19(金) 22:45:41もし、ご存じなら教えて下さい。よろしくお願いします。
0728デフォルトの名無しさん
2010/03/19(金) 22:59:20ユーザコントロールとは違って結構手強いのでMSDNを恐れてるようじゃ無理だ
0729デフォルトの名無しさん
2010/03/19(金) 23:03:58INHARLITS 継承 クラス
辺りでぐぐって、textboxでも拡張してみるとイイ。textboxEX辺りでググると事細かに書かれているサイトもある
あとはツールボックスに追加するだけ
0730デフォルトの名無しさん
2010/03/19(金) 23:18:35ありがとうございました。
今、カスタムコントロールでapp.configファイルにバックカラー設定値の
ような値を持たせてInitializeComponetの後にapp.configのバックカラー設定値に
よって色を変えるロジックを書いていますが、なぜかバックカラーが
反映されないんです><
0731デフォルトの名無しさん
2010/03/19(金) 23:25:34別物だから混同しないように
コードがないのでわからないけど、一般にそういう処理はコントロールじゃなくて
それを張り付けたフォームの方に書く
コントロール側に書いちゃうと分けた意味が薄れるから
0732デフォルトの名無しさん
2010/03/19(金) 23:29:06なるほど。ありがとうございました。
0733デフォルトの名無しさん
2010/03/19(金) 23:46:54返答ありがとうございます
分離しかないですか
うーん
0734デフォルトの名無しさん
2010/03/19(金) 23:54:040735デフォルトの名無しさん
2010/03/20(土) 02:11:17確かにVBだと>>725みたいのはスマートに書けないんだよな。
どうしてもWrite Trueなループを抜ける条件をループの中に書くような
ちょっと間抜けなコードになっちゃう。
まあそれはそれで必ずしも分かりにくくはないんだが、冗長な感じは否定できない。
0736デフォルトの名無しさん
2010/03/20(土) 03:12:280737デフォルトの名無しさん
2010/03/20(土) 08:40:07>ちょっと間抜けなコードになっちゃう。
俺は結構使ってたりするんだが・・・
別スレッド立ててデータをひたすら取得
取得間隔はThread.Sleep使ってループの中で止めてる
メインスレッドからの停止フラグでWhileを抜けるような仕様
普通はどうやってるんだ・・・?
なんか自分のやってることに自信がなくなってきた
0738デフォルトの名無しさん
2010/03/20(土) 08:45:53宗教論争しても無意味。
0739デフォルトの名無しさん
2010/03/20(土) 08:50:470740デフォルトの名無しさん
2010/03/20(土) 10:53:02パフォーマンスは余程の差がなければ「コードの見やすさ」優先で
結構ベタな書き方多いかも
0741デフォルトの名無しさん
2010/03/20(土) 11:35:15同じ命令を2回書くのに抵抗がある人もいるかもしれないが、わりとスタンダードなやり方。
ただContinue Doで継続した場合に2つめのReadが実行されないので、If で代用。
あとif文中のline_ct++は扱いが面倒だな。
line = sr.Read()
Do While line is Nothing
line_ct += 1
' If line_ct <= analy_line Then Continue Do
If line_ct > analy_line Then
:
End If
line = sr.Read()
Loop
0742デフォルトの名無しさん
2010/03/20(土) 13:18:25それなら普通に無限ループを抜ける条件をループの中に書いた方が
分かりやすいでしょ。
ちなみに、VB6じゃないからDoとかいらんし。
0743デフォルトの名無しさん
2010/03/20(土) 14:06:47While - Wend
Do While - Loop
0744デフォルトの名無しさん
2010/03/20(土) 14:19:08今はこのケースでIsNot演算子が使えるのだな。
0745デフォルトの名無しさん
2010/03/20(土) 14:29:29abrowser = new WebBrowser
TabPage1.Text = "aaaa"
Me.TabPage1.Controls.Add(awebbrowser)
mytab = New TabPage
mytab.Controls.Add(awebbrowser)
mytab.Text = "bbbb"
TabControl1.Controls.Add(mytab)
Me.TabControl1.SelectedTab = TabPage1
としたときに、tabpage1(タブ名"aaaa") とmytab(タブ名"bbbb")の
webbrowserコントロールへのアクセスはどうやって行うのでしょうか。
ボタンを押したらnavigateするようにしているのですが、
ふと思ったらどちらのコントロールかを指定していないのに気づいて、
どうやって指定するのか検索するキーワードすら枯渇してしまいました。
0746デフォルトの名無しさん
2010/03/20(土) 15:03:09オブジェクトにアクセスする必要があるのなら、そのオブジェクトの参照を
握っておいたら?
さすがに頭悪すぎる質問じゃないの?
0747デフォルトの名無しさん
2010/03/20(土) 15:20:03はじめて間もないのでとんちんかんな質問だったようです。すいません
それぞれのタブページに追加したオブジェクトがあって、
それを取得できる何らかの方法があるのかと思ってました。
0748デフォルトの名無しさん
2010/03/20(土) 15:35:56型 'System.Object[]' のオブジェクトを型 'System.Windows.Forms.TreeNode[]' にキャストできません。
といわれ代入できません。
object型をtreeview型に変換すれば解決すると思うのですが、そんな方法ありますか?
それともarraylistを使わずに最初からtreeview型の配列を作った方がよいのでしょうか。
↓kategoriはarraylistです。
TreeView1.Nodes.AddRange(kategori.ToArray())
0749デフォルトの名無しさん
2010/03/20(土) 15:41:11List(Of TreeNode)ならToArrayすればTreeNodeの配列になる。
0750デフォルトの名無しさん
2010/03/20(土) 15:45:06arraylistは先ほど見つけてなんと便利なんだろうと思っていたのですが・・orz
ありがとうございました。list使います。
0751デフォルトの名無しさん
2010/03/20(土) 15:55:590752デフォルトの名無しさん
2010/03/20(土) 18:44:580753デフォルトの名無しさん
2010/03/21(日) 19:53:10クライアントの相対座標でキャプチャソフトを作ろうと考えていますが
親フォーム以外である
対象のフォーム名の取得方法にたどり着けません
ヒントで構わないのでご協力下さいませ
0754デフォルトの名無しさん
2010/03/21(日) 19:55:45普通にP/Invokeでウィンドウハンドル取ればいいような気が。
0755デフォルトの名無しさん
2010/03/21(日) 19:56:550756デフォルトの名無しさん
2010/03/21(日) 20:16:16フォームとはVBのコーディングの感覚で話していました
大変申し訳ありません 正式にはハンドルなんですね
ヒントありがとうございました
0757デフォルトの名無しさん
2010/03/21(日) 20:18:230758デフォルトの名無しさん
2010/03/22(月) 09:16:08非アクティブ時にも動かせるようにするアプリを作りたいのですが、
どういった勉強をすれば良いでしょうか?
具体的にどんなことかと言いますと、RPGツクールという製品で作ったゲームは
非アクティブになるとゲームが止まってしまいます
それを非アクティブでも操作できるようにしたいと思っています
0759デフォルトの名無しさん
2010/03/22(月) 09:28:03ということで、無理だろ。
0760デフォルトの名無しさん
2010/03/22(月) 09:28:080761デフォルトの名無しさん
2010/03/22(月) 09:46:120762デフォルトの名無しさん
2010/03/22(月) 10:53:29無理ですか、残念です
>>760
勉強してみます
>>761
厳しかとです・・
0763デフォルトの名無しさん
2010/03/22(月) 13:53:320764デフォルトの名無しさん
2010/03/22(月) 16:38:100765デフォルトの名無しさん
2010/03/22(月) 16:38:520766デフォルトの名無しさん
2010/03/22(月) 16:40:09もう何もかもが見当違いのアドバイスだな
0767デフォルトの名無しさん
2010/03/22(月) 17:02:430768デフォルトの名無しさん
2010/03/22(月) 17:05:08ツクール製のオンゲあるのか
知らんかったわ
まあBOTならそのうちBANされて終わりじゃないの?
0769デフォルトの名無しさん
2010/03/22(月) 17:55:220770762
2010/03/22(月) 19:35:42それを外部から触るには逆アセンブラで解析して・・という流れになりそうですね。諦めます
>>767 それはGetPixelとsendkeyで割と簡単に作れますね。画面を更新する必要も特に無いと思います。
>>769 ルシエルブルーというゲームは非アクティブにすると非同期になるわけではありませんが、画面が止まります。別サイト見ながらチャットするにはかなり不便です・・
こう書くとBOTを作っていると思われますね
0771デフォルトの名無しさん
2010/03/22(月) 19:37:060772デフォルトの名無しさん
2010/03/22(月) 19:39:14最近安いし
0773デフォルトの名無しさん
2010/03/22(月) 19:43:530774デフォルトの名無しさん
2010/03/22(月) 19:45:520775デフォルトの名無しさん
2010/03/22(月) 20:10:090776デフォルトの名無しさん
2010/03/23(火) 09:12:20通常のアプリとして製作し、タスクスケジューラにて起動するようにしています。
しかし、この場合にログオフ⇒ログオンとすると
アプリが終了した状態となってしまっています。
サービス化すれば解決するかと思うのですが、
アプリを改修することなく、このようなケースに対応することは可能でしょうか?
(ログオフしてもアプリが終了せず、起動中のままとなるようにしたい)
使用言語はVB.NET2005です。
利用環境はWindowsServer2003になります。
0777デフォルトの名無しさん
2010/03/23(火) 10:35:17entryserviceっていうソフト使ってそのアプリを
登録しとけば勝手にサービスになるよ
0778デフォルトの名無しさん
2010/03/24(水) 01:04:57よしもっと流行らせようぜ、VB2005+WinSever2003
0779デフォルトの名無しさん
2010/03/24(水) 17:37:21objStreamReader = New StreamReader(入力FileNameパス付き)
'一行読み込む
strLine = objStreamReader.ReadLine
的なことをして、ファイルを一行ずつ読んでいるのですが、
途中で一行戻ったりすることは可能ですか?
つまり、特定の文字列を一致する行を求めて、その行を含めてそれ以降の
ファイルを取りだしたいので、一行戻るという小細工ができれば
うれしいのですが。。。。。よろしく
0780デフォルトの名無しさん
2010/03/24(水) 17:50:030781デフォルトの名無しさん
2010/03/24(水) 17:53:02参考になるサイトとかありますか?
directxでフォームを使わないのが一般的でしょうか
0782デフォルトの名無しさん
2010/03/24(水) 17:54:340783デフォルトの名無しさん
2010/03/24(水) 18:12:390784デフォルトの名無しさん
2010/03/24(水) 22:15:36商品コード1、商品コード2、商品コード3・・・
といった項目を登録するようなプログラムを作っています。
「登録」のボタンを押した後、各項目についてフォーマットチェックを行い、
エラーがあった場合、メッセージを出力後、該当のセルにフォーカスさせたい
のですが、やり方がわからず困っています。
DataGridView自体にはフォーカスできるのですが、その中のセルについては
いつも決まったセル(例えば商品コード2)にしかフォーカスされません。
どうすれば好きなセルが選択された状態にできるでしょうか?
0785デフォルトの名無しさん
2010/03/24(水) 22:17:44CellValidatingとかRowValidatingとかでやれないの?
0786デフォルトの名無しさん
2010/03/24(水) 22:33:03http://dobon.net/vb/dotnet/datagridview/currentcell.html
0787デフォルトの名無しさん
2010/03/25(木) 09:33:47ああ、そうでした。
2年ぶりにVB.NETを使ったら、
そんなことすら思いつきませんでした。
0788デフォルトの名無しさん
2010/03/25(木) 23:06:04片方はpanelが上にくるのですが、片方はbuttonが上に来てしまいます
dockの設定の順番かと思ったのですが、これは何が原因で変わるのでしょうか?
と調べたら出てきました。Zオーダーですね。ありがとうございました。
0789デフォルトの名無しさん
2010/03/25(木) 23:08:090790デフォルトの名無しさん
2010/03/25(木) 23:39:32つーかそれが嫌ならスプリッターパネル
0791デフォルトの名無しさん
2010/03/26(金) 10:53:15を取りだしたいのですが、方法知っている人押してください。
0792デフォルトの名無しさん
2010/03/26(金) 11:00:150793デフォルトの名無しさん
2010/03/26(金) 14:16:28ありがとうございました。ググッたら出てきました。
Dim dpi As Graphics = Me.CreateGraphics
と宣言して、
dpi.DpiX
dpi.DpiY
で取りだしたら、両方ともに96でした。
ちなみに、このDpiXとDpiYは、いつも一致するのでしょうか?
たとえば、
dpi.DpiX=96
dpi.DpiY=100
なんていうことは絶対にありえないのでしょうか?
0794デフォルトの名無しさん
2010/03/26(金) 14:22:300795デフォルトの名無しさん
2010/03/26(金) 14:37:41でも画面のプロパティを開くと、DPI設定値は
ディフォルトで 96
ちょっと大き目で 120
などの、単一の値しか設定できませんが、もしDpiXとDpiYが必ずしも一致しない
ことがあるならば、画面のプロパティで設定できるDPIの値も、
DpiX
DpiY
のように二つの値を独立に設定できないとおかしいのではないのかなと
思ったりして、混乱しています。エキスパートの人、解説お願いします。
0796デフォルトの名無しさん
2010/03/26(金) 14:43:260797デフォルトの名無しさん
2010/03/26(金) 14:48:39解説ありがとうございます。
ということは、Yが表示されていないとしても、通常は、
DpiX=96 (こちらが表示されている)
DpiY=96
あたりがディフォルト値だと思いますが、それを、
DpiX=96
DpiY=120
とかに、もし独立して設定できるのなら、
Windowsの画面が横に伸びるんでしょうか?
そんなこと出来るのかな??
0798デフォルトの名無しさん
2010/03/26(金) 14:50:450799デフォルトの名無しさん
2010/03/26(金) 15:52:180800デフォルトの名無しさん
2010/03/26(金) 16:13:360801デフォルトの名無しさん
2010/03/26(金) 16:23:50取り敢えず記述するための言語は同じだな
0802デフォルトの名無しさん
2010/03/26(金) 16:25:43WPFっていうのは.NET Frameworkの新しいGUIフレームワークのことで
今までのSystem.Windows.Formsに代わるもの。
Silverlightは「配布しやすい」ことに重点を置いた.NET Frameworkの弟分。
.NET Compact Frameworkを発展的に置き換えるもの。
馬鹿でかい.NET Frameworkをインストールしなくても
非常に小さなランタイムをインストールするだけで動作する。
Macにも対応していて、ブラウザやポータブル端末でも動く。
で、SilverlightのGUIフレームワークはWPFに似せて作ってある。
0803デフォルトの名無しさん
2010/03/26(金) 21:22:39と
Dim S,S2,S3,S4 as string
どっちがいい?
0804デフォルトの名無しさん
2010/03/26(金) 21:25:26そんな意味のわからない変数名は付けない
それか配列にする
0805デフォルトの名無しさん
2010/03/26(金) 21:45:12Sを暗黙のS1と解釈する方が、まだ分かり易い。
0806デフォルトの名無しさん
2010/03/26(金) 21:54:37おれなら
Dim S0,S1,S2,S3 as string
または
Dim S1,S2,S3,S4 as string
にして
Dim S as string
は別の目的で使う。
0807デフォルトの名無しさん
2010/03/26(金) 22:30:530808デフォルトの名無しさん
2010/03/26(金) 22:32:06何かで書けるって見たような気がするのだけど
0809デフォルトの名無しさん
2010/03/26(金) 22:43:39C#では"以外はエスケープせずに何でもそのまま書ける逐語的文字列リテラルという機能がある
0810デフォルトの名無しさん
2010/03/26(金) 23:05:32文字列を
"" & _
でくくったり外したりするエディタのマクロ使ってるけど
VSにコーディング補助機能とかで付いてると良いのに
0811デフォルトの名無しさん
2010/03/26(金) 23:28:35まあ、いちいち文字列に適切な名前を付けるのをいとわなければ
リソースを使うのが簡単だと思う。
ただIDEのリソースエディタは複数行の文字列が見づらいんだよな。
0812デフォルトの名無しさん
2010/03/26(金) 23:41:53エディタで作ったSQLを" " & _でくくって貼るとか
他人のVBのソース内のSQLを試したい時とかに
" " & _ 外すのが。
0813デフォルトの名無しさん
2010/03/27(土) 05:36:590814デフォルトの名無しさん
2010/03/27(土) 07:15:03TabControlについて研究していますが、
たとえば、JaneStyleにあるようなタブコントロールだと、
タブを左クリックすれば、すぐにそのタブが選択されますが、
一般的な.netのTabControlで、JaneStyleのようなFlatButtonの場合ですが、
マウスの右ボタンを押下(DOWN)した状態で→軽くボタンが浮き上がる表示(この状態ではまだ選択という状態になっていません)
そして、
マウスの右ボタンを離した(UP)した状態で→ボタンが押された表示(この状態で、タブが選択されたという状態になります)
となるのですが、
http://ghardzatudan6.es.land.to/up/img-box/img20100327070642.jpg
Janeのように、マウスの右ボタンを押下(DOWN)した段階で、すぐに、そのタブが選択されるような処理をしたい
場合はどのようなコードを入れればいいのでしょうか?
Janeで実装できているのですから、VB.NETでも実装できないわけないと思い、調べていますが、
解決できません。
だれかご存知な方はいらっしゃいますか?
0815デフォルトの名無しさん
2010/03/27(土) 09:45:110816デフォルトの名無しさん
2010/03/27(土) 09:56:580817デフォルトの名無しさん
2010/03/27(土) 09:57:45ありがとうございます
解説サイトのサンプル見て、勘違いしちゃいました
0818デフォルトの名無しさん
2010/03/27(土) 10:05:36大方の行継続文字は不要になりそうだ。
0819デフォルトの名無しさん
2010/03/27(土) 10:10:390820デフォルトの名無しさん
2010/03/27(土) 10:47:34下記で外部プログラムを立ち上げるのですが、
一瞬コマンドプロンプトが表示されてしまいます。
どうすれば表示しないようにできますか?
System.Diagnostics.Process.Start("外部プログラム")
0821デフォルトの名無しさん
2010/03/27(土) 10:49:450822デフォルトの名無しさん
2010/03/27(土) 10:52:450823デフォルトの名無しさん
2010/03/27(土) 11:46:000824デフォルトの名無しさん
2010/03/27(土) 11:55:10listboxにアイテムを登録します。
そのデータを次回起動時に初期表示させたいので保持したいです。
でapplicationsettingsで持たせたかったのですがitemsの項目がなく困ってます。
iniファイルに保存くらいしか思い浮かばないのですがVBの機能で記憶してもらうのは無理でしょうか?
個々人が使うツールを想定しているのでDBに保存というのは考えてません。
0825デフォルトの名無しさん
2010/03/27(土) 12:18:32プロジェクトのプロパティ>設定で StringCollection でも使えば?
んでLoad辺りでDataSourceにMy.Settings.XXXXを設定する
要素の追加削除修正はMy.Settings.XXXXに対して行う
0826デフォルトの名無しさん
2010/03/27(土) 12:29:51コントロールのプロパティからでなくてもappって設定できたんですね
ただ、この場合データの保存はcsv形式になるんですかね
>要素の追加削除修正はMy.Settings.XXXXに対して行う
終了時にlistboxのアイテムをここに書き込むだけでいいかなと思ってるんですけど問題ありますかね
0827デフォルトの名無しさん
2010/03/27(土) 12:37:51まあそれ以前にDataSourceに設定したらItemsに追加はできないし
それにわざわざItemsに詰め直してたら保存するにも一々詰め戻さないとダメじゃないかめんどくさい
あらかじめMy.Settings.XXXXを操作しとけば後はSave呼ぶだけだぜ
0828デフォルトの名無しさん
2010/03/27(土) 13:24:02Clickonceが理解できません
express版にお勧めのインストーラ作成ソフトはなにがありますか?
ターゲットにframeworkから入れさせたいのですが
0829デフォルトの名無しさん
2010/03/27(土) 13:26:530830デフォルトの名無しさん
2010/03/27(土) 19:32:29配布したいのはVB 2008sp1で作ったソフトです。
PowerPackのDataRepeaterも使ってます。
dotNetFx3.5だけじゃだめだよね(多分)
0831デフォルトの名無しさん
2010/03/27(土) 19:36:210832デフォルトの名無しさん
2010/03/28(日) 11:02:17Downした段階で、強制的にUpイベントを呼び出すロジックを組めば良さけだけど
俺も方法しらん
ジェーンは、最初からDelphiのコンポーネントとして付いているコントロールを使っているだけだよ。
0833814
2010/03/28(日) 12:57:37Captureを外して(false)、その後、SelectedIndexに選択するインデックスを
設定すれば、ワンクリックで選択されるようになりました。
0834デフォルトの名無しさん
2010/03/28(日) 19:28:43パネルを宣言しろとエラーが出ます
文字列などの宣言方法は分かってますが予め用意されてるオブジェクトを宣言する方法が分かりません
よろしくお願いします
0835デフォルトの名無しさん
2010/03/28(日) 19:45:17Private p As Panel
とかでいいだろ。
0836デフォルトの名無しさん
2010/03/28(日) 19:53:360837デフォルトの名無しさん
2010/03/28(日) 20:01:48ありがとうございました
0838デフォルトの名無しさん
2010/03/29(月) 09:32:21同一テキストファイルに複数のプロセスから同時に書き込みを行うと
エラーとなってしまいます。
テキストファイルへの書き込みについて、
排他制御は行えますでしょうか?
0839デフォルトの名無しさん
2010/03/29(月) 09:46:250840デフォルトの名無しさん
2010/03/29(月) 13:31:392重に排他制御する必要あるのか?
発生した例外をどう処理するかが重要だと思うんだが
0841デフォルトの名無しさん
2010/03/29(月) 14:42:550842デフォルトの名無しさん
2010/03/29(月) 22:02:11例外とかで排他したいんじゃなくて、待ち合わせしたいって場合。
まあMutexが一番単純かな。
0843デフォルトの名無しさん
2010/03/29(月) 22:29:290844デフォルトの名無しさん
2010/03/30(火) 00:12:030845デフォルトの名無しさん
2010/03/30(火) 18:57:19知ってた?
0846デフォルトの名無しさん
2010/03/30(火) 19:37:300847デフォルトの名無しさん
2010/03/30(火) 22:25:570848デフォルトの名無しさん
2010/03/31(水) 00:28:43暗黙的にコミットされるわけがないだろうが
ADOとかODPとかの話ではないだろ
ましてやVB.NETも関係ない。つまりスレ違いだ
0849デフォルトの名無しさん
2010/03/31(水) 01:43:090850デフォルトの名無しさん
2010/03/31(水) 06:51:090851デフォルトの名無しさん
2010/03/31(水) 07:22:490852デフォルトの名無しさん
2010/03/31(水) 19:55:23複数のBitmapオブジェクトから動画ファイルを作成したいのですが、比較的容易な方法ってありますでしょうか?
出来れば動画の形式はAVIやWMV等、MS製品での使い勝手が良い物を作成したいです。
XPでVB2008Expressを使用してます。
調べてみると「Video for Windows APIしかない」と言った意見や
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?forum=7&topic=18879
「VfWは16Bit時代の物で入手出来ない情報もあるので、DirectShow等を使ったほうが良い」
http://homepage1.nifty.com/MADIA/vb/vb_bbs/200401/200401_04010125.html
と、言った意見があり混乱しています。
もしくは、DirectShow編集サービス(DES)を解り易く解説しているところはありませんでしょうか?
http://msdn.microsoft.com/ja-jp/library/cc370369.aspx
よろしくお願いします。
0853デフォルトの名無しさん
2010/04/02(金) 11:35:51考えていますが
VBでのコーディングするに辺り
windows7の32と64どっちがいいですか?
文献、資料は32系が多いので32にするのが無難そうですが
せっかくOSを載せ替えるなら
メモリが大量に積めるWIN64も捨てがたいのです
アドバイスをお願いします
0854デフォルトの名無しさん
2010/04/02(金) 11:39:12クライアント用途だと、動画編集とかしない限り、64ビット化の恩恵なんてないし。
0855デフォルトの名無しさん
2010/04/02(金) 11:39:3164BITはテスト環境だけだなぁ
今んところ64メインで創れとは言われることはないんで
基本32で作成して、64でも普通に動くことを確認する程度
まぁ、そんなにメモリをずっと食うことがないって話が前提なんだけど
0856デフォルトの名無しさん
2010/04/02(金) 11:39:420857デフォルトの名無しさん
2010/04/02(金) 12:10:084〜8Gの間は半端だな。
0858デフォルトの名無しさん
2010/04/02(金) 14:33:400859デフォルトの名無しさん
2010/04/02(金) 14:51:000860デフォルトの名無しさん
2010/04/02(金) 15:10:27x86のテストはVirtualPC上でやってる
0861デフォルトの名無しさん
2010/04/02(金) 17:05:270862デフォルトの名無しさん
2010/04/02(金) 19:57:37ASP.NETだけでいえば
ネット関係 [WebProg]にスレがあると思う
0863デフォルトの名無しさん
2010/04/04(日) 23:28:47考えていますが、どうすればタスクトレイに表示されているプログラムのプロセス名だけを
全て取得する事が出来ますか?
0864デフォルトの名無しさん
2010/04/04(日) 23:29:470865デフォルトの名無しさん
2010/04/04(日) 23:36:33複数のプログラムを起動している時に
毎回そのアプリを一つずつ閉じるのがメンドクサイので
纏めてプロセスを落としたいのです。
なんとか皆さんのお知恵を拝借願いたいです。
0866デフォルトの名無しさん
2010/04/04(日) 23:38:31あれは、単にShell_NotifyIconで登録してるだけだから、
Explorerしか情報持ってないだろうし。
0867デフォルトの名無しさん
2010/04/04(日) 23:48:20そして、そのハンドラ内で、例外が発生したメソッド名を
取得したいです。
で、UnhandledExceptionやThreadExceptionのEventArgsから取得した
例外オブジェクトからStackTraceを取り出したりしてみてるんですが、
例えば、
Button_Clickイベントハンドラ内でMethod1を呼び出し
Method1からMethod2を呼び出し、そこで例外が発生した場合、
StackTraceからButton_Clickは取り出せるんですが
例外の発生箇所であるMethod2の情報が取り出せず困っています。
発生箇所を取得する方法ってあるんでしょうか?
読みにくい文章ですいませんが、アドバイスよろしくお願いします
0868デフォルトの名無しさん
2010/04/04(日) 23:50:570869デフォルトの名無しさん
2010/04/04(日) 23:56:53VB2008で、Windowsフォームが多数あるアプリケーションを
作成しています。
後から、全てのWindowsフォームの背景色を一度に
付け替えるなければならなくなったのですが、
何か効率的な方法はありますでしょうか。
アドバイスの方、よろしくお願いします。
0870デフォルトの名無しさん
2010/04/05(月) 00:00:06残念です。と諦めかけたのですが
>>868さんが何か出来そうなことを話されているのですが具体的にはどうすれば良いのでしょか?
もし宜しければコードをお教えいただけませんか?
0871デフォルトの名無しさん
2010/04/05(月) 00:00:360872デフォルトの名無しさん
2010/04/05(月) 00:00:54どうみても>>867に対するレス
0873デフォルトの名無しさん
2010/04/05(月) 00:00:58お前さんへのレスじゃねーよ。
0874デフォルトの名無しさん
2010/04/05(月) 00:03:29Debugビルドで作った実行ファイルだと例外が発生したメソッド名を
StackFrameから取り出せるんですが、Releaseビルドだとできないみたいなんです。
なにかやり方間違ってるのかなー
0875デフォルトの名無しさん
2010/04/05(月) 00:06:56あー。それは無理。だってデバッグ用だから。
どうしてもやりたければ、関数の呼び出し履歴を自前のスタックに積んでくとかしかないでしょ。
もしくは、プロファイラ系のAPIを使えばいけるかもだけど。
0876デフォルトの名無しさん
2010/04/05(月) 00:46:34そうなんですね。簡単にはできないかんじですね><
なにか他に例外の発生箇所を特定する方法がないか
考えてみます。ありがとうございました。
0877デフォルトの名無しさん
2010/04/05(月) 01:12:34例外オブジェクトからは取得できないとかそんなことあるのかね。
ネイティブWin32アプリならともかく、.NETなんだから普通にできると思うけど。
0878デフォルトの名無しさん
2010/04/05(月) 12:29:080879デフォルトの名無しさん
2010/04/05(月) 21:51:13imageプロパティにイメージ貼ればいいというのは分かったのですが、
VSのcommon7の下にあるpngファイルが、一枚のイメージの中に大中小と
絵が入っていて、使いたいのは中だけなのです。
足りない頭で考えると
1.適当に欲しい部分だけ切り取ってリソースにする。
2.imageプロパティのサブプロパティで欲しい部分を座標で指定する。
かなあとおもいますけど、これって普通どういう風に使うんでしょう?
0880デフォルトの名無しさん
2010/04/05(月) 22:10:460881デフォルトの名無しさん
2010/04/05(月) 22:22:19したら、なんか慣習的に決まったやり方がある訳じゃないって感じでしょうか?
0882デフォルトの名無しさん
2010/04/05(月) 22:40:59あんまり慣習とかないんじゃないかなぁ。
0883デフォルトの名無しさん
2010/04/05(月) 22:53:50なる。納得でごわす。
0884デフォルトの名無しさん
2010/04/06(火) 14:56:48pngがよかったらicoを自動的に全部pngに変換したり
ほしい部分だけ切り出したりするようなツールを作ればいいだろ
何のためにプログラミングやってんの
0885デフォルトの名無しさん
2010/04/07(水) 13:52:13ドラッグして伸ばしたり形を変更したりしたいのですが
Graphics.DrawLines以外で線を引くのでしょうか?
教えてください。
0886デフォルトの名無しさん
2010/04/07(水) 14:14:32としか答えようがないな
ドラッグ中はマウスカーソルが動くたびにその座標を取得して描き直す
0888デフォルトの名無しさん
2010/04/07(水) 14:34:290889デフォルトの名無しさん
2010/04/07(水) 15:06:07線を表すオブジェクトなどは存在しません
線分の二端の座標を自分で管理しておいて、変化するたびに毎回描き直します
0891デフォルトの名無しさん
2010/04/07(水) 16:19:08その座標が線に含まれるか計算すればいいじゃん
ただある程度の幅見込まないと掴むの大変だろうけど
0892デフォルトの名無しさん
2010/04/07(水) 16:55:04クリックの1回目が起点、2回目が終点、3回目で中間点座標で調整、
みたいにクリック回数決めうちで、それ以降は修正不可って感じみたいね。
0893デフォルトの名無しさん
2010/04/07(水) 17:00:19ドラッグで起点と終点、2回目、3回目で調整か。
0895デフォルトの名無しさん
2010/04/07(水) 18:14:54graphicspathに太い線引いてisvisibleは?
…と思ったらブラシ使えないか…
じゃaddpolygonで
0896デフォルトの名無しさん
2010/04/07(水) 18:29:320897デフォルトの名無しさん
2010/04/07(水) 19:31:23Form1にデザイナで配置したDataGridViewの背景色を変更したいんですが
Module1から変更しようとするとオブジェクト参照がインスタンスされていません、みたいなメッセージが出ます
どうすればいいのでしょうか?
0898885
2010/04/07(水) 19:48:440899デフォルトの名無しさん
2010/04/07(水) 20:44:13ぴったりの開発環境があるよ
つ VisualStudio6.0
0900デフォルトの名無しさん
2010/04/07(水) 22:59:01そこをなんとか
0901デフォルトの名無しさん
2010/04/07(水) 23:05:160902デフォルトの名無しさん
2010/04/09(金) 10:38:000903デフォルトの名無しさん
2010/04/09(金) 11:58:21そこをなんとか
0904デフォルトの名無しさん
2010/04/09(金) 12:21:330905デフォルトの名無しさん
2010/04/09(金) 12:50:32Form1.DataGridView.BackColor
とかでできなかったっけ?
でもモジュールは早めに卒業した方がいいっぽい
0906デフォルトの名無しさん
2010/04/09(金) 13:44:12どうせForm1のインスタンスが無いってパターンだろうけど
>>897
エラー箇所でブレークポイント設定して
中身を見てみれば何かが「Nothing」になっているはず
その何かのインスタンスを作成すればOK
0907デフォルトの名無しさん
2010/04/09(金) 16:40:07中のコントロール動かないのは回避方法ある?
0908デフォルトの名無しさん
2010/04/09(金) 22:20:57ClassにしてSharedにするの?
0909デフォルトの名無しさん
2010/04/10(土) 00:25:07というのが一つのやり方かな。
0910905
2010/04/10(土) 00:27:45別のClass1の中で
Public Sub ex1(ByVal tb As TextBox)
tb.Text = "ABC"
End Sub
FormのClassの中のイベントで
Dim cl As New Class1
cl.ex1(TextBox1)
みたいな感じで汎用的に使えるクラスを作ってる。
0911デフォルトの名無しさん
2010/04/10(土) 01:27:23真面目な話、意味あるのかそんなの。
そんなものが正しい方向なわけが全くないよ。
これも真面目な話、フォームが持ってるコントロールをフォームの外部のクラスなり
モジュールなりからから触りたい、なんて思う人はプログラマ向いてないよ根本的に。
0912デフォルトの名無しさん
2010/04/10(土) 01:53:20まあ>>910がいいかとは別の話だが。
0913デフォルトの名無しさん
2010/04/10(土) 04:10:450914デフォルトの名無しさん
2010/04/10(土) 09:03:00俺も
複数列コンボのデータソース設定する時とか
似た様なコントロールが複数のフォームに点在してる時とか
その方法使ってる
0915デフォルトの名無しさん
2010/04/10(土) 11:56:23そんな馬鹿自慢をしてどうするよ。
>複数列コンボのデータソース設定する時とか
そんなコードはフォーム自身に書いてください。
別のクラスに分けて複雑性を増やしてどうするんだよ。
>似た様なコントロールが複数のフォームに点在してる時とか
そういう場合はイベントを使う。
フォームはデータを持っているクラスからイベントを受信して自分の持ってる
コントロールを更新する。
0916デフォルトの名無しさん
2010/04/10(土) 12:11:110917デフォルトの名無しさん
2010/04/10(土) 12:37:29> そんなコードはフォーム自身に書いてください。
> 別のクラスに分けて複雑性を増やしてどうするんだよ。
フォーム自身に書いてたら修正の時に大変だろ
30個フォームがあったら全部修正するハメになるぞ
別のクラスで持っていれば1ヶ所修正するだけで済む
0918デフォルトの名無しさん
2010/04/10(土) 13:19:43日本語読めてる?
0919デフォルトの名無しさん
2010/04/10(土) 13:47:52どっちもレベルが低いな
ハイレベルで高貴な私はパチンコに行って来る
0920デフォルトの名無しさん
2010/04/10(土) 15:58:27>そういう場合はイベントを使う。
>フォームはデータを持っているクラスからイベントを受信して自分の持ってる
>コントロールを更新する。
横からすいません、煽りとかでは全くなく、純然たる初心者からの質問ですが
ぱっと見だと>>917の方が便利じゃないかと思ってしまいました
ていうかそのイベントを使ってどういう処理にすればいいのかイメージできませんでした
具体的にどんな設計にすればいいのか教えていただけませんでしょうか
0921デフォルトの名無しさん
2010/04/10(土) 17:06:17引用してる箇所と>>917の話は直接は関係しないと思うけどさ。
とにかく、元の質問(>>897)に沿った話の肝は、コントロールの所有者(つまりフォーム)
以外のオブジェクトがコントロールを直接操作する、なんていう作り方は特別な理由がない限り
普通はまずしないってこと。
その理由は、コントロールを制御する責任を誰が負っているのか明確にするため。
複数のコントロールを制御するロジックを、複数のフォームで再利用したいとか、
よりコードの見通しをよくしたいといった理由でクラスにまとめたい場合は、
せっかく.NETにはユーザーコントロール(複合コントロール)を作る仕組みがあるんだから
それを使ってよ。
0922914
2010/04/10(土) 18:11:53> そんな馬鹿自慢をしてどうするよ。
自分以外の変わったコード書く奴を見下すのも大いに結構だけどよ
いきなりバカ呼ばわりする奴もどうかと思うぜ
0923デフォルトの名無しさん
2010/04/10(土) 19:32:38とりあえず、コントロールはその所有者のフォーム以外から操作しないほうがいい
Windowsのコントロールってそういうものだと覚えておいたほうがいい
0924デフォルトの名無しさん
2010/04/10(土) 20:08:245種類の伝票のうちの1つをユーザが選択したとき、その明細データ(最大100件)を
表示するListViewを作りたいと考えています。
ポイントは以下のとおりです。
1.伝票毎に項目名が異なる→表の項目名表示を伝票に合わせて変える必要がある
2.同様に伝票毎明細の各列のAlign(左・中・右)が異なる
まず、1.については、DataBoundイベントで動的に項目名称を設定しました。
問題は、2.ですが、どのようにAlign設定したらよいでしょうか?
ListViewの該当箇所(ItemTemlate)は以下のとおりです。
<ItemTemplate>
<tr>
<td><%#Eval("fld1")%></td>
<td><%#Eval("fld2")%></td>
中略
<td><%#Eval("fld30")%></td>
</tr>
<tr>
<td colspan="4"><%#Eval("fld0")%></td>
</tr>
</ItemTemplate>
0925924
2010/04/10(土) 20:13:38ListViewにバインドするデータのSELECT文で、
SELECT '<div align=right'||fld2||'</div> as fld2x 〜
として、<%#Eval("fld2x")%> とする方法です。
このSELECT文を5種類の伝票に合わせて5つ用意しておきます。
この方法以外に何かありますか?
0926デフォルトの名無しさん
2010/04/10(土) 20:37:320927デフォルトの名無しさん
2010/04/10(土) 20:45:35俺はバインド使わんから、コードでテーブル(スタイル)生成しちゃうけど。
0928デフォルトの名無しさん
2010/04/10(土) 21:05:33「フォーム以外」だからダメなんだろうな。
0929デフォルトの名無しさん
2010/04/10(土) 21:08:10適当な別クラスに作る(別クラスって言ってもユーティリティ的な機能を切り出すだけだが)
ってのは別に普通。
そのために複合コントロールなんて使いようがないし、
イベント使っても意味ないし。
0930デフォルトの名無しさん
2010/04/10(土) 21:09:15コントロール単位で操作をカスタマイズしたい場合は拡張プロバイダ。
0931デフォルトの名無しさん
2010/04/10(土) 21:41:03これを訂正、修正する方法ってありますかね?
一度別の関数をかませて引数の順番をかえればいいのでしょうが、なんか回りくどい気がします
良い方法合ったら教えてください
0932デフォルトの名無しさん
2010/04/10(土) 21:42:230933デフォルトの名無しさん
2010/04/10(土) 21:45:100934デフォルトの名無しさん
2010/04/10(土) 21:47:52全然普通じゃないしそんなの。
単に継承が理解できないからカスタムコントロールが作れないだけじゃないの?w
0935デフォルトの名無しさん
2010/04/10(土) 21:49:110936デフォルトの名無しさん
2010/04/10(土) 21:52:380937デフォルトの名無しさん
2010/04/10(土) 21:53:380938デフォルトの名無しさん
2010/04/10(土) 21:56:510939デフォルトの名無しさん
2010/04/10(土) 22:05:55言うならいいんだけど、単に継承そのものがわかんないお方がそれをいうのは
いかにもVB厨的ではある。
「便利なものは便利に(以下略」って、お前便利だかその方法使ってるんじゃなくて
それしか出来ねえだけじゃん、っていうw
少なくともコントロールの機能拡張みたいなものは>>929が言ってるような方法で
普通はやらない。
コントロールの機能拡張ってのは多くの場合トッピング的に複数を組み合わせることが
難しいし、だいいちコードの可読性を捨ててまでそんなことしたい場面なんかほとんどないし。
0940デフォルトの名無しさん
2010/04/10(土) 22:14:40割と便利だよ
ただあんまりやらないと思うけど
0941デフォルトの名無しさん
2010/04/10(土) 23:10:19項目名ちがうってすでに別物だし
俺ならはじめからListView5個用意しといて、選択されたものだけ表示する
テンプレートを動的にゴニョゴニョしてもできなくはないと思うが
めんどいので俺ならやらない
0942デフォルトの名無しさん
2010/04/11(日) 00:09:28ところでいつからコントロールの拡張の話になったんだい?
0943デフォルトの名無しさん
2010/04/11(日) 00:12:51>言うならいいんだけど、単に継承そのものがわかんないお方がそれをいうのは
>いかにもVB厨的ではある。
継承すら分からんあほが拡張プロバイダとか使えるかよ…
0944デフォルトの名無しさん
2010/04/11(日) 00:13:50>それしか出来ねえだけじゃん、っていうw
まさに継承だよな。
0945デフォルトの名無しさん
2010/04/11(日) 00:22:22これを実現するなら別に専用のクラスを作るかユーティリティ的なメソッドをどこかに作るか、
もし場合によっては除外したいコントロールがあり得るなら拡張プロバイダに実装する。
継承とかフォーム自信に実装なんてあり得ん。
イベントも復号コントロールもあり得ん。
フォーム自身だけEnabled=Falseにしたらいいじゃんてのはナシな、
単に一例なだけだし、実際それでは駄目なこともあるから。
0946デフォルトの名無しさん
2010/04/11(日) 00:26:23あえて継承を使う場合はあるが、最初に最も慎重に判断するのが、まず継承を使ってもいいのかどうかってところ。
0947デフォルトの名無しさん
2010/04/11(日) 00:34:47>>929
に対しての
>>934
は意味不明。
操作する可能性のあるコントロール全部継承するって正気かよって話。
0948デフォルトの名無しさん
2010/04/11(日) 01:38:45そんな実用的に意味のない例出しても仕方がないと思うけど。
そもそも何だよユーティリティー的な操作って。
君が自分で言ってるように、Form(コンテナ)のEnabledをいじれば済むことを
わざわざ愚直に全てのコントロールを再帰的に辿ってEnabledを設定するようなコードのこと?w
まあ、上のはただの煽りだけど、>>921で「特別な理由がない限り」と書いたように
確かに>>945の言う「ユーティリティ的なメソッド」が必要になる場合がないとまではいえない。
具体例を挙げると、メインメニューの項目を一時的にコンテクストメニューに
移すメソッドとかね。
ただ、こんなのは非常に例外的な稀なケースで、
こんなふうにコントロール(ToolStrip系はコントロールじゃないけどさw)
の参照を外部に渡していじらせる、なんてことは普通はしない。
というか、だからそもそものこの話題の始まりである>>897はそういうことを言ってるのかと。
明らかに違うでしょ。
0949デフォルトの名無しさん
2010/04/11(日) 02:03:48.Netは捨ててネイティブC++で開発するしかない?
生産性を犠牲にしてまでもソースコードの盗難防止に力を注ぐべきか。
0950デフォルトの名無しさん
2010/04/11(日) 02:29:50>君が自分で言ってるように、Form(コンテナ)のEnabledをいじれば済むことを
>わざわざ愚直に全てのコントロールを再帰的に辿ってEnabledを設定するようなコードのこと?w
それで済まない事があるってわざわざ書いたのに、ってかやってみれば違いが分かるだろ。
明らかに動作が違って、フォームではなく子コントロールで設定することに意味があるんだよ。
まああくまで一例で書いただけだけどな。
>まあ、上のはただの煽りだけど、>>921で「特別な理由がない限り」と書いたように
>確かに>>945の言う「ユーティリティ的なメソッド」が必要になる場合がないとまではいえない。
だから>>929では最初からそういう話をしていて、ユーティリティ的な機能をって限定的な話してるのに、
>>934みたいな反応しといて笑わせんな。
>ただ、こんなのは非常に例外的な稀なケースで、
>こんなふうにコントロール(ToolStrip系はコントロールじゃないけどさw)
>の参照を外部に渡していじらせる、なんてことは普通はしない。
お前にとってはユーティリティ的な操作は普通じゃないということは分かった。
別に普通にそういうことをすることもあると俺は言ってる。
>というか、だからそもそものこの話題の始まりである>>897はそういうことを言ってるのかと。
言ってないよ、俺は>>929から書いただけだから。
でもお前は>>929に対して>>934な反応してるんだ。
だから突っ込んだんだけ。
ていうか真面目な話、横断的にコントロールを扱うことって結構あると思うが、
全然そんな場面がないわけ?
0951デフォルトの名無しさん
2010/04/11(日) 02:32:170952デフォルトの名無しさん
2010/04/11(日) 02:42:18お前はどう実装するんだ?
Formに直接そういうコードを書くのか?
継承してカスタムコントロールにするのか?
俺はそんなことはしない。
0953デフォルトの名無しさん
2010/04/11(日) 02:45:41設計の方針の問題で、やりたいように実装すればいいだけの話
システム規模とか全体の設計とか作成する技術者のスキルとか考慮しないでどっちがいいとか
そんな話はただの宗教論だ
まあ、とかく他人のやり方が自分と違うと許せない人が多いんだな
これ以上は別にスレ立てるかなんかしてやってくれ
0954デフォルトの名無しさん
2010/04/11(日) 03:41:190955デフォルトの名無しさん
2010/04/11(日) 05:52:20どうするの?
0956924
2010/04/11(日) 06:31:56ありがとうございます。
実はそれも試したのですが、必要の無いListViewをVisible=Falseに
設定してもその場所に空間ができて画面が不恰好になってしまうのです。
0957デフォルトの名無しさん
2010/04/11(日) 11:35:18今試せないが、それはhtmlのスタイルの問題だと思うが
少なくとも今までのコントロールはVisble=Falseだとそこには何もレンダリングしない
だからその後ろの要素をちゃんと詰めるように指定しておけば空間が開いたりしないはず
0958デフォルトの名無しさん
2010/04/11(日) 12:03:02えーっと、まず前提として変なアプリを作るがそこは否定するなよ。あくまで一例だからな(俺が昔気が触れて作ったものだ)
operaのようなMDIのブラウザを作るときに、どうしてもあれをtextboxで実現したい!
という時に、ユーティリティー的な操作+継承をすれば解決。
継承はtextboxクラスにURL(string)や前回更新時間(date)などを登録してた気がする。
ユーティリティー的な操作を具体的に言うと、まずArrayListにtextboxをaddする。Dim vu As New ArrayListとする。
そして必要に応じて For Each xxxxx In vuのようにし、ブラウザ替わりのtextboxだけに処理させるというもの
場合によっては必要な人もいるんじゃないか
0959デフォルトの名無しさん
2010/04/11(日) 12:05:430960デフォルトの名無しさん
2010/04/11(日) 12:07:52アプリケーションの本質的な動作じゃないか
0961デフォルトの名無しさん
2010/04/11(日) 12:11:00アセンブラでおk
0962デフォルトの名無しさん
2010/04/11(日) 12:32:47継承使う必要ない
TextBoxやURLや前回更新時間を保持するクラスを作るほうが素直
0963デフォルトの名無しさん
2010/04/11(日) 13:19:02そんなのはカスタムコントロールにするのが第一選択で、次がFormにベタに書く方法。
そんなものを実現するために別のクラスにTextBoxの参照を渡す、などは愚の骨頂だと思う。
一体どこに自分も自分の所有者でもない第三者を登場させて話を複雑にさせる合理性があるのかさっぱりわからない。
君は根本的にOOP的な思考ができないんじゃないの?
>>958
言ってる意味がわからない。
どうしてTextBoxの所有者であるMDI子ウィンドウではなく、それとは別にTextBoxだけを
集約したオブジェクトを用意する必要があるのか。
0964デフォルトの名無しさん
2010/04/11(日) 13:27:20そういう考え方してるといつまでたっても大きなプログラムが書けるようにならないよ。
コントロールにちょっとした付加機能を付け加えるだけの訳のわからんクラスが
登場するようなアホなコードなんか、規模が大きくなると書いてる本人だって
訳がわからなくなる。
「えーとこのTextBoxは一体全体どうしてこんな振る舞いをするんだ?」と
思っても、TextBoxはカスタムコントロールでもなければ、所有者(Form)がイベントを
捕捉して制御してるわけでもないんだから。
その振る舞いを解明するには、そのTextBoxの参照を握ってる別のオブジェクトによって実現されているんだ、
ということを発見する必要がある。
そんなパズルみたいなコード読んでられっかよここのお馬鹿さんどもは。
0965デフォルトの名無しさん
2010/04/11(日) 13:39:31すごいですね。
0966デフォルトの名無しさん
2010/04/11(日) 13:47:52昨日から見てるけどさ
いい加減鬱陶しい
そろそろ、よそでやれ
ここはVBスレで皆まったりやって来てんだよ
上から目線で俺スゲーしたいならC#スレでも行って思う存分暴れてこい
0967デフォルトの名無しさん
2010/04/11(日) 13:52:13なんで「論争」の片方の当事者だけにそういうこと言うわけ?
まあ、騙るに落ちてるなw
0968デフォルトの名無しさん
2010/04/11(日) 13:56:55>> 910くらいから読み直して来い
どいつが原因なのか良く分かるから
0969デフォルトの名無しさん
2010/04/11(日) 14:11:07これでいいな。
0970デフォルトの名無しさん
2010/04/11(日) 14:12:41>>919,926,966,968 が俺
昨日パチンコ行く前にくだらねぇレス付け合ってる奴らがいるなぁと思って
それで、負けて帰って来たら、まだやってんのかよ
で、今日になってもまだやってるしよ
いいかVBスレはな
> クラスってなんですか〜?
> インスタンスってどうやって使うの?
こうゆうまったりした流れなんだよ
これからまたパチンコだ
帰って来るまでには、いつもの流れになってる事を期待する!
0971953
2010/04/11(日) 14:19:48これ以上やりたいならよそでやってください
OOPの設計に関して議論するスレでも立てたら?
そこでならある程度お前の意見に同意してやるが
多人数のプログラマでシステム作成してるときに交じってほしくないタイプだな
0972デフォルトの名無しさん
2010/04/11(日) 15:38:51せっかくの休みなのに朝鮮ゲームとかw
0973デフォルトの名無しさん
2010/04/11(日) 17:31:190974デフォルトの名無しさん
2010/04/11(日) 17:44:09あなたは配列やカプセル化などちゃんと使ってますか?
0975デフォルトの名無しさん
2010/04/11(日) 19:08:230976デフォルトの名無しさん
2010/04/11(日) 19:35:310977デフォルトの名無しさん
2010/04/11(日) 19:36:470978デフォルトの名無しさん
2010/04/11(日) 19:41:42オブジェクトの開放にはNothingを代入するって聞いたのてすが、
明示的にNothingを入れなくても、参照している変数がなければ、
ガベージコレクタが、適当なタイミングで開放してくれますか?
' あまり良い例ではありませんが
Dim A As Object = New myClass1
… ' 何らかの操作
A = Nothing ' ← 必要ですか?
A = New myClass2
… ' 何らかの操作
A = Nothing
0979デフォルトの名無しさん
2010/04/11(日) 19:44:03>オブジェクトの開放にはNothingを代入する
そもそもこれが間違ってます
.NETではNothingを代入するのはほとんどの場合意味がありません
使わなくなったらほっとけばGCに回収されます
0980デフォルトの名無しさん
2010/04/11(日) 19:51:06どういう場合で意味があるんですか?
0981978
2010/04/11(日) 19:52:57ありがとうございます。
つまり、参照元がなくなったオブジェクトは、
適当なタイミングでGCに回収されるから、
参照が終わったらNothingを代入するとかは必要ないんですね。
0982デフォルトの名無しさん
2010/04/11(日) 19:54:31インスタンスAがフィールドとしてインスタンスBへの参照を持ってて
Aはまだ使うけどBはもういらない場合、Nothingを代入すればBをGC対象にできる
0983デフォルトの名無しさん
2010/04/11(日) 20:01:300984デフォルトの名無しさん
2010/04/11(日) 20:09:280985デフォルトの名無しさん
2010/04/11(日) 20:10:44VB的には、WithEvents付きの変数の場合は特に意味があるね。
というか、FormのフィールドをWithEvents付きにした場合でかつ
イベントハンドラでForm上のコントロールを弄ってる場合は(ほとんどの場合そうだと思うけど)
FormClosedとかでNothing入れておかないとまずいケースもある。
0986デフォルトの名無しさん
2010/04/11(日) 20:41:26ほとんどの場合、イベントハンドラはフォームのメソッドだろうし。
どっちかっていうとほとんどの場合はまずくないと思うが…
0987デフォルトの名無しさん
2010/04/11(日) 20:44:23現実にはそれで引っかかることって、普通に作ってればあまりないような気もするのよね。
0988デフォルトの名無しさん
2010/04/11(日) 20:50:47普通はフォームとコントロールの寿命は一致するから問題ない
0989デフォルトの名無しさん
2010/04/11(日) 21:00:17それは.NETの世界ではその通りなんだが、
コントロールみたいにWin32の世界ではそうじゃない。
現実問題、ハンドルが破棄されたコントロールを操作することになって例外が発生する場合がある。
0990デフォルトの名無しさん
2010/04/11(日) 21:04:56Sharedイベントに登録したイベントハンドラの外し忘れ
参照を掴みっぱなしになるからNothingを代入しようが関係なく確実にメモリリークする
0991デフォルトの名無しさん
2010/04/11(日) 21:14:24でもさ、フォームを閉じた後に、ハンドルが必要になるような操作を行うようなイベントが発行されるような操作を、
コントロールに対して行うことって普通あるかな?
そして、あったとして、それはコントロールにNothngを代入することでかいけつするような問題かな?
ってとこなんだよね。
むしろ問題があるなら、ハンドラ側で調整すべきな気もする。
0992デフォルトの名無しさん
2010/04/11(日) 21:19:43それさ、確かに盲点的で気づきにくいのは確かなんだけどさ、
そこで問題になるほどリークが発生するような状態になることって
少ないと思うんだよね。
まず、静的イベントに大量に登録するのは、普通に組んでてやることって少ないと思うんだよね。
んで、イベントに登録するのは多くないけど、その登録される一個のオブジェクトが巨大だとか、
そういうことはあり得るけども、大量データを持ちつつ静的イベントに登録するなんてのは、
元々寿命が長いオブジェクトな事が多い気がするんだよね。
となると、後は大量データとかをメンバに保持しながら、静的イベントに登録して、
すぐに不要になるオブジェクトとかなんだけど、そういうのって普通に作ってるとあまりない気がする。
0993デフォルトの名無しさん
2010/04/11(日) 21:31:18拡張プロバイダとかならそんなことにはならないよってかならないように作るわな、当たり前。
ToolTipが表示されたとき、このテキストボックスはなんでこんな動作をするんだ、
カスタムコントロールでもないのに、どこで制御してるんだ、発見できない、なんてことにはならないだろ?
まあ全選択状態にするとかはテキストボックス系のコントロールに限った話になるが、
要はいろんなコントロールに対して横断的な処理を行いたいとき、コントロールを拡張するって方法だと、
使うコントロールをみんな拡張する必要がある、そんなのはあまり好ましくないってこともある。
拡張した各コントロールでそれぞれそういう処理を書くことになるんだぜ?
だってまとめてどっかに書いたら、それはつまりユーティリティ的な機能を作るってことだからな、それはだめなんだろ?
0994デフォルトの名無しさん
2010/04/11(日) 21:34:26クラスを拡張して各クラスに書くってのは、もはや一般的にもあまり推奨されないやり方になってる。
0995デフォルトの名無しさん
2010/04/11(日) 21:37:25静的イベントに限らないよ
メインフォームにサブフォームのイベントハンドラを登録したりすれば同じ
0996デフォルトの名無しさん
2010/04/11(日) 21:41:29>メインフォームにサブフォームのイベントハンドラを登録したりすれば同じ
これも確かにそうなんだけど、普通気づくんじゃないかなって気がする。
いや、気づかんかなー
0997デフォルトの名無しさん
2010/04/11(日) 21:43:170998デフォルトの名無しさん
2010/04/11(日) 21:50:180999デフォルトの名無しさん
2010/04/11(日) 21:50:33わかってなくても一つ覚えでこうすれば問題無いというような話じゃないんで
1000デフォルトの名無しさん
2010/04/11(日) 21:50:33イベントハンドラも追加したら必ず削除しろってことでOK?
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。