トップページ⇒tech
1001コメント310KB

C++Builder相談室 Part13

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん05/02/15 20:58:38
C++Builderに関する質問・回答や議論等を行う相談室スレッド。

過去スレ・関連サイトは>>2-6あたり。
0232デフォルトの名無しさん05/03/10 18:15:08
>>231
ノ
Borland に電話して復活させなきゃならん。
回数は教えてくれなかったけど、10-20 回ぐらいでそうなるみたい。
0233デフォルトの名無しさん05/03/10 18:47:36
C++Builderに移行したてでちょっと困っています
MessageDlg("Confirm", mtConfirmation, mbYesNo, 0);
でデフォルトボタンをmbYesにしたいのですが
指定の仕方を教えていただけないでしょうか
0234デフォルトの名無しさん05/03/10 18:57:29
>>233
API呼んだ方が楽な気が‥‥
MessageBox(Form1->Handle, "Confirm", Application->Title.c_str(), MB_ICONQUESTION | MB_YESNO | MB_DEFBUTTON1);
0235本田05/03/10 23:26:46
>>210

>http://www.geocities.co.jp/SiliconValley/4805/bcbtips/bcbtips047.htm
>上記を参照しながら、mdbファイルを作れるソフトを作ろうとしているのですが、
>mdb-テーブル-フィールドのプロパティ設定で、
>DisplayControl・Descriptionその他省略されているプロパティを
>CreatePropertyを使ってC++Builder(Ver5PRO)から作成・設定できるのでしょうか?
> 上手く出来なくていきづまってます。

上の例はDAO3.5の例だけど、
DAO3.6のヘルプでは、こうなっている。

DisplayControlの説明は、検索しても出て来ない。

dao360.chm の記述。
>Description Property
>Returns a descriptive string associated with an error.
>This is the default property for the Error object.
>
>Return Values
>The return value is a String data type that describes the error.
>
>Remarks
>The Description property comprises a short description of the error.
>Use this property to alert the user about an error that you cannot or do not want to handle.

DAO3.6の先にある、JET4.0 DBエンジンのヘルプは見つけられなかった。
0236デフォルトの名無しさん05/03/11 00:01:31
すみません。Builder5です。

TRect Waku1,Waku2;

Waku1.Left=0;
Waku1.Right=1023;
Waku1.Top=0;
Waku1.Bottom=0;

Waku2.Left=0;
Waku2.Right=1023;
Waku2.Top=10;
Waku2.Bottom=10;

Canvas->CopyRect(Waku2,Canvas,Waku1);
Canvas->Refresh();
Application->ProcessMessages();

のようなことをやって、0ライン目を10ライン目にコピーしようとしたが、できません。
(本当は違うCanvas間でやったのですが、簡単のためこうします)
Waku1やWaku2を使って実験のためFillRectすると、ラインが塗りつぶされません。
これは、CopyRectやFillRectは、Rectで指定した「フチ」は処理に含まれない、という
ことなのでしょうか。Rectを使うあらゆる処理は「フチ」を含まないのですか。
はじっこを処理するときはマイナスの値を指定すればよいのでしょうか。
0237デフォルトの名無しさん05/03/11 00:40:32
>>236
フチというか右端と下端が含まれない。左端と上端は含まれるからマイナスは指定しない。
0238デフォルトの名無しさん05/03/11 12:20:47
BCB_6_Proを新しいPCにインストールし直したいのですが
ライセンスの手続きとかはどうすればよろしいでしょうか
メールかFAXで申請が必要ですか?
0239デフォルトの名無しさん05/03/11 12:23:18
>>238
ネット接続環境あるなら普通にできるだろ
0240デフォルトの名無しさん05/03/11 14:15:07
>>238 まずおまいが池w

0241デフォルトの名無しさん05/03/11 14:42:15
>>240
レスするなよ消えろ
0242デフォルトの名無しさん05/03/11 23:44:47
レジストリをごっそり持っていったら動くんじゃない
0243デフォルトの名無しさん05/03/11 23:57:39
ってかオレも使用許諾コードの取得ではじかれるようになったが
そのまま放ってある。
普通に使えてるんだが、これ、そのうち動かなくなるのかいな?
0244デフォルトの名無しさん05/03/12 00:33:26
俺2年以上使用許諾取らずに使ってるから大丈夫だと思う
0245デフォルトの名無しさん05/03/12 03:41:00
コンポーネント少なくないのか?
0246デフォルトの名無しさん05/03/12 05:13:52
ボーランドがつぶれたら使用許諾も取得できなくなるのだろうか?
新バージョンが出たら旧バージョンのは使用許諾を取得しなくても使えるようなパッチを出してほしいものである。

っていうか早く新バージョン出せ!!
0247デフォルトの名無しさん05/03/12 11:45:05
C++ Builder 6 Enterprise が
印刷マニュアルなしで 20万円ちょっとらしいんですけど
買うべきですか?
0248デフォルトの名無しさん05/03/12 11:50:07
コードガードだけはほすいが・・・
0249デフォルトの名無しさん05/03/12 12:08:44
そういやコードガードON(オプション全部ON)にすると、sscanf関数が失敗したら一回一回警告されるんですが
どうにかならないんでしょうか・・・
sscanf(buf,"%d",&i);
で bufが数値じゃなかったらコードガードが警告してきます。
sscanfの戻り値とか i の値等でちゃんと取得できたか判断しているのですが
0250デフォルトの名無しさん05/03/12 12:53:29
>>249
bufが溢れてる可能性はないの?
0251デフォルトの名無しさん05/03/12 13:09:16
>>250
実際のコードは AnsiString型の str を
sscanf(str.c_str(),"%d",&i); としています。
ためしに sscanf("a","%d",&i); としてみたのですが、これでもダメみたいです。
0252249 25105/03/12 13:15:14
自己レス
なんか何もしてないはずなのに警告でなくなりました
お騒がせしました
0253デフォルトの名無しさん05/03/14 10:03:45
「ALT+TAB」を用いたアプリケーションの切り替えで,
なぜか「ALT+TAB」を2回押さないとアプリの切り替えが出来ません。
これ普通ですか?
どっか設定しないと駄目ですか?
0254デフォルトの名無しさん05/03/14 11:09:58
>>253
それはプログラムの話じゃないだろ。
0255デフォルトの名無しさん05/03/14 11:48:23
プログラムでキーを送ってんだよカスが
0256デフォルトの名無しさん05/03/14 11:54:31
>>254
C++Builderで生成したexeだけがそうなるのですが、
ウインドウズの設定問題でしたか。
すみません。
0257デフォルトの名無しさん05/03/14 12:40:41
OSぐらい書けよ。
0258デフォルトの名無しさん05/03/15 12:33:03
 
0259デフォルトの名無しさん05/03/15 12:52:32
OSなんてわたしには難しすぎて書けません
0260デフォルトの名無しさん05/03/15 13:08:14
>>259
当たり前だハゲ。
0261デフォルトの名無しさん05/03/15 23:09:54
 
0262デフォルトの名無しさん05/03/16 13:19:20
VC++Expressβ使ってみたけど
やっぱなじめん

BCBに洗脳されてるのかねえ 俺
しかしエディタでクラスやメソッドがたためるのは便利だった
つーか統合環境でもいいから いい加減次のバージョン出してくれ
0263ミ,,゚Д゚彡 ◆A6VzDeLphI 05/03/16 22:02:27
も、すこし待つよろし。
0264デフォルトの名無しさん05/03/18 04:37:27
FormのKeyDownでファンクションキーで操作しようとやっているのですが、
F10がコントロールメニューにもフォーカス(?)が行ってしまい動作が停止してしまいます
コントロールメニューにフォーカスが入らないようにできませんでしょうか?
0265デフォルトの名無しさん05/03/18 05:47:18
CreateGameー陸海空オンラインー
http://www112.sakura.ne.jp/~kaientai-project/creategame.htm
2chスレ
http://game10.2ch.net/test/read.cgi/mmominor/1109935948/

ただ今、即戦力募集中!歴史に残るMMOを作ってみないか!!
0266デフォルトの名無しさん05/03/18 07:50:19
スレ違いに反応するのもなんだが、
こういうポシャる確率100%の話によく興奮できるよね。
0267デフォルトの名無しさん05/03/18 10:23:35
名前が同じだけど違うのかな・・
こっちの方がまだよさそうだ http://www.geocities.jp/ol_lc/
0268デフォルトの名無しさん05/03/18 10:28:54
>>265
すっげーレベル低そうな話だ。
ワールドコンセプトを統括する人物がいないから、あれもこれも
詰め込もうとしてるな。
0269デフォルトの名無しさん05/03/18 10:41:31
多分紙ベースで企画書みたいなものは一切無いんだろうな
0270デフォルトの名無しさん05/03/18 11:16:59
アフォが「ガンダムみたいなロボにも乗れます」「猫耳で防御力+30です」と
言い出したときに「チラシの裏にでも書いてろこの糞」といえる奴がいないと
ねえ。
0271デフォルトの名無しさん05/03/18 12:05:37
>>265
>構想期間3年

もう3年経ったの?それともこれから3年かけて作るの?
0272デフォルトの名無しさん05/03/18 18:34:29
char charBuf[256];

〜

AnsiString ansiBuf = (AnsiString)charBuf;
0273デフォルトの名無しさん05/03/18 18:38:31
このスレでたまにある意味不明なageレスは何じゃらほい。
誰かがメモ帳代わりにしてるのか
0274デフォルトの名無しさん05/03/18 20:00:42
バフ あんしばふ
0275デフォルトの名無しさん05/03/18 20:34:11
>>272
char charBuf[256];
〜
AnsiString ansiBuf = AnsiString(charBuf);
0276デフォルトの名無しさん05/03/18 21:48:04
>>272-275
http://pc5.2ch.net/test/read.cgi/tech/1108468718/98
AnsiStringに注意
http://web.archive.org/web/20000122081819/http://www2.odn.ne.jp/akihiron/memo/bcb/tips02.html
http://pc5.2ch.net/test/read.cgi/tech/1108468718/l50
文字列を扱うのにAnsiStringはとても便利ですが、気が付いた点を2つ。

(1)hoge[0]の扱い
C言語では

char hoge[] = "Nakajima";

と宣言したとき、hoge[1] には 'a' が入っています。
つまり0から始まっています。
しかし、

AnsiString hoge = "Nakajima";

と宣言したとき、hoge[1] には 'N' が入っています。
これはPascalと同じように1から始まっているのです。 Pascalで書かれたVCLを使ってい るからだ と思いますが、
C++Builderなんだからねぇ・・・
Cを使っていた人は注意して下さい。

http://pc5.2ch.net/test/read.cgi/tech/1108468718/107
もしかして、
char charBuf[256];
〜
AnsiString ansiBuf = (AnsiString)charBuf;
ってやり方と知らないとか?
0277デフォルトの名無しさん05/03/18 21:52:35
ほーほけきょ
0278デフォルトの名無しさん05/03/19 00:30:34
>>275
char charBuf[256];
〜
AnsiString ansiBuf(charBuf);
0279デフォルトの名無しさん05/03/19 06:37:34
char ********************************************************charBuf[256];
0280デフォルトの名無しさん05/03/19 13:35:52
BCBで正規表現検索できる関数ってありませんか?
PHPで言うpreg_match関数のような。
0281デフォルトの名無しさん05/03/19 13:44:28
正規表現用のDLLはちょっと検索したらでるだろ
0282デフォルトの名無しさん05/03/19 14:21:22
>>280
ttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vclib/html/vclrfcatlregexp.asp
0283デフォルトの名無しさん05/03/19 14:26:47
>>280
ttp://www.kanazawa-net.ne.jp/~pmansato/cbregexp.htm
028428005/03/19 14:54:04
ありがとうございます。
検索したらBREGEX.DLLとういのも見つかりました。

BCBにはPCREというものがあるようですね。

ご紹介頂いたものも含めて、試してみたいと思います。
0285デフォルトの名無しさん05/03/19 15:45:09
>>284
boost::regexをビルドしてもいいよ。むしろ今はこちらの方が主流じゃないの?
0286デフォルトの名無しさん05/03/19 15:50:04
なんで?
0287デフォルトの名無しさん05/03/19 16:00:34
準標準だからかね。俺もboost::regexはビルドしてある。
全然使う機会ないけど
  ァ  
   ,、'`
    '`
0288デフォルトの名無しさん05/03/19 16:15:04
>>285
それ、多バイト文字でもオケ?
0289デフォルトの名無しさん05/03/19 16:51:49
多バイト文字って言い方初めて聞いた
0290デフォルトの名無しさん05/03/19 17:29:14
Indy10をインストールすることはできますか?
0291デフォルトの名無しさん05/03/19 18:38:06
>>288
ワイド文字版のwregexあるYO

typedef reg_expression<char, regex_traits<char>, BOOST_DEFAULT_ALLOCATOR(char)> regex;
typedef reg_expression<wchar_t, regex_traits<wchar_t>, BOOST_DEFAULT_ALLOCATOR(wchar_t)> wregex;

とうかtemplateで実装されてるから、intでも独自クラスでも演算子をちゃんと定義してれば何でもありなのかな?エロいひと。
0292デフォルトの名無しさん05/03/19 20:34:02
errorlevel をプログラムから設定するにはどうすればいいですか?
0293デフォルトの名無しさん05/03/20 02:49:18
BCB5では、ShowModalのフォームをESCで閉じることができたのですが、
BCB6ではできなくなったのですか?
0294デフォルトの名無しさん05/03/20 03:40:12
VisualStudioがあるのに、どーしてコレ使うの?
0295デフォルトの名無しさん05/03/20 04:21:30
>>293
そのフォームに Cancel プロパティが true なボタンがあったとかではなく?
何もない状態でも閉じたのかな?
0296デフォルトの名無しさん05/03/20 07:20:17
>>294
VisualStudioが糞だから
0297デフォルトの名無しさん05/03/20 10:49:19
VisualStudioは面倒だから
0298デフォルトの名無しさん05/03/20 11:26:57
なかなかVisualにならなかったから
0299デフォルトの名無しさん05/03/20 11:36:25
VisualStudioじゃないとコード組む気になれない俺。
0300デフォルトの名無しさん05/03/20 12:20:06
お前のことなどどーでもいいんじゃ。
0301デフォルトの名無しさん05/03/20 14:38:27
>>294
VisualC++VCLが入ってないから
VisualPascalはイラネ
0302デフォルトの名無しさん2005/03/21(月) 03:52:23
ちょっと質問なのですが、BCB6.0Personalを使っています。
作ったソフトを配布するには、InstallShield Expressが必要とのことですが、これってPersonalには入っていないのでしょうか?
どうやら実行時にvcl60.bplを必要としているようなのですが、配布しているところが見つからなかったので、InstallShieldが必要なのですが・・・
0303デフォルトの名無しさん2005/03/21(月) 08:38:18
>>302
スタティックリンクしてexeだけ配布すればいいと思うが、それじゃだめ?
0304デフォルトの名無しさん2005/03/21(月) 10:05:19
つぎのC++Builderはいつデルファイ?
0305デフォルトの名無しさん2005/03/21(月) 11:05:42
テンプレのTipsにexeを入るするときの注意点があったような
0306デフォルトの名無しさん2005/03/21(月) 11:06:05
x入る
o配布
0307デフォルトの名無しさん2005/03/21(月) 11:54:08
>>302
プロジェクトオプションのパッケージタブにある「実行時パッケージを使って構築」のチェック外せ。
あとvcl60.bplは$BCB$\binに転がってるだろ。あと、vcl60.bpl配布する時はdeploy.txt嫁。
0308デフォルトの名無しさん2005/03/22(火) 17:30:23
OpenDialogで1万個以上のファイルを全選択して
OpenDialog1->Files->Strings[i]で一つずつファイル名を取得しようとしてるんですが、
1000個を超えた辺りでどーしてもファイル名が取得できなくなります。
何か上限でもあるんでしょうか?解決策ってありますでしょうか?
0309デフォルトの名無しさん2005/03/22(火) 19:25:58
>>308
ファイル名を格納するバッファのサイズが
MultiSelectBufferSize = High(Word) - 16 という定数の模様。

自前でAPIのGetOpenFileNameを呼ぶとか。
0310デフォルトの名無しさん2005/03/23(水) 00:40:41
>>304
年末かな
03113082005/03/23(水) 12:00:03
>>309
ありがとうございます。APIですか…難しそうですがやってみます。
0312デフォルトの名無しさん2005/03/24(木) 08:51:39
Array Valiant型の中身をchar型か、
AnsiString型に取り出したいのですが、
どうやったらできますか?
AnsiString IPAdress;
IPAdress = VarToStr(Result.Exec(PropertyGet("IPAdress")));
こんな感じで突っ込むと、
オートメーションオブジェクトをサポートしてませんってエラーでます
ほかのやつなんでしょうか?
0313デフォルトの名無しさん2005/03/24(木) 10:43:33
TIniFileでファイルパスをフルパスで設定する方法がわかりません
ヘルプとか検索でかかるように、exeファイルがあるところに置くと
ちゃんと読めるんですが、フルパスを指定する方法を教えていただけないでしょうか
0314デフォルトの名無しさん2005/03/24(木) 10:59:21
ん?いまいち意味がわからんけども普通にフルパスで書けない?
"c:\\Program Files\\aaa\\bbb.ini"
みたいに?
それとも実行ファイルのフルパスがほしいのか?
0315デフォルトの名無しさん2005/03/24(木) 11:19:02
>>312
何がしたいのかわからん。
そもそもResultって何だ?
質問するときはソースは省くな。
0316デフォルトの名無しさん2005/03/24(木) 13:05:17
>>315
失礼しました
これだけ省いたらわからないですね。
WMIでIPアドレスを取得しようとしています

Variant Locator = CreateOleObject("WbemScripting.SWbemLocator");
Variant Service = Locator.Exec(Function("ConnectServer"));
Variant Set = Service.Exec(Function("ExecQuery") <<

"Select IPAddress
From Win32_NetworkAdapterConfiguration \
WHERE IPEnabled = true");

IUnknown* EnumUnknown = (IUnknown*)Set.Exec(PropertyGet("_NewEnum"));
IEnumVARIANT* Enum = 0;

if(EnumUnknown->QueryInterface(IID_IEnumVARIANT, (void**)&Enum) == S_OK) {
tagVARIANT tag;
unsigned long ret;
while(Enum->Next(1, &tag, &ret) == S_OK) {
Variant Result = &tag;

AnsiString IPAdress;

IPAdress = Result.Exec(PropertyGet("IPAdress"));
}
0317デフォルトの名無しさん2005/03/24(木) 13:20:04
IPAdress = String(Result.Exec(PropertyGet("IPAdress")));

ってできない?
0318デフォルトの名無しさん2005/03/24(木) 13:25:22
"IPAdress" が受け付けられてないのか・・・
0319デフォルトの名無しさん2005/03/24(木) 13:28:17
>>317
動かそうと試してみましたが、だめでした。
一応下記のページの関数は一通り試してみたのですが。
ttp://www.geocities.co.jp/SiliconValley-Sunnyvale/6128/builder/funclist/vararray.html
0320デフォルトの名無しさん2005/03/24(木) 14:00:55
Result.Exec();が失敗してるんだと思うんだが
0321デフォルトの名無しさん2005/03/24(木) 14:45:49
配列項目以外の項目は同じ方法で取得できています。
WMIクエリアナライザってツールでSQLを走らせてみたら
結果も返ってきましたので、SQLの構文自体は間違っていませんでした。
配列ストリングは受け取り方が違うのでしょうか?
0322デフォルトの名無しさん2005/03/24(木) 22:52:40
#include <vcl.h>
#include <ComObj.hpp>
↓
#include <ComObj.hpp>
#include <vcl.h>
0323デフォルトの名無しさん2005/03/25(金) 00:26:53
>>316

IPAdressじゃなくてIPAddressじゃない?
0324デフォルトの名無しさん2005/03/25(金) 14:51:44
変数名の指摘かよ、別にそんなスペルミスはどうだっていいだろばか
0325デフォルトの名無しさん2005/03/25(金) 14:57:01
PropertyGetのキーワードにスペルミスがあるわけだが。
0326デフォルトの名無しさん2005/03/25(金) 15:54:02
>>324
ばーか
03273212005/03/25(金) 15:59:40
>>322その順番に変更するとコンパイルできなかったので、
#define WIN32
#include <vcl.h>
#include <ComObj.hpp>
こういう感じで宣言してます。

>>323
指摘通り間違ってました。
修正したのですが、
ArrayVariantからStringに変換できないってメッセージはあいかわらずでます。

受け取るときにIPAddress(0)みたいに指定しないとだめなのかも・・・
ちょっと試してみて、また書き込みます
0328デフォルトの名無しさん2005/03/25(金) 23:25:37
C++Builer5 で Win32 ネイティブのプログラムを作るには
どうしたらよいでしょうか?
0329デフォルトの名無しさん2005/03/25(金) 23:27:28
>>328 自己レス
コンソール Wizard でできました。
0330デフォルトの名無しさん2005/03/27(日) 15:39:13
direct showはどうやったら使えるのでしょうか?
0331デフォルトの名無しさん2005/03/27(日) 15:44:50
>>330
MSのサイトでDirectX SDKを落としてきなせぇ
■ このスレッドは過去ログ倉庫に格納されています