[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 03/01 23:10 / Filesize : 254 KB / Number-of Response : 923
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

くだすれC++Builder(超初心者用)その3



1 名前:デフォルトの名無しさん mailto:sage [2007/02/12(月) 03:39:51 ]
このスレッドは、他のスレッドでは書き込めない超低レベル、 
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。 
C++Builder使いが優しくコメントを返しますが、 
お礼はC++Builderの布教と初心者の救済をお願いします。 

Borland Home Page   www.borland.co.jp/ 

<過去スレ> 
くだすれC++Builder(超初心者用) 
pc8.2ch.net/test/read.cgi/tech/1117225464/l50

くだすれC++Builder(超初心者用)その2
pc10.2ch.net/test/read.cgi/tech/1144308804/l50

<兄弟スレ> 
くだすれDelphi(超初心者用)その39
pc10.2ch.net/test/read.cgi/tech/1169386914/l50


386 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 00:14:57 ]
>>381
おまえ、2chに宣伝出したら、広告料すごいぞ?
最初にレス書いた時の許諾事項は読んだよな?大丈夫なのか?

387 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 10:07:36 ]
私の年収は10億万円なので大丈夫です。

388 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 00:33:41 ]
俺の年収は一兆億円だもんね!

389 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 03:30:36 ]
TForm1->Release;
としたあと、その開放完了をWaitForSingleObjectのように低い負荷で待ちたいと考えています。
どのようにすればよいでしょうか。
よろしくお願いします。

390 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 07:50:02 ]
他のスレッドで待ちたいの?
どっちにしても、メインスレッドでメッセージポンプ回してやらないとPostMessage
しただけじゃいつまでたっても終了しないよ。

391 名前:デフォルトの名無しさん [2008/01/29(火) 10:22:48 ]
おしえてください。
下記のように定義して、abcの要素数分(5個)をdefの大きさ(x)にしたいのですが
abcを書き換えても、xが自動的に決まるように書くにはどう記述すれいいですか。
AnsiString abc[]={
"111.",
"222",
"333",
"444",
"555"
};
int def[x];


392 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 12:34:46 ]
>>391 こういう風に。
blogs.wankuma.com/melt/archive/2007/09/01/93176.aspx

393 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 13:02:17 ]
>>392
ありがとう。
_countof()はBuilderには無いんですね。エラーですた。
template <typename _CountofType, size_t _SizeOfArray>
char (*__countof_helper(_CountofType (&_Array)[_SizeOfArray]))[_SizeOfArray];
#define _countof(_Array) sizeof(*__countof_helper(_Array))
これをこぴってきて
_countof(abc) にて要素数が簡単に取得できるようになりました。



394 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 17:14:23 ]
BDS2006で問題なかったプロジェクトが
2007でコンパイルしたらリソースリークが発生した。なんで?
sys\sysutils.pasの何行目とか表示してるけど、このファイルどこにあるの?
エディタのメッセージからは開けなかった。環境変数がおかしいのかな?



395 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 18:57:59 ]
質問です。

windows タスクバーのボリュームコントロールをプログラムから開くには?
スタート・メニューは、webから探した

HWND hTaskBar=FindWindow(PChar("Shell_TrayWnd"), NULL);
if (SetForegroundWindow(hTaskBar)){
PostMessage(hTaskBar, WM_USER+0x0104, 0, 0);
}
で開けたので、似たような方法で出来ると思うのですが???



396 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 19:13:23 ]
::ShellExecute(0, "open", "sndvol32.exe", 0, 0, SW_SHOWNORMAL);

397 名前:389 mailto:sage [2008/01/29(火) 21:04:42 ]
>>390
ありがとうございます。
DLLを作っているのですけれども、ホストの終了時に呼ばれる関数内でフォームを解放し、それが完了したらホストに値を返すようにしたいです。
だから別スレッドでは無いと思います。

398 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 21:06:13 ]
>>396
レス感謝です。

実は先ほどボンヤリとsystem32フォルダを眺めていてsndvol32.exeを見つけ
WINEXECで開けました。
メインのボリュームだけで良かったんだけど、取り合えず良しとします。

最終的にはアプリ内の自作スライドでこのマスター・ボリュームをコントロール
したくてWin32 API プログラマーズ リファレンスと格闘中です(^^;)

399 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 23:23:07 ]
>394
FastMMで詳細を表示させてみたら?

400 名前:394 mailto:sage [2008/02/01(金) 21:51:01 ]
すまん。俺のプログラムミスだったらしい。
原因はよくわからんが、同じ処理を2回やってたのがまずかったらしい。
AnsiStringに数字を入力するときにエラー処理として
try{
edit->Text.ToDouble();
}catch{
edit->Text="1.0";
}
みたいなコード書いてて、この処理の後に別の関数呼ぶんだけど
同じような処理の後、描画の処理になってたのを
このコードの別の関数を呼ぶ場所に描画の関数を書いたらエラーは出なくなったよ。
何でエラーが出たのかさっぱりわからん。
とりあえず自己解決しました。
FastMMはこれから作るプログラム全部に導入しようと思います
ありがとう。

401 名前:デフォルトの名無しさん [2008/02/06(水) 14:17:19 ]
OpenMPは使えますか?

402 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 06:40:37 ]
使えますん。


403 名前:デフォルトの名無しさん [2008/02/16(土) 13:24:18 ]
AnsiString s;
AnsiString t="";
s.printf("t=%s",t);
とすると、s が "t=(null)"
となってしまいます。
この(null)を出力させないようにするには、
s が "t="となるようにするにはどうすればいいでしょうか。


404 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 13:43:33 ]
s.printf("t=%s",t.c_str());



405 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 14:28:37 ]
>>404
早々に、さんくすです。


406 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 10:05:06 ]
TubroC++のIDEでhとcppを切り替えるタブが下に付いているんだけど
上に持って来ることは出来ますか?
なんか使いづらくて

407 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 12:07:37 ]
そんなことよりCtrl+F6押そうぜ!

408 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 01:06:00 ]
Ctrl+F6は窓使いの憂鬱で別のキーに設定して使ってます
昔のバージョンでは1発で目的のファイルを開けたのに
つかいにくく感じるのは自分だけなのか

409 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 15:40:26 ]
コンポーネントパレットが見えなくなったのですが
修復できる方法はないでしょうか

410 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 17:55:19 ]
レジストリのみのインストールは?

411 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 17:56:04 ]
メガネ買って来い

412 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 09:56:40 ]
はてな???

プログラム上からのフォルダーのリネーム
ってどうやるんでしょう?

環境XP+BCB++V5。手段は問いません。



413 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 10:30:12 ]
>>412
Sysutils::RenameFile(const AnsiString OldName, const AnsiString NewName);

414 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 19:57:19 ]
>>413
レス有難う

ファイルじゃなくてフォルダ
(ディレクトリ)のリネームなんですよ
RenameFile(a,b)ではエラーになりますね。
ヒントなのかな・・・読めない・・?




415 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 21:02:04 ]
どんなエラー出る?

416 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 21:18:06 ]
ありがちなところだと、パス名含めてフォルダ名が長すぎ

お手軽にMoveFileのUnicode版使えば?

417 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 21:52:34 ]
6.0使っています。
image->canvas->pixel[x][y] = (TColor)((a[x][y] >> 16) | (b[x][y] >> 8) | (c[x][y]))
でCanvasに書き、それを
SavePictureDialogでビットマップに保存しているのですが、
保存されるファイルが32bitのビットマップになっているようです。(ファイルサイズ的に)

これを24bitのビットマップで保存したいのですが、どのようにすれば宜しいのでしょうか?

418 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 22:40:53 ]
Image->Picture->Bitmap->PixelFormat

でいいんじゃね?

419 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 23:28:54 ]
C++Builder2007開発してます。
非BCB環境のwin2000で実行したところ、
CG32.DLLがないと怒られます。開発環境では動きます。
オプション->デバッグ->CodeGuardの有効チェックボタンfalseと
ツール->CodeGuardの環境設定->CodeGuard無効としてます。

バージョンはC++Builder(R) 2007 R2 Version 11.0.2902.10471で、
sp2とは書いていないのですが、最新と思ってます。

参考に以下のサイトを参考にしましたが、
うまくいきません。情報があれば教えてください。

tp://www.gesource.jp/weblog/archives/2007/08/cbuilder2007cg32dll.html

420 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 00:57:03 ]
dn.codegear.com/jp/article/36796
の追加情報にバージョンの確認方法書いてあるからまずはそれをチェックしてみれ

421 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 01:14:29 ]
お世話になります

追加情報

1. このパッチを適用した後も、バージョン情報ダイアログに表示されるバージョン番号は変わりませんが、
bin ディレクトリにあるファイルのタイムスタンプは、11:02になります。

bds.exeが4:04でした。
インストール4回目だわさorz

あしたやってみます。
インストールキャッシュの有無の確認方法ってありますか?
また、インストール時キャッシュの保存ってあったっけ?
情報ありがとうございました。

422 名前:417 mailto:sage [2008/03/05(水) 19:44:28 ]
>>418
出来ました!ありがとうございます。

しかし、同じコードを書いた別のプロジェクトがあるんですが、それは24bitのビットマップで保存されているんですよね。
imageコンポート上かどっかで設定が出来るんですかね

423 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 21:43:12 ]
TImageって無駄に冗長だからなぁ

424 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 22:48:52 ]
ども。
CG32.DLLの件のものです。
意気揚々とアンインスコに取り掛かり、
せいぜい1h程度と思いきや2h以上orzで、
再インスコで以下のキャッシュの削除の有無の
選択画面を期待しながら「次」を押すと
ttp://support.codegear.com/jp/article/images/36815/03000008.png
そんな画面が出ずにガンガン突き進んで
無事?完了

で、なぜキャッシュの運用を聞いてこないか
理解できない。
ちなみに、インスコプログラムのバック画像は
グリッド状のドーム天井を背景に
パルテノン神殿っぽい建物の画像で、
ttp://support.codegear.com/jp/article/images/36815/03000008.png
は12345といったプログラムコードの背景なので・・・

つかれた。情報あれば、教えてください。



425 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 23:25:24 ]
某のサポートに問い合わせた方がいいような気もする。
無料インストールサポートあったでしょ。たしか。

426 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 10:09:31 ]
そうですね。レスありがとうございました。

427 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 21:16:11 ]
環境はBCB2007WINXP 行数の関係で、詰めてかきます。
以下のソースで、実行F9とビルド時S+F9では挙動がことなりよくわからなくなっています。
実行時は普通にアクティブなソフトの全パスが表示されますが、ビルドしたのを実行すると取得できません。
何かの勘違いか、コンパイラの使用知識不足としか思えません。よくないところを教えていただけないでしょうか?

#include <vcl.h>
#include <psapi.h>
#pragma hdrstop
#include "Unit1.h"
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{ HWND hWnd=GetForegroundWindow();
bool blJEJ=false; DWORD dwPID; GetWindowThreadProcessId(hWnd, &dwPID);
hWnd = OpenProcess(PROCESS_ALL_ACCESS, 0, dwPID);
DWORD ReturnSize;
if(!hWnd){ ShowMessage("if(!hWnd)");//デバッグ用//ここにhWndの値をShowMessageするにはどうすりゃいいんだ? }
if(hWnd){
char buf[MAX_PATH];
HMODULE hMod; DWORD size;
EnumProcessModules(hWnd, &hMod, sizeof(hMod) ,&size);
GetModuleFileNameEx(hWnd, hMod, buf, sizeof(buf));
CloseHandle(hWnd);//これの意味がわからない。
AnsiString str=fname;  ShowMessage(str);
}
//---------------------------------------------------------------------------
へたなコードですが、素人なのでご容赦を

428 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 00:16:57 ]
bool blJEJ=false; DWORD dwPID; GetWindowThreadProcessId(hWnd, &dwPID);
hWnd = OpenProcess(PROCESS_ALL_ACCESS, 0, dwPID);
DWORD ReturnSize;
if(!hWnd){ ShowMessage("if(!hWnd)");/

どうも、if(!hWnd)がtrueになるみたいです。
ほとほと困りました。なにとどご支援お願いいたします。
状況説明に不足がございましたら、レスしていただければ
助かります。

429 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 01:03:08 ]
くだスレなんで思いつきだけど
OpenProcess() の戻り値とOSの関係とか、権限とかはOK?

430 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 09:19:33 ]
>>427
ShowMessage("if(!hWnd)");//デバッグ用//ここにhWndの値をShowMessageするにはどうすりゃいいんだ?
     ↓
IntToStr(hWnd) or IntToStr(hWnd) or AnsiString().sprintf("%08X", hWnd)

431 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 09:28:41 ]
ちょっと待て、なんでOpenProcessの戻り値をHWNDに入れてる。
OpenProcessの戻り値はHANDLE型。

432 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 09:52:09 ]
BCB6ってUTF8ファイルのコンパイルってできましたっけ?

能とか表があると、gccのコンパイルが失敗するので、ソースファイルをUTF8にしたいんでつよね。

433 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 10:08:31 ]
どもです。
>OpenProcessの戻り値をHWNDに入れてる。
OpenProcessの戻り値はHANDLE型。

ちょっと見えてきました。
まずは型の勉強をしてみます。
APIの型ってよくわからないんです。

でも、実行では動くのにビルドでは動かない。
ビルドはできるのに。ちくしょう!
夜やってみます。キャストの件ありがとうございます。

434 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 12:53:33 ]
OpenProcess()の直後
GetLastError()を調べたところ、
5が帰ってきました。
p://onegland.hp.infoseek.co.jp/wincgi/help/winerror.txt
によると5は
5: アクセスは拒否されました。
とあり、悲しい限りです。
なんらかの対策はないでしょうか?




435 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 12:56:41 ]
OS側が拒否しないようにセットアップしておく。

436 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 14:36:34 ]
OpenProcessで要求するアクセス権を必要最小限に

437 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 19:34:26 ]
dwDesiredAccessの値を全部試してみましたが、
だめでした。

「ウインドウハンドル ファイル名」でググッて
実装しているんですが。

GetForegroundWindowして、希望のexeがトップかどうかを
調べてるだけなんです。。。

ほかにいい方法ありませんか?
あきらかにAPIの問題だけど、あのスレ結構きついんだなぁ。
BCBしかわからんし。すれ違いかな?しつこくて申し訳ないです。

438 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 19:58:21 ]
というか、何がしたいのか全くわからん

439 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 20:09:03 ]
アクティブなウインドウが特定のアプリかどうかを
調べたいのです。

そのため、GetForegroundWindowでウインドウハンドルを求めて、
アプリ名を検出し、特定のアプリかどうかの文字列判定をしています。

というわけで、アプリ名を知りたいのではないのです。

具体的には、作ってるのはユーティリティで、特定のアプリを
操作しているときに、激しく自前ソフトを実行し、
非特定アプリを操作しているときは、特定のアプリかどうかの
判定のみを実行するのです。ぅ〜ん、うまくいかないなぁ。
実行とビルド実行でこれだけ差がでるとつらいなぁ。

440 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 20:29:05 ]
うちの似たようなことしてるソースだとこれで動いてるけど

HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, 0, pid);


441 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 20:44:04 ]
>>440
おみごと!
どうにか動きました。よくわかんないけど。
いろいろありがとうございました。

442 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 20:44:14 ]
フルパス必要なきゃこっちの方が手軽かも

DWORD pid;
GetWindowThreadProcessId(hWnd, &pid);

HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,pid);

PROCESSENTRY32 pe32;
pe32.dwSize = sizeof(PROCESSENTRY32);

bool ret = Process32First(snapshot, &pe32);
while(ret) {
if( pid == pe32.th32ProcessID ) ShowMessage(pe32.szExeFile);

ret = Process32Next(snapshot, &pe32);
}

CloseHandle(snapshot);

443 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 21:09:03 ]
ども。参考にさせていただきます。
9xにも対応させたいし。って対応可能??
では。

444 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 01:15:57 ]
9xはProcess32First/Nextでフルパス返してくる(NT系はファイル名のみ)
NT系でフルパス取るにはやっぱりPSAPIで取らないとだめ。

あと9x対応にするにはGetModuleFileNmaeExとEnumProcessModulesをLoadLibrary/GetProcAddressでロードしないとエラーが出る。



445 名前:デフォルトの名無しさん [2008/03/12(水) 02:01:47 ]
質問です
TListViewにて
ListView1->ViewStyle=vsReport;にして
ListView1->Columns->Items[0]->Alignment=taRightJustify;
としても、文字列表示が左寄せのままです。
他の列はちゃんと右寄せに表示されます。
先頭列を右寄せで表示するにはどうすればいいでしょうか。




446 名前:デフォルトの名無しさん [2008/03/12(水) 06:14:06 ]
TValueListEditorコンポーネントの行数設定は、どうすればできますか?

447 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 01:31:11 ]
>445
最初のカラムのAlignmentが無効なのはコモンコントロールの仕様じゃなかったっけ?

448 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 20:01:53 ]
リストボックスをコンボボックスのように一行で表示して
プルダウンリストで表示するプロパティを探しているのですが、
わかりません。教えていただければ助かります。
リストボックスでなくてもいいです。

コンボボックスのように入力は受け付けたくありません。
例としてはIEのインターネットオプションのプログラムタグの
HTMLエディタや電子メールといったリストボックスです。

449 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 20:25:27 ]
コンボボックスのStyleプロパティにcrDropDownListで問題あるの?

450 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 20:28:39 ]
OKでした。節穴でした。
ありがとございました。

451 名前:デフォルトの名無しさん [2008/03/20(木) 22:39:55 ]
テキストファイルを読み込ませるにはどうすればいいんですか?

今までGCCでやっていたときには同じフォルダにテキストファイル
おいておけばよかったんですが
Turbo C++に変えてからは同じフォルダに置いてもできません

452 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 22:50:54 ]
カレントディレクトリ?ファイル名は絶対パスで扱うほうが間違いないと思うけどね。

453 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 23:22:49 ]
>>452
できました
テキストファイルをプロジェクトファイルにおいていました

実行ファイルはDebug_Build内に作られるんですね

454 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 00:43:11 ]
WinMainの先頭に
SetCurrentDirectory(ExtractFileDir(Application->ExeName).c_str());
とか書いておけばいい



455 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 23:52:20 ]
それはちょっと…。カレントディレクトリはいつ変更されるかわからんから。

456 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 01:10:47 ]
win2000でBCB6を使用しています。
TListViewでチェックボックスを表示した場合とTCheckListBoxに表示される
チェックボックスでは見た目が違うのですが(TListViewに表示される方が枠が黒く太い)
これをTCheckListBoxで使われているようなチェックボックスに変える簡単な方法は
ないでしょうか?

457 名前:デフォルトの名無しさん [2008/03/27(木) 09:12:23 ]
教えてください。
ダイアログボックスでOKボタンが押されたときに、TEditの内容が未入力だったら
TEditにカーソルを持っていき、入力をしてもらうようにしたいと考えています。
カーソルを持っていくには、
Edit1->SetFocus();で出来たのですが
OKボタンがおされたときに、OKBtnClick(TObject *Sender)で
Edit1のなかみを調べて、何も入っていなければ
Edit1->SetFocus();を実行しても、ダイアログが閉じてしまいます。
これは、ボタンにModalResult=mrOkを指定しているからだとは思います。
OKボタンがおされたときに、Edit1がカラならEdit1へ
ちゃんと入力されていれば、そのままダイアログを閉じたいのですが
どうすればよいでしょうか。


458 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 09:23:51 ]
if (Edit1->Text.IsEmpty()) {
    Edit1->SetFocus();
    ModalResult = mrNone;
}

459 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 09:30:42 ]
TForm::OnCloseQueryで中身をチェックする

460 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 11:18:26 ]
>>458
>>459
できました。
どうもありがとうございます。


461 名前:デフォルトの名無しさん [2008/04/04(金) 07:54:34 ]
三項演算子の使い方を教えてください。
AnsiString str;
int index;
if(index!=0)
str="AAA";
else
str="BBB";
これは、
str= index!=0 ? str="AAA" : str="BBB";
このように書けば良いのはわかるのですが、
if(index!=0)
 str.printf("%d",a);
else
 str.printf("%d",b);
これの三項演算子での記述の仕方がわかりません。
indext!=0 ? (str=str.printf("%d",a)) : (str=str.printf("%d",b));
とすると、strにはstrの長さが文字として入ってしまいました。


462 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 08:04:16 ]
index!=0 ? str.printf("%d",2) : str.printf("%d",3);

463 名前:デフォルトの名無しさん [2008/04/04(金) 08:36:01 ]
>>462
できました。ありがとうございます。

すいませんがもう一つ教えてください。
if(index!=0)
 str.printf("%d",a);
else
 str="あいうえお";
の場合はどうすればよいでしょうか。
index!=0 ? str.printf("%d",a) : str="あいうえお";
ではエラーになってしまいます。


464 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 08:46:40 ]
型を合わせる
index!= 0 ? (void)str.printf("%d", a) : (void)(str = "あいうえお");



465 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 08:58:40 ]
>>464
なるほどー
すごい勉強になりました。
E2034 'AnsiString' 型は 'int' 型に変換できない
というエラーの意味が全然わからなかったのですが、
三項演算子は、両方で同じ型にしないとダメなんですね。
どうもありがとうございます。


466 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 12:25:42 ]
てゆーかさ、普通は
str = index != 0 ? "AAA" : "BBB";
とか
str.printf("%d", index != 0 ? a : b);
と書くんだよ。
あと、コンストラクタの初期化リスト等、どうしても「式」が必要な場所とか。
だから、「同じ型」の「式」が並ぶのが当然なの。「式文」じゃないから。

467 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 14:06:01 ]
質問ですが、VSSとBCBを連携させることはできますか?

468 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 15:49:54 ]
連携ってどういうふうに?
相互にobjを使うのは形式が違うから誰か変換ツール作らないと無理だけど
同じC++言語だから変換する意味無いでしょうから誰も作らない。

469 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 16:11:21 ]
Visual SourceSafe ?

470 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 16:12:28 ]
CVSならコンポあった気がしないでもない

471 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 01:04:43 ]
まさかC++の方もフリーカーソルだったりしますか?

472 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 08:13:59 ]
モチロンソウヨ

473 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 21:15:44 ]
絶望した

474 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 01:34:37 ]
GExpert?



475 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 15:13:54 ]
C++Builder2007で開発をしております。

C++Builder6で作られたプロジェクトのビルドができません。
エラー内容は以下の通りです。

[BCC32 エラー] functional(135): E2093 < 演算子が使われたがクラス string には定義が存在しない。


どなたか教えて頂けますか。

476 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 16:19:18 ]
>>472
いい事言うなあお前。
みんなが頭じゃわかっててもなかなか実践できない事を口に出して言えるなんざ大した自信だよ。
それで出来てなかったらあのインチキ占いのバアさんと一緒だぞお前。
そんなに当たり前の事を言いたかったら尼さんにでもなって言行等しくなってから説教したらどうだ。

477 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 18:31:56 ]
おk

478 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 22:25:46 ]
>>475
いい事言うなお前。

479 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 00:05:26 ]
>475
newsgroupで質問した人?エスパー求むってのもちょっとねぇ。
最小限の再現状況をさらしなさいな。

480 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 02:33:06 ]
>>475
最低限、エラー行を書けよ。
そんな質問の仕方では誰も答えねえぞ。


481 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 22:42:20 ]
型のチェックが厳密になってるから
曖昧な表現はすべて確定的表現にしないとダメよ

482 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 02:50:01 ]
475です。

>>479>>480>>481
質問の仕方が悪くてごめんなさい。
このエラーで困ってたのは
私(とnewsgroupで質問してた人)の関係者なのですが、解決したとのことです。
詳しい事は聞いてないのですが
エラーが出る直前にコンパイル中のCPPに#include <string>を追加したら通ったそうです。
どうもありがとうございました。

483 名前:デフォルトの名無しさん mailto:sage [2008/04/17(木) 15:48:42 ]
>482
関係者なんですね?わかります。
ともあれnewsgroupにもなんか書いておいたほうがいいと思いますよ。

484 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 18:28:24 ]
批判されたら他人のせいにするのは、ゆとりの常套手段。




485 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 15:47:08 ]
初心者ですが質問させてください。
特殊フォルダを取得したいためSHGetSpecialFolderPath()を使いたいのですが、
定義されていないというエラーが出ます。
#include <shlobj.h>を先頭に挿入すると、さらに大量のエラーが出ます。

どうすれば、よいのでしょうか。
この系統の方法以外で特殊フォルダのパス名を取得する方法はありますか?


486 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 16:46:18 ]
とりあえず、質問するときにはBuilderのバージョンを書いてね。
それが礼儀っちゅうもん。
#include "shlobj.h"するには、
NO_WIN32_LEAN_AND_MEAN を追加しなければ、二重定義エラーがでる。
設定方法は、Builderのバージョンによりちょいと異なる。







[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<254KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef