くだすれC++Builder(超初心者用)その4
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2009/10/23(金) 09:06:16もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
C++Builder使いが優しくコメントを返しますが、
お礼はC++Builderの布教と初心者の救済をお願いします。
Embarcadero Home Page
http://www.codegear.com/jp/
<過去スレ>
くだすれC++Builder(超初心者用)
http://pc8.2ch.net/test/read.cgi/tech/1117225464/l50
くだすれC++Builder(超初心者用)その2
http://pc10.2ch.net/test/read.cgi/tech/1144308804/l50
くだすれC++Builder(超初心者用)その3
http://pc11.2ch.net/test/read.cgi/tech/1171219191/
<兄妹スレ>
くだすれDelphi(超初心者用)その50
http://pc12.2ch.net/test/read.cgi/tech/1246340765/l50
0784782
2011/07/25(月) 23:23:52.37遅れました
すみませんまだエラーが出ます…
'char *' 型は 'const wchar_t *' 型に変換できない とエラー内容が多少変わったのですが…
0785デフォルトの名無しさん
2011/07/26(火) 01:02:34.32appname が AnsiString なら UnicodeString にする
0787デフォルトの名無しさん
2011/07/26(火) 13:47:30.33既存のmdbファイルがあって指定テーブルのフィールドの説明を取得する方法を教えてください
ADOTableでダメならSQL文でも構いません
0788デフォルトの名無しさん
2011/07/27(水) 01:22:03.91ttp://support.microsoft.com/kb/210314
0789デフォルトの名無しさん
2011/07/27(水) 09:43:06.09ありがとう
これADOTableで表現するならどうやってやりますかね?
0790デフォルトの名無しさん
2011/07/27(水) 10:44:49.980791デフォルトの名無しさん
2011/07/27(水) 10:54:01.29更にありがとうございます
しかしこれどうやって記述したらいいのかわかりません
0792デフォルトの名無しさん
2011/07/27(水) 11:42:28.29少しは自分で考えな
0793デフォルトの名無しさん
2011/07/27(水) 11:57:43.94だまって教えろ。ゴラァ
0794デフォルトの名無しさん
2011/07/27(水) 12:38:03.730795デフォルトの名無しさん
2011/07/27(水) 12:42:30.180796デフォルトの名無しさん
2011/07/27(水) 12:47:03.760797デフォルトの名無しさん
2011/07/27(水) 13:33:29.250798デフォルトの名無しさん
2011/07/27(水) 13:38:07.700799デフォルトの名無しさん
2011/07/27(水) 15:38:43.550800デフォルトの名無しさん
2011/07/27(水) 16:19:22.920801デフォルトの名無しさん
2011/07/27(水) 17:24:20.80これをどうやってADOTableの書式で表現するかわかりません
0802デフォルトの名無しさん
2011/07/27(水) 20:56:29.33まず、
1時間で正確に燃え尽きる蚊取り線香を3つ使って、1時間15分を計ってみてください。
0803デフォルトの名無しさん
2011/07/28(木) 01:36:46.64火を同時に何ヶ所にもつけるのって難しいよね
0804デフォルトの名無しさん
2011/07/28(木) 06:05:49.850805デフォルトの名無しさん
2011/07/28(木) 23:45:07.350806デフォルトの名無しさん
2011/07/29(金) 00:59:27.92オブジェクト公開されてるからそれから、辿っていってみて。
0807デフォルトの名無しさん
2011/07/29(金) 11:44:01.13HTTPEncodeを使っても正常にUTF-8になってないみたいなので
0808デフォルトの名無しさん
2011/07/29(金) 13:44:29.96UTF-8にURLエンコード
の意味が分からない
0809デフォルトの名無しさん
2011/07/29(金) 20:12:08.80ウザいだけです。
0810デフォルトの名無しさん
2011/07/30(土) 17:38:44.670811デフォルトの名無しさん
2011/08/01(月) 17:24:56.85辿ってみましたがフィールドのコメントを取得するようなのを発見できませんでした。
ぶっちゃけコードを教えてください
0812801
2011/08/03(水) 20:43:32.920813デフォルトの名無しさん
2011/08/03(水) 21:07:55.33V
_____
/::::::::::::::::::::::::::\ _
/::::::::::::::::::::::::::::::::::::::\ /  ̄  ̄ \
|:::::::::::::::::|_|_|_|_| /、 ヽ はぁ?黙ってろデブw
|;;;;;;;;;;ノ \,, ,,/ ヽ |・ |―-、 |
|::( 6 ー─◎─◎ ) q -´ 二 ヽ |
|ノ (∵∴ ( o o)∴) ノ_ ー | |
/| < ∵ 3 ∵> \. ̄` | /
::::::\ ヽ ノ\ O===== |
:::::::::::::\_____ノ:::::::::::\ / |
0814デフォルトの名無しさん
2011/08/04(木) 06:27:21.250815デフォルトの名無しさん
2011/08/04(木) 09:48:01.540816デフォルトの名無しさん
2011/08/04(木) 10:47:18.890817デフォルトの名無しさん
2011/08/08(月) 19:06:57.41#include "ABCDEFGH.h" ←空のファイル
#include "ABCDEFGHI.h" ←存在しないファイル
上のようなCPPをコンパイルするとエラーもなく通るんですが、
これって基本先頭8文字しか確認していないってことでしょうか?
また、C++の仕様上では正しいのでしょうか?
0818デフォルトの名無しさん
2011/08/08(月) 23:18:23.60仕様上問題ない
0819デフォルトの名無しさん
2011/08/09(火) 12:28:32.918文字ってことでDOS形式のファイル名か何かが
絡んでいるだろうとは思っていましたが、仕様上
問題ないというのは驚きです。
となると、ヘッダーファイル名は先頭8文字をユニ
ークにしなければいけないんですね。
0820デフォルトの名無しさん
2011/08/09(火) 14:01:34.810821801
2011/08/11(木) 17:05:51.550822デフォルトの名無しさん
2011/08/11(木) 20:26:49.25V
_____
/::::::::::::::::::::::::::\ _
/::::::::::::::::::::::::::::::::::::::\ /  ̄  ̄ \
|:::::::::::::::::|_|_|_|_| /、 ヽ はぁ?黙ってろデブw
|;;;;;;;;;;ノ \,, ,,/ ヽ |・ |―-、 |
|::( 6 ー─◎─◎ ) q -´ 二 ヽ |
|ノ (∵∴ ( o o)∴) ノ_ ー | |
/| < ∵ 3 ∵> \. ̄` | /
::::::\ ヽ ノ\ O===== |
:::::::::::::\_____ノ:::::::::::\ / |
エラーを英語で表示するにはどうしたらいいのでしょうか?独島は日本の領土
0824デフォルトの名無しさん
2011/08/16(火) 03:24:59.36BCB5の場合だけど
0825801
2011/08/16(火) 16:26:08.120826デフォルトの名無しさん
2011/08/24(水) 15:20:16.08pragmaでインクルードファイルのパスは指定できるのでしょうか?
0827デフォルトの名無しさん
2011/08/24(水) 15:57:39.79つ ttp://docwiki.embarcadero.com/RADStudio/ja/Pragma
0828デフォルトの名無しさん
2011/08/24(水) 16:03:16.21#pragma option で使用できないオプションは以下のとおりです。
のところに
-Ifilename
0829デフォルトの名無しさん
2011/08/24(水) 16:22:12.53有り難うございます。
すっぱり諦めます。
0830デフォルトの名無しさん
2011/08/27(土) 14:02:57.71データ入力値や計算結果・図示などの
印刷を行いたいのですが、
ページは数ページから数十ページ程度の出力となりうるもので
ビルダーでするにはどのコンポーネントをつかう必要が
あるのでしょうか?
QuickReportを検索したのですが、
フリーであればよいのですが、
有償問わず教えてもらえたらと。
0831デフォルトの名無しさん
2011/08/28(日) 00:13:46.140832デフォルトの名無しさん
2011/08/28(日) 00:52:22.100833デフォルトの名無しさん
2011/09/09(金) 16:50:07.99void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString str1 = "test1";
AnsiString str2 = Caption;
AnsiString dummy1;
AnsiString dummy2;
AnsiString dummy3;
AnsiString dummy4;
#if 1
AnsiString tmp = (str1.Length() ? str1:Caption );//EAccessViolation
#else
AnsiString tmp = (str1.Length() ? str1:str2 );//OK
#endif
}
↑で、EAccessViolation が発生するのは、なぜなんだろ?
コンパイラが腐ってるという噂もありつつ...
0834デフォルトの名無しさん
2011/09/09(金) 18:57:56.44?の右(どちらか)にデストラクタが必要なオブジェクトを置いたとき
変なコードを吐いたのを覚えてる。
危険と認識したので、俺的には
?の右に置くものは組み込み型のみで、かつ2つの型を統一にするようにしている。
0835デフォルトの名無しさん
2011/09/09(金) 19:01:09.08暗黙の型変換とデストラクタとで
どちらが原因でバグにぶつかるのか深く追求しなかったから、
両方を避けるようにしてる、ってこと。
特にコンストラクタを介する暗黙の型変換は確実にとぶだろうと。
0836デフォルトの名無しさん
2011/09/10(土) 05:22:23.39さすがに XE2 では正しく動いた。テンポラリのオブジェクトを適切に破棄しておる
>コンパイラが腐ってるという噂もありつつ...
それが正解
0837833
2011/09/10(土) 19:35:16.92マシン語がよめれば、確信がもてたんだろけど、
よめないので、吐かれたコードが怪しいとおもいつつ、確信がもてなかただ
やっぱ、最後はマシン語よめないとなぁ...勉強しろよ>自分
if文に書き換えりゃいいだけだから、まぁ、大した話ではないんだけど、
失った時間が...
↑のは、dummy をはさんでるから、当該文で、例外がおきるけど、
スタックの状況によっては、全然離れたところが壊されて、
意味不明の動作になるから、けっこうたちがわるい...
0838デフォルトの名無しさん
2011/09/10(土) 19:55:35.09思えない。ただ、バグを回避するコーディングもテクだとは思うが。
0839デフォルトの名無しさん
2011/09/11(日) 10:18:11.848086の時代じゃあるまいし、バカかよ。
32bitのあのやたら長いバイナリを読める奴なんいるんかよ。
アセンブラ読めれば十分だろ、阿呆。
0840デフォルトの名無しさん
2011/09/11(日) 10:31:35.14「C3がRETだ」とかそういうレベルで機械語が読めるとでも思ったのか??コンパイラが
吐くコードがイメージできないと辛いってことだと思うが。
0841デフォルトの名無しさん
2011/09/11(日) 13:34:30.72http://e-words.jp/w/E6A99FE6A2B0E8AA9E.html
マイクロプロセッサが直接解釈・実行できる言語。数字の列で表現され、人間が簡単に理解できるような形式にはなっていない。
0842デフォルトの名無しさん
2011/09/12(月) 06:25:03.340843デフォルトの名無しさん
2011/09/12(月) 12:23:43.920844デフォルトの名無しさん
2011/09/12(月) 20:42:14.380845833
2011/09/17(土) 21:24:46.26ちなみに私も、アセンブラのつもりでマシン語とつかてた
0846デフォルトの名無しさん
2011/09/17(土) 21:27:26.21また、BCB5update1 でのお話
//---------------------------------------------------------------------------
class TTest1
{
protected:
#if 1
AnsiString __fastcall GetTest(){return GetTest(1);}//<== E2247 アクセスできない
#else
AnsiString __fastcall GetTest(){return "1";}//<== OK
#endif
public:
__property AnsiString Test ={read=GetTest};
AnsiString __fastcall GetTest(int x){return AnsiString(x);}
};
//---------------------------------------------------------------------------
class TTest2
{
private:
TTest1 * Test1;
protected:
AnsiString __fastcall GetTest(){return Test1->Test;}
public:
__property AnsiString Test ={read=GetTest};
};
//---------------------------------------------------------------------------
これで、コンパイルエラーが出るのはなぜなんでしょ?
0847デフォルトの名無しさん
2011/10/10(月) 15:44:24.190848デフォルトの名無しさん
2011/10/10(月) 15:48:15.920849デフォルトの名無しさん
2011/10/10(月) 16:30:47.920850デフォルトの名無しさん
2011/10/10(月) 19:51:01.56あまり使わないからよく覚えてないし
0851デフォルトの名無しさん
2011/10/20(木) 15:22:19.51C++なら参照で済むところまでポインタ使ってる
0852デフォルトの名無しさん
2011/10/20(木) 17:27:05.35StringGridにフォーカスがあるとWM_MOUSEWHEELが入ってこなくなるので
StringGridのMouseWheelを無視してWM_MOUSEWHEELにイベントが入ってくるようにする方法を教えてください
0853デフォルトの名無しさん
2011/10/20(木) 17:36:51.160854デフォルトの名無しさん
2011/10/20(木) 17:50:10.42Enabledをfalseにする如くに。
しかし、グリッド操作もするのでそれはできない
0855デフォルトの名無しさん
2011/10/20(木) 18:06:40.770856デフォルトの名無しさん
2011/10/20(木) 18:26:34.410857デフォルトの名無しさん
2011/10/20(木) 20:55:25.380858デフォルトの名無しさん
2011/10/22(土) 19:07:24.72マウス位置がStringGrid内かを判断して
StringGrid内だったら、処理したい関数にメッセージを転送すればいい。
これはわりと普通に行われている処理で
ぐぐれば、いくらでも例が出てくる。
0859デフォルトの名無しさん
2011/10/24(月) 06:37:15.09std::vector使えばテンプレートでキャストしなくてもいいですが、
VCLで統一したくて、でもTObjectListだとキャストいぱーいでいやーんです。。。
0860デフォルトの名無しさん
2011/10/26(水) 14:16:12.70グローバルでcs1,cs2を,Form1のpublicにchar buf[20]を宣言して、
Form1にEdit1,Edit2,Button1を貼って実行すると、競合させたbufの内容が
Edit2側にゴミとして表示されてしまいます。
ttp://ideone.com/Tk5g9
下の2つがスレッド側です。
使い方が根本的に違うのでしょうか。
0861デフォルトの名無しさん
2011/10/26(水) 14:49:16.04家(buf)には鍵(cs)が1つだけあって、それを先に取ったものが家に入れる。
「家とは関係のない鍵(cs1,cs2)」をそれぞれが持っててるだけでは意味ない。
0862デフォルトの名無しさん
2011/10/27(木) 01:07:21.50作成するタイミングも間違い。コンストラクタか、FormCreate()でnewすべき。
競合するオブジェクトにアクセスしたいときにAcquire()する。
0863860
2011/10/27(木) 13:24:14.00やってみたのですが、上手くいきません。
スレッド側のSleepがロックを解除してしまうとかはなさそうだし。
Sleepがないと、クリティカルセクションを使わなくても見た目では
競合していなかったので入れてみたのですが。
本来のやりたい事は、buf[]を介してUSB-I/O基板を繋いで、
メインスレッド側:
・Timer1で定期アクセス
・特定の処理で単発アクセス
サブスレッド側:
・特定の処理で連続アクセス
だったので、実験的に競合させるサンプルプログラムを作って動作を
試したかったのです。
(ググっても、見た目で効果がわかるようなサンプルプログラムはなかったので)
タイマイベントの中でフラグを立てて、それを監視して競合を避ける方法も試してみます。
0864デフォルトの名無しさん
2011/10/27(木) 13:45:51.12タイマイベントの中でフラグ云々は、クリティカルセクションそのもののような気が。
0865デフォルトの名無しさん
2011/10/27(木) 13:59:33.250867デフォルトの名無しさん
2011/10/27(木) 17:23:54.69丸ごとSynchronizeするならスレッドの意味ないんじゃ…。
0868デフォルトの名無しさん
2011/10/27(木) 20:22:24.18デッドロックしそうなんだけど。
基本は競合するところに最小限のロックをかけるだから、テストといえどもまずい。
0869デフォルトの名無しさん
2011/10/28(金) 06:54:34.72Timer1Timer はメインスレッドのメッセージループ内で動作するよ。
Synchronizeを使って呼び出されたSyncDebugはメインスレッドのメッセージループ内で動作するよ。
TCriticalSectionやMutexみたいなことをメッセージループで実現するのがTThreadのSynchronizeなのでどちらかにしたほうがいいよ。
0870デフォルトの名無しさん
2011/10/28(金) 11:41:44.21Mutexは違うな
0871デフォルトの名無しさん
2011/10/28(金) 13:00:04.950872デフォルトの名無しさん
2011/10/28(金) 16:31:44.78用途の違いというかそんな感じ
0873デフォルトの名無しさん
2011/10/28(金) 22:25:37.51実際に正しく動作する例を見れば、理解できるんじゃないかな。
0874860
2011/10/29(土) 10:27:45.71最初はUnit2.cppのExecute()の中で競合させようと、
あれこれ試したのが、上手く競合した状態を作れなくて
Synchronizeを使い出してしまったんですが、本末転倒ですね。
Synchronizeがメインスレッドで実行されるということは、
全く意識していませんでした。
>>869-872
Mutexはプログラム自体の二重起動防止では使っていますが、スレッドに対しても
使えるということでしょうかね。
>>873
TCriticalSectionはググってDelphiの例も読んでみたのですが、局所的な部分の
例しか見つけられませんでした。
クリテクカルセクションは、私には効果を確認する能力がないので諦めて、
フラグで処理しようと思います。
長々と付き合ってもらい、ありがとうございました。
0875デフォルトの名無しさん
2011/10/29(土) 11:15:49.57いや、・・・TCriticalSectionは、そのフラグだから。
マルチスレッドでもちゃんと調停してくれることを保証するフラグ。
0876デフォルトの名無しさん
2011/10/29(土) 11:54:06.06それは解りましたが、”私の能力では”効果が確認できないので
TCriticalSectionで書くのを止めるということです。
Synchronizeでも使ってメインスレッド側で調停させる
ことにします。
0877デフォルトの名無しさん
2011/10/29(土) 15:35:02.010878デフォルトの名無しさん
2011/10/29(土) 16:24:53.78何逆ギレしてんの?カルシウムとっとけよー
0879デフォルトの名無しさん
2011/10/31(月) 10:11:38.770880デフォルトの名無しさん
2011/11/01(火) 10:05:20.79Corsorの形状を変えているのですが
この時にマウスボタンを離さないとカーソルが変わってくれません。
これマウスボタンを押したままでマウスカーソルを変更する方法を教えてください
0881デフォルトの名無しさん
2011/11/01(火) 16:40:12.410882デフォルトの名無しさん
2011/11/01(火) 17:10:17.79それやったけどダメですた。
ちなみにSleepもやったけどダメですた
何か強制的にカーソル変えるアレないですかね?
ちなみにScreenのカーソルなら一発で変わるんですけどね
0883デフォルトの名無しさん
2011/11/01(火) 17:26:33.21カーソルが来たときのデフォルトのカーソル形状を設定するもの。なので通常は
Screen.Cursorを変更するんだけど。
■ このスレッドは過去ログ倉庫に格納されています