トップページ⇒tech
990コメント312KB

C++Builder相談室 Part19

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2008/08/01(金) 16:30:32
C++Builderに関する質問・回答や議論等を行う相談室スレッド。
※2008/07よりCodeGear(Borland IDE/DB部門)はBorlandからEmbarcaderoに移動しました

【前スレ】
C++Builder相談室 Part18
http://pc11.2ch.net/test/read.cgi/tech/1188607282/

過去スレ・関連サイトは>>2-7あたり。

※Borland C++ Compiler 5.5.1についての質問は以下のスレへ
タダで使えるBorland C++ Part5
http://pc11.2ch.net/test/read.cgi/tech/1135127048/
※BDS(Borland Developer Studio)の総合スレはこちら
Borland Developer Studio 2006 No.13
http://pc11.2ch.net/test/read.cgi/tech/1175861395/
※CodeGear(Borland/Embarcadero)関連はこちら
【CodeGear】Embarcaderoオッチャ その10
http://pc11.2ch.net/test/read.cgi/tech/1216250111/

<関連スレ>
くだすれC++Builder(超初心者用)その3
http://pc11.2ch.net/test/read.cgi/tech/1171219191/
[Tips]Borland C++Builder ちょいテク No.01
http://pc11.2ch.net/test/read.cgi/tech/1154580209/
【Delphi】 Indyコンポーネント 【C++Builder】
http://pc8.2ch.net/test/read.cgi/tech/1093654251/
0002デフォルトの名無しさん2008/08/01(金) 16:31:53
<関連サイト>
公式サイト
http://www.codegear.com/jp/products/cppbuilder
builder-ML 過去ログブラウザ
http://leed.issp.u-tokyo.ac.jp/~takeuchi/builder/browse.cgi
http://www.sfdata.jp/ML/cbuilder/newlog.php?ml=cbuilder
C++Builder メーリングリスト
http://www.sfdata.jp/ML/menu.php?ml=cbuilder
C++Builder ML
http://www.jpdoc.com/cbuilder/
nifty/Delphi & Borland Users Forum
http://fdelphi.info/
BCBWiki
http://wiki.livedoor.jp/a7m/d/FrontPage

<Update>
BDSアップデート
http://www.codegear.com/downloads/regusers/devstudio
BCB6/US SP1 は BCB6/JP 製品版に含まれています。
C++Builder 6 Update4 日本語版
C++Builder 6 Linker Update
http://www.codegear.com/downloads/regusers/cppbuilder
0003デフォルトの名無しさん2008/08/01(金) 16:32:38
<Tipsなど>
Borland C++Builder最新リンク2005(リンク集)
http://www2.famille.ne.jp/~akio1998/l_cpb.html
C++Builderのお部屋(Tips系)
http://www.ne.jp/asahi/nagoya/ahomaro/builder/
C++Builderによるプログラミング(Tips系)
http://www.geocities.co.jp/SiliconValley/7201/
BCB Tips(Tips系)
http://members.at.infoseek.co.jp/mchos/bcb_tips/
C++Builder Tips(Tips系)
http://www.geocities.co.jp/SiliconValley/4805/bcbtips/bcbtips000.htm
C++Builderのお部屋(Tips系)
http://www.ne.jp/asahi/nagoya/ahomaro/builder/index.html
Wininet Programing(Tips系)
http://www.geocities.co.jp/SiliconValley-PaloAlto/1512/
Dr.Bob's C++Builder Gate(Tips系)
http://www.drbob42.com/cbuilder/index.htm
猫でもわかるプログラミング(一般)
http://www.kumei.ne.jp/c_lang/
Delphian World(コンポーネントライブラリ)
<行方不明>
DelWiki 避難所。
http://delwiki.info/
0004デフォルトの名無しさん2008/08/01(金) 16:34:04
<ツール/コンポーネント>
<<フリー>>
フリーカーソル無効化アドイン
http://homepage1.nifty.com/fuu/software/nonfreecursor.htm
GExperts−IDE拡張
http://www.gexperts.org/
BorCVS - IDEにCVSを統合
http://borcvs.sourceforge.net/
Indy
http://www.indyproject.org/
JCL
http://homepages.borland.com/jedi/jcl/
JVCL
http://homepages.borland.com/jedi/jvcl/
TurboPower
http://sourceforge.net/users/tpsfadmin/
<<有料>>
TMS Component Studio
http://www.tmssoftware.com/
0005デフォルトの名無しさん2008/08/01(金) 16:35:23
<参考図書>
C++Builder 6コンポーネント活用ガイド&実践プログラミング
Vol.1
http://www.amazon.co.jp/exec/obidos/ASIN/4877830618
Vol.2 実践テクニック編
http://www.amazon.co.jp/exec/obidos/ASIN/4877830626
Vol.3 データベーステクニック編
http://www.amazon.co.jp/exec/obidos/ASIN/4877830634
Vol.4 インターネット編1
http://www.amazon.co.jp/exec/obidos/ASIN/4877831061
Vol.5 インターネット編2
http://www.amazon.co.jp/exec/obidos/ASIN/4877831088
Vol.6 グラフィックス・画像処理編1
http://www.amazon.co.jp/exec/obidos/ASIN/4877831231
Vol.7 グラフィックス・画像処理編2
http://www.amazon.co.jp/exec/obidos/ASIN/487783124X
※BCBの定番解説書。BCBを購入したけど何から勉強したら良いか
 判らないという人は取り合えずVol2から読みましょう。
※データベースやインターネット関連はDelphiの解説書も役に立ちます。
0006デフォルトの名無しさん2008/08/01(金) 16:36:02
<過去スレ (html化済)>
C++Builder相談室
http://piza2.2ch.net/tech/kako/969/969458279.html
新C++Builder相談室(C++Builder相談室 Part2)
http://pc.2ch.net/tech/kako/997/997074601.html
C Builder相談室 Part3
http://pc3.2ch.net/tech/kako/1016/10160/1016065855.html
C++Builder相談室 Part4
http://pc5.2ch.net/tech/kako/1035/10355/1035596146.html
C++Builder相談室 Part5
http://pc5.2ch.net/tech/kako/1045/10455/1045542179.html
C++Builder相談室 Part6
http://pc5.2ch.net/tech/kako/1054/10542/1054280736.html
C++Builder相談室 Part7
http://pc5.2ch.net/tech/kako/1061/10615/1061594556.html

<無償版>
Turbo C++ Explorer (C++Builder2006(10)相当)
http://www.turboexplorer.com/jp/cpp

116 名前:デフォルトの名無しさん[sage] 投稿日:2006/11/04(土) 17:25:13
ttp://beeography.wordpress.com/2006/09/12/just-wanna-let-you-know/
ここに書いてある方法でTurbo Exprorerでも合法にコンポ入れれるよ

117 名前:デフォルトの名無しさん[sage] 投稿日:2006/11/04(土) 18:02:21
あとこれ。
dclusr経由のコンポーネントインストールが、ライセンス違反かどうかの話。
ttp://hpcgi1.nifty.com/MADIA/DelphiBBS/wwwlng.cgi?print+200609/06090014.txt
0007デフォルトの名無しさん2008/08/04(月) 11:18:22
NET FrameworkのControlってどやったら使えるんですかね?
コンパイルエラーになっちゃうんだけど
0008デフォルトの名無しさん2008/08/05(火) 00:51:26
よくわからんけど、C++Builderは.NETアプリを作るためのものじゃないが。C#かVB.NETじゃない?
0009デフォルトの名無しさん2008/08/05(火) 10:09:40
いえ、CBuilder2007なんですが
ヘルプにはしっかりと出てるんですよねこれ。
0010デフォルトの名無しさん2008/08/05(火) 11:06:57
5や6使いが多いからなぁ
0011デフォルトの名無しさん2008/08/05(火) 21:50:07
いやいや、C++Builderでは.NETアプリケーション作れませんてば。
0012デフォルトの名無しさん2008/08/06(水) 10:22:27
>>11
m9(^Д^)プギャーーーッ
0013デフォルトの名無しさん2008/08/06(水) 15:00:01
Builder5でStrCmpLogicalWを使う方法を教えて><
0014デフォルトの名無しさん2008/08/07(木) 11:52:01
ListViewのカラムヘッダーの色を変える方法を教えてくれ
0015デフォルトの名無しさん2008/08/09(土) 23:12:14
>>13
shlwapi.hが古いのとshlwapi.dllのインポートライブラリがないのが原因

MSからPlatformSDK落としてきて最新のshlwapi.hを入手するか
shlwapi.hに LWSTDAPI_(int) StrCmpLogicalW(LPCWSTR psz1, LPCWSTR psz2); 追加

implib.exe shlwapi.lib shlwapi.dll でインポートライブラリを作り
tlib.exe lib\import32.lib + shlwapi.lib 上記dll内のAPIをimport32.libに追加

これでいけた。
0016デフォルトの名無しさん2008/08/12(火) 16:45:58
さっさと教えろクズ
0017デフォルトの名無しさん2008/08/12(火) 19:51:03
わ、ゴキブリがしゃべった
0018デフォルトの名無しさん2008/08/13(水) 14:00:38
東京のゴキブリは喋るんだよ。
田舎者は知らなかっただろうけど。
0019デフォルトの名無しさん2008/08/13(水) 22:52:49
環境: C++Builder5, Win2k
実行ファイル(C:\test.exe)のショートカットを作り、
そのショートカットを適当な所(C:\tekito\test.exeへのショートカット)に移動し、
ショートカットをダブルクリックして実行したとします。
その時、'C:\tekito\test.exeへのショートカット'文字列を得たいのですが、どうすればいいでしょうか。
0020デフォルトの名無しさん2008/08/13(水) 23:11:16
無理じゃね?
0021デフォルトの名無しさん2008/08/14(木) 08:52:11
>>19
意味が良くわからん。

実行ファイルのショートカットを作って、
その実行ファイルを別のところに移動するの?
移動するのはショートカットの方?

ショートカットを移動してそのショートカットをダブルクリックして実行したときに、
その呼び出し元のショートカットのパスを知りたいって事か?


0022デフォルトの名無しさん2008/08/14(木) 11:32:11
初歩的なことですが・・・

ヘッダーに
typedef struct{
  String ss;
  int aa;
} GG;
があって
ヘッダのprivateに実体をとったときに
GG g[2];

cppで↓みたいな感じで代入ってできないですかね?
g[0]=GG{ "abc", 0 };
0023デフォルトの名無しさん2008/08/14(木) 11:35:07
struct GG{
  GG(String a, int b) : ss(a), aa(b) {}
  String ss;
  int aa;
};

g[0] = GG("abc", 0);
0024デフォルトの名無しさん2008/08/14(木) 11:36:00
あとコピーコンストラクタと代入演算子のオーバーロードもしておくといいお
0025デフォルトの名無しさん2008/08/14(木) 11:51:23
>>23
GG(String a, int b) : ss(a), aa(b) {}の行でエラーが出ました><
0026デフォルトの名無しさん2008/08/14(木) 12:01:19
あ、違った。

struct GG{
  GG(String a, int b) : ss(a), aa(b) {}
  String ss;
  int aa;
};
GG g[2];  ←ここでエラー
g[0] = GG("abc", 0);
0027デフォルトの名無しさん2008/08/14(木) 12:07:18
あ、デフォルトコンストラクタ入れたら通りましたありがとうございます。
0028デフォルトの名無しさん2008/08/14(木) 13:59:53
String ss;
を
char ss[24];
ってしたときのコンストラクタの記述を教えてください><
0029デフォルトの名無しさん2008/08/14(木) 14:48:59
コンストラクタ内でstrcpyでもしとけ
0030デフォルトの名無しさん2008/08/14(木) 14:49:34
わかりました><
0031デフォルトの名無しさん2008/08/14(木) 21:09:44
>>19です。
>>20,21 返信ありがとうございます。
> ショートカットを移動してそのショートカットをダブルクリックして実行したときに、
> その呼び出し元のショートカットのパスを知りたいって事か?
そうです。
0032デフォルトの名無しさん2008/08/14(木) 21:14:56
>>31
それを知ってなにをしたいのか書けば代案とか出せるんだが。
コマンドラインスイッチやカレントディレクトリで代用とかはできんの?
0033デフォルトの名無しさん2008/08/16(土) 14:06:49
>>32
返信ありがとうございます。
参考にさせて頂き、コマンドラインパラメータで代用しました。
作ったソフト(RandExec.exe)は以下のような物です。

例えば、「RandExec.exe C:\Data\!*.wav」として実行すると、
「C:\Data\」ディレクトリにある、拡張子「wav」のファイルのうち、
先頭に「!」が付いている名前のファイルをランダムで1つ実行します。

FindFirst()のお陰でワイルドカード文字が使えるのですが、
残念ながら、「RandExec.exe C:\*\start.wav」のように、
パスの途中にはワイルドカード文字を使えないようです。
これを実現したいのですが、どういう手段が考えられるでしょうか。
適したコンポーネントはご存じないでしょうか。
0034デフォルトの名無しさん2008/08/16(土) 14:28:08
>>33
普通に実装したら?

まず、ワイルドカード (* ?) を探して、その手前の \ を探す、
ワイルドカードの次の \ を探す、\ で挟まれてればそれはフォルダのワイルドカード、
最初の \ の手前までのフォルダで FindFirst して上のワイルドカードと一致するか検索、
ってやれば簡単にできそう。
0035デフォルトの名無しさん2008/08/16(土) 16:22:51
入力が"C:\Data\sound*\snd*.wav"なら
strtokとかでC: Data sound snd* snd*.wavに分割
先頭から次の要素接続>FindFirst/FindNextで複数マッチした場合はその中からランダムに選択、でまた次の要素接続ってやってけば簡単だろ
0036デフォルトの名無しさん2008/08/20(水) 14:06:58
今度Vista対応を行わないといけなくなったのですが
マニフェスト記述例やデータ保存箇所のルールなどBCBやDelphiで
作成したプログラムに対しても参考になるような情報が書いてある
書籍って何か無いでしょうか?(CマガのMookは買いました)
0037デフォルトの名無しさん2008/08/21(木) 22:03:33
Delphi 2007 for Win32によるWindows Vista対応
ttp://dn.codegear.com/jp/article/34159
tp://bekins.borland.com/groups/jp/events/devcamp/04/devcamp04_g4.pdf
0038362008/08/22(金) 15:17:18
>37
参考になりました
これを足がかりに少し進めてみます
0039デフォルトの名無しさん2008/08/22(金) 15:26:46
WinXP SP3だけど、

exeにマウス右クリックすると、
「マニフェスト ファイルを作成」
というポップアップメニューが出るお。
0040デフォルトの名無しさん2008/08/22(金) 17:10:39
>39
社内でSP3を入れたXPを探してきて見てみたけど・・・・出なかった。
何が要因でそれが表示されるようになるんだろう。
0041392008/08/22(金) 17:17:31
え”、そうなの?

自分も知りたい。
0042デフォルトの名無しさん2008/08/25(月) 12:51:45
>39
VisualStudio入ってない?
0043392008/08/25(月) 12:56:35
V$6なので、関係無いと思いますが。
0044デフォルトの名無しさん2008/08/26(火) 19:37:23
ところでCodeGearの次スレってたたないの?
せっかく2009が発売されるのに・・・
0045デフォルトの名無しさん2008/08/26(火) 19:53:04
【Embarcadero】CodeGearオッチャ その11
http://pc11.2ch.net/test/read.cgi/tech/1219157228/
0046デフォルトの名無しさん2008/08/27(水) 10:04:48
thx
値段たっかいなー
ご祝儀にしてもこれはちょっと辛いわ
0047デフォルトの名無しさん2008/08/27(水) 12:31:05
BCB5+vistaを使っています。

CodeGuardを使いたいのですが、大量にログが出てしまいました。
見てみるとどうもライブラリ内のAnsiString::cat_printfらしく、とりあえず
ライブラリ内と標準ライブラリのチェックだけはずしたいのですが
方法はないでしょうか?
※include の前に #pragma option -vG- を入れても引っかかって
 しまいました。
0048デフォルトの名無しさん2008/08/27(水) 17:15:53
BCB6で、
>メモリストリームの拡大中にメモリが足りなくなりました
エラーが出た場合、
どういう対処がありますでしょうか?
0049デフォルトの名無しさん2008/08/27(水) 22:29:08
>>48
その不具合に直接の関係があるかどうかは判らないけど、BCB6ではメモリ管理周りに不具合が残されたままなので
ひとまずfastmmをプロジェクトに追加してみたらどう?
0050482008/08/28(木) 08:42:56
サンクス>>49
fastmmをプロジェクトに追加したら治りマスタ。

今のfastmmってDLLも不要になってるんですね。

自分がfastmmが嫌いなのは、プロジェクトに組み込まれたか組み込まれてないか、見た目で分からないんですよね。
判定する方法はないんでしょうか?
0051デフォルトの名無しさん2008/08/28(木) 17:21:40
Builder2007で質問ですが
Form1からForm2を表示させたら何故かForm2がfsStayOnTopみたいになって
Form2が常にトップで表示されるんですが何故ですか?
両方ともFormStyleはfsNormalです。
0052デフォルトの名無しさん2008/08/28(木) 17:23:02
Form1をParent設定したからじゃね?
0053デフォルトの名無しさん2008/08/28(木) 17:30:08
してないですししたらForm1にめりこみません?
0054デフォルトの名無しさん2008/08/28(木) 17:35:21
ShowModalで表示させてない?
0055デフォルトの名無しさん2008/08/28(木) 17:39:22
いえ、Showでいっといてます。

ちなみに、モーダルだと下フォーム(Form1)をクリってもアクティブにならないですが
>>51の現象はForm1はアクティブにはなるのですがForm2が常に前面にあるんですう
うーん、今までBuilder5でやってたのと同じなんですが、2007で仕様が変わったとか?
0056デフォルトの名無しさん2008/08/28(木) 21:25:39
http://hpcgi1.nifty.com/MADIA/DelphiBBS/wwwlng.cgi?print+200808/08080025.txt

Vista対策の弊害
0057デフォルトの名無しさん2008/08/29(金) 18:06:17
>>56
そそそそあqwせdrftgyふじこlそれだ!!
ありがとうありがとう><

しっかしこんなすぐわかるバグを放置ってなんなんだいったい
0058デフォルトの名無しさん2008/08/29(金) 18:09:34
あー!
ListViewのOwnerDataをtrueにしてあれすると
MultiSelectが使えないよおおおおおおおおおおおおおおおおおおおおー
複数選択するとSelCountが0になるうううううううううううう
たすけてー><
0059デフォルトの名無しさん2008/09/01(月) 09:56:29
te
0060デフォルトの名無しさん2008/09/01(月) 09:58:37
StringGridでカーソルを行選択にできますが
これをListViewみたいにマルチセレクトする方法を教えてくださいよ
0061デフォルトの名無しさん2008/09/01(月) 16:48:43
更に質問
StringGridのDrawCellで各セルを描画してんだけど
Invalidate呼んだら表示されてるとこ全部あれしちゃうんで
これ指定した行だけ更新するほうほうをさっさと教えてくださいよ
0062デフォルトの名無しさん2008/09/02(火) 19:15:50
ListViewで1行づつ背景の色を変える方法を教えてください><
0063デフォルトの名無しさん2008/09/09(火) 06:57:56
>>33です。
>>34 >>35 返信ありがとうございました。
お陰様で、かなめの部分はこんな感じでできました。
void  FindPathPattern(TStringList *paths, AnsiString dir, const TStringList *items, int level)
{
  TSearchRec sr;
  int     attr;

  if (level < items->Count-1) {
    // フォルダ検索&再帰
    attr = faAnyFile;
    if (FindFirst(dir+items->Strings[level], attr, sr) == 0) {
      do {
        if (sr.Attr & faDirectory) {
          FindPathPattern(paths, dir+sr.Name+"\\", items, level+1);
        }
      } while (FindNext(sr) == 0);
      FindClose(sr);
    }
  }
  else {
    // ファイル検索&保存
    attr = faAnyFile & ~faDirectory;
    if (FindFirst(dir+items->Strings[level], attr, sr) == 0) {
      do {
        paths->Add(dir+sr.Name);
      } while (FindNext(sr) == 0);
      FindClose(sr);
    }
  }
}
0064デフォルトの名無しさん2008/09/09(火) 21:57:25
>62
OnCustomDrawItemイベントでSender.Canvas.Brush.Colorを変更するだけ。
0065デフォルトの名無しさん2008/09/11(木) 21:52:29
2009入れたんですけど、2007で通ったコンパイルが通らないです。
widestring は wchar_t* に変換できないってどうすればいいのでしょ?

WideString( fi.FullName );
0066デフォルトの名無しさん2008/09/18(木) 20:04:25
TToolBarの中のTToolButtonを真ん中に持ってきたいのですが、
方法無いのでしょうか?
0067662008/09/18(木) 20:11:25
Indentプロパティに0以上の値を設定すればよかったです。。
半年も悩んだのに、書き込んだ瞬間わかるとは。。
0068デフォルトの名無しさん2008/09/19(金) 13:13:29
BCB5で突然CPUウィンドウが表示され続ける現象が出始めてしました

○問題
 統合環境からのデバック実行時にCPUウィンドウが表示され続ける
○解ったこと
 ListViewの項目幅を変更した時にCPUウィンドウが表示される
○その他情報
・Vista用のマニフェストを追加
・Listviewとは関係無い箇所の修正
・プログラムへのバージョン情報の埋め込み
この3点は元に戻してみましたが代わりありません
数日前のソースに戻すと問題無く動作します

DelphiMLで同様の現象が出た人が居たのですがその方はXP3を当てることで直ったそうですが
今の開発環境はすでにSP3が入っているのでこのような変化を付けることが出来ません
問題が発生しているListViewにはまったく手を入れていません

何か対策をご存じな方がおられましたらお願いいたします
0069デフォルトの名無しさん2008/09/19(金) 22:48:13
マニフェストが怪しくね?システム側にキャッシュされるという話を読んだことがあるし。
0070682008/09/20(土) 08:52:23
マニフェストがキャッシュされる話は自分も聞いたことがあるのですが
外部マニフェストでは無く実行ファイルの中に入れているので影響は無いと思っていました
(実行ファイルのパスとタイムスタンプでキャッシュしてると理解してます)

困った・・・・
0071682008/09/20(土) 15:14:16
解決しました
原因は指摘の通りマニフェスト
一時は外しても再現してたのですがすべてのプロジェクトの再構築で再現しなくなりました

マニフェストのほうですがMicrosoft.Windows.Common-Controlsを指定しているブロックの部分が
引っかかっていたみたいです(目的としてはAdmin権限必須の指定だけでよかった)
丁度Vista対応実例があったのでそのマニフェストを流用していたために疑うのが遅れました
0072sage2008/09/21(日) 07:40:54
 Turbo C++でフリーカーソル無効化アドインを使っていたのですが、
hotfixを当ててから効果がなくなってしまいました。
TC++をインストールしなおす以外に何かよい方法はないでしょうか?
0073デフォルトの名無しさん2008/09/21(日) 11:14:12
C++Builder2009が届いたんで、今までの環境を移行して今まで組んだプログラム
を修正して動かしたりしているんだが、ASCII文字だけがどうしてもうまくいかん......

元々、外国の特殊文字(Latin1/2)の文字入力の為に作ったソフトで、
ASCIIのウムラウトとかをキーボードから":u"とか入力して表示できる
ようにしてたんだが、C++Builder2009でコンパイルしてテストすると
"・"になっちゃうんだよね。

要は、ASCIIコードの特殊文字を表示させたいんだけれども、
どういう風にすればいいか分かる人いない?
やっぱり、Unicode対応しちゃったから今までのASCIIは完全にダメなんかな?
0074デフォルトの名無しさん2008/09/21(日) 11:28:07
要は今までANSI(ISO 8859系)で処理してたてことだよね?AnsiStringで処理しておいて
表示のみUnicodeStringにするとかそのくらいしか思い浮かばないな。
0075デフォルトの名無しさん2008/09/21(日) 12:04:00
>>74
そういう方法しかないかなぁ......
一応試しているんだけれど、TEncodeingでUnicode化もうまくいかないんだよね......
TBytesにAnsiStringを変換しないとUnicode化はできないみたいなんだけれども、
これもうまくいかない......
0076デフォルトの名無しさん2008/09/22(月) 07:05:05
>>75
もしよかったらバージョンいくつからの以降で、
どの程度ソースの変更が必要だったか教えて欲しい。
■ このスレッドは過去ログ倉庫に格納されています