C++Builder相談室 Part16
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2006/02/01(水) 12:56:05【前スレ】
C++Builder相談室 Part15
http://pc8.2ch.net/test/read.cgi/tech/1124614110/
過去スレ・関連サイトは>>2-7あたり。
※Borland C++ Compiler 5.5.1についての質問は以下のスレへ
タダで使えるBorland C++ Part4
http://pc8.2ch.net/test/read.cgi/tech/1091066805/l50
0232デフォルトの名無しさん
2006/04/06(木) 16:02:38>「速度が変わらない」という間違いを「そうじゃねー」と正してるだけなのに
正すってんなら説明が要る。
先ずは、>>218に答えなさい。
0233デフォルトの名無しさん
2006/04/06(木) 16:04:52単体時間とユーザー側時間てなんだよ。初めて聞いたよ。
0234デフォルトの名無しさん
2006/04/06(木) 16:05:48自分が今作った言葉さ。
短い時間で伝えるために。
さ、回答しる!
0235デフォルトの名無しさん
2006/04/06(木) 16:07:410236デフォルトの名無しさん
2006/04/06(木) 16:09:07伝わってねーよ。2つの時間が何をさすかわかんねっての。
0237デフォルトの名無しさん
2006/04/06(木) 16:09:36オマイもう帰って良いよ
0238デフォルトの名無しさん
2006/04/06(木) 16:10:43間違い垂れ流しの上、謙虚な姿勢のかけらもない奴にこれ以上教えるのは無意味なじゃいの?
0239デフォルトの名無しさん
2006/04/06(木) 16:14:550240デフォルトの名無しさん
2006/04/06(木) 16:22:190241デフォルトの名無しさん
2006/04/06(木) 16:23:180242デフォルトの名無しさん
2006/04/06(木) 16:35:10たてた
http://pc8.2ch.net/test/read.cgi/tech/1144308804/l50
0243デフォルトの名無しさん
2006/04/06(木) 16:38:270244デフォルトの名無しさん
2006/04/06(木) 16:44:580245デフォルトの名無しさん
2006/04/06(木) 17:13:15typedef struct {
double X; //X座標
double Y; //Y座標
} SCoord ; //座標構造体
vector<SCoord*> CoordsList; //座標構造体へのポインタ列を格納するベクタ
srand((unsigned)time( NULL )); //乱数の初期化
for (unsigned int i=0; i<10; i++){
SCoord* pTempCoord = new SCoord;
pTempCoord->X = (double)rand(); //乱数で座標を生成、代入
pTempCoord->Y = (double)rand();
CoordsList.push_back(pTempCoord);
} //座標構造体のインスタンスを10個作ってポインタを格納
:
中略
:
//使用済み座標構造体のインスタンスをメモリから削除するつもり
for (unsigned int i = 0; i < CoordsList.size(); i++){
delete (SCoord*)CoordsList[i];
}
ここまで実行させた後、ソースファイルControls.pasが見つかりません。という
ダイアログが開き、パスを入力するようになりました。デバッガ上でないと
プログラムが目的としている全ての処理をちゃんと終わった後で異常終了します。
最後の構造体の削除のforループをコメントアウトすると、メモリリークを起こす
と思いますが、正常に終了します。
Controls.pasって多分C++BuilderのGUI関連のライブラリのソースで、普通に
インストールすれば、ユーザーが知らなくても処理に必要なら処理系は知ってる
はずと思うのですが...だいいち、データ領域はSTLで作っていますから
VCLに依存していない部分です。
どうしたら良いでしょう?
0246デフォルトの名無しさん
2006/04/06(木) 17:27:490247デフォルトの名無しさん
2006/04/06(木) 17:29:48そんだけのコードだと別になんともないけどね。
中略の部分とか、他の部分に問題があるのでは?CodeGuardは使ってみた?
0248デフォルトの名無しさん
2006/04/06(木) 17:36:24Controls.pasのパスを指定すると後は動くの?
0249デフォルトの名無しさん
2006/04/06(木) 17:37:10BCB6持ってればニーキュッパでしょ、ちょっと倹約すればアップデート
できるでしょう。
0250デフォルトの名無しさん
2006/04/06(木) 17:40:21CodeGuard?
すみません、マニュアルはヘルプだけなのでしょうか?IDEの使い方は
どこで調べたら良いでしょう?(^o^);アセ
0251デフォルトの名無しさん
2006/04/06(木) 17:44:13あれ?10ってでてるの?俺馬鹿?
0252デフォルトの名無しさん
2006/04/06(木) 17:48:31メニューの「プロジェクト」→「オプション」→「C++コンパイラ」→
「CodeGuardコンパイルサポート」→「すべてのCodeguardオプションを有効にする」にチェックを入れてリビルド。
実行時間は遅くなるけど、解放忘れとか二重解放とかチェックしてくれる。
0253デフォルトの名無しさん
2006/04/06(木) 17:52:03実は、Controls.pasがどこにあるかわからないのですWindowsのファイルや
フォルダの検索で探してみたのですが...
0254デフォルトの名無しさん
2006/04/06(木) 17:54:12Developper Studioに含まれています。インストール後アップデートパッチを
当てると、正式版になります。
0255デフォルトの名無しさん
2006/04/06(木) 17:57:08すみません...見つかりました。やってみます。
0256デフォルトの名無しさん
2006/04/06(木) 18:03:35早速やってみます。
0257デフォルトの名無しさん
2006/04/06(木) 18:24:410258デフォルトの名無しさん
2006/04/06(木) 18:39:36嗚呼アレって10だったのか・・・
0259デフォルトの名無しさん
2006/04/06(木) 20:03:03Delphi6 > Delphi7 > Delphi8 > Delphi2005(9) > BDS2006(10)
0260デフォルトの名無しさん
2006/04/06(木) 20:08:500261デフォルトの名無しさん
2006/04/06(木) 20:15:550262デフォルトの名無しさん
2006/04/06(木) 20:59:44どなたか、多重実行の禁止方法を教えてください。
よろしくお願いします。
ちなみにBCB5を使用しております。
0263デフォルトの名無しさん
2006/04/06(木) 21:03:09http://www.google.com/search?num=50&hl=ja&ie=Shift_JIS&oe=Shift_JIS&q=%93%F1%8Fd%8BN%93%AE+%96h%8E%7E&lr=lang_ja
0264デフォルトの名無しさん
2006/04/06(木) 21:37:33自作コンポーネントのPaintで、上の指定をして描画してるのですが有効になりません。
それ以外は問題なく動いているのですが・・・。
何か制限のようなものがあるのでしょうか?
0265デフォルトの名無しさん
2006/04/06(木) 22:22:37有効になりませんじゃよくわからんぜ。
そのあと何か描画したんだろ?どういう描画して期待通りにならなかったのか書いてくれないと。
0266デフォルトの名無しさん
2006/04/07(金) 00:58:10TFont、TBrush、TPenはリソースの管理にそれぞれ癖があるから注意が必要。
0267デフォルトの名無しさん
2006/04/07(金) 01:57:45http://pc8.2ch.net/test/read.cgi/tech/1144308804/
0268262
2006/04/10(月) 19:31:35理解しました。
ありがとうございました。
0269デフォルトの名無しさん
2006/04/12(水) 11:29:20http://www6.airnet.ne.jp/~sone_san/delphi/cgi-bin/ssi.cgi?graphmul.html#GM0040
コレを使っているんですが再構築するたびに Gldstream.hpp の26行目
typedef TBitmap TGLDBmp;
;
の部分を
typedef Graphics::TBitmap TGLDBmp;
;
に書き換えなくてはいけないのでメンドイです。対策とかあったら教えてください。
0270デフォルトの名無しさん
2006/04/12(水) 12:26:16再構築のたびに.hppが元に戻るって事は、プロジェクトに.pas追加してるの?
一度.pasソースから.objを作ったら、それをリンク(#pragma link "〜.obj")してやれば、プロジェクトには.pasは要らないよ。
そうすれば.hppを書き換えても元に戻らない。
あとはそもそも名前が衝突してる原因であるWindows.hppの
typedef tagBITMAP TBitmap;
をコメントアウトするって手もある。tagBITMAPにTBitmapなんて別名はいらんでしょって事で俺はそうしてる。
0271デフォルトの名無しさん
2006/04/12(水) 14:00:030272デフォルトの名無しさん
2006/04/13(木) 00:11:42クリックしたり、リストビュー項目の中を選択したりする制御プログラムを作ろうとしております。
ウィンドウハンドルを取得してから、SendMessageを使用して、起動や最小化等できることは分かりました。
//最小化
SendMessage(hWnd,WM_SYSCOMMAND,SC_MINIMIZE,0);
//最大化
SendMessage(hWnd,WM_SYSCOMMAND,SC_MAXIMIZE,0);
//元の大きさに戻す
SendMessage(hWnd,WM_SYSCOMMAND,SC_RESTORE,0);
//ウインドウの移動
MoveWindow(hWnd,X,Y,Width,Height,true);
リストビューの中を選択したり、クリックする方法分かりますでしょうか。
ググッたところ、情報見つからなかったので、質問させて頂きました
0273272
2006/04/13(木) 00:20:50メッセンジャーのメッセージアーカイブ(メッセログ)を開き、保存したいメッセージを選択し、
「メッセージ」→「保存」を選択するルーチンで毎日のメッセージを保存していこうとしています。
そのままメッセージアーカイブを使えば普通に見れますが、検索や特殊なことができず不便なので
一度テキストファイルにログを落とし、それを違うプログラムで読み直そうと考えています。
元々のメッセンジャーが残しているログは厄介なことにバイナリでして、
バイナリを解析しきれず(解析方法もぐぐりましたが)、断念の為
メッセンジャのメッセージアーカイブ経由でテキストに毎日自動で落としていこうと思いました。
0274272
2006/04/13(木) 00:54:45こちらで紹介のツールはバグなのか使用不可でした。。。
また↓こちらのツールも駄目でした。。。(正常に読み込まれず文字化け)
http://www.geocities.co.jp/SiliconValley/1715/ymaviewer/index.html
0275デフォルトの名無しさん
2006/04/13(木) 02:25:15メッセージアーカイブウィンドウにWM_COMMANDを送る。
他のプロセスのリストビューの項目の選択は↓の下のほう
http://siren.poke1.jp/cbuilder/033.html
まあ割と面倒なんで、keybd_eventを並べてキー操作を自動化するとか、
UWSCみたいな自動化ソフト使ったほうが簡単で早いと思うけどね。
0276272
2006/04/13(木) 08:07:36ありがとうございます!!>>275さん
早速確認してみます、
すぐ取り掛かりたいですが。。。仕事なので帰ったらすぐ試したいです。
(帰るのはPM12頃なので、また何かありましたらよろしくお願いします。)
0278245
2006/04/13(木) 11:40:31for (unsigned int i = 0; i < CoordsList.size(); i++){
delete (SCoord*)CoordsList[i];
}
中略の中で既に削除した構造体のインスタンスを二重にdeleteしていました。
ハズカシイ...
0279デフォルトの名無しさん
2006/04/13(木) 11:46:15HTMLヘルプとソースとデザイナがタブで切り替えて使えるなど、操作性が
格段に向上している。エディタの機能がしょぼいのは相変わらず。
外部エディタで修正してセーブすると、ソースに変更が加えられたことを
認識して読み直すか聞いてくる点は6と同じ。私はコーディングには秀丸を
使ってます。
0280デフォルトの名無しさん
2006/04/13(木) 11:58:34画面いっぱいになるの止めさせたいけど方法がわかる方教えてくださいマセマセ...
0281デフォルトの名無しさん
2006/04/13(木) 12:04:21Indy 10ってそんなことになってるの??????
0282デフォルトの名無しさん
2006/04/13(木) 13:41:120284デフォルトの名無しさん
2006/04/13(木) 17:44:24つ279
0285デフォルトの名無しさん
2006/04/13(木) 18:01:39おっとこれは失礼。
>>279
感謝。
>外部エディタで修正してセーブすると、ソースに変更が加えられたことを
>認識して読み直すか聞いてくる点は6と同じ。
これって1からありません?
5から実行ファイルのサイズが3の1.5倍くらいに膨れ上がってますが(同じソースをコンパイルして)
10では更に肥大化してますか?
あと、TComboBoxでChangingイベントは追加されてますか?
0286デフォルトの名無しさん
2006/04/13(木) 18:26:07ちなみにTComboBoxにChangingイベントはなかった。
0287デフォルトの名無しさん
2006/04/13(木) 18:26:53各Columnの幅を内容に合わせて最適な幅に調整しようと
TListColumnのWidthにColumnTextWidthを入れてみたのですが・・・
どうも正しいサイズにならないです(狭くなってしまう)
せめて自動調整された後の値が読み出しできればマージン分を付加して
再設定出来るのですが読み出ししてもColumnTextWidthの−1しか帰ってきませんでした
これはこんなものなんでしょうか?
0288デフォルトの名無しさん
2006/04/13(木) 18:43:19自動調整時のカラムの幅知りたいなら↓
ListView1->Perform(LVM_GETCOLUMNWIDTH, カラムのインデックス, 0);
0289デフォルトの名無しさん
2006/04/13(木) 18:50:19ListView_GetColumnWidthも試してたんですがなんか全部同じ値が帰ってくる・・・・はて?
サンプルのコードで思った値に近い数値が取れましたのでこちらの方を使用して進めてみます
0290デフォルトの名無しさん
2006/04/14(金) 10:24:11私が実際に使ったのは2から、秀丸と併用を始めたのは3から。
実行ファイルのサイズは6と同等。裏にいるコンパイラは多分BC5.5.
ライブラリにも違いは殆ど感じられない。
ドトネトは使う予定ないから、Winネイティブだけ。2005は使った経験なし。
細切れのウィンドウが画面に散らばる6の雰囲気から1個にドックした大きな
一つの区割りウィンドウになった。HTMLヘルプのリンクをクリックすると
結局別のヘルプブラウザが起動する。このためと、秀丸を併用するため、
2006が全画面に広がっていると、操作しにくいので、右と下を少し縮めて
使うが、デバッグモードに入ると自動的に全画面サイズに戻ってしまう。
ユーザーが設定したレイアウトを保存して、次回から常にその場所と大きさで
起動したいが、方法がわからない。
0291デフォルトの名無しさん
2006/04/14(金) 11:16:520292デフォルトの名無しさん
2006/04/14(金) 11:43:440293デフォルトの名無しさん
2006/04/14(金) 16:36:38いや、もう解決済みだ。
0294デフォルトの名無しさん
2006/04/14(金) 17:58:25とりあえず謝れ!
0295デフォルトの名無しさん
2006/04/14(金) 19:15:05想像でウソ書くのはヤメレ
0296デフォルトの名無しさん
2006/04/14(金) 19:34:12BCB5でTListViewをvsReportに設定
CustomDrawSubItemで決められた場所のみ色を付ける処理をしているのですが何故か白にだけ戻りません
色付けする場所は縦方向なのでColumnのTagに値を入れて判定しています(2の時色つけ)
TCanvas *pCanvas=((TListView *)Sender)->Canvas;
if (((TListView *)Sender)->Column[SubItem]->Tag == 2){
pCanvas->Brush->Color = TColor(RGB(150,150,150));
}else{
pCanvas->Brush->Color = clWhite;
}
一度色を付けた行から後は全部その色になってしまいます
clWhiteの所をclWindowにしてもTColor(RGB(255,255,255))にしても戻りません
ですがTColor(RGB(254,255,255))などとほかの色を付ければちゃんとその色になります
そもそも何か根本的にやり方を間違ってるのでしょうか?
0297デフォルトの名無しさん
2006/04/14(金) 19:36:002って言ったか?
0298デフォルトの名無しさん
2006/04/14(金) 21:19:20Borland C++ 5.81 for Win32 Copyright (c) 1993, 2005 Borland
0299デフォルトの名無しさん
2006/04/15(土) 00:55:360300デフォルトの名無しさん
2006/04/15(土) 09:55:560301デフォルトの名無しさん
2006/04/16(日) 14:01:11http://www.jomitech.com/#downloads
デュアルコアの環境でコンパイルしたら、3倍以上速くなった。凄い。
0302デフォルトの名無しさん
2006/04/16(日) 14:09:59シェアウェアじゃんヴォケ
0303デフォルトの名無しさん
2006/04/16(日) 14:13:59貧乏人の反応はよく分からん
0304デフォルトの名無しさん
2006/04/16(日) 14:19:26何かとすぐ限界にぶち当たる閉塞的な人生送って
苛々してるんでしょ
0305デフォルトの名無しさん
2006/04/16(日) 14:26:45まあでもIDE Compiler Speed Improvementとといい、これといい
BCBにデフォで実装されるぐらい某にも努力して欲しい気も汁
0306デフォルトの名無しさん
2006/04/16(日) 17:21:540307デフォルトの名無しさん
2006/04/16(日) 17:49:12新しいの買っても速度アップは望めないでしょ。
てかRAMディスク上でコンパイルしてもたいして速度変わんないよね。
ディスクアクセスの代わりにメモリ帯域食うのかもしれないけど。
今時のだともうHDDの速度は十分で、あとはCPUとコンパイラに依ると思う。
0308デフォルトの名無しさん
2006/04/16(日) 23:17:07ランダムアクセス主体の場合は、転送時間より待ち時間のほうがずっと長いから。
使ったこと無いとわからないかもしれないけど。
まあ、コンパイルへの影響は少ないかもね。
0309デフォルトの名無しさん
2006/04/16(日) 23:33:03> コンパイルへの影響は少ないかもね。
どっちやねん
0310デフォルトの名無しさん
2006/04/17(月) 00:41:53一般的なPCの用途においては
HDDの内部転送速度の影響よりもシーク速度や回転速度の影響のほうが大きい
で、
コンパイルという用途においては
影響は少ない可能性もある
というだけ。
(OSにキャッシュされる前の)初回のヘッダ読み込みなんかには影響大だけど
作業ファイルの書き出しは、OSの書き込みキャッシュが効くから
HDD速度の影響は少ないかもしれないという話。
0311デフォルトの名無しさん
2006/04/17(月) 01:16:110312272
2006/04/17(月) 03:23:17ご無沙汰しております、先日は、GetMenuやリストビューの選択方法教えていただきありがとうございました。
現在、おかげさまで、メッセージアーカイブの起動、アーカイブの保存のところまで完了しております (^^)
この前は、Builderを使ってどうにか作る方法のことばかり考えており、
下の方のレスを見落としておりました^^; 今日もう一度読み替えして気が付きましたが、
>まあ割と面倒なんで、keybd_eventを並べてキー操作を自動化するとか、
>UWSCみたいな自動化ソフト使ったほうが簡単で早いと思うけどね。
確かに、やってみると意外と大変でした^^; 現在2つの問題点で躓いている状態です。。。
1.リストビューを選択する方法でURLをこちらの教えていただきました
http://siren.poke1.jp/cbuilder/033.html
リストビューにはどのログを保存するか選択できるようにいくつか日付で並んでいるのですが、
どの部分の関数で選択しているのかが、良く分からずとまっております。。。
ただ、こちらはもう少し自分で色々試してみてたいと思います(この辺怪しいですし:char *Text=(char*)&Item[1];)
問題は、
アーカイブ保存時の今日の日付のログだけを保存したいので、リストビューに記述してある、
日付を取得して処理を行いたいのですが、その方法を探しております。
実際のメニュー状態を参考までに載せますと:http://www.geocities.jp/kuraisisuhuddo/image03.bmp
で、4月16日のログは今回2つあるので、異なる名前にして保存する為、2回保存します。
日によって、ログの数は変わっているので、その日のログだけを取得する為に日付をチェックします。
最後の悩みとしまして、保存ダイヤログ表示まではできましたが、保存するときのファイル名の指定と、
保存ボタンのクリックです。
もし、よろしければアドバイス頂けると幸いです。
0313デフォルトの名無しさん
2006/04/17(月) 22:04:36メッセージアーカイブのは読めなかった。自前で描画してんのかな。
0314デフォルトの名無しさん
2006/04/17(月) 23:50:23おかしくなってしまったのですが、皆さんはどうしてらっしゃいますか?
0315デフォルトの名無しさん
2006/04/17(月) 23:52:57ていうか、実際にああいうの使っている奴いるの?
0316272
2006/04/17(月) 23:54:24レスありがとうございます、特殊ですよね。。。
私はアーカイブを経由してログを出力させることが目的なのですが(アーカイブ経由でないとバイナリなのでログの取得が困難な為)
なかなか難しいですね。。。
出力後は、C++でもPHPでWEBアプリに出力することもできると思っていましたが、
厳しいかな。。。
0317デフォルトの名無しさん
2006/04/19(水) 16:19:13> 保存ダイヤログ表示
ダイヤログ…
0318デフォルトの名無しさん
2006/04/19(水) 17:04:13うざいしんでかす
0319デフォルトの名無しさん
2006/04/19(水) 18:59:29日本語でおk
0320272
2006/04/19(水) 23:59:30誤:ダイヤログ
正:ダイアログ
しかしながら、いまだに解決しないので、UWSCで、定期的に複数保存して、
保存したログはテキストなので、それをプログラムで読み込んで同じログがあれば省いて
表示や検索するような仕組みにしようかと考えています。
0321デフォルトの名無しさん
2006/04/25(火) 12:49:06もし出来るのでしたらどこかにうまい具合のサンプルソースなど落ちてないでしょうか?<(__)>
0322デフォルトの名無しさん
2006/04/25(火) 13:54:350323デフォルトの名無しさん
2006/04/25(火) 14:23:330324321
2006/04/25(火) 14:59:59http://e-words.jp/w/GZIP.html
0325デフォルトの名無しさん
2006/04/25(火) 16:45:080326デフォルトの名無しさん
2006/04/25(火) 19:10:380327デフォルトの名無しさん
2006/04/26(水) 08:17:56ちなみにゲームとかで扱う場合は圧縮したデータをアーカイブ化するのが普通。
(アーカイブ全体を展開せずにファイル単位で展開できるから)
0328デフォルトの名無しさん
2006/04/27(木) 02:23:19BCB6.0で作ったCGI実行形式のプログラムがWindows2003ServerのIISで動きません。
どうもntdll.dllで外部例外が発生しているようです。
WindowsXPのIISでは動くし、何もしないプログラムでも発生するので、
builderかIISの問題ではないかと疑っているのですが…
何か情報を持っている人はいませんか?
0329デフォルトの名無しさん
2006/04/27(木) 08:09:40>何もしないプログラムでも発生
であれば、ロギング処理などを入れるとかして、問題の発生場所が特定できませんか?
ひょっとしてmain関数さえも呼ばれないのですか?
0330デフォルトの名無しさん
2006/04/27(木) 08:38:280331328
2006/04/27(木) 21:00:32>>330 権限はあるお。
いろいろためしてみたのですが、
BCBのウィザードを使用せず、入出力を自分で書くと例外は発生しませんでした。
どうやらBCB6.0のTWebModuleが怪しいです(BCB3.0だと大丈夫だった)。
複数のWindows2003Serverで再現したので普遍的な問題だと思います。
プログラム大幅に書き直しですorz
■ このスレッドは過去ログ倉庫に格納されています