このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
C++Builder使いが優しくコメントを返しますが、
お礼はC++Builderの布教と初心者の救済をお願いします。
■C++Builder XE2 - エンバカデロ・テクノロジーズ
http://www.embarcadero.com/jp/products/cbuilder
<過去スレ>
くだすれC++Builder(超初心者用)その4
http://toro.2ch.net/test/read.cgi/tech/1256256376/
くだすれC++Builder(超初心者用)その3
http://pc11.2ch.net/test/read.cgi/tech/1171219191/
くだすれC++Builder(超初心者用)その2
http://pc10.2ch.net/test/read.cgi/tech/1144308804/
くだすれC++Builder(超初心者用)
http://pc8.2ch.net/test/read.cgi/tech/1117225464/
<兄弟スレ>
くだすれDelphi(超初心者用)その54
http://toro.2ch.net/test/read.cgi/tech/1325028195/
探検
くだすれC++Builder(超初心者用)その5
■ このスレッドは過去ログ倉庫に格納されています
2012/04/21(土) 13:26:14.76
467デフォルトの名無しさん
2013/09/28(土) 19:43:41.98468デフォルトの名無しさん
2013/10/08(火) 16:46:16.13 Delphi糞ユーザーは口をはさまないで下さい。うざいだけです。
469デフォルトの名無しさん
2013/10/08(火) 20:14:26.21470デフォルトの名無しさん
2013/10/08(火) 20:45:58.37 触らないほうが…
471デフォルトの名無しさん
2013/10/10(木) 03:23:18.25 エンバカってバグ取り=アップデート(要お布施)ってこと?
XE6が出ても、新規では10万するのかな
XE6が出ても、新規では10万するのかな
472デフォルトの名無しさん
2013/10/13(日) 12:32:54.38 リリースビルドの設定でパッケージを含んで動的リンクさせないような設定にしたいんだけど
毎回プロジェクト作るごとに設定するの面倒だからデフォルト設定にしたいんだけどそう言う設定ないの?
毎回プロジェクト作るごとに設定するの面倒だからデフォルト設定にしたいんだけどそう言う設定ないの?
473デフォルトの名無しさん
2013/10/13(日) 12:50:08.40 よくわからんけど。
「プロジェクト」->「オプション」メニューから設定してない?
「ツール」->「オプション」から設定すればデフォにならない?
「プロジェクト」->「オプション」メニューから設定してない?
「ツール」->「オプション」から設定すればデフォにならない?
474デフォルトの名無しさん
2013/10/13(日) 13:24:40.58 ビルドの設定はわからなかったけど、フォーマッタって言うの見てたら
ソースの成形っていうメニューがあることを初めて知って設定して実行したらいい感じになった
VSだとある程度自動だけどこれいいな
ソースの成形っていうメニューがあることを初めて知って設定して実行したらいい感じになった
VSだとある程度自動だけどこれいいな
475デフォルトの名無しさん
2013/10/14(月) 10:02:24.58 >>472
どのバージョンを使ってるのか分からないけど
プロジェクトのデフォルト設定はXEまではあったが、XE2からは廃止された
XE2からはオプションセットにプロジェクト設定を保存して、それを適用しろという事らしい
どのバージョンを使ってるのか分からないけど
プロジェクトのデフォルト設定はXEまではあったが、XE2からは廃止された
XE2からはオプションセットにプロジェクト設定を保存して、それを適用しろという事らしい
476デフォルトの名無しさん
2013/10/17(木) 11:29:53.79 Builder XE4でNMSMTPってみつからないんだけど?
なくなった?
Indy使えってこと?
なくなった?
Indy使えってこと?
477デフォルトの名無しさん
2013/10/17(木) 19:24:33.34 NM*とはずいぶん古いな。とっくに作ってた会社もなくなってる。Indyでどうぞ。
478デフォルトの名無しさん
2013/10/17(木) 21:30:50.90 入力補完でキャストすれば行けるのに出てこない候補とかあるんだけど
設定とかあるの?
設定とかあるの?
479デフォルトの名無しさん
2013/10/17(木) 21:31:22.72 あ、XEです
480デフォルトの名無しさん
2013/10/23(水) 11:10:01.90 XE4ってデフォでAPIがWCHARになってるんだけど
WriteFileって引数はWCHARで通るのに書き出されたファイルみると
ちゃんとなってない・・・
アスキーの"123"ってかきたかったのに"1 2 3 "ってなっちゃうんだけど
これcharでやろうとしたら逆にエラーでるし
どうしたらWCHARでちゃんとWriteFileでファイル作れますかね?
WriteFileって引数はWCHARで通るのに書き出されたファイルみると
ちゃんとなってない・・・
アスキーの"123"ってかきたかったのに"1 2 3 "ってなっちゃうんだけど
これcharでやろうとしたら逆にエラーでるし
どうしたらWCHARでちゃんとWriteFileでファイル作れますかね?
481デフォルトの名無しさん
2013/10/23(水) 11:21:58.49 あれ?
試しにサイズにsizeof(WCHAR)かけたらちゃんとかけた
lstrlenは文字数を返してるけどWriteFileのサイズってバイト数のままかこれ
でもサイズが半分しか指定してなくて何でWCHARの2バイトのままかかれるのかwからん
試しにサイズにsizeof(WCHAR)かけたらちゃんとかけた
lstrlenは文字数を返してるけどWriteFileのサイズってバイト数のままかこれ
でもサイズが半分しか指定してなくて何でWCHARの2バイトのままかかれるのかwからん
482デフォルトの名無しさん
2013/10/23(水) 12:10:53.61 内部は全部ユニコードだから
483デフォルトの名無しさん
2013/10/23(水) 16:46:48.23 XE4で質問
ソフトを起動してからボタンを押すとメインフォームのVisible=falseにしたらフォームが消えるんですが
コンストラクタでやっても消えてくれません。
Application->ShowMainForm = false;
これやっても消えてくれません。
起動時にどうやったらフォーム非表示で起動できますかね?
ソフトを起動してからボタンを押すとメインフォームのVisible=falseにしたらフォームが消えるんですが
コンストラクタでやっても消えてくれません。
Application->ShowMainForm = false;
これやっても消えてくれません。
起動時にどうやったらフォーム非表示で起動できますかね?
484デフォルトの名無しさん
2013/10/23(水) 19:31:20.33 ApplicationEvents配置して、OnActiveイベントに記述
485デフォルトの名無しさん
2013/10/23(水) 19:35:46.81 >>480-481
BOOL WriteFile(hFile, lpBuffer, nNumberOfBytesToWrite, lpNumberOfBytesWritten, lpOverlapped)
HANDLE hFile; /* 書き込み先のファイルのハンドル */
LPCVOID *lpBuffer; /* ファイルに書き込むデータのアドレス */
DWORD nNumberOfBytesToWrite; /* 書き込むバイト数 */
LPDWORD lpNumberOfBytesWritten; /* 書き込まれたバイト数のアドレス */
LPOVERLAPPED lpOverlapped; /* 重複I/Oに必要な構造体のアドレス */
これでしょ?
引数は
LPCVOID だからもとからバイト数だよ。
BOOL WriteFile(hFile, lpBuffer, nNumberOfBytesToWrite, lpNumberOfBytesWritten, lpOverlapped)
HANDLE hFile; /* 書き込み先のファイルのハンドル */
LPCVOID *lpBuffer; /* ファイルに書き込むデータのアドレス */
DWORD nNumberOfBytesToWrite; /* 書き込むバイト数 */
LPDWORD lpNumberOfBytesWritten; /* 書き込まれたバイト数のアドレス */
LPOVERLAPPED lpOverlapped; /* 重複I/Oに必要な構造体のアドレス */
これでしょ?
引数は
LPCVOID だからもとからバイト数だよ。
486デフォルトの名無しさん
2013/10/23(水) 19:42:04.47 だよな
487デフォルトの名無しさん
2013/10/24(木) 05:28:10.04 MainFormが表示されてから、表示を消さないといけない
MainFormが表示される前のタイミングで、表示を消しても無意味
ノーマルなやり方は
MainFormのOnActivate()イベントで、消すのが普通だろうな
MainFormが表示される前のタイミングで、表示を消しても無意味
ノーマルなやり方は
MainFormのOnActivate()イベントで、消すのが普通だろうな
488デフォルトの名無しさん
2013/10/24(木) 09:10:40.83 どういうのを作りたいのかよくわからんがフォーム自体いるのかね
消えたまま起動して後からまた表示させることもあるんかな
トレイに入れておくとか、あるいはバックで動かしたいのか
フォーム使わないなら最初から無いまま作ればいいんだし
消えたまま起動して後からまた表示させることもあるんかな
トレイに入れておくとか、あるいはバックで動かしたいのか
フォーム使わないなら最初から無いまま作ればいいんだし
489デフォルトの名無しさん
2013/10/24(木) 09:40:11.62 まあ、オプションの自動生成フォームから、MainFormを外せばいいんだけどね
490デフォルトの名無しさん
2013/10/24(木) 11:55:35.09 >>487
そこでfalseしても消えてくれない
そこでfalseしても消えてくれない
491デフォルトの名無しさん
2013/10/24(木) 12:39:30.47 XE4とwin8で一回目にダイアログを実行してなにかファイルを選択して、
二回目にダイアログを実行したとき、フルパスで表示されます
ファイル名だけを表示させる方法を教えてください。
昔はファイル名だけが表示されたと思うんですが、、、、
ttp://www.dotup.org/uploda/www.dotup.org4608757.png
二回目にダイアログを実行したとき、フルパスで表示されます
ファイル名だけを表示させる方法を教えてください。
昔はファイル名だけが表示されたと思うんですが、、、、
ttp://www.dotup.org/uploda/www.dotup.org4608757.png
492デフォルトの名無しさん
2013/10/24(木) 14:03:31.99 >>489
それやると次は、「プログラムを起動しても何も起きません」ってなるんじゃね?
それやると次は、「プログラムを起動しても何も起きません」ってなるんじゃね?
493デフォルトの名無しさん
2013/10/24(木) 15:46:08.57494デフォルトの名無しさん
2013/10/24(木) 17:14:19.35 Application->ShowMainForm = false; はコンストラクタでおk
495デフォルトの名無しさん
2013/10/24(木) 19:26:03.98 >>483で、
> ソフトを起動してからボタンを押すとメインフォームのVisible=falseにしたらフォームが消えるんですがコンストラクタでやっても消えてくれません。
> Application->ShowMainForm = false;
> これやっても消えてくれません。
って書いてあったから流れ的にコンストラクタで Application->ShowMainForm = false; やっても消えないという意味だと解釈してしまったが
質問者は コンストラクタで Visible=false しかやってないってことなのか。
>>493
自動生成のフォームのコンストラクタはもとからRun()の前だよ。
> ソフトを起動してからボタンを押すとメインフォームのVisible=falseにしたらフォームが消えるんですがコンストラクタでやっても消えてくれません。
> Application->ShowMainForm = false;
> これやっても消えてくれません。
って書いてあったから流れ的にコンストラクタで Application->ShowMainForm = false; やっても消えないという意味だと解釈してしまったが
質問者は コンストラクタで Visible=false しかやってないってことなのか。
>>493
自動生成のフォームのコンストラクタはもとからRun()の前だよ。
496デフォルトの名無しさん
2013/10/26(土) 21:50:00.84 コンポーネント作ってるんだけど、ファイル名を格納するStringで
オブジェクトインスペクタにファイル選択ダイアログを表示させるボタンを表示させたいんだけど
どうやったらいいのでしょうか
オブジェクトインスペクタにファイル選択ダイアログを表示させるボタンを表示させたいんだけど
どうやったらいいのでしょうか
497デフォルトの名無しさん
2013/10/26(土) 22:08:36.95 プロパティを文字列型じゃなくてTFileName型に変えたらどう?
498デフォルトの名無しさん
2013/10/26(土) 22:29:04.51 >>497
出ませんね
出ませんね
499デフォルトの名無しさん
2013/10/26(土) 22:44:08.65 あら。ごめん。俺あんま経験なくてw
なんか、プロパティエディタ登録すればいいらしいんだが、
DesignIntf.pasやDesignEditors.pas,VCLEditors.pasのデフォルトや標準のエディタが
登録されてて、これで間に合わなければ自分で作るらしい。
登録にはRegisterPropertyEditorとかいう関数で。
って、俺じゃあれだから、プロの意見の待った方がいいな。
なんか、プロパティエディタ登録すればいいらしいんだが、
DesignIntf.pasやDesignEditors.pas,VCLEditors.pasのデフォルトや標準のエディタが
登録されてて、これで間に合わなければ自分で作るらしい。
登録にはRegisterPropertyEditorとかいう関数で。
って、俺じゃあれだから、プロの意見の待った方がいいな。
500デフォルトの名無しさん
2013/10/26(土) 22:51:17.03 VCLEditors.pasにTMPFileNamePropertyというTMediaPlayer用の
File Open Dialogを表示するプロパティエディタがあるから、これを真似れば
いいんじゃないかと思う。
File Open Dialogを表示するプロパティエディタがあるから、これを真似れば
いいんじゃないかと思う。
501デフォルトの名無しさん
2013/10/27(日) 15:44:18.10 初歩的な質問ですみません。
for文やwhile文などでくりかえし処理をすると,繰り返しの回数が99回目までは問題ないのですが
必ず100回目で「sqrt domain error」が必ず出ます。
数値を色々変えてみても必ず起きます.
ssqrt domain errorはルートの中身が負のときでるエラーだと思うのですが
それ以外に出る原因はありますか?
for文やwhile文などでくりかえし処理をすると,繰り返しの回数が99回目までは問題ないのですが
必ず100回目で「sqrt domain error」が必ず出ます。
数値を色々変えてみても必ず起きます.
ssqrt domain errorはルートの中身が負のときでるエラーだと思うのですが
それ以外に出る原因はありますか?
502デフォルトの名無しさん
2013/10/27(日) 16:20:24.52 そう言う場合はまず作ってるプログラムから離れて間違っているのか確認してから
そうでは無いなと確信してから自分のプログラムを疑う物ですよ
そうでは無いなと確信してから自分のプログラムを疑う物ですよ
503デフォルトの名無しさん
2013/10/29(火) 13:52:21.53 >>501
√に入れる変数にunsigned入れたらいいんじゃね?
√に入れる変数にunsigned入れたらいいんじゃね?
504デフォルトの名無しさん
2013/10/29(火) 14:24:43.48 何でもassert
505デフォルトの名無しさん
2013/10/29(火) 15:07:07.12 デバッグすればいいだけじゃん
ループの100回目でブレークポントを張って
変数の値を確認すればよい
ループの100回目でブレークポントを張って
変数の値を確認すればよい
506デフォルトの名無しさん
2013/10/29(火) 23:49:47.28 スタックでも壊してたりしてな
507デフォルトの名無しさん
2013/11/05(火) 17:38:05.77 void __fastcall TForm2::ButtonWRClick(TObject *Sender)
{
char *tmp;
CamRegInfo ci;
ci.devaddr = 0xba; // dev addr
unsigned short val[3];
int addr = 0;
int data = 0;
tmp = strdup(EditAddr->Text.c_str());
sscanf(tmp,"%02x",&addr);
free(tmp);
tmp = strdup(EditData->Text.c_str());
sscanf(tmp,"%02x",&data);
free(tmp);
ci.devaddr = addr;
ci.data = data;
USBWriteData((unsigned char *)&ci,6,0x07); // to I2C Controller
}
2010年くらいにいただいたビルダーのサンプルプログラムを今,実行しようとしていますが
[BCC32 エラー] Unit2.cpp(204): E2034 'wchar_t *' 型は 'const char *' 型に変換できない
[BCC32 エラー] Unit2.cpp(204): E2342 パラメータ '__s' は const char * 型として定義されているので wchar_t * は渡せない
というエラーがtmp = strdup(EditAddr->Text.c_str());に出ます.
調べるとこうするとエラーが取れました.tmp = strdup(AnsiString(EditData->Text).c_str());
しかし,新たに[ILINK32 エラー] Fatal: ファイル 'K.OBJ' を開けません
というエラーが出て困っています.
{
char *tmp;
CamRegInfo ci;
ci.devaddr = 0xba; // dev addr
unsigned short val[3];
int addr = 0;
int data = 0;
tmp = strdup(EditAddr->Text.c_str());
sscanf(tmp,"%02x",&addr);
free(tmp);
tmp = strdup(EditData->Text.c_str());
sscanf(tmp,"%02x",&data);
free(tmp);
ci.devaddr = addr;
ci.data = data;
USBWriteData((unsigned char *)&ci,6,0x07); // to I2C Controller
}
2010年くらいにいただいたビルダーのサンプルプログラムを今,実行しようとしていますが
[BCC32 エラー] Unit2.cpp(204): E2034 'wchar_t *' 型は 'const char *' 型に変換できない
[BCC32 エラー] Unit2.cpp(204): E2342 パラメータ '__s' は const char * 型として定義されているので wchar_t * は渡せない
というエラーがtmp = strdup(EditAddr->Text.c_str());に出ます.
調べるとこうするとエラーが取れました.tmp = strdup(AnsiString(EditData->Text).c_str());
しかし,新たに[ILINK32 エラー] Fatal: ファイル 'K.OBJ' を開けません
というエラーが出て困っています.
508デフォルトの名無しさん
2013/11/06(水) 00:38:50.77 それは困りましたね。
509デフォルトの名無しさん
2013/11/06(水) 09:22:42.32 Unicodeの意識が無さ過ぎ
510デフォルトの名無しさん
2013/11/06(水) 10:02:11.48 >>507
http://docwiki.embarcadero.com/RADStudio/2010/ja/TCHAR_%E3%83%9E%E3%83%83%E3%83%94%E3%83%B3%E3%82%B0
http://docwiki.embarcadero.com/RADStudio/2010/ja/RAD_Studio_%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8B_Unicode
http://marupeke296.com/CPP_charUnicodeWideChar.html
http://www.watercolor-city.net/ct_delphi/delphi_tiburon/
http://docwiki.embarcadero.com/RADStudio/2010/ja/TCHAR_%E3%83%9E%E3%83%83%E3%83%94%E3%83%B3%E3%82%B0
http://docwiki.embarcadero.com/RADStudio/2010/ja/RAD_Studio_%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8B_Unicode
http://marupeke296.com/CPP_charUnicodeWideChar.html
http://www.watercolor-city.net/ct_delphi/delphi_tiburon/
511デフォルトの名無しさん
2013/11/06(水) 10:14:53.13 >>509 スレタイ読め
512デフォルトの名無しさん
2013/11/06(水) 10:23:07.10 >>511
オマエのクソレスの方が何の役にもたってないことに気付けボケ
オマエのクソレスの方が何の役にもたってないことに気付けボケ
513デフォルトの名無しさん
2013/11/07(木) 15:24:59.71 仮想デストラクタをcppに書くと必ず、
「ここには記憶クラス"virtual"は指定できない」ってエラーが出るんだけど
どうしたらよいの?
「ここには記憶クラス"virtual"は指定できない」ってエラーが出るんだけど
どうしたらよいの?
514デフォルトの名無しさん
2013/11/07(木) 17:28:29.26 >>513
ヘッダに宣言書いているでしょ?
CPPに書くデストラクタの本体には virtual はつけない。
~~~~~~~~~~~~~~~~~~
もしCPPに書いているのがclass宣言で、その宣言に virtual をつけるのはOK
もしそのようにしているのに怒られると言うなら具体的にコードを書いてみて
ヘッダに宣言書いているでしょ?
CPPに書くデストラクタの本体には virtual はつけない。
~~~~~~~~~~~~~~~~~~
もしCPPに書いているのがclass宣言で、その宣言に virtual をつけるのはOK
もしそのようにしているのに怒られると言うなら具体的にコードを書いてみて
515デフォルトの名無しさん
2013/11/07(木) 17:32:54.63 >>514
ありがとう!ヘッダに宣言書いていました
ありがとう!ヘッダに宣言書いていました
516デフォルトの名無しさん
2013/11/07(木) 22:21:46.25 System.DateUtils.hppをインクルードすると、
W8058 ヘッダーに初期化データが含まれているためプリコンパイルヘッダーを作成できない
ってエラーが出るのは、回避不可能なの?
W8058 ヘッダーに初期化データが含まれているためプリコンパイルヘッダーを作成できない
ってエラーが出るのは、回避不可能なの?
517デフォルトの名無しさん
2013/11/07(木) 22:38:52.41518デフォルトの名無しさん
2013/11/11(月) 13:09:32.22 継承される可能性のあるクラスは、仮想デストラクターを置けって言うけど、
ヘッダーファイルに↓の置いておくだけでよいの?
virtual __fastcall ~TSample();
ヘッダーファイルに↓の置いておくだけでよいの?
virtual __fastcall ~TSample();
519デフォルトの名無しさん
2013/11/11(月) 13:32:23.26520デフォルトの名無しさん
2013/11/11(月) 15:07:57.54 >>519
特にエラーは何も出ずに実行できるのだが
特にエラーは何も出ずに実行できるのだが
521デフォルトの名無しさん
2013/11/11(月) 16:58:02.35 >>518
本体(デストラクタの実体)がないからエラーになるはずだけど
[ILINK32 エラー] Error: 未解決の外部参照 '__fastcall TSample::~TSample()' が x:\xxx\xxxx\xxxx.OBJ から参照されました
宣言したけど使っていない場合はエラーも出ないし実行に支障はない
これはメンバ関数も同じだよね
ヘッダーに書きたいなら宣言にあわせて実体も書いておくものじゃないだろうか。
virtual __fastcall ~TSample() { }
抽象クラスでの純粋仮想デストラクタを考慮するなら
virtual __fastcall ~TSample() = 0;
になるだろうし。
仮にその(>>518)宣言で問題にならないにしても、継承したクラスで問題起きるかもしれないから書いておいたほうが無難だとは思う。
本体(デストラクタの実体)がないからエラーになるはずだけど
[ILINK32 エラー] Error: 未解決の外部参照 '__fastcall TSample::~TSample()' が x:\xxx\xxxx\xxxx.OBJ から参照されました
宣言したけど使っていない場合はエラーも出ないし実行に支障はない
これはメンバ関数も同じだよね
ヘッダーに書きたいなら宣言にあわせて実体も書いておくものじゃないだろうか。
virtual __fastcall ~TSample() { }
抽象クラスでの純粋仮想デストラクタを考慮するなら
virtual __fastcall ~TSample() = 0;
になるだろうし。
仮にその(>>518)宣言で問題にならないにしても、継承したクラスで問題起きるかもしれないから書いておいたほうが無難だとは思う。
522デフォルトの名無しさん
2013/11/11(月) 16:58:31.24 アプリの起動時に、しなきゃならない処理がたくさんあるんだけど
(INIファイルの読み込みとか)
メインフォームやスプラッシュフォームのコンストラクターとかに
書くと気持ち悪いから、アプリケーション初期化関連のメソッドを
並べたクラスを一つ作って、メインフォームのコンストラクターから
インスタンス作って全部やらせるのって、汚いやり方?
1つの仕事を順番にやるだけのクラスになるんだけど。
(INIファイルの読み込みとか)
メインフォームやスプラッシュフォームのコンストラクターとかに
書くと気持ち悪いから、アプリケーション初期化関連のメソッドを
並べたクラスを一つ作って、メインフォームのコンストラクターから
インスタンス作って全部やらせるのって、汚いやり方?
1つの仕事を順番にやるだけのクラスになるんだけど。
523デフォルトの名無しさん
2013/11/11(月) 17:01:13.43524デフォルトの名無しさん
2013/11/11(月) 17:46:35.14525デフォルトの名無しさん
2013/11/11(月) 17:52:53.52526デフォルトの名無しさん
2013/11/11(月) 18:15:55.83 共通なグローバルな初期化はメインのデータモジュール作って、データモジュールのコンスタラクタとかでやれば??
で、各フォーム特有の初期化は各フォームのコンストラクタでやる。
「プロジェクトオプション」の「フォーム」で指定する作成順序はメインデータモジュール->メインフォームの順で。
俺はだいたいそうやって作ってるけど。
大抵、データベースアプリとかで、グローバルな接続コンポはデータモジュール作って、そこに置くように、
その延長でそうしてる。
で、各フォーム特有の初期化は各フォームのコンストラクタでやる。
「プロジェクトオプション」の「フォーム」で指定する作成順序はメインデータモジュール->メインフォームの順で。
俺はだいたいそうやって作ってるけど。
大抵、データベースアプリとかで、グローバルな接続コンポはデータモジュール作って、そこに置くように、
その延長でそうしてる。
527デフォルトの名無しさん
2013/11/11(月) 18:47:50.47528デフォルトの名無しさん
2013/11/11(月) 18:59:36.66 まず、データモジュールってコンポーネントはしってるんだよね??
グローバルな設定の初期化(終了化)するタイミングはデータモジュールのコンスタラクタ(デストラクタ)なわけで、
後は、君が書いたクラス次第でしょ。ここが何をして、どう使うクラスになってるのか全く想像できないから、
どう説明したらいいか・・
グローバルな設定の初期化(終了化)するタイミングはデータモジュールのコンスタラクタ(デストラクタ)なわけで、
後は、君が書いたクラス次第でしょ。ここが何をして、どう使うクラスになってるのか全く想像できないから、
どう説明したらいいか・・
529デフォルトの名無しさん
2013/11/11(月) 19:02:26.66 えらそうに言わないでください
530デフォルトの名無しさん
2013/11/11(月) 19:05:13.57 それか、>>572はこういうことか。
もちろん、君のクラスはTComponent派生して、別にIDEに登録して使うわけじゃないと思うから、
TSQLConnectionみたく、IDEから貼り付けできないけど、そのクラスがインスタンスが
アプリの開始から終了までずっと、
存在する必要があるなら、データモジュールに、フィールド(プロパティ)を追加して、データモジュールの
コンストラクタ(デストラクタ)で作成・破棄してもいいし。そこはやっぱ、君のクラスが何してるか、どう使うか次第・・
もちろん、君のクラスはTComponent派生して、別にIDEに登録して使うわけじゃないと思うから、
TSQLConnectionみたく、IDEから貼り付けできないけど、そのクラスがインスタンスが
アプリの開始から終了までずっと、
存在する必要があるなら、データモジュールに、フィールド(プロパティ)を追加して、データモジュールの
コンストラクタ(デストラクタ)で作成・破棄してもいいし。そこはやっぱ、君のクラスが何してるか、どう使うか次第・・
531デフォルトの名無しさん
2013/11/11(月) 19:14:23.95 >>528
> まず、データモジュールってコンポーネントはしってるんだよね??
知らないんだ。リファレンスを見たところ、別のコンポーネントを一括管理するのかと思っているのだけど。
WinSocketの初期化、INIファイルのロード、各種スレッドの起動等を
メインフォームの表示前に終わらせてしまうのが目的。
元々やろうとしてたのは、この各処理を順々にやっていくパブリックメソッドを持った
アプリ初期化用クラスのインスタンスをメインフォームクラスで生成して、
そのメソッドをコールしようと思っていたのだけど。。
> まず、データモジュールってコンポーネントはしってるんだよね??
知らないんだ。リファレンスを見たところ、別のコンポーネントを一括管理するのかと思っているのだけど。
WinSocketの初期化、INIファイルのロード、各種スレッドの起動等を
メインフォームの表示前に終わらせてしまうのが目的。
元々やろうとしてたのは、この各処理を順々にやっていくパブリックメソッドを持った
アプリ初期化用クラスのインスタンスをメインフォームクラスで生成して、
そのメソッドをコールしようと思っていたのだけど。。
532デフォルトの名無しさん
2013/11/11(月) 19:29:42.48 >>リファレンスを見たところ、別のコンポーネントを一括管理するのかと思っているのだけど。
そう、それで、別にコンポーネントのためだけに使わなくてもいいわけで、そこに、グローバルなコンポーネント以外にも、
自作のグルーバルなクラスのインスタンスをプロパティ経由とかで、外部に公開してもいいわけで。そこはご自由にと。
>>元々やろうとしてたのは、この各処理を順々にやっていくパブリックメソッドを持った
>>アプリ初期化用クラスのインスタンスをメインフォームクラスで生成して、
>>そのメソッドをコールしようと思っていたのだけど。。
これをそのまんま使うなら、インスタンスの生成とメソッドコールを単にデータモジュールのコンストラクタに移動するだけ終わりじゃ?
そう、それで、別にコンポーネントのためだけに使わなくてもいいわけで、そこに、グローバルなコンポーネント以外にも、
自作のグルーバルなクラスのインスタンスをプロパティ経由とかで、外部に公開してもいいわけで。そこはご自由にと。
>>元々やろうとしてたのは、この各処理を順々にやっていくパブリックメソッドを持った
>>アプリ初期化用クラスのインスタンスをメインフォームクラスで生成して、
>>そのメソッドをコールしようと思っていたのだけど。。
これをそのまんま使うなら、インスタンスの生成とメソッドコールを単にデータモジュールのコンストラクタに移動するだけ終わりじゃ?
533デフォルトの名無しさん
2013/11/11(月) 19:33:15.87 >>522でキミが 「メインフォームやスプラッシュフォームのコンストラクターとかに書くと気持ち悪い」と言ったコードを「データモジュール」のコンストラクタに書けばいいんだよ。
データモジュールは、C++Builderのバージョンがわからないのであれだけど、
自分のものは 新規作成→その他→C++Builderプロジェクト→C++Builderファイル にある
データモジュール自身にそれらを実行する関数を持たせて「別の関数作ってそこにたくさんの処理を書いてコンストラクタからその関数を呼び出す」ってのでもいいけど。
データモジュールは、C++Builderのバージョンがわからないのであれだけど、
自分のものは 新規作成→その他→C++Builderプロジェクト→C++Builderファイル にある
データモジュール自身にそれらを実行する関数を持たせて「別の関数作ってそこにたくさんの処理を書いてコンストラクタからその関数を呼び出す」ってのでもいいけど。
534デフォルトの名無しさん
2013/11/11(月) 19:35:02.08 クラス名は TDataModule ね
535デフォルトの名無しさん
2013/11/11(月) 20:02:57.86 説明不足で本当に申し訳ない。
汚いやり方とか、気持ち悪いとか言ったのは、
クラス名を動詞にするなとか、データがなくで振る舞い(メソッド)だけのクラスは良くないって
CODE COMPLETEやら、ほかのWEBサイトに書いてあったからなのです。
そういうクラスを作ること自体が、オブジェクト指向と外れているのではないかと。
汚いやり方とか、気持ち悪いとか言ったのは、
クラス名を動詞にするなとか、データがなくで振る舞い(メソッド)だけのクラスは良くないって
CODE COMPLETEやら、ほかのWEBサイトに書いてあったからなのです。
そういうクラスを作ること自体が、オブジェクト指向と外れているのではないかと。
536デフォルトの名無しさん
2013/11/11(月) 20:43:39.99 メソッドだけならクラスじゃなくて関数でいいしね。
データモジュールはヘルプみればわかると思うんだけど、
http://docs.codegear.com/products/rad_studio/radstudio2007/RS2007_helpupdates/HUpdate4/JA/html/delphivclwin32/Classes_TDataModule.html
>また,データモジュールのユニットファイルにアプリケーション全体に適用されるものをすべて入れておくようにしてもよいでしょう。
っていう記述がある。
主に非ビジュアルコンポーネントを“一元管理する目的”の TDataModule なので、それはつまり複数のフォームやユニットからのアクセスを受けるということ。
そういう特性を利用して WinSocketの初期化、INIファイルのロード などのアプリケーション全体に影響する設定や処理をそこで行うということ。
ただし「各種スレッドの起動」に関してはそのスレッドが何をするものなのかにもよる気がするので。
データモジュールのユニットファイルにそれらを実行する関数を書く。
データモジュールのコンストラクタからそれを実行する。
データモジュールはヘルプみればわかると思うんだけど、
http://docs.codegear.com/products/rad_studio/radstudio2007/RS2007_helpupdates/HUpdate4/JA/html/delphivclwin32/Classes_TDataModule.html
>また,データモジュールのユニットファイルにアプリケーション全体に適用されるものをすべて入れておくようにしてもよいでしょう。
っていう記述がある。
主に非ビジュアルコンポーネントを“一元管理する目的”の TDataModule なので、それはつまり複数のフォームやユニットからのアクセスを受けるということ。
そういう特性を利用して WinSocketの初期化、INIファイルのロード などのアプリケーション全体に影響する設定や処理をそこで行うということ。
ただし「各種スレッドの起動」に関してはそのスレッドが何をするものなのかにもよる気がするので。
データモジュールのユニットファイルにそれらを実行する関数を書く。
データモジュールのコンストラクタからそれを実行する。
538デフォルトの名無しさん
2013/11/12(火) 15:12:44.63539デフォルトの名無しさん
2013/11/12(火) 17:00:07.90 シングルトンデザインパターンで実装すると、
マルチスレッド アプリケーションのコンストラクタでローカル静的変数を使うことは危険です
という警告が出るのですが、どう危険なのでしょうか。
マルチスレッド アプリケーションのコンストラクタでローカル静的変数を使うことは危険です
という警告が出るのですが、どう危険なのでしょうか。
540デフォルトの名無しさん
2013/11/12(火) 17:40:58.25 初期化コードが複数回あるいは同時に実行されることがある、という
541デフォルトの名無しさん
2013/11/12(火) 17:42:13.78 この話かな?
ttp://d.hatena.ne.jp/A7M/20081027/1225088907
ttp://d.hatena.ne.jp/A7M/20081027/1225088907
542539
2013/11/12(火) 18:39:32.34 ありがとうございます。
マルチスレッド化する前にインスタンスが作られるのであれば、
#pragmaで消しても大丈夫な警告なのでしょうか?
マルチスレッド化する前にインスタンスが作られるのであれば、
#pragmaで消しても大丈夫な警告なのでしょうか?
543デフォルトの名無しさん
2013/11/12(火) 19:56:40.06 遅延生成をやめれば問題はない
544539
2013/11/12(火) 20:26:11.82 >>543
分かりました。ありがとうございます!
それから、関係ないのですが、クラス名の1文字目の"T"って何の略ですか?
"TApplication", "TForm", "TThread", "TCheckBox"等の"T"です。
分かりました。ありがとうございます!
それから、関係ないのですが、クラス名の1文字目の"T"って何の略ですか?
"TApplication", "TForm", "TThread", "TCheckBox"等の"T"です。
545デフォルトの名無しさん
2013/11/12(火) 20:44:20.00 昔、OWLを作った人がTypeのTだと明言してた
546デフォルトの名無しさん
2013/11/13(水) 16:44:57.65 XE4でTChartなくなった??
発見できないんだけど
発見できないんだけど
547デフォルトの名無しさん
2013/11/13(水) 16:48:41.81 あ、あったわ。
変なタブに潜んでた
まあしかしお前等ってほんと糞の役にも立たないゴミ虫だよなww
変なタブに潜んでた
まあしかしお前等ってほんと糞の役にも立たないゴミ虫だよなww
548デフォルトの名無しさん
2013/11/14(木) 00:53:54.22 TurboApplication、TurboForm、TurboThread、TurboCheckBox。
549デフォルトの名無しさん
2013/11/14(木) 19:23:35.13 XE4の品質は超クソだな
さすがにXE3から数ヶ月で出ただけのことがあるわ
で、このクソ品質を修正しただけのXE5に更新するには\40,000-って
どんだけクソな会社なんだよ…
今に分かった事じゃないんだけどさ
さすがにXE3から数ヶ月で出ただけのことがあるわ
で、このクソ品質を修正しただけのXE5に更新するには\40,000-って
どんだけクソな会社なんだよ…
今に分かった事じゃないんだけどさ
550デフォルトの名無しさん
2013/11/14(木) 20:04:52.15 ボーランド時代は安くて痒い所に手が届く使い勝手の良いコンパイラを提供してくれていたのだが
551デフォルトの名無しさん
2013/11/14(木) 20:20:27.22 それに無理があったからボーランドは手放したんでしょ?
552デフォルトの名無しさん
2013/11/15(金) 01:00:43.35 とりあえず今のC++ XE4 Update1で発生する不具合
・ビルド時にsaveMemのエラー?でコンパイラが起動出来無くなる事がある
・インクリメンタルリンクを有効にしているとビルド後のバイナリ起動時にDelayLoaderのエラー発生
・突然プロジェクトファイルに不正なタグが書込まれる ProjectExtensions問題 XE2から
・デバッグ実行のプロセス起動時にアプリケーションエラーでIDEごと落ちる
こんなにクソなんです
QCに入れたって日本人担当者とさんざん英語でやりとりした挙げ句、
再現出来ずだしな
・ビルド時にsaveMemのエラー?でコンパイラが起動出来無くなる事がある
・インクリメンタルリンクを有効にしているとビルド後のバイナリ起動時にDelayLoaderのエラー発生
・突然プロジェクトファイルに不正なタグが書込まれる ProjectExtensions問題 XE2から
・デバッグ実行のプロセス起動時にアプリケーションエラーでIDEごと落ちる
こんなにクソなんです
QCに入れたって日本人担当者とさんざん英語でやりとりした挙げ句、
再現出来ずだしな
553デフォルトの名無しさん
2013/11/15(金) 01:43:24.74 可哀想に。
あの「日本人担当者」はボランティアなので多くを期待するな
あの「日本人担当者」はボランティアなので多くを期待するな
554デフォルトの名無しさん
2013/11/15(金) 02:49:42.72 QC 入れるときに 「高橋さんはコメントしないでください」
って一文入れとけばいいと思う。
552 のバグレポートって、何番?
って一文入れとけばいいと思う。
552 のバグレポートって、何番?
555デフォルトの名無しさん
2013/11/15(金) 18:42:10.89 現象が再現しないってのはよくあることだわな
ちゃんと、再現性があるなら
その再現条件を明記しないからだろ
再現しないのは、特殊環境下でしか起きないこともあるしな
あるいは自作プログラムのバグが悪さをして不安定になってるとか
自分が遭遇したBuilderのバグは、ぐぐればまず間違いなく同じ現象が出てくるわ
ちゃんと、再現性があるなら
その再現条件を明記しないからだろ
再現しないのは、特殊環境下でしか起きないこともあるしな
あるいは自作プログラムのバグが悪さをして不安定になってるとか
自分が遭遇したBuilderのバグは、ぐぐればまず間違いなく同じ現象が出てくるわ
556デフォルトの名無しさん
2013/11/16(土) 02:04:02.26 それは甘え。
特殊なのは高橋さんのほうかもしれないしな
特殊なのは高橋さんのほうかもしれないしな
557デフォルトの名無しさん
2013/11/16(土) 10:40:50.67 それは言いがかりに近いな
558デフォルトの名無しさん
2013/11/17(日) 01:55:45.53 「再現できない」ってのは「バグがない」ってことではないのだよ
「テストケースエラー」でもない。
言いがかりをつけているのはどっちかな
「テストケースエラー」でもない。
言いがかりをつけているのはどっちかな
559デフォルトの名無しさん
2013/11/17(日) 10:25:05.81 キミだよ
560デフォルトの名無しさん
2013/11/17(日) 10:52:17.44 558 支持。
561デフォルトの名無しさん
2013/11/17(日) 13:08:08.46 言いがかりだよ
562デフォルトの名無しさん
2013/11/17(日) 15:01:28.39 BCB6で32bitアプリを作る時にはどうすれば良いんでしょうか。
16bitしか作れないんでしょうか。
16bitしか作れないんでしょうか。
563デフォルトの名無しさん
2013/11/17(日) 15:16:10.42 64bitアプリの間違いか?
BCB6ならすでに32bitアプリなんだが。
BCB6ならすでに32bitアプリなんだが。
564デフォルトの名無しさん
2013/11/17(日) 15:16:53.55 何か作ったexeが16bitになってるんですが、どうしたらよいんでしょうか
565デフォルトの名無しさん
2013/11/17(日) 15:26:14.61 ああ、バージョン情報を含めるをチェックしたらバージョン情報が出てきました。
マイクロソフトのサイトに、exeファイルを右クリしてバージョン情報が出てこなかったら16bitアプリって
書いてあったんですが、右クリで出てきたので32bitなんですかね。
マイクロソフトのサイトに、exeファイルを右クリしてバージョン情報が出てこなかったら16bitアプリって
書いてあったんですが、右クリで出てきたので32bitなんですかね。
566デフォルトの名無しさん
2013/11/17(日) 15:59:10.36 32bitになってました。どうもありがとうございました。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【速報】「女芸人No.1決定戦 THE W」9代目女王にニッチェ! 7年ぶり3度目で悲願の優勝 [牛丼★]
- 731部隊の新資料、中国が公開 「日本が細菌戦の罪を自白」と主張 ロシアが引き渡し [少考さん★]
- 中国・ロシア両軍の爆撃機が東京方面へ向かう「異例のルート」を共同飛行…核も搭載可能、連携して威嚇か ★7 [ぐれ★]
- 【広島】ペルー女性の国保加入を誤って認め、福山市が医療費484万円を肩代わりするミス…入院して手術を受ける [ぐれ★]
- 東京の自販機そばに金塊4200万円分、何者かに持ち去られる…札幌の50代が8000万円振り込んだ後に上京して被害 [どどん★]
- 山田邦子 ひょうきん族時代の年収は12億円「ただ税金が80%」 [muffin★]
- テメェは俺を怒らせたオラァ👊💢😅💢👊🏡
- 泊まったペンションで殺人事件が起きて外部と連絡もできないときってどうしてる?? [793117252]
- 【実況】博衣こよりのえちえちダンガンロンパ2🧪
- ブレイキングダウンの前日記者会見ビンタされて失神してる奴出てるやん
- おさかなさんあつまれえ
- 中国 わりとオブラートに包んでわーくにを牽制してしまう「軍国主義復活の企みは失敗する」 [163661708]
