このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
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
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になってました。どうもありがとうございました。
567デフォルトの名無しさん
2013/11/17(日) 16:18:23.61 >>565
それはMSのアプリに限っての話だろう。
32bitアプリはバージョン情報を含める事も含めない事もできる。
16bitアプリはバージョン情報を含める事ができない。
MSは自社アプリには必ずバージョン情報を含めるからバージョン情報が出ないなら16bitアプリっていう判断なんだと思う。
あとMSでなくても市販のアプリは基本的にバージョン情報含めているから同じ。
個人開発だと必ずしも含めているとは限らないからその判定法は成立しない。
と、そういうことなんだと思う。詳しくは知らないのだけど。
それはMSのアプリに限っての話だろう。
32bitアプリはバージョン情報を含める事も含めない事もできる。
16bitアプリはバージョン情報を含める事ができない。
MSは自社アプリには必ずバージョン情報を含めるからバージョン情報が出ないなら16bitアプリっていう判断なんだと思う。
あとMSでなくても市販のアプリは基本的にバージョン情報含めているから同じ。
個人開発だと必ずしも含めているとは限らないからその判定法は成立しない。
と、そういうことなんだと思う。詳しくは知らないのだけど。
568デフォルトの名無しさん
2013/11/18(月) 10:49:06.19569デフォルトの名無しさん
2013/11/18(月) 10:53:04.82 初心者版で初心者かもしれない人に何いってんだか・・
570デフォルトの名無しさん
2013/11/18(月) 10:53:10.93 XE2以降ではバージョン情報の設定機能はダメダメになってるよね
プラットフォーム別にバージョン情報を別に出来るって言うのは理解できるけど、
そのおかげで全ビルド構成で別々にバージョン情報が作られてしまう
「ビルド番号を自動更新」にすると、DebugとReleaseで別々のバージョン情報になってしまうという…
一体全体どういう連中が作ってるんだろうか
プラットフォーム別にバージョン情報を別に出来るって言うのは理解できるけど、
そのおかげで全ビルド構成で別々にバージョン情報が作られてしまう
「ビルド番号を自動更新」にすると、DebugとReleaseで別々のバージョン情報になってしまうという…
一体全体どういう連中が作ってるんだろうか
571デフォルトの名無しさん
2013/11/18(月) 12:01:26.40 XE2を使っています。
プロジェクトマネージャのウインドウで、各ユニットのフォルダ構造が
表示されていますが、この中でユニットになっていないものがあります。
(+ボタンを押すと、開くようになっていない)
プロジェクトファイルで、DependentOnタグが付いていないユニットが
該当するようなのですが、このタグを直接プロジェクトファイルをいじらずに
付ける方法はございませんでしょうか。
プロジェクトマネージャのウインドウで、各ユニットのフォルダ構造が
表示されていますが、この中でユニットになっていないものがあります。
(+ボタンを押すと、開くようになっていない)
プロジェクトファイルで、DependentOnタグが付いていないユニットが
該当するようなのですが、このタグを直接プロジェクトファイルをいじらずに
付ける方法はございませんでしょうか。
572デフォルトの名無しさん
2013/11/18(月) 12:23:21.74 そこまで分かってるんならプロジェクトファイル直接書替えればいいじゃん?
あとは一度プロジェクトからソースを削除してもう一度追加してみるか
はっきりとは分からんけど、ヘッダファイルのインクルードガードのマクロ名で
ユニットになっているかどうかを判定しているように思えた
あとは一度プロジェクトからソースを削除してもう一度追加してみるか
はっきりとは分からんけど、ヘッダファイルのインクルードガードのマクロ名で
ユニットになっているかどうかを判定しているように思えた
573デフォルトの名無しさん
2013/11/18(月) 12:54:15.00 >>572
ありがとうございます。
プロジェクトから削除〜追加でユニット化されました。
インクルードガードのマクロ名で判定しているのは確かだと思います。
そのため、#pragma onceが使う機会を持てません。
ありがとうございます。
プロジェクトから削除〜追加でユニット化されました。
インクルードガードのマクロ名で判定しているのは確かだと思います。
そのため、#pragma onceが使う機会を持てません。
574デフォルトの名無しさん
2013/11/18(月) 18:10:46.44 > 16bitアプリはバージョン情報を含める事ができない。
含める事ができないんじゃなくて、32bitWindowsからは「16bitアプリのバージョン情報」は読めない(バージョンタブが表示されない)ってだけかもしれないな。
含める事ができないんじゃなくて、32bitWindowsからは「16bitアプリのバージョン情報」は読めない(バージョンタブが表示されない)ってだけかもしれないな。
575デフォルトの名無しさん
2013/11/20(水) 08:54:28.16 最近、XE2でコンパイルすると
[ILINK32 警告] Warning: プロジェクト名.ilc 0x00010000 / 0x08000000
[ILINK32 警告] Warning: unknown heap name : 0x08000000 / 0x08000000
[ILINK32 警告] Warning: エラーが検出されました(LME286)
[ILINK32 警告] Warning: インクリメンタル リンクを実行できません -完全リンクを実行中...
[ILINK32 エラー] Error: リンクを実行できません。
とか表示されてしまうのだけど、何故?
[ILINK32 警告] Warning: プロジェクト名.ilc 0x00010000 / 0x08000000
[ILINK32 警告] Warning: unknown heap name : 0x08000000 / 0x08000000
[ILINK32 警告] Warning: エラーが検出されました(LME286)
[ILINK32 警告] Warning: インクリメンタル リンクを実行できません -完全リンクを実行中...
[ILINK32 エラー] Error: リンクを実行できません。
とか表示されてしまうのだけど、何故?
576575
2013/11/20(水) 09:11:06.26 ちなみに、PCを再起動するとコンパイルできるようになる。
IDE自体の再起動ではダメ。
IDE自体の再起動ではダメ。
577デフォルトの名無しさん
2013/11/20(水) 12:13:11.66 XPじゃないのか?
XE3SP1だったかSP2はそれで動かなくなってたな
XE3SP1だったかSP2はそれで動かなくなってたな
578デフォルトの名無しさん
2013/11/20(水) 13:09:50.04 >>577
Win7
Win7
579デフォルトの名無しさん
2013/11/20(水) 15:42:32.95 LME286でぐぐるとなんかあるっぽいが
580デフォルトの名無しさん
2013/11/20(水) 22:55:34.09581デフォルトの名無しさん
2013/11/29(金) 18:01:14.70 DriveComboBoxでデフォルトドライブの変更方法教えて
DriveやItemIndexを弄っても全然変わってくれない
DriveやItemIndexを弄っても全然変わってくれない
582デフォルトの名無しさん
2013/11/29(金) 18:46:03.82583デフォルトの名無しさん
2013/11/29(金) 23:14:08.18 何かiOSアプリの開発ができるようになるらしいが
584デフォルトの名無しさん
2013/11/30(土) 01:50:47.22 BCB6で、リッチエディットの上にマウスが乗った時のマウスカーソルを変更するのは
どうしたら良いんでしょうか 右向きの矢印が出ます
どうしたら良いんでしょうか 右向きの矢印が出ます
585デフォルトの名無しさん
2013/11/30(土) 12:42:42.49 リッチエディットのCursorをオブジェクトインスペクタで変更しておけばいいんじゃ?
586デフォルトの名無しさん
2013/11/30(土) 21:32:02.58 マウスカーソルの変更出来ました。ありがとうございました。
587デフォルトの名無しさん
2013/12/02(月) 17:27:08.37 TImageで質問
ストレッチがtrueで
Image1->Picture->LoadFromFileで画像を表示させて
Image1->Widthを変更して再度表示させても以前のサイズのままで
更に読み込むと指定した大きさになるんですがこれすぐ正常なサイズで表示するにはどうしたらいいんですか?
Image1->Picture=NULLにしてもすぐには変わってくれなかったです
ストレッチがtrueで
Image1->Picture->LoadFromFileで画像を表示させて
Image1->Widthを変更して再度表示させても以前のサイズのままで
更に読み込むと指定した大きさになるんですがこれすぐ正常なサイズで表示するにはどうしたらいいんですか?
Image1->Picture=NULLにしてもすぐには変わってくれなかったです
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「おこめ券は米以外の食品も買える。効果的な活用を」 地元で農水相 [山形県] [少考さん★]
- 【速報】「女芸人No.1決定戦 THE W」9代目女王にニッチェ! 7年ぶり3度目で悲願の優勝 [牛丼★]
- 【芸能】『女芸人No.1決定戦THE W』 粗品が最後にバッサリ「優勝賞金1000万円にしてはレベル低い大会」 [冬月記者★]
- 【沖縄】開業4ヵ月でこれは…“国民の税金”投入の『ジャングリア沖縄』で見た衝撃的な光景と、モチベーションが低い一部スタッフの現状 [ぐれ★]
- 【東京】「家族で話題にして」 “世田谷一家殺害から25年 警視庁が呼びかけ [煮卵★]
- 今年の流行語大賞 『働いて働いて働いてまいります』が受賞で不快感… 過労自殺の遺族らが会見「家族にむち打つような行為だ」 [冬月記者★]
- 前駐中国大使・垂秀夫『高市首相が台湾有事答弁を国会でしてしまったのは高市首相のなかに戦略的思考が無いから。安倍晋三を見習え』 [718678614]
- クズ「勉強頑張らなかった奴は一生DQNと一緒に肉体労働しろ」☚勉強頑張れるのも環境と巡り合わせなんだが? [783475554]
- 金曜ロードショー😭
- 朝だよー🥁🥺ドンドンドンドン
- ( ・᷄ὢ・᷅ )ケツ
- モブサイコ「私がJAグループに何か利益誘導するということは全くありません」 [402859164]
