2 :
デフォルトの名無しさん:2009/10/24(土) 04:05:23
C++Builderは64ビットWindows7に対応していますか?
2010ならOK。2007/2009はIDEのデバッガ周りにバイナリパッチが必要。
TurboC++6.0で使えるDirectXって7版?
5 :
デフォルトの名無しさん:2009/10/26(月) 14:07:46
TChartのTPointSeriesで各々のポイントのマーカーの値を任意の文字で表示したいのですが
どうやってやればいいのですか?
完全に任意に、ってのはできなさそうに見えるけど。それらしいイベントもプロパティもないんで。
7 :
デフォルトの名無しさん:2009/10/27(火) 09:41:01
64ビットプログラムが作れるようになるのは次のバージョンからですか?
8 :
デフォルトの名無しさん:2009/10/27(火) 10:00:53
>>6 そうなんですよね、プロパティ等がみつからなかったので
ちなみにAddXYする時にラベルを指定できるんですが
これ指定しちゃうと確かにマーカーは指定したのになるんですが
軸もしれになっちゃうんですよね・・・
そこさえなんとかできればいいんですが・・・
10 :
デフォルトの名無しさん:2009/10/31(土) 00:04:03
c++builder6のstdoutはどういう扱いなのでしょうか?
配布されているライブラリ内で結果をstdoutに出力する関数があり、
その結果をc++builder側で受け取りたいのですが方法がわかりません。
(stdoutへの出力を横取りしたい。)
どなたかアドバイスお願いします。
パイプかなんかを使うんじゃなかったっけ?delphi stdoutかなんかでぐぐれ。
int a[100]という配列を用意して、実際に使っているのは20個だとします。
この場合何個使ってるか調べる方法はありますか?
調べるも何も20個だろ
あ、書き方が変でした。。
int a[100]という配列があってその内何個使っているか調べたいときです。
20個とかはわからないと仮定してです。。
立て続けで申し訳ないのですが、
sizeof(a)だと100個になってしまうのでしょうか?
何個使うかはプログラム次第だろ
カウンタで使用している数を記録させるか、別にフラグ用の配列を用意するかだろ
vector
18 :
デフォルトの名無しさん:2009/11/04(水) 09:53:40
v
19 :
デフォルトの名無しさん:2009/11/04(水) 09:55:42
>>15 それだとintはOSに依存すっし
個数だけなら
count = sizeof(a) / sizeof(int);
まあこうだろうな
何個使ってるとかっつーのをカウントするのは不可
20 :
デフォルトの名無しさん:2009/11/04(水) 10:37:57
使用している使用していないの基準て何なの?
「プロジェクトオプション」の「バージョン番号を含める」ってとこで
「ビルド番号の自動更新」て項目にチェックを入れたところ、
ブレークポイントで止めたとき「ソースが変更されました。再構築しますか?」
って必ず一回聞かれるようになっちゃうんだけど、同じ症状出てる人いない?
バージョンは RAD Studio 2010で。
22 :
デフォルトの名無しさん:2009/11/04(水) 17:43:58
TChartで印刷するときPrintPartialCanvasを使ってるんですが
これ背景が黒でもラインによってはちゃんと背景を白で印刷してくれる時があるんですが
強制的に白にするにはどうしたらいいですか?
さすがに真っ黒だとインクがエロい事になるので・・・
無限ループwww
>>21 QCに書いとけ
そうじゃないと次のUpdateに反映されんぞ
26 :
21:2009/11/06(金) 14:42:16
みんな再現するようだね、サンクス。
>>25 QC…、おぅこんな機能用意されてんだな、ありがとう。
英語の復習から始めるとして…
つかメニューの箇所を説明すんのに日本語版のメニュー名じゃダメだよな?
投稿までに何日掛かるかわからんが空いた時間に調べてみるか…(汗)
ちょっと前に無料で配られていたTurboC++BuilderExplorerでは
Windows7 64bitでデバッガを使うのはもはや無理ですか?
28 :
デフォルトの名無しさん:2009/11/14(土) 20:53:58
デバッガでデバッグ。
30 :
28:2009/11/14(土) 22:20:48
IEコンポの内部で何かが発生して
プログラムが強制終了になってしまうので
デバッグしょうがないのです。
なんか根本的なところが間違ってる、とまではいわないまでも、考え違いをしているような気がする。
もういちどスタートラインに戻って考え直してみてはいかが?
32 :
28:2009/11/15(日) 00:25:49
プログラムは
フォームにTWebBrowserを貼り付けて
WebBrowser1->Navigate(ぱらーめーた);しているだけです。
ただこれだけなのですよ
何を考え直すのでしょうか???BDS2006を使うなとかですか?
「ポイントくじに今すぐチャレンジ」をクリックすると落ちてしまい
それ以外だと、無問題です。
IEでブラウズすると問題なく動きます。
>32
コピペにマジレス
35 :
デフォルトの名無しさん:2009/11/17(火) 17:46:38
おい、質問するぞ、誰かいねーのか!!
<>
質問どうぞ
自作コンポーネントを使うと #pragma link が必要になるんだけど
通常のコンポーネントのように #pragma link なしでいいようにパッケージを作るにはどうしたら良いんですか?
40 :
デフォルトの名無しさん:2009/11/24(火) 08:48:45
unicode対応のプログラムはどのようにして作ればよいのでしょうか?
もっと具体的に質問してください
日本語版C++Builderでコンパイルした場合、
そのソフトを英語版Windowsで実行すると、エラーメッセージダイアログなどが
文字化けします。どのWindowsで実行しても文字化けしないようunicode対応で
プログラムを組みたいのですが、その方法を教えてください。
44 :
デフォルトの名無しさん:2009/11/24(火) 18:45:43
TBitmapをDIB(ヘッダ無しで色データ配列のみ)に変換する方法を教えてください。。
C++Builder 2007で作ったexeをWindows7で実行していますが問題が発生しています。
処理内容は、TCustomControlから派生したコントロールをTScrollBox内に設置して、上下左右に
スクロールさせています。
XP,Vistaでは、コントロールのHeightに65536以上の値を設定しても問題ない
のですが、Windows 7では65536以上を指定しても65535になってしまいます。
これはWindows7の非互換の問題でしょうかね。それとも65536以上を指定して
動いていた今までの動作が例外的だったのでしょうか。
悩んでます。よろしくです。
46 :
デフォルトの名無しさん:2009/11/25(水) 03:45:02
C++Builderを始めようと思いますが、未来はありますか?
あるんじゃない?
2009じゃなくて2010にしたほうが良いよ
>45
互換モードで動作させたらどうなるの?とはいえ
> これはWindows7の非互換の問題でしょうかね。
だろうね。
49 :
デフォルトの名無しさん:2009/11/25(水) 15:41:52
TGA形式の画像をTBitmapに変換する方法を教えてください
51 :
デフォルトの名無しさん:2009/11/25(水) 16:15:57
何この糞見づらいページは
怪しいライブラリを使わないで変換する方法を教えてください
自分で作れ
Susie pluginって手もある。
>>48 XP互換モードでもダメでした。
スクロールビューの中にコントロールを置いて、上下左右スクロールをさせる作りのアプリは
多そうだけど、非互換でいいのだろうか・・
Vistaからの最適化の中で切られたんだろなぁ。Windows7 SP1で直ればいいけど。
>>28 カメだがBCB6でもTurboCでもXPなら落ちる
2000なら落ちない
Silverlightとの相性が悪いとおもっているが原因不明
56 :
デフォルトの名無しさん:2009/12/07(月) 19:22:33
すいません、素人くさい質問ですが
TStringList *plist[100] ;
for ( int i = 0 ; i < 100 ; i ++ )
plist[i] = new TStringList ;
とやった場合は、delete [] を使うの?
それとも delete plist[i] のループを回すべき?
plist 配列はその時々に応じて確保される配列数が 50 だったり、20 だったりするのですが、どっちで delete すべきでしょうか?
boost::shared_ptrで包んでstd::vectorにでも放り込んでおけ
もしくは普通にnewしてboost::ptr_vectorな
>>56 delete plist[i] のループを回す
60 :
デフォルトの名無しさん:2009/12/08(火) 11:24:25
>>60 >Academic Proof Required
安くない
BCB6から2010へプロジェクトを移行したのですが、
↓文字を扱っている箇所でエラー(const char*はconst wchar_t*に変換できない)が発生します。
Application->MessageBox("AAA");
試した事は
1,プロジェクトオプションの「_TCHARマップ先」をwchar_tに変更
2,#define USTRING_AS_WCHART としてみた。
他に何か必要なのでしょうか?
アドバイスお願いします。
L"AAA"
64 :
62:2009/12/08(火) 20:23:03
>>63 アドバイス有り難うございます。
L"AAA"で修正できましたが、個別に該当する箇所を修正する方法では無く、
プロジェクト全体にまとめて適用できる様な方法はないでしょうか?
>プロジェクト全体にまとめて適用できる様な方法はないでしょうか?
ありません。
C / C++ 言語では文字型リテラルには型が付いています。
コード上で明示的に char か wchar_t (最近のだと wchar16_t と wchar32_t もあります) で有ることを指定する必要が有ります。
文字列リテラルがメモリの初期化の簡便記法でしかなかったころの歴史的名残です。
対するに Delphi の文字リテラルは評価するときに型が決まるので記法上は一種類しか有りません。
文字列置換ツールで置換してしまえば、いいじゃん。
無条件に全置換すると、char* を必要としているところでエラーとなるよ。
2010 になってもデフォルトでは UNICODE マクロが付かないので(過去との互換性の問題かな)
_T マクロは役に立たないし。
このコンパイルエラーが出るところが、BCB6 からの一番の変更点なので、
手を抜かずに全部確認した方が、後でバグが出て泣くより正しい道だと思います。
68 :
62:2009/12/09(水) 10:10:02
アドバイス有り難うございます。
手を抜かずに個別に修正したいと思います。
69 :
62:2009/12/10(木) 16:45:46
またまた教えてください。
外部DLLの関数を呼び出す時にchar*を渡すのですが、
2010ではエラー(const char*はconst wchar_t*に変換できない)が出ます。
2番目の引数にこれはcharだよと明示しないといけないと思うのですがどうすれば良いのでしょうか?
//BCB6で動作している記述
Tcl_CreateCommand( interp, "ABC", ( Tcl_CmdProc * )ABC_Proc, ( ClientData )NULL, ( void (*)())NULL );
//関数宣言
Tcl_Command Tcl_CreateCommand( Tcl_Interp interp,
char *cmdName,
Tcl_CmdProc proc,
ClientData clientData,
Tcl_CmdDeleteProc deleteProc);
つうか、第3引数の型は、[ Tcl_CmdProc ] ? それとも [ Tcl_CmdProc* ] ?
Visual c++でプログラムを書いて、コンパイルしました。
Unixでいうscriptで実行結果を出力したいのですが、どうしたらいいでしょうか?
頑張ってください。
C/C++ コンパイラとしての機能は 6 も 2010 も同じなので、
VCL が絡まなければ、違いは出てこないはずです。
少なくとも char と wchar_t に関しては変更は有りません。
提示されているコードではエラーは出るはずが無いので、何とも解説/回答できませぬ。
エディタ上で Tcl_CreateCommand と打った後コード支援で出てくる引数のプロトタイプを
確認することを勧めます。
もしそこで表示される第二引数 cmdName の型が char * ではなく wchar_t * だとしたら、
ヘッダファイルや関数定義を見直してください。
74 :
デフォルトの名無しさん:2009/12/11(金) 06:07:05
>C/C++ コンパイラとしての機能は 6 も 2010 も同じ
これはウソでしょう
くだすれだから勘弁してくれな > 74
バグ修正や C++0X 規格の一部先取り以外で
C/C++ コンパイラとしてどこら辺が変わったのかまとめてくれるとありがたいぞ > 74
76 :
62:2009/12/11(金) 10:16:16
>>73様
御指摘頂いたように宣言を見直したら第2引数ではなく第5引数に誤りがありました。
思い込みで作業していたようで大変助かりました。
有り難うございました。
いえいえ。お礼はいりませんよ。
78 :
デフォルトの名無しさん:2009/12/16(水) 14:10:13
TBitmapにOutTextで文字を書いた時に
この文字に指定ドット数で輪郭をつけたいのですがどうやったらいいですか?
元の文字はそのままで文字の外側につけたいので文字が指定ドット分大きくなるイメージなのですが。。
79 :
デフォルトの名無しさん:2009/12/18(金) 21:54:01
ウインドウの大きさが可変なダイアログを作ろうとして
BorderStyle=bsSizeable; にしました。
これで、大きさは変更できるようになったのですが
ウインドウの右下の角に、サイズ変更可の印が出てくれません。
印を出すには、どうすれば良いでしょうか。
TStatusBarを配置しました。
マークが出ましたが
とても間抜けなダイアログボックスになりました。
82 :
デフォルトの名無しさん:2009/12/22(火) 04:00:09
できたのだからよいではないか
getlineでファイルから
商品名,2009/11/2
にのようになってる行を読み取り、商品名、西暦、月、日をそれぞれ別の変数に格納したいです。
getlineでどのように書けばできるのでしょうか?
俺なら','をstrchrで探して前半を切り出し
後半はsscanfでまとめて取得するかな。
>>83 俺ならstd::tr1::regexで取得するかな。
例外の発生したアドレスをExceptionクラスから受け取ることってできないんですか?
そのような情報を取得する方法ってないのでしょうか?
87 :
デフォルトの名無しさん:2010/01/13(水) 14:43:58
C++builder2010って64ビットに対応してる?
してない。
2011年夏の予定
89 :
デフォルトの名無しさん:2010/01/13(水) 16:19:10
そんなあ><
90 :
デフォルトの名無しさん:2010/01/13(水) 19:26:30
ま た お ま え か
91 :
デフォルトの名無しさん:2010/01/19(火) 02:01:43
.resを作った後、そのリソースをexeにくっつけて
コンパイルするにはどう記述すればいいの?
>ilink32.exe
と打ってコマンドラインのヘルプを確認しましょう。
bcc32.exe の引数に、.res ファイルを書く事もできます。できるはず。
つーか、プロジェクトにres放りこんどけと
94 :
デフォルトの名無しさん:2010/01/19(火) 14:26:28
知らないならレスしないで下さい><
ま た お ま え か
96 :
デフォルトの名無しさん:2010/01/23(土) 08:24:17
ActiveXに関する質問なんですが、
VCのMFCでtypelib追加ウィザードで作成されたクラスには
LPDISPATCH型をパラメータにしたコンストラクタがあって、
そこにVARIANT変数のpdispVal等を使用して作成していたのですが、
BCB6でタイプライブラリの取り込みを行った際、
そのLPDISPATCH型をパラメータにしたコンストラクタがなくなって
コンストラクタには「TComponent* owner」になってしまいました。
LPDISPATCHをそのクラスに設定するにはどのようにすればいいでしょうか?
10年前の BCB6 だとサポートできない機能があると思いますが
たぶん何とかなるとおもいます。
取り込み元 ActiveX の Typelib の定義を見せてください
あと、BCB 側のプロジェクトディレクトリに、インポートのログファイルが落ちていませんかね?
98 :
デフォルトの名無しさん:2010/01/23(土) 11:25:09
初歩的な質問で恐縮です。
BCB6のプログラム中でフォントを指定したいのですが,例えば
Image1->Canvas->Font->Name="CourierNew";
Image1->Canvas->TextOutA(10, 10, "ABC") ;
と書いても,デフォルトのフォントのままの文字が現れて,変ってくれま
せん。となたか解決方法をお教え下されば幸です。
因みにフォントのサイズやスタイルは,
Image1->Canvas->Font->Size=16;
Image1->Canvas->Font->Style=TFontStyles() << fsBold;
Image1->Canvas->Font->Style=TFontStyles() << fsItalic;
で変えられます。
Image1->Canvas->Font->Charsetを変えてみる
BDS2006を使っています。
TSimpleEvent *event=new TSimpleEvent();
とするとエラーになります。
ヘルプを見ると、コンストラクタは引数なしなので
これで良さそうなのですが、どうも原因がわかりません。
TSimpleEventはどう使えばいいのでしょうか。
それでいいはずだから、
#include <SyncObjs.hpp>
か?必ずエラーの内容書こうぜ。
102 :
98:2010/01/23(土) 13:12:43
103 :
100:2010/01/23(土) 13:25:51
[C++ エラー] Main.cpp(1917): E2285 'TSimpleEvent::TSimpleEvent()' に一致するものが見つからない
となります。
#include <Syncobjs.hpp> はしています。
ヘルプが更新されてないのかね。今は↓らしい。Syncobjs.hppの中を見て確認したほうがいいかもしれない。
Syncobjs::TSimpleEvent * __fastcall TSimpleEvent(_SECURITY_ATTRIBUTES * EventAttributes,
bool ManualReset, bool InitialState, System::UnicodeString Name, bool UseCOMWait);
TSimpleEvent メソッドは,システムのイベントオブジェクトを作成し,TSimpleEvent オブジェクトをインスタンス化してそのイベントを表します。
__fastcall TSimpleEvent(void);
となってるね
Update全部当てたけどこのまま
106 :
100:2010/01/23(土) 16:03:16
見てみました。
Syncobjs.hpp の定義に
__fastcall TSimpleEvent(void);が無いですね。
でも、
Syncobjs::TSimpleEvent * __fastcall TSimpleEvent(_SECURITY_ATTRIBUTES * EventAttributes,
bool ManualReset, bool InitialState, System::UnicodeString Name, bool UseCOMWait);
これって、TEventと同じ引数じゃないですか。
TEventと同じならTSimpleEventの意味がないですよね。
というかTSimpleEventは名無しのハズですから
もしかしたら、バグでしょうか。
あと、最後の引数 bool UseCOMWait これが謎です。
ちなみにC++Builder2010のヘルプでは
C++ の情報
ファイル SyncObjs.hpp
TSimpleEvent = class(TEvent)
[edit] C++ の情報
ファイル SyncObjs.hpp
TEvent = class(THandleObject)
となってるからまた仕様が変更されているようですね
いつから変わったんだろう
と思ったらちゃんと書いてあった
SyncObjs.TSimpleEvent のコンストラクタFrom RAD Studio VCL Reference
[edit] C++ の情報
Syncobjs::TSimpleEvent * __fastcall TSimpleEvent(_SECURITY_ATTRIBUTES * EventAttributes,
bool ManualReset, bool InitialState, System::UnicodeString Name,
bool UseCOMWait);
virtual void __fastcall ~TSimpleEvent(void);
これはさすがにバグが取れているようだ
110 :
デフォルトの名無しさん:2010/01/27(水) 15:14:53
TRichEditで質問ですが。
SelAttributesで一部の色を変更した時に
何処が何色に変更されてるかを調べる方法を教えてください。
111 :
デフォルトの名無しさん:2010/02/01(月) 16:38:07
早く教えて
C++ Builder 2010でZlibを使いたいんですけど
Boostの中にすでに入っているようで
これを使うにはどうしたらいいでしょうか?
CBuilder では使えません。
必要なファイルが足りないようですね
112です
Boostのを使えない場合
普通にZlibの最新版をダウンロードして
ソースコードをプロジェクトに加えれば使えるんでしょうか?
この頃のオープンソースでは CBuilder/BCC 用の設定をつけていない物も多いので
「がんばってください」と言うしかないです。
Delphi 側の実装である zlib ユニットを利用するというてもあると思います。
zlib.hpp をインクルードしてみてください。
Win32DLL版のzlibと必要なヘッダを落とし
DLLからimplibするだけだろ
112です
ZlibのDLL版のimplibでうまくいきました
ありがとうございました
C++Builderのエディタ部分でタブとEnterキーが効かず。スペースが一文字削除になるんですが。
これってどうすれば治りますか?
119 :
118:2010/02/08(月) 11:29:22
>>118すいません、とても恥ずかしい理由で治りました。
もう一つ質問させて頂きたいのですが
C++Builder(のソケット)でネットワークプログラミングをする場合、書籍はwinsock2のモノでも
大丈夫でしょうか?
C++Builderのソケットって何を指していってる?まぁどの方法でもWinSock2で当たりを
つけておく必要があることに変わりはないけど。TServerSocket/TClientSocketは
SMP上のマルチスレッドではうまくいかない、という報告を見たことがあるので注意して。
Indyならマルチスレッド必須(基本ブロッキングなので)。自前で実装するならご自由に。
ICSはよくわからん。
Qt は C++Builder でも使えた?
122 :
デフォルトの名無しさん:2010/02/10(水) 10:52:00
特定部分をCUDAを使って計算させたいのですが、C++BuilderでCUDAを使うには
どのような設定が必要なのでしょうか?
できません。
124 :
デフォルトの名無しさん:2010/02/10(水) 12:33:59
できないって、DLLとかでもだめなのかい?
マイナー環境を使ってる者の宿命です。
126 :
デフォルトの名無しさん:2010/02/10(水) 16:54:11
うるさいだまれぶた
時間がかかるループ中にプログレスバーを別スレッドで進めたいと思い
ヘルプどおりにTThreadの派生クラスを作りました
Executeの中でForm1->ProgressBar1->StepIt()を呼ぶだけのシンプルな
もので、これ自体が正常に動作することは確認しました
しかし、肝心の時間がかかるループになるとこのスレッドに制御がこないため
プログレスバーが進みません。ループに入る前にnewで作った時に1回よばれ
ループが終わった時にもう1回よばれるだけです。コンストラクタの引数はfalse
にしてあります。Priorityプロパティも変えてみましたけど変わりません。
どうやったらループの中で並行してスレッドが動くようにできるでしょうか?
128 :
デフォルトの名無しさん:2010/02/12(金) 15:52:49
つーかそれスレッドから呼んだら落ちるんじゃね?
もしくは、落ちなくても正常にアレされなさそう。
void Execute( void )
{
while( !Terminated ){
Synchronize( Unko );
Sleep(1);
]
}
void Unko( void )
{
Form1->ProgressBar1->StepIt();
}
これでどうよ?
>>128 それもやってみましたけど変わりませんでした
時間がかるループ以外のところでやると正常にプログレスバーは進みます
ループに入るとその間だけ呼ばれなくなります
130 :
デフォルトの名無しさん:2010/02/12(金) 16:11:35
んじゃむしろそっちのループにSleepいれたらどう?
それなら直接 StepIt を呼んだ方が効率がいいような気がします
ループの方は細かいループがたくさんよばれるのでそれらに1つ1つStepIt入れるの
がいやでなんとか別スレッドでできないものかと悩んでいます
132 :
デフォルトの名無しさん:2010/02/12(金) 16:43:13
それCPU負荷100%になってるだろ
リソースモニターでみると「応答なし」になってます
これが原因でしょうか?
134 :
デフォルトの名無しさん:2010/02/12(金) 16:56:18
スレッドにSleepを入れるのは当然として
他のループにもいれないとまずいだろ
ようやく分かってきました
SleepかStepItかProcessMessages
あたりをループの中で呼ぶしかないんですね
ループの部分のソースコードはMacと共有してるんで
あまりやりたくなかったんですけど
#ifdef使って入れてみます
アドバイスありがとうございました
136 :
デフォルトの名無しさん:2010/02/14(日) 04:21:42
失礼します。
抽象的な質問で申し訳無いのですが、BCB6と2009や2010の互換性ってどのくらいあるのでしょうか?
BCB6で作成したソフトをいじろうと思っているのですが、BCB6の購入は難しいようなので、2010を購入するか悩んでいます。
Unicodeになるなど、100%はありえないのはわかっていますが、コンポーネントの動作等はある程度使える物なのでしょうか?
よろしくお願いします。
ある程度使える
共通の部分だけ使えば互換性は確保出来る
きっとそのうち萎えると予想
BCB2010でウェブブラウザ作りたいんですが
TWebBrowserとTCppWebBrowserの違いが分かりません
後者の方はヘルプにも何もでてないし
エンバカデロのサイトを検索しても何もヒットしません
TCppWebBrowserはもう使うなということでしょうか?
先週末からAboutDelphi の過去ログ検索のリンクが死んでるんですけど
消息とか代替とかご存じの方おられませんか?
Delphi-MLか公式フォーラムか、武内さんが見てそうなところで聞くのが吉かと。
単にサーバが落ちてて気がついていないだけでは?
141 :
デフォルトの名無しさん:2010/02/16(火) 14:45:47
2010って64ビットに対応してるか?
してない
64bit正式対応は2011からだぞなもし
143 :
デフォルトの名無しさん:2010/02/16(火) 15:31:58
まじですか
2011ていつでるんだい?
今年6〜7月頃じゃねーの?
145 :
デフォルトの名無しさん:2010/02/16(火) 15:57:28
あ、今年ですか
んじゃそれまで待ってみようかな
ありがとうブタ君
146 :
デフォルトの名無しさん:2010/02/16(火) 16:02:45
2011はLinux対応 その後改善を2012でやって 64はその後の2013の筈
147 :
デフォルトの名無しさん:2010/02/16(火) 16:04:05
不完全なくりっくす復活されてもなぁ。
148 :
デフォルトの名無しさん:2010/02/16(火) 16:09:20
TRichEditで文字属性ごと他のTRichEditにコピーする方法を教えてください
>>136 2007はまだ買えるよ。BCB6はVistaで起動しなかったので慌てて2007にしてコンパイルし直したけど,
比較的苦労せずに済んだ。ただ,いつものことながら2007はパッチ当てないと使い物にならない。
パッチ当てても,時々不可解なことが起こる。何も悪いことしてないのにアプリをExitするとアクセス違反
で落ちたり,アプリケーションアイコンが消えたり...
何とか逃げ道を探して使ってるけどね。
150 :
136:2010/02/17(水) 00:59:21
>>137 >>149 ありがとうございます。
普通に想定できる範囲での修正でなんとか出来そうですね。
どうせコンパイルし直すなら、最新にしようかなと。
>>149 Unicodeコンポでつまずいたり、吸収するライブラリとか作ったりされましたか?
これから同じ状況を迎えるのでw
153 :
デフォルトの名無しさん:2010/02/18(木) 15:30:43
TRichEditにAddするとキャレットが消えるんだけど
これを表示される方法を教えてください
154 :
デフォルトの名無しさん:2010/02/18(木) 15:33:52
ちなみにShowCaret( RichEdit->Handle );じゃ表示されませんですた
TListBoxで選択が変わったことを検出したいのですが、
TForm1::TForm1(TComponent* Owner)
{
ListBox1->WindowProc = MyWindowProc;
}
void __fastcall TForm1::MyWindowProc(TMessage &Message)
{
if (Message.Msg == WM_COMMAND) { // 0
if (Message.WParamHi == LBN_SELCHANGE) { // 1
return; // 2
}
}
}
としてみたのですが0の部分までは描画要求などで頻繁によばれますが
セルをクリックして選択を変えたときにはMyWindowProc自体が呼ばれません
(1ではなくて0の部分もよばれない)
なにがいけないんでしょうか?
156 :
155:2010/02/19(金) 19:48:48
理由がわかりました
TListBoxはWM_COMMANDを送らないんですね
どうしてもとりたければ派生クラス自分で作れってことですね
>>155 矢印キーによる選択でも、OnClickイベントが発生するけど
解決できない処理なのか
すでに選択されていたものが再びクリックされたのか
選択されていなかったものが新たにクリックされたのか
で処理を切り分けたいんです
>>158 フラグ用の変数を用意して、現在選択している項目と同じ項目を再度クリックされたかを判定する事になると思う。
ListBox->Tagプロパティを使ってなければ、これを使うとお手軽。
別の意味で、1度選択された項目は2度と処理したくない場合は
ListBox->Itemsを使うのはどうか?
Itemsの正体はTStringListである
TStringListは文字列とセットでポインターを1つ保持できる
これがListBox->Items->Objects[index] である
このポインターを収めるところをフラグに使う
NULLはゼロ。NULL以外はアドレスで、アドレスは数値。
だから数値を1個保存すると、NULLと区別できる
void __fastcall TForm1::ListBox1Click(TObject *Sender)
{
TListBox* ListBox = dynamic_cast<TListBox*>(Sender);
int index; AnsiString s;
if (ListBox == NULL) { return; }
index = ListBox->ItemIndex;
if (index < 0) { return; }
if (ListBox->Items->Objects[index] == NULL) {
s.printf("未処理[%d]", index);
// 処理済フラグON
ListBox->Items->Objects[index] =(TObject*) 1;
} else {
s.printf("処理炭[%d]", index);
}
Memo1->Lines->Add(s);
}
160 :
デフォルトの名無しさん:2010/02/20(土) 14:33:54
2007を使っています。
TRichEditのSelStartは全角の1バイト目を指定したら
SelLengthは自動的に2となって2バイト目を指定したらSelStartは自動で次文字の1バイト目にいってました
それが突然2ならなくなってしまいました。
どこかでプロジェクトのランタイムテーマが無効でこうなるって書いてた気がしたのですが・・・
確かにランタイムテーマのチェックを外してからおかしくなったとおもうのですが
再度これにチェックを入れてコンパイルしても以前の動作にもどってくれません・・
どうしたらもどっれくれますか?
テーマが有効だと、そうなるのですが。
無効にし、かつプロジェクトのあるディレクトリに自動生成されている .res ファイルを
削除してみてください
162 :
デフォルトの名無しさん:2010/02/20(土) 15:43:05
XPのビジュアルスタイルにするためのマニフェストファイルをリソースに埋込み
brc32でコンパイルしても、コンパイルは正常にできるんですが、スタイルが変わりません
どうしたらいいの?
163 :
デフォルトの名無しさん:2010/02/20(土) 15:45:45
>>161 できました!!!
でも・・・
res削除するとアイコンが消えて読み込みもできなくなったんですが
これアプリのアイコンはどうやってしていしたらいいでしょうか?
それともう1つ。。。
TRichEditでSelStart=0にして、SelLength=RichEdit->Lines->Text.Length();として
RichEdit->SetAttributes->Color = clRed;として
全文字を赤(色はデフォ以外ならなんでもいいみたい)にしたときに
行間がつまって表示されてしまいます。
更にこの時にSelStartとSelLength位置の色が正常に取得できなくなってしまうのですが
何が原因なのでしょうか?
これは先ほどのテーマがONでもOFFでも現象は同じでした
164 :
163:2010/02/22(月) 16:11:12
ちなみに、RichEditのフォントが変わってるような感じがします
フォントはMSゴシックを指定しているのですが
正常な時もおかしいい時もフォント名はMSゴシックだったのですが
おかしい時は文字間が詰まっています(MSPゴシックみたいな感じに)
これTRichEditのバグですか?
Variant::CreateObjectで作成したOLEオブジェクトにある
プロパティの有無を何か検出する方法は無いでしょうか?
本来NULLを返すはずのプロパティがあるのですがどうも
プロパティ名自体が無いようで例外が発生しています
例外処理でひっかけてはいるのですがデバックしている時は
毎度そこで止まるので困っています
デバッグが不便だというなら@Delphi7
例外が出る前の行にブレークポイントを仕掛けて、ブレークポイントの設定→拡張でブレークのチェックをクリア
+この後の例外を無視するにチェック
例外が出る後の行(ry
+この後の例外を処理するにチェック
167 :
165:2010/02/25(木) 08:59:24
ブレークポイントで例外を無視ってのに気が付きませんでした
これでずいぶん楽になりました、ありがとうございます
あ、そんな風に設定するんだ。
設定方法知らなかったので今まで一度も使わなかったorz
IDEとかプロジェクトの設定ダイアログで無視する例外を選んでおくのかと思ってた。
>IDEとかプロジェクトの設定ダイアログで無視する例外を選んでおくのかと思ってた。
もし適切にフィルタできるなら、ふつうはそちらを使うべきでしょう。
166 のテクニックは、特定の時だけ特定の例外を無視したいときに使います
170 :
168:2010/02/25(木) 10:50:10
いや、”特定の例外”ってソースいじる必用があるかもしれないし、例外クラス作ったりしなきゃならないので、
”特定の時だけ”のんが超便利。
なんだ。しつこいな
ブレークポイントでの操作は IDE 終了したら消えちゃうから、可能なら無視例外を登録するほうが良いでしょう。
もちろんキャッチしたい例外と区別できないと意味がないので、ソースを書き換えなければいけない場合も
あるかと思います。
そこは手間とメリットをはかることになります。
ソースを変更できない(例外クラスを変更できない)場合も多々あるのでそのばあいは
ブレークポイントによる対応と成るでしょうね
172 :
168:2010/02/25(木) 13:55:39
いや別に読み流してもらえばおk、だったんだけど。。。
173 :
デフォルトの名無しさん:2010/02/25(木) 14:29:22
TStringGridで文字列の一部を選択してるとき
TMemoのSelStartとSelLengthみたいにわかる方法を教えてください
ヒント: TInplaceEdit
175 :
デフォルトの名無しさん:2010/02/25(木) 14:59:30
StringGridからどやってTInplaceEditにアクセスすんの?
さっさと教えやがってください
176 :
デフォルトの名無しさん:2010/02/25(木) 15:14:22
できた。
TInplaceEdit *ie = dynamic_cast<TInplaceEdit *>(StringGrid->Components[0]);
確かにこれでOKだったんだけどー
これComponents[0]固定になってるけど大丈夫なの??
不安ならforで回せば?
178 :
デフォルトの名無しさん:2010/02/25(木) 17:08:05
>>177 それやってみたんですが、どうやらStringGridのあれは1つしかなかったので
[0]固定でもOKじゃね?みたいな結論になりますた。
将来的にはどうなるかわからないですがばかとりあえず今はこれで大丈夫なので^^
>>178 dynamic_cast使っているんだから戻り値がNULLだったらインデックス増やすようにすれば良いじゃん
180 :
デフォルトの名無しさん:2010/02/26(金) 10:16:56
>>179 それちがうだろ
forで回すってことはStringGridのアレカウントが1以上あるってことなんだから
NULLが返らずにTInplaceEdit以外のポインタが来るだろJK
だからインデックスをただ増やすんじゃなくてクラスをチェックせにゃいかん
そうなったら結局forでまわしてアレするのと同じ
>>180 TInplaceEditでdynamic_castしているのにTInplaceEdit *ieにTInplaceEdit以外のポインタが入ることがあるのか?
TEditとその他のコントロールがあるフォームでTEdit以外にフォーカスがある時にキーボードが押されたら
自動的にTEditにフォーカスを移動して文字を入力したいと思い、以下のようにしました。これで正常に動く
のですが、TWebBrowserにフォーカスがあってIMEがオンの時のみ、例えば「ka」を入力すると「kあ」になって
しまいます。他のコントロールの場合はちゃんと変換中の下線付きで「か」になるので悩んでいます。TWebBrowser
に対してフォーカスを離させるような何かの処理が必要なのでしょうか?一応WM_KILLFOCUSを送ってみましたが
変化はありませんでした。
void __fastcall Form1::ApplicationEventsMessage(tagMSG &Msg, bool &Handled)
{
if (Msg.message == WM_KEYDOWN) {
Handled = false;
if (!Edit1->Focused()) {
Edit1->SetFocus();
Msg.hwnd = Edit1->Handle;
}
}
}
183 :
デフォルトの名無しさん:2010/03/01(月) 09:08:30
182です
どうやらDHTMLのkeydownイベントをフックすればよさそうな気がするんですが
TWebBrowser* からどうやってそのイベントをフックすればいいのか分かりません
documentプロパティでDHTMLオブジェクトにはアクセスできそうですが
そっから先はどうやったらいいんでしょうか?
これからC++はじめようと思っているんですけど
VC++とどちらが人口が多いのでしょうか?
あと、初心者がとっつきやすいのはどちらでしょうか?
仕事じゃなくて趣味でやる程度です
>VC++とどちらが人口が多いのでしょうか?
VC++
>初心者がとっつきやすいのはどちらでしょうか?
C++Builder
C++BuilderはMSみたいに無料配布してないんですね。がっかり。
趣味で無料がいいならC#にしとけ。
VC++の無料はC++/CLIを無理矢理使わされるぞ
趣味で金出したくないなら
Qt Creator
test
192 :
デフォルトの名無しさん:2010/03/05(金) 17:27:20
TJPEGImageで1920x1080の画像をSaveToFileすると10秒くらいかかってしまうのですが・・・
これって仕方がないのでしょうか?
それと、SaveToFileをしてる間はOSごと固まってしまいます
せめて固まるのはアプリだけにしたいのですがどうしたらいいでしょうか?
圧縮前の bitmap イメージでも
1920x1080 * 4byte = 8Mbyte 程度か。
少し古い/遅い CPU を使っているとか?
OS/Driver の組み合わせだと、ディスク書き込み中に OS が反応なくなる場合があります。
もし搭載メモリに余裕があるのなら(といってもいまどき 1Gbyte 位は搭載しているだろうけど)
いったん 別のストリームへ SaveToStream で保存し、それから保存してみたら?
それでも OS が固まるなら、少し別の原因か
BCB6を使用しています。
SSDに載せ替えたので、インストールしなおしたところ、コンパイル時に必ず以下のメッセージが出て止まるようになってしまいました。
Windows - ディスクがありません
Exception Processing Message c0000013 Parameters 764cbf7c 4 764cbf7c 764cbf7c
ググっても常駐ソフトを見直せとかの情報しか無く、困っています。
使用許諾コードは取得してあります。
よろしくお願いします。
BCB2010でタイプライブラリの使い方を勉強しています
.ridlファイルで基本的な情報を設定すると
xxx_TLB.cpp と xxx_TLB.hができてひな形が作られるらしい
ということはわかったのですが
そっから先にどうすれば実際のインスタンスが作れるのかが
わかりません
どなたか基本的な使い方の手順を教えてもらえないでしょうか?
>194
c0000013で検索した結果はちゃんと見て追試してそれでも何も問題となるようなものはない、
という状況なの?
>195
コンポーネントとしてインストールしてそれをフォームに貼ればいいんじゃない?
197 :
デフォルトの名無しさん:2010/03/06(土) 16:55:48
>>193 なんとなく原因がわかりました
BitBlt等にBitmap->Canvas->Handleを渡してビットマップを作るとSaveToFile時に10秒くらいかかるようになってた
これSaveToFileで以前に保存したファイルをLoadFromFileしてからSaveToFileをすると
200msでくらいで終わってたんですが
なんでAPIでアレするとこんなに遅くなりますかね?
しかもOSごとって・・・
198 :
194:2010/03/06(土) 19:19:50
>>196 物凄く不安定で、どうしたらいいのやら・・・。
セーフモードで立ち上げた後は動いたりするのですが、しばらくするとまた同じエラーが出たりします。
そもそも環境的な説明はなしか
200 :
194:2010/03/06(土) 20:48:25
環境はXPsp3。
常駐はAntiVirとSpybotとp2proxyくらいです。
>>194 IncludeかLibのパスに存在しない場所が指定されてるんじゃない?
以前作ったプロジェクトファイルには存在した場所がSSD環境では消えているとか
そのパスがリムーバブルメディアだったら出るみたいだね
再現できた
元FDやCDのドライブ名であたってみてくれ
204 :
194:2010/03/07(日) 17:27:07
>>202-203 空のプロジェクトでは発生しなかったので、それっぽいです。
ありがとうございました。
BCBとVC++のそれぞれの最新版で比べた場合
同じようなアプリを作った場合
実行速度は変わらないでしょうか?
206 :
デフォルトの名無しさん:2010/03/08(月) 15:56:01
ずっとBCB使ってきてたんだけど
Visual Studio 2010のベータを試してみたら
ポトペタとか簡単にできてBCBとあまり変わらない
BCBの優位ってもうないんでしょうか?
207 :
999:2010/03/08(月) 16:46:57
それはC丼だろ。
Visual Studio のC++って相変わらずの原始的レベルだろ。
C丼でいいのならVisual Studio使えばイイじゃん。
>>207 .NETならば、C++でも、出来の悪いBCBっていう感じだよ
209 :
999:2010/03/08(月) 18:57:13
VC++のDialogEditorのことを言っているのかね?
DialogEditorならC++Builderとは根本的に異なる訳だが。
ちがうのかな?
C++/CLIなんて使い物にならんしな
C++/CLIって、元はmanaged C++であってポインタとか局所的にしか許さんでしょ。
だから、C++の標準STLでさえ、STL.CLIっていう特殊なライブラリが必要なんじゃね?
ましてやboostが動作するわけないし、C/C++系のライブラリ混ぜよう、とすると頓挫でしょ。
スタンスはC丼じゃんw
>>212 Managed型を使わなければSTLも普通に使えるし、
ネイティブにコンパイルしたobjや静的ライブラリもリンクできるぞっと。
ただWinFormまわりは完全に.NETの世界なので、
GUIを手軽に扱うことを目的にC++/CLIを使いたいなら
GUI記述専用の言語が別にあると思ったほうが早い。
結論:
VC++は使えねーヤシwwwww
ということはネイティブC++でポトペタしたければ
やっぱりBCBが一番って信じていいんですね
216 :
デフォルトの名無しさん:2010/03/09(火) 14:58:16
Windows7にC++Builder5をインスコしたら起動してくれないんだけど。。。
エラー内容は
'Debugger'の設定に失敗しました。
このエラーダイアログが出てOKボタンを押しても起動が途中で止まっていて
強制終了するしかないのですが、
これどうしたらちゃんと設定できますか?
互換モードを設定したら?
7は64?
BCB(2010)で文字列リテラルのコードページをUTF8にする方法はないでしょうか?
例えば char* p = "あ"; とするとpにはシフトJISのコードが入り
wchar_t* wp = L"あ";とするとwpにはUCS2のユニコードが入ります
後者の方は当然だと思いますが、前者の方はソースコードをUTF8で保存しても
強制的にシフトJISにされてしまいます。他のコンパイラで使っていたUTF8の
コードをコンパイルしたら出力が文字化してしまって困っています。
220 :
219:2010/03/10(水) 14:40:51
プロジェクトオプションの
C++コンパイラ→拡張でコードページが指定できるのですね
しかしこれだと全部のソースコードの一括指定みたいです
ソースコードごとに指定するのは無理なんでしょうか?
ファイルごとにローカルオプションが指定できるよ。
またはソースごとに
#pragma option -CP65001
を指定かな。
ソースコードのエンコーディングと
char 型のエンコーディングは独立することが C/C++ 言語規格で規定されているので、
まぁしょうがないね。
223 :
219:2010/03/10(水) 17:10:40
>>221 ありがとうございました
#pragma option -CP65001
でうまくいきました
>>216 Windows7 professional 32bitにBCB6だけど、Windows2000互換モードで動いてる
参考までに。
225 :
デフォルトの名無しさん:2010/03/10(水) 18:55:40
2010のTo-Doリスト初めて使ったんだけど、
項目を追加しても、リストに反映されなくて、「完了した項目を表示」のチェックをON/OFFすると
表示が更新される
To-Doリストちゃんと使えてる?
TDBGridでスクロールするとデフォルトではカレントレコードも同時にスクロールしますが
これをカレントレコードはそのままにしておく方法はあるでしょうか?
227 :
デフォルトの名無しさん:2010/03/15(月) 09:44:28
ppp
228 :
デフォルトの名無しさん:2010/03/15(月) 17:22:05
当時BCB6への移行を見送ってしまい2005移行への移行に躊躇したために
未だにBCB5を使っていたのですがunicodeへの対応が必須になり移行を考えています
質問なのですが現時点で購入するとすればC++Builder2010がベストなのでしょうか?
またProfessional版の場合にはVCLのソースが付属するのでしょうか?
>228
C++Builderなら2010だな。当然VCLのソースもついてる。ただしdbExpress/DataSnapは
Pro版ではネットワーク上にデータを流してはいけないというEULA上の制約があるので気をつけて。
VCL/ANSIとVCL/UNICODEを吸収してくれる良いクラスは無いでつか?
BCB6でも2010でも両方ともコンパイルできるようにしておきたい。
231 :
228:2010/03/16(火) 11:58:38
>>229 情報ありがとう御座います、購入の方を進めてみます
長らく移行出来なかった理由の一つにLightReport2で複雑な帳票を作っていることもあるのですが
LightReport2をC++Builder2009又は2010で使用されている方はおられるでしょうか?
他言語文字がうまく印刷出来るのかどうかを知りたいです
>230
それがライブラリなら頑張って#ifdefで共通ソース化する。そうではなくアプリケーションなら
ソースの共通化はすっぱりあきらめる。人間諦めが肝心。
コンポーネントや RTL の文字列エンコーディングを変える訳では無いので
ソースコードの共通化にはあまり向かない。
けれど、かなり特殊なことをしない限りは、シングルソースで対応できるのでまずは移植してみたら?
と書いていて、ここは CBuilder であることに気づいたよ。
tchar の問題とかあるからなぁ。
まず、手持ちのコードを _TCHAR 使うように書き換えて ANSI のままでデバッグ。
wchar_t や tcsXXXX 関数は CBuilder だと大昔からある。
C++ で書いたコンポーネントなの?
235 :
デフォルトの名無しさん:2010/03/24(水) 10:57:05
PopupMenuのMenuItemのClickイベントでMenuItemからPopupMenuを識別する方法を教えてください
236 :
デフォルトの名無しさん:2010/03/24(水) 11:00:49
GetParentMenuで取れた
おまえらほんと役にたたねーゴミだなw
237 :
デフォルトの名無しさん:2010/03/29(月) 15:29:14
TLabelのCaptionは\nで改行できますが
TPanelのCaptionはどうやったら改行できますか?
複数行は自前で描画する必要がある。DrawTextなので本来#13#10で改行して
描画されているのだが、高さ方向が常に1行分しか確保されていないので。
239 :
デフォルトの名無しさん:2010/04/01(木) 16:21:39
教えてください。
AnsiString FileName = ExtractFilePath( Application->ExeName ) + "hoge.mdb";
Variant cat = Variant::CreateObject("ADOX.Catalog");
cat.Exec(Function("Create")<<"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + FileName + ";");
上記のコードはC++Builder5なら問題なく動作して正常にmdbファイルが作成されるのですが
C++Builder2007で行うとcat.Execで例外が発生してしまいます。。。
両方同じPCでコンパイルしてるのでOSの問題ではないとおもいます。
2007ではどうしたら正常に動作させることができますか?
240 :
デフォルトの名無しさん:2010/04/02(金) 11:59:12
TStringGridで入力可にしてる時にセルを選択したらそのセルの文字列が
全部選択状態になっているのですが、これを選択状態にしない方法を教えてください
241 :
デフォルトの名無しさん:2010/04/02(金) 16:55:56
タイムゾーンの取得する方法を教えてください
なんつーか、回答する気も起こらないつまらん質問ってあるよね。
回答する気にならないのなら、黙っていなさい。無理にコメントを書くことは無い。
245 :
243:2010/04/03(土) 16:25:18
俺は神様だ
俺の言う事には必ず従え
246 :
デフォルトの名無しさん:2010/04/08(木) 18:16:46
TDateTimePickerで▼を押されたときに出てくるカレンダーのマウスカーソルを変える方法を教えてください。
DateTimePicker->Cursor =crCross;
だとコンボボックスしか変更されなかったので・・
247 :
デフォルトの名無しさん:2010/04/14(水) 20:36:41
p
248 :
デフォルトの名無しさん:2010/04/14(水) 20:38:17
C++Builder2007でTRichEditで特殊記号("§"等 )を追加すると
行挿入エラーが出るバグがあるのですが
これを回避する方法を教えてください
249 :
デフォルトの名無しさん:2010/04/19(月) 09:45:37
p
250 :
デフォルトの名無しさん:2010/04/19(月) 10:37:43
TUdpSocketで送信はできるのですが受信ができません。
どうしたら受信できますか??
252 :
250:2010/04/19(月) 15:45:25
いやそれは見たんですけど、イベントは必要ありません。
ただ受信さえできばいいんですが、
BytesReceivedやselectしても全然きてないんです
ひとつは、送信と受信でポートが一致しているか確認する
もうひとつは、ファイアウォールなどでブロックされてないか調べる
254 :
250:2010/04/19(月) 18:27:34
他よろしく
NICのジャンボフレームの設定が双方で食い違ってないか確認する
ていうか、「送信が出来た」のはどうやって確認したんだ?
257 :
250:2010/04/19(月) 19:38:51
相手PCにターミナルソフトで受けたんだ
んで、逆にそのターミナルソフトから送信してやっても受信できない
ちなみにC++Builder2007
ごちゃごちゃほざいてないで、お前等もTUdpSocketで受信を試してみろ
おもしろい奴だな
Wiresharkで確認すれ。
C++Builder5のNMUDPでなら受信できたよ
261 :
250:2010/04/20(火) 11:36:58
>>260 まじですか
とりあえず2007はバグって受信すらできないので
俺もBuilder5のNMUDPでやってみたんですが、やっぱ送信できても受信ができなかった。
チラっとコード教えて。
ちなみにWindowsのFWはOFFってるしPFWも入れてない。
262 :
260:2010/04/20(火) 11:58:58
こんな感じで
void __fastcall TADataModule::NMUDP1DataReceived(TComponent *Sender, int NumberBytes, AnsiString FromIP, int Port)
{
scoped_array<char> buf(new char[NumberBytes+1]);
int s = 0;
TNMUDP& aNMUDP = dynamic_cast<TNMUDP&>(*Sender);
aNMUDP.ReadBuffer(buf.get(), NumberBytes+1, s);
buf[s] = 0;
// ...
}
263 :
250:2010/04/20(火) 12:52:21
>>262 あ、どうもありがとう。
むしろ、それ以前にDataReceivedイベントが入らないので
その前のポート設定とかを教えてくださ。
これってbindしなくても勝手に受信できる状態になってるんですかね?
264 :
260:2010/04/20(火) 13:11:15
TADataModuleのコンストラクタで LocalPort にポート番号設定
ReportLevel は 1 にしてる
それだけだよ
265 :
250:2010/04/20(火) 13:27:32
>>264 あ、ありがとうありがとう。でけますた。
RemotePortとLocalPortの設定が逆でした馬鹿でした俺はゴミです。
2007のTUdpSocketもそれがアレで受信できなかったのかなあ
とりあえず試してみまふ
266 :
250:2010/04/20(火) 13:37:01
う〜ん、やっぱ2007はダメかあ。
2007でもLocalPortとRemotePortを逆にしてやってみたりはしてたんだが
こっちの場合はRemotePortに目的のポート番号を指定しないと出力もできなくなる
だから5のNMUDPでもRemotePortに指定してたんですが・・・
ちなみに、俺は昨日から何をほざいてるかと言うと、
最初はWinsocket APIでUDPで通信していて、相手から受信してから
返答を返す時に、相手が受け取ってくれない(SNMPのアレ)
勿論こっちはちゃんと返答を返しているのはターミナルソフトやWiresharkで確認済み。
んで、WiresharkでよくよくみるとSrcポートとDstポートがどうも逆っぽいみたいな
Winsocket APIでこれを逆にできれば一番いいのだが、調べたがやり方がわからない
そこでVBのうんこコンポで試してみたらLocalPortとRemotePortがあったので
それでアレしてみたら見事にちゃんとなってくれたので
それならBuilderのコンポでやってみるかってことで、
267 :
250:2010/04/20(火) 13:55:15
あ、ちなみなんだこれNMUDP
これ送信するときはLocalPort=0、RemotePort=目的ポート番号で
受信するときはLocalPort=目的ポート番号、RemotePort=0
じゃないとダメなのかこれ
つーことはこれって送信と受信したいなら2つNMUDPを使えってことか!!
なんじゃこの糞仕様はw
268 :
250:2010/04/20(火) 14:05:36
あ、違った。
送受信するならLocalPorとRemotePortにポート番号をぶち込めってことだったぽ。。
いろいろすまんこったい
269 :
250:2010/04/20(火) 14:09:05
あ、ダメだ。
LocalとRemoteポートを同じにしたら結局APIでやてtるのと同じだこれ。
うんこしてくる
>>267 ひとつで送受信は一応できると思う。
LocalPort : 待ち受けポート番号
RemotePort: 送信先ポート番号
っていうことで、送信元ポート番号や受信元ポート番号を
指定できない糞仕様だったと思う。
271 :
250:2010/04/20(火) 15:13:44
>>270 VBのアレが同じLocalPort、RemotePortって名前で
向こうはしっかりとSrcポートとDstポートがアレできてたから
こっちもてっきり出来ると思っていたんですが、どうやらうんこだったようで・・・
272 :
260:2010/04/20(火) 15:25:32
ついでにNMUDPはbroadcastもできないよ
なのでググりながらwinsock使ったことあるけど
難しくはないと思うよ
273 :
250:2010/04/20(火) 15:30:37
>>272 ええええ!!
winsockでは普通に送受信はしてたんですがー
それでSrcポートとDstポートって制御できましたか??
その辺を是非教えて頂きたいです
マイナー製品使うと、クソ品質、クソ仕様だらけで、結局そういうクソな部分の
解決なり時間費やすはめになる。
>>274 マイナーかどうかは余り関係がないと思う。
それを補って余りあると考えている人間が使っているのだから
以下略
276 :
デフォルトの名無しさん:2010/04/26(月) 10:53:03
Builder2007で
ListView1->SortType = stData;
ってすると、stDataが曖昧だってコンパイルエラーがでます。
これどうやってキャストしたら馬鹿な2007は納得してくれますか?
namespace::
278 :
デフォルトの名無しさん:2010/04/26(月) 11:01:57
>>277 今度は馬鹿な僕が理解できませんでした。
それでキャストしたらエラーでましたが、どやって記述しますか?
いやマジでC++の入門書くらい読んだ方が良いって。
今回の件に関してだけなら
stDataが定義されているComctrls::stDataとかで足りるかもしれないけどな。
280 :
デフォルトの名無しさん:2010/04/26(月) 11:13:18
C++の入門書にComctrls::って載ってる?
まあお前が答えるより先に解決したから礼なんて言わないし役立たずとかしおもってないし
おまえのヘルプには載ってないのか。
ホント、バカは何をやってもバカなんだな。
282 :
デフォルトの名無しさん:2010/04/26(月) 11:35:33
ん?
このスレのタイトルは
くだすれC++Builder(超初心者用)その4
くだすれC++Builder(超初心者用)その4
くだすれC++Builder(超初心者用)その4
くだすれC++Builder(超初心者用)その4
くだすれC++Builder(超初心者用)その4
くだすれC++Builder(超初心者用)その4
くだすれC++Builder(超初心者用)その4
くだすれC++Builder(超初心者用)その4
くだすれC++Builder(超初心者用)その4
くだすれC++Builder(超初心者用)その4
くだすれC++Builder(超初心者用)その4
くだすれC++Builder(超初心者用)その4
くだすれC++Builder(超初心者用)その4
くだすれC++Builder(超初心者用)その4
くだすれC++Builder(超初心者用)その4
くだすれC++Builder(超初心者用)その4
くだすれC++Builder(超初心者用)その4
くだすれC++Builder(超初心者用)その4
くだすれC++Builder(超初心者用)その4
くだすれC++Builder(超初心者用)その4
くだすれC++Builder(超初心者用)その4
くだすれC++Builder(超初心者用)その4
くだすれC++Builder(超初心者用)その4
くだすれC++Builder(超初心者用)その4
くだすれC++Builder(超初心者用)その4
>このスレッドは、他のスレッドでは書き込めない超低レベル、
>もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
>C++Builder使いが優しくコメントを返しますが、
>お礼はC++Builderの布教と初心者の救済をお願いします。
285 :
デフォルトの名無しさん:2010/04/28(水) 11:08:33
質問ですが。。。
Builder2007では↓のような関数を呼ぶときに
void hoge( const char *buff )
{
}
↓のコードでよかったのですが
hoge( Edit1->Text.c_str( ) );
Builder2010で同じコードだと
E2034 'wchar_t *' 型は 'const char *' 型に変換できない
ってエラーがでます・・・
これどうやってキャストしたらいいですか?
286 :
デフォルトの名無しさん:2010/04/28(水) 11:13:46
AnsiStringでキャストしたらできました・・・
けどこれって全部AnsiStringでキャストしないとダメですかね。。。
はぁ・・・何この糞仕様・・・
287 :
デフォルトの名無しさん:2010/04/28(水) 11:27:20
っていうか・・・・
2007で作ったのを2010でコンパイルすると
2010で作ったexeは2007のよりサイズが倍になってるんだが・・・
これ以前にBuilder5で同じバグがあってアップデートで多少小さくなったんですが
これ2010もひょっとして同じバグ?
それとも単純に無駄な機能が増えまくってexeが肥大化しただけですか?
うーむどっちみち気持ちいいものではないなあ。
2010はUnicode対応になってるので、その分ライブラリが肥大してると
思われる
吐いたコードを逆アセンブルで見てみな
289 :
デフォルトの名無しさん:2010/04/28(水) 11:58:02
うるせえこのぶたやろう
やめんか豚ども
とんかつウマー
293 :
デフォルトの名無しさん:2010/04/28(水) 16:08:51
どたどうしなかよくしようぜぶた
294 :
デフォルトの名無しさん:2010/04/28(水) 18:11:44
なんで、超初心者用スレが荒れているんだ。
超初心者用でない質問スレがなくて、ここが超初心者用だと認識していなかった阿呆のせいか?
>285
2010ではString=UnicodeString(UTF-16)となった。hogeがconst char *をパラメータで
受け取る仕様とは食い違いがある。Stringを一旦ANSI(Shift_JIS)に変換してから受け取るか、
const wchar_t *を受け取るように変えるか、どっちかが必要。
>287
2010の新機能である属性(Attribute)の影響かと。
296 :
デフォルトの名無しさん:2010/04/30(金) 14:10:19
すんません
wchar_t filename[256];
::lstrcpy( filename, ExtractFilePath( Application->ExeName ).c_str( ) );
普通にコピーしたいんですがエラー出ます
これwchar用の関数かなにかあるんですか?
lstrcpy は Windows Kernel API だから lstrcpyW があるな。
lstrcpy が lstrcpyA にマッピングされている。ということは
UNICODE モードでコンパイルされていないようだから、
よい機会なのでアプリケーション全体を UNICODE モードでコンパイルしてみたら?
ANSI 規格準拠で書きたければ wcscpy で。
C/C++ 言語は10年以上まえから UNICODE サポートを行っているので、必要なものは
そろっていると思ってよいですよ
298 :
デフォルトの名無しさん:2010/04/30(金) 15:47:57
>>297 ありがとうございます。
この機会にアレするとして今後の事を考えると
どういう書き方がいいですかね?
プロジェクトの設定ダイアログに
「TCHAR を wchar_t にする」みたいなオプションがあるから
それを有効に。
これで Windows API と関連する部分が UNICODE に切り替わるので
コンパイルエラーが出てきたところを _T 系マクロでラップ。
T マクロを使う分には、ANSI/WIDE 両方で動くコードを作れる「はず」なので
「WIDE モードでエラーをつぶす」
「ANSI に戻して動作チェック」
「WIDE にして動作チェック」
を繰り返す。
最終的に ANSI/WIDE 両方で動く(C/C++)コードができて
WIDE モードでコンパイルすれば UNICODE-VCL との親和性も高くなる。
というところ。
300 :
デフォルトの名無しさん:2010/04/30(金) 16:24:31
>>299 あ、プロジェクトオプションのそれをアレしたら普通にlstrcpyでもコンパイル通った。
基本的にTCHARの設定はアレしないほうがいいんですかね?
これから新たに作るとかのときは
なぜコンパイルが通ったかを理解していないと、ちょっと危ないかも。
lstrcpy (を含む Windows API で、文字を扱うもの)は、
lstrcpyA と lstrcpyW が実体として定義、提供されていて、
Windows.H とその配下がマクロ(単純な #define)で plain な lstrcpy にマップしているのです。
296 で提示されているコードでは wchar_t (と c_str())を直に使っているので、
WIDE 版の API である lstrcpyW を明示的に呼ぶほうが素直かも知れません。
ここら辺は各自の判断でよいかと。
302 :
デフォルトの名無しさん:2010/04/30(金) 16:52:31
>>301 色々とありがとうございます。
ちょっとwchar_t等の知識が乏しいのでまずはその辺を勉強してみます。
ご教授ありがとう。
「TCHARの設定」は、影響範囲とかがわからない場合には、むやみに変更しないほうがよいでしょう。
以下のコードなら、ANSI でも WIDE でも動きますよ。
TCHAR filename[256];
_tcscpy( filename, ExtractFilePath( Application->ExeName ).t_str( ) );
おっと、<tchar.h> を追加するのを忘れずに
305 :
デフォルトの名無しさん:2010/04/30(金) 17:28:33
>>303-304 確かにそれでコンパイル通りましたが・・・
filenameの中身をみてみると??になってました・・・
ちなみにTCHARって1バイトなんですねこれ。
306 :
デフォルトの名無しさん:2010/04/30(金) 17:36:38
CBuilder5では以下のコードはOKでちゃんとmdbファイルが作成されるのですが
CBuilder2010でやるとコンパイルエラーはでないのですが、実行するとアクセス違反エラーが出ます。
Variant cat = Variant::CreateObject("ADOX.Catalog");
cat.Exec(Function("Create") << "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\\test.mdb");
これ、どうしたら正常にmdbファイルを作成することができますか?
>実行するとアクセス違反エラーが出ます。
どこで?
308 :
219:2010/05/01(土) 09:06:17
HTMLの特殊記号をUnicodeに変換(&を&に変換する)してくれるような
機能はVCLにありますか?
>>305 TCHARはマクロ
#ifdef UNICODE
typedef wchar_t TCHAR;
#else
typedef char TCHAR;
#endif
311 :
デフォルトの名無しさん:2010/05/04(火) 11:50:15
初心者ですお勧め参考書教えてください
TRegistryのWriteDateTimeとWriteTimeって同じ動作をするような気がするんですが...
WriteTimeにしたからといって引数の日付値が消えるわけではないんでしょうか?
>>311 プログラミング初心者かC++初心者かC++Builder初心者かで違う。
前ふたつはできて、C++Builder初心者ならDelphiの参考書とマニュアルのC++拡張見れば十分。
C++Builder使ってる参考書ってあんの?
>312
WriteDateTimeとWriteDate/WriteTimeは同一の動作。つまり
> WriteTimeにしたからといって引数の日付値が消えるわけではない
で正解。
317 :
デフォルトの名無しさん:2010/05/07(金) 20:33:39
p
318 :
デフォルトの名無しさん:2010/05/07(金) 20:34:21
>>307 やっとあくきんがとけた
cat.Execの行でエラーでます。
これ何とかなる方法はありますか?
アクセス違反エラーを出しているモジュールを知りたかったので、
表示されているアドレス等、一式が欲しかったんだな。
多くのダイアログは、Ctrl-C でテキスト部分がコピーできるので、
気楽に保存できるよ
320 :
デフォルトの名無しさん:2010/05/10(月) 12:22:32
>>319 エラーはEAccessViolationって書いてあるダイアログが出るだけです・・・
321 :
デフォルトの名無しさん:2010/05/11(火) 11:07:17
C++Builder2007か2010でODBCを経由せずに直接DBアクセスする方法教えてください。
あ、DBはアクセスのmdbでいいです。
ADOならいいのか
dbgo とか ADOTable とか使ってみたら > 321
324 :
デフォルトの名無しさん:2010/05/12(水) 09:49:17
ppp
325 :
デフォルトの名無しさん:2010/05/12(水) 10:59:49
mdbファイル操作について質問ですが
Variant::CreateObject("ADOX.Catalog");を利用して
フィールドの型とサイズを取得する方法を教えてください
TMaskEdit の EditMask プロパティを実行時に変更すると
スタックオーバーフローとか例外を吐かれたので解決方法調べてたんだが
AutoSelect = false にすると収まったんで、とりあえずここにチラ裏していく。
ブレークポイント&ステップ実行使うと再現しなくなる例外でしたよ
for col in rs.Fields:
col.name, col.type, col.size
そんなバグだらけな製品よく使う気になるよな。
329 :
デフォルトの名無しさん:2010/05/12(水) 21:32:42
VCやGCCよりは遥かに少ないけどな
2011が出る前に2010買っておいた方がいいのかな
331 :
デフォルトの名無しさん:2010/05/13(木) 15:33:35
64bit対応版が安定するまでは6Pro使い続ける
bcb2007使用しています。
Memo1にAnsiStringに貯めこんだ改行含みの文字列を表示させて計算結果を表示しています。
数が多くなると処理が遅くなっています。高速化の定石があれば教えてください。
Ansi
enter押したら投稿してしまいました。
bcb2007使用しています。
Memo1にAnsiStringに貯めこんだ改行含みの文字列を表示させて計算結果を表示しています。
数が多くなると処理が遅くなっています。高速化の定石があれば教えてください。
AnsiString s="";
for(){
…
s+=文字
}
…
for(){
…
s+=文字
}
…
for(){
s+=文字
…
}
Memo1->Text=str;
このような形です。
Memoにはこだわっていません。sのサイズがわからないので、
とりあえず、AnsiStringを使っています。
よい文字格納変数型とよい表示コンポーネントはあるでしょうか?
335 :
デフォルトの名無しさん:2010/05/14(金) 16:26:25
IdUDPServerでいいからsrcポートとdstポートを逆にして送信する方法教えてよ
>>334 std::string str;
str.reserve(64*1024);
...
Memo1->Text = str.c_str();
でどうかね。
ああそうか
C++BuilderにはStringBuilderがないからか
>数が多くなると処理が遅くなっています。
どれくらいの量の文字列を扱っていますか?
文字列処理が遅いのか、描画が遅いのか。をまず分けたほうがよいですね。
Memo1->Text=str;
をコメントアウトして
あと、速度の話をするときは、ちゃんと時間を計りましょう。
LARGE_INTEGER _start, _end;
QueryPerformanceCounter(&_start);
QueryPerformanceCounter(&_end);
__int64 lap = _end.QuadPart - _start.QuadPart;
こんなんで、CPU のクロック単位の経過時間が計れます。
334です。
レスありがとうございます。
std::string str; を検討してみたいと思います。(BCBではつかえない?)
時間に関しては、文字蓄積時はあちこちなので、
時間がはかりづらいですが、
コンポーネントへの表示処理とそれまでの計算時間を
指標にして表示処理を時間的に評価してみたいと思います。
計算結果をテキストに表示する手法の常套手段が
知りたいのもありました。
なお計算は動的計画法なるもので、計算量はピンからキリまでありますので、
組み合わせが多い状態の高速化を図る予定です。
一般論として。
「速度をあげたい」と思ったら、まずそれを測定することを考えましょう。
測定するために対象を調査していく過程で、問題点そのものが分かってしまう場合があります。
定期的に速度を計測、比較することで、少なくとも、改造の結果かえって遅くなった。ということは
避けられるでしょう。
テストするときは単一データではなく、複数のデータを使うこと。テストデータの量を変えること。
10, 20, 50, 100, 200, 500.... といった (1, 2, 5) パターンがおすすめ。
時間がかかるので端折るときでも、桁が異なる複数のデータ量での計測を忘れずに。
ある程度、対象データ構造、アルゴリズムの癖が分かったら、本質的にどこまで速くなるのか。
を考えてみること。データが(毎回)ディスクから読み取られるなら、ディスクアクセス速度より
速くはできない。(キャッシュとか考えないと)
CPU のキャッシュを超える量のデータを扱うなら、メインメモリのアクセススピードを超えることはできない。
まぁ、ここら辺は厳密に計算する必要はなく、桁合わせ程度の概算で十分ですが、
原理上不可能な速度を追求して時間を浪費するのは避けたいですし、
逆に「もう一桁速くできるはずだ」となるかもしれません。
>>334 TStringStreamを使ってみてはどうだろうか?
TStringStream
ありがとうございます。
検討中なので結果報告できないですが、ご容赦ください
343 :
デフォルトの名無しさん:2010/05/26(水) 11:40:30
調査中ですので、あと10年ほどお待ちください。
345 :
デフォルトの名無しさん:2010/05/27(木) 11:04:13
うるせー!
346 :
デフォルトの名無しさん:2010/06/02(水) 14:01:19
HDCをTBitmapにする方法教えて
347 :
デフォルトの名無しさん:2010/06/02(水) 17:25:05
SQLConnectionでmdbファイルをアクセスする方法とかを教えてくださいよ
>346
TImagePicture.Bitmap.HandleもHDCなので、ここに向かってBitBltすればいいんじゃない?
349 :
デフォルトの名無しさん:2010/06/03(木) 09:41:54
350 :
デフォルトの名無しさん:2010/06/04(金) 15:55:05
2007でデスクトップのサイズ(横幅)を超えるフォームを作っても
実行するとデスクトップの横幅と同じサイズになってしまうのですが
これちゃんと指定したサイズになる方法を教えてください
351 :
デフォルトの名無しさん:2010/06/04(金) 18:06:02
さっさと教えやがれ
352 :
350:2010/06/04(金) 19:11:01
はよ、教えろや
役にたたん奴らばぁじゃのぉ
ウンコでも食うとれや
ウィンドウはデスクトップサイズを越えることができなかったはず。Windowsの制限。
クレームはゲイツかカトラーにどうぞ。
354 :
350:2010/06/05(土) 05:35:49
VMなんかでホスト側の解像度を超えられないのは馬鹿じゃねとかおもう
C++Builderでバージョン情報の自動更新などもない状態で全く同じファイルを
コンパイルするとその都度違うファイルが出来ますがこれは何故なんでしょうか?
インクリメンタルリンクしてるからじゃね?
フルビルドすると同じになるはず
ビルドの日付が埋め込まれるから異なるとかそんな話か?
359 :
356:2010/06/12(土) 00:56:43
ありがとうございます
インクリメンタルリンクは切ってあります
ステートファイルの作成をしないにチェックが入っていて/Gnオプションがオプションソースに書かれています
でも毎回違うファイルになってしまいます
>>358 そういうことなのでしょうか?
どこかにオプションはありますか?
>>359 プロジェクト→オプション→バージョン情報とかじゃね?
ビルドの日付を埋め込むオプションは見つからんなあ
>>360 そうですか
バージョン情報のチェックは入ってない状態です
何で微妙に違うファイルが毎回出力されるんだろう
というかこれってうちだけの現象なんでしょうか
diffってみたら?
WindowsはPEヘッダにタイムスタンプ入るから同じEXEはできない
オプションはない
それでも2バイト前後だから10バイト以上異なるならデバッグ情報ジャマイカ?
成る程そういうことでしたか
大体10バイト程度ですが近くにPE\0の文字も確認できるのでそれで間違いなさそうです
勉強になりました
どうもありがとうございます
365 :
デフォルトの名無しさん:2010/06/13(日) 16:08:55
ようやく64bitに対応したね
あとはデバッガが動けばねぇ
367 :
デフォルトの名無しさん:2010/06/13(日) 17:11:23
すみませんが、BCB6でfastmmのフルデバッグモードを使うには
どのような設定が必要かご教示お願いします。
FastMM4.pasやFastMM4BCB.cppをプロジェクトに組み込んだのですが、
終了時にメモリリークのダイアログしかでてこないので、どこでリークしているのか
良く分かりません。
C++Builder使いじゃないからよくわからんけど、プロジェクトオプションでFullDebugModeを
定義済の状態にしてFastMM関係のソースをコンパイルすればいいはず(*.objか*.dcuを
一旦削除することで)。FastMM_FullDebugMode.dllを配置するのも忘れずに。
369 :
デフォルトの名無しさん:2010/07/02(金) 20:18:11
わかりました。
BCB2010を使ってるんですが
これのSTLのfstreamって
4GB超えるファイルは扱えないんでしょうか?
ifstream in(file_path, ios::binary);
in.seekg(0, ios::end);
int64_t file_size = in.tellg();
とやると
小さなファイルでは正しくファイルサイズが返ってきますが
4GB超えるファイルを開くと file_size には0xFFFFFFFFFFFFFFFFが返ってきます
>>370 std::ifstream::tellg()はstd::pos_typeを返す
従ってstd::pos_typeの内部表現次第と言うしかない
つまり処理系依存
これを避けるのはWin32を直接触るしかなかろう
確か、stdioも同じなはず。
シーケンシャルに4G超えを読み取ることは出来る(はず)が
seekは出来ない(_lseeki64とかを使う)。
また、tellで得られる値も32bit。
VC++がそういう仕様になっているので
他の処理系もそれに合わせてるんじゃないかとも思う。
373 :
デフォルトの名無しさん:2010/08/09(月) 13:43:51
TForm::OnCloseの中で、
>delete this;
って、
アリですか?
ない
Action = caFree;
でok
>C++ のクラスで、自オブジェクトのdeleteは許可されてない
言語仕様としては許されているが、実行時に解放済みメモリポインタをアクセス、または多重解放が起きる
可能性が高い。(かつコンパイル時には発見しづらいので、デバッグしにくいバグを抱える原因となる)
Google で Delete This で探せばいくらでも資料が出てくるよ
VCL に限った話をすると、OnClose の後に、Windows OS からメッセージが飛んでくる場合があり、
予想外のことが起きる可能性が高いです。OnClose は(可視)なウィンドウ実体の、終了直前に呼ばれる物。
そのあと、いろいろ後始末をしてから、C++ ランタイムとしてのメモリ実体が削除されることになっています。
なので、直接削除は避けた方が良いですよ。
または、ちゃんと設計して見切って使うように。
ググれば良かったのねw、ton
Windows7でエアロ切らずにGDI描画を速くする方法ありませんか?
一般的にWindows 7ではエアロが有効なほうが描画が早くCPU負荷も低い。エアログラスは切ったほうが軽くなるが。
でなんだって?
どなたかアドバイスお願いします。
関数プロトタイプ宣言で以下の様に記述すると、
「エラーE2303 型名が必要」と表示されます。
第2引数のTtrackBarを削除するとエラーは出ません。
何がいけないのでしょうか?
Func( TEidt *Edit, TTrackBar *Bar, DWORD num );
環境を書き忘れました。
BCB6Pro+SP4
XP32bit
です。
TTrackBarに必要なヘッダがincludeされていない
ComCtrls.hpp だな
384 :
デフォルトの名無しさん:2010/09/06(月) 08:04:54
いまだ、C++Builder6を使っているんだけど、最新版には64ビットコンパイラは含まれてるの?
385 :
デフォルトの名無しさん:2010/09/06(月) 08:33:50
質問です。
TListViewにて
ListView1->ViewStyle=vsReport;
とし、列を複数表示します。
マウスを使って、先頭の列を他の列に移動します。
そして先頭の列の状態を取得すると
ListView1->Columns->Items[0]->Caption;
ListView1->Columns->Items[0]->Width;
ListView1->Columns->Items[0]->Alignment;
ListView1->Columns->Items[0]->ID;
ListView1->Columns->Items[0]->Index;
上記のWidthだけが、入れ替え前の列幅値となってしまいます。
他の値は、ちゃんと入れ替え後の列の値が取得できます。
マウスで列の入れ替えを実行したあとに、各列の幅を取得するにはどうしたら良いのでしょうか。
>384
まだ
Delphiは来年、C++Builderは再来年の予定
再来年って遅くね?
そうは思うけど、ロードマップとフォーラムで再来年目標(キリッって書いてたし。
だってお、バンバン
390 :
デフォルトの名無しさん:2010/09/14(火) 16:41:48
Builder2007ですがデータベースのバックアップ(MySQL)を
別サーバーに定期的に取りたくて
サーバーA(元)はSQLConnection1とSQLTable1で接続し、
サーバーB(先)はSQLConnection2とSQLTable2で接続したのですが・・・
そこからどうやって各テーブル内容をAからBに作成したらいいのですか?
ちなみにBにはデータベースはありますが、テーブルは無いので
テーブルを作成して全レコードをコピーしたいのですが・・・
デザインをC++ビルダーで作って
細かいところをVisualC++で直すとかできますか?
VCL ライブラリを MSVC ではリンクできないのでかなり大変。
くだすれに来るような人には無理。
よくある現実解は、ガワだけ CBuilder で作り実作業は VC で作った DLL に任せる。
速解ありがとうございました。
つまり処理系はDLLでもう弄くれないようにして
そいつをビルダーで呼び出すということですか
opengl使ったソフトウェアを組みたかったのですが
なかなか大変ですね。
加えて質問なのですが
現在は試用版しかないという理解でよいですか?
Turbo C++ Explorer 日本語版 というものが使えれば
DLしたかったのですが…難しそうですね
C++BuilderでOpenGLは別に問題ない組み合わせじゃまいか?
試用版しかない、という理解はそれでOK。
reg740txtは中国によくうpされてるらしいね
これからC++Builder始めます
C++Builderでのwindowsアプリケーションを始めるにあたり
2009でデバッグ時TEdit->TextとかTStringGrid->Cells[][]とかの中身見れなくなったけど
2010やXEじゃ改善されてるの?
アカデミ版で作ったソフト売っちゃいけないの?
ライセンス違反ですね。
↑あっそう?
パッケージには何も書いてないけどね
EULAに書いてあるでしょ?
C++builder触って、いろいろ講座のコピペで楽しんでますが
これって結局Win32APIのラッパーウェアってこと?
すいません、ラッパーウェアってなんですか?
VCLはWin32を適度な抽象度でラッピングしている、って意味なら、そうですね。
一般にはフレームワークって言わないか?
フォームに直接描画せず、コンポーネントのみで「□」の様な中抜きの枠を作ることは可能でしょうか。
環境はBCB6です。
可能ちゃぁ可能だが。そういうコンポーネントを作ればいいんで。ただやることは
親フォームに対するリージョンの設定ってことになると思うけど。
BCB 2010 使ってみてるんですが、TRegexp で躓いてます。
基本的な事が解って無いので
簡単な文字列検索をやってみたいんですが・・・。
Edit と Button と Memo とを貼り付けたフォームで
Button の OnClick イベントで
TRegexp ex((char *)Edit1->Text.c_str()); // キャストに問題?
pos = ex.find((char *)Memo1->Text.c_str(), &len, start); // 同じく...?
こうすると、コンパイルは通りますが、検索する文字が有るにも関わらず、
posには「-1」しか返ってきません。
どうしたら上手くいくでしょうか...。(多分、おばかな質問ですみません)
410 :
409:2010/10/21(木) 11:55:20
>>285,
>>286 を元に自己解決しました。
TRegexp が Unicode対応じゃないので、ANSIに変換すればいいんですね...。
オーバーヘッドが生じるとは思いますけど。
ファイル数が多いプロジェクトをクリーン状態からコンパイルするときに、
ソース一個ずつ順番にコンパイルしていくのが遅くて辛抱たまらんので
せっかくマルチコアCPUが普及してきてんだから .obj 作るとこくらい
並列で複数同時に実行できんかいなと考えてるんだが、なんかいい手ないか?
バッチファイル的なもんでディレクトリ下の .cpp まとめてコンパイルかけるとか
そういう形ができそうな気がしてるんだけど・・・どう?
>>408 ありがとうございます。
少し語弊があったのですが、中抜きというより、LabelやImageなどの外周に黒枠を付けた感じにしたいのですが可能でしょうか
よろしくお願いします。
それはひょっとしなくてもスプラッシュではないのか?
>412
少し語弊どころか何したいのか理解できん
>>412 俺がエスパーしてみる。
コンポーネントに枠をつけたいのね?
TLabel に枠をつけたいなら
TStaticText で代用して BorderStyle = sbsSingle とか
その他のコンポーネントなら
TPanel に BorderStyle = bsSingle と BevelOuter = bvNone を指定して
このパネルん中に TImage なり何なりおいて Align = alClient
もっと具体的にやりたいことを説明してくれんと。
枠だけのコンポーネントなら TShape てのもある
417 :
デフォルトの名無しさん:2010/10/23(土) 18:12:15
FFTWをC++ Builder 2009で使いたいのですが、うまくいきません。
http://www.fftw.org/install/windows.html 内に書かれている
implib -a fftw3-3.lib libfftw3-3.dll
で作成したlibは、BCB6.0で動作確認できました。
同様の手順をBuilder2009のimplibで試したところ、
libは作成できますが、デバッグ時に
[ILINK32エラー]Error: 未解決の外部参照'_fftw_malloc'が …\DEBUG\FILE1.OBJから参照されました
となり実行できません。
どなたか解決のヒントをいただけないでしょうか、お願いします。
418 :
デフォルトの名無しさん:2010/10/23(土) 18:14:20
FFTWをC++ Builder 2009で使いたいのですが、うまくいきません。
http://www.fftw.org/install/windows.html 内に書かれている
implib -a fftw3-3.lib libfftw3-3.dll
で作成したlibは、BCB6.0で動作確認できました。
同様の手順をBuilder2009のimplibで試したところ、
libは作成できますが、デバッグ時に
[ILINK32エラー]Error: 未解決の外部参照'_fftw_malloc'が …\DEBUG\FILE1.OBJから参照されました
となり実行できません。
どなたか解決のヒントをいただけないでしょうか、お願いします。
フローティングウィンドウ
ツールパレット
DockPane
DockWindow
とかの組み方の載っているサイトおしえてください
フォームのクラスcppを複数のcppファイルに分割できますか?
上下スクロールがめんどいので、同じクラスを分割入力
できないかと
お勧めしないけど#includeでいいんじゃね?
勝手に分けてプロジェクトに追加するだけでいいじゃん
>>418 MinGWでコンパイルしてあるじゃんこれ
基本的にexeとdllは同じコンパイラで作成した方が何かといいよ
違うと変な問題で頭を悩ます事になる
425 :
デフォルトの名無しさん:2010/10/26(火) 08:29:10
>>423 ありがとうございます。
元のソースからコンパイルして使うということでしょうか、
やってみます。
About画面を作りたいのですが、
フォームの場所に関わらずクリックを検出するにはどのようにすればよいでしょうか
OnClick
428 :
デフォルトの名無しさん:2010/11/02(火) 15:52:07
C++ Builder XE Trial版は30日を過ぎると使えなくなりますか?
はい
C++ Builder XEで
マルチコアを使ったコンパイルどうやるんですか
TEditで、任意の場所に文字列を加えるプログラムを作りたいのですが、
現在のカーソル位置を取得する関数はあるのでしょうか
* *
* + あります!
n ∧_∧ n
+ (ヨ(* ´∀`)E)
Y Y *
434 :
デフォルトの名無しさん:2010/11/16(火) 16:46:21
勿論あるよ!!
2010とXEだとあまり大きな変更はないんですかね?
XEにアップグレードするメリットってなんかありますか?
クロスプラットフォーム
64ビットアプリはまだ作れないんだよね?>XE
BCB関連では大きな変化がないよね
クロスプラットフォームとかどれくらい実用的なんだろ?
BC++で作った*.libをVC++から使いたいのですが
どうしたらよいのでしょうか?
とりあえずソースは無いです
質問です。コンボボックスにフォーカスがくると、そのコンボボックスがドロップダウン(?)して
選択できるようにするにはどうすればよいでしょうか?
よろしくおねがいいたします。
StringGridでスクロールバーをプログラムで制御したいのですが、やり方がわかりません。
どなたかよろしくお願いします。
自己解決して目的は達成出来たのでいいですw
Rowプロパティを設定すればよかったみたいデス
スレ汚しサーセンwww
超初心者ですみません。
カーネルは全てのSM、SPにほぼ同じ命令がされるんですよね?
GT200で、
__shared__ int i;
for(i=0; i<8; i++)
とした場合ループせずに終わったりはしませんか?
そんなわけないですね。失礼しました。
445 :
デフォルトの名無しさん:2010/12/01(水) 15:37:14
いえいえ^^
SpeedButtonって、押下状態のまま非活性にするのに良い方法はないでしょうか?
Down=trueのSpeedButtonのEnabledをfalseにしたら、Downがtrueなのかfalseなのかわからない表示状態になってしまうので、、、
操作は不可、でも直前の操作で押下されていたかは視覚的に確認可能っていう形にしたいです。
どなたかご教授願います。
Panelなどのコンテナ上に配置して、そのコンテナのEnabledをFalseにする。
解決方法としては微妙だが。
448 :
446:2010/12/03(金) 23:59:27
おぉ、それでもいけるのですね!
対応策の候補として覚えておきます。
ありがとうございます。
ただ、ボタンの数が非常に多いので再配置が少し手間取りそうです、、、
現在SpeedButtonはOnClickで全て共通の関数を呼んでるので
そこに組み込むような形が理想なのですが、コードのみでの実現は難しいでしょうか?
Panel置く
SpeedButtonを全部選択
Ctrl+x
Panelクリック
Ctrl+v
2006以降のIDEなら構造ペイン(普通左上にあるやつ)でもできるな。
ボタンを選択→パネルにドロップ
451 :
446:2010/12/05(日) 06:40:44
質問です。
パスで指定したファイルをエクスプローラから開くにはどうすればよいでしょうか。
(画像を開く場合、標準のビューアが開くといった感じです)
MDIの子ウィンドウを非表示にするにはどうすればよいでしょうか
WinXP BCB6.0です
>454
MDIの子ウィンドウは存在している限り表示されます。これはWindows側の制限によるものです。
456 :
デフォルトの名無しさん:2010/12/22(水) 12:26:39
DrawGrid(StringGrid)のグリッドラインの色ってシルバー?固定ですが
このグリッドラインの色を変更する方法を教えてください
>>455 ありがとうございます。
もう一つ質問お願いしたいのですが、開発環境によってはMDIの子非表示は可能でしょうか。
VB製のソフトで非表示が実現できているものがあったので気になりました
458 :
455:2010/12/24(金) 00:35:07
>456
固定みたい。Grid.pasをプロジェクトと同じ場所において改変するか、有償のコンポーネントを
買ってくる。
>457
いやだからできないって。単に一旦破棄→非表示に見えるってだけじゃないの?Spy++か
WinSightなんかでMDIChildがhiddenになってるかを確認してみな。
TDrawGridの項目を外へドラッグしたいのですが、
dmAutomaticを入れると項目の選択が行えなくなり、
OnMouseDownに記述すると今度はドラッグ自体発生しません。
どうすれば解決できますか?
質問です。
TScrollBar以外のコントロールで、矢印ボタンが押されたことを
検知するにはどのようにすればよいでしょうか。
初歩的な質問かもしれませんが、
7セグメントを表示するプログラムの書き方ですが、
どのような仕組みなのでしょうか?
ウェブページを検索しましたが、うまくみつかりません。
462 :
デフォルトの名無しさん:2011/01/21(金) 18:46:00
ちょっと恥ずかしい質問なんだけど
これってマニュアルどこにあるの? DVDにはないみたいだけど
461です。
winアプリのフォーム上に、数値をTimerで表示するのですが、
Labelを使うのではなく、7セグメントのデジタル表示にしたいのですが、
良い手はないでしょうか?
画像を自前で用意すればいいよ
めもりーくりーなーってソフトご存知でしょうか?
ああいう感じで表示したいと思いまして。
画像を自前で用意すればいいよ
468 :
455:2011/01/21(金) 21:51:07
>464
Windowsでは表示するためにはかならず"ウィンドウ"というものが必要で、Delphi/C++Builderでは
これらはクラス的にTWinControlというものから派生している必要がある。普通のフォームもTForm1 >
TForm > TCustomForm > ... > TWinControl > ,,, TObjectという継承関係にあるので当然フォームでも
よい。もちろんTWinControlから派生したクラスを作ってもいい。いずれにせよ描画をWIndowsが要求したときは
Paintという仮想メソッドが呼び出され、さらにそこから(存在すれば)OnPaintというイベントが呼び出される。
オーバライドしたPaintにしろ、OnPaintイベント内にしろ、プロパティCanvasが描画対象のウィンドウの
DC(Device Context)をラッピングしたものなので、(T)Canvasのメソッドを使ってお絵描きをすればいい。
そのお絵描きが値に応じた7SEGのLEDっぽく見えるようになっていればいいのでは。
あるいはそういうコンポーネントを探してきてインストールすればポトペタでコーディング不要だが。
超初心者な質問なのですが、コンボボックスに入力する際に数字以外のキーを
押しても無効にしたいのですが(正確にはアルファベットと記号を除外したい)
OnKeyDownイベントのKey変数から取得する値(数値)がキーボードによって違います。
(ex:英字配列のaと109キーボードのaでは違うキーコードを返してくる)
if文でif(Key=='a')などとすれば良いのでしょうが、それだとキー配列文記述しないといけません。
出来ればif(Key >= 65 && Key <= 90)のような書き方をしたいのですが、良い方法ありませんでしょうか?
470 :
455:2011/01/22(土) 11:22:44
そういうときはOnKeyPress
VK_A以外の何が返ってくるてんだ?
具体的にどんな数字が返ってきているのか気になるな
ただ大文字のA(0x41)が帰ってくるとかじゃないよな?
あと日本語入力になっているとか。
473 :
◆.CzKQna1OU :2011/01/25(火) 17:06:25
test
474 :
デフォルトの名無しさん:2011/01/25(火) 17:32:12
毎回起動時にアップデート画面が出るんですがこれ非表示にできます?
オプションのどっかで変えられなかったっけ?
>>475 ↑設定するところが見つからなかったです
ちなみにC++Builder2010です
よくわからんがググったら
HKEY_CURRENT_USER\Software\CodeGear\BDS\7.0\AutoRun
HKEY_LOCAL_MACHINE\SOFTWARE\CodeGear\BDS\7.0\AutoRun
あたりをどうにかするといいらしい
479 :
デフォルトの名無しさん:2011/01/26(水) 15:13:04
C++Builder2010で質問
APIのGetPrivateProfileIntみたいに引数でファイル名の部分にはどやってwchar_t型の文字列を与えればいいですか?
APIを使わずにそれをwrapしてるクラスを使えばいいと思うよ
ファイル名は普通UnicodeStringに入れてると思うのでc_strで_TCHAR *になるけど
481 :
デフォルトの名無しさん:2011/01/26(水) 16:42:35
いえところがファイル名をwchar_tにjぶち込んでるんですが・・
そもそもこれが間違いですかね?
GetPrivateProfileIntW をつかえば、かならず wchar_t* として文字列へのポインタを
指定できるけど?
ファイル名をwchar_tにぶち込む
ってのの実際のコードでもだしてみそ。
せっかくC++なんだから文字列はクラスのほうを使おうよ…
>>479 もしかしてこういうこと?
Func( "文字列" ); ←TCHAR=WCHARのときコンパイルに失敗
Func( L"文字列" ); ←OK、でもTCHAR=CHARのときはエラー
Func( TEXT("文字列") ); ←TCHARの状態に関係なくOK
>>485 TCHAR=WCHARのときは、Unicode版のGetPrivateProfileIntW
TCHAR=CHARのときは、Ansi版のGetPrivateProfileIntA
が使用される。
BCB6でジャンプリストやサムネイルタブ使おうとしてWin7用のヘッダ入れようとしたら茨の道過ぎる……(´・ω・`)
C++Builder2010にVirtualTreeViewを入れたいのですけど、
何かよい方法ありませんか?
多人数接続のサーバー機能を実装したいのですが、
NMUDPとSocket(Winsock)を使った通信はそれぞれどういう違い・特徴があるのでしょうか?
NM*を使うのはもうやめて…。TCPとUDPの違いはわかってる?
まぁIndyかSynapseかIP*Works!か、実質的な選択肢はそのくらいだ。
bmpを配列で管理したいのですが、
配列にする方法はあるでしょうか?
// TBitmapオブジェクトを作成
Graphics::TBitmap *bmp = new Graphics::TBitmap [9];
bmp[4]->Assign(Image1->Picture);
Image2->Picture->Assign(bmp[4]);
delete bmp[];
vector?
std::vector<Graphics::TBitmap*>
解放を自動でやりたいなら派生クラス作って、デストラクタで各要素deleteすればいいんじゃ?
//Unit1.h
vector<Graphics::TBitmap*> BM;
//Unit1.cpp
BM.reserve( 11 );
BM[0]->Assign(Image1->Picture);
コンパイルはできましたが、読み込み違反で怒られました。
文法が・・・
reserveしただけで使えるわけないだろアホか
>>494 boost::ptr_vector使ったらうまく行くだろ
結局ImageList使いました。
プログラム固有の設定などの保存って、どんなファイル形式にするのが普通なの?
推奨のもの用意されてるのかな、TIniFileなんて今更だよねぇ
最近はxmlとかも増えたよね
レジストリ
XML
INI
どれでもお好きなのを。INIは64KB制限と普通ANSIなのに注意。
レジストリはHKCU\Softwareの下、ファイルはCSIDL_APPDATAの下に配置。
BCBだとiniはTMemIniFile使うから64KB制限関係なくね?
>>498 ImageListは全要素同サイズの縛りがあるぞ。たしか。
>>498 同サイズでした。
またたのんどきます。
>>503 "vector<Graphics::TBitmap*>" これをそのままGoogleに尋ねる
505 :
デフォルトの名無しさん:2011/02/14(月) 12:37:18
既に起動されてるスクリーンセーバーを解除する方法を教えて
mouse_eventでマウスを動かす
507 :
デフォルトの名無しさん:2011/02/14(月) 13:06:40
>>506 いやそれを真っ先にやったんですがダメでした・・
ちなみにOSはWin7です
509 :
デフォルトの名無しさん:2011/02/14(月) 19:19:29
>>508 知らないならレスしないで下さい。ウザいだけですかラ
イメージ名が.scrになってるプロセス殺せばいいじゃん
511 :
デフォルトの名無しさん:2011/02/20(日) 10:04:10.46
BCB6,winXP(32bit)で作成したアプリをwindows7の32bit/64bitで
動作させることは可能でしょうか?
XPモードを使用した場合と使用しない場合も含めて。
アプリは簡単なもので、シリアル通信用win32APIを使用したものです。
ご存知な方よろしくお願いします。
普通は動く。
513 :
デフォルトの名無しさん:2011/02/21(月) 14:47:00.44
TStringGridでスクロールバーの幅を広くする方法を教えてくだあs
Windowsの画面のデザインのスクロールバーの幅を変える
515 :
デフォルトの名無しさん:2011/02/21(月) 17:17:43.45
TStringGridでスクロールバーの幅を広くする方法を教えてくだあs
BCB2010を使ってます
エラーをthrowしたときに
catch節に来る前に外部例外でアプリが止まってしまうのですが
これを止めないでcatchするにはどうしたらいいでしょうか?
デバッグオプションで例外をIDEが拾わないように設定する
518 :
デフォルトの名無しさん:2011/02/23(水) 16:37:11.17
C++Builder2007ですが
MDI子フォームとかをを最大化したときになるアニメーションをOFFしたいのですが・・
どこ設定すればいいですか?
519 :
デフォルトの名無しさん:2011/02/23(水) 18:14:07.18
もう1つ質問
TCanvasにTextOutで縦書きする方法を教えてください
>518
Windowsの設定を変更する
>519
フォント名が@付のフォント("@MS P ゴシック"みたいなの)でOrientationを
2700(270.0deg)としてCreateFont(Indirect)し、戻値(Handle)を
Canvas.Font.Handleに代入する。あとはCanvas.TextOutするだけ。
521 :
デフォルトの名無しさん:2011/02/23(水) 21:34:59.18
>>520 あー!
やっぱ最大化とかのアニメーションはソフト側で制御できないですか・・
縦書きありがとうございますやってみます
522 :
デフォルトの名無しさん:2011/02/24(木) 10:18:01.50
MDI子フォームのタイトルバーを消す方法をおしえてください
MDIももうやめて…Microsoftが非推奨にしてから5年以上経つのに…。
CreateParamsをoverrideしてParams.StyleからWS_CAPTIONを削除すればおkみたい
524 :
デフォルトの名無しさん:2011/02/24(木) 21:44:24.22
>>523 ありがとうやってみる
っていうか、舞糞ソフトってMDI非推奨してたんだww
今度は何を推奨してるの?
SDI
526 :
デフォルトの名無しさん:2011/02/27(日) 18:30:36.78
C++Builder XEって64ビットアプリ作れる?
まだ
来年夏まで待て
528 :
デフォルトの名無しさん:2011/02/28(月) 11:08:27.08
('д`)えー
529 :
デフォルトの名無しさん:2011/03/02(水) 15:14:55.38
MDIフォームに勝手に出るスクロールバーで今どれくらいの位置に
スクロールバーがいるか知る方法を教えてください
ちなみに、MDIフォームのVertScrollBar->Positionをみてみたら0でした
縦スクロールバーが出てるときです
MDIクライアント領域はClientHandleなので、GetScrollInfoにこれを渡せばいいんじゃね?
531 :
デフォルトの名無しさん:2011/03/02(水) 15:42:23.65
どっかのサイトにVertScrollBar-ScrollPosでおk
ってかいてたけどこれ嘘だ、この嘘つきがああああああ!!
つねに0じゃねーかYO
532 :
デフォルトの名無しさん:2011/03/02(水) 15:49:59.86
::GetScrollInfo( ClientHandle, SB_VERT, &si );
コンパイル通るけど実行したらfalseが返る
ClientHandleにはとりあえず値入ってるっぽいけどなんで
>531
MDIは作りが特殊なんよ
>532
あれ、駄目かね。GetLastErrorの値は?siは
si.cbSize = sizeof(si);
si.fMask = SIF_TRACKPOS;
とかちゃんと初期化した?
534 :
デフォルトの名無しさん:2011/03/02(水) 17:13:19.11
>>533 MDIまた別でしたか、そういやサイトには普通のフォームのことかいてた
てか、すんません、初期化おもいっくそしてませんでしたやってみます
535 :
デフォルトの名無しさん:2011/03/06(日) 17:13:55.30
":"と"〜"って文字を90度回転させてTCanvasに表示したいんですが
どうやったらできますか?
Win7 C++Builder2007
縦書きなら、作業用のビットマップ作って"@MS Pゴシック"とかの縦書き用フォントで書いたのを90度回転させて表示させたいところに転送すればいいんじゃないの?
90°じゃなく270°回転したフォントを作成してそのハンドルをCanvas.Font.Handleに代入して後はTextOut
538 :
デフォルトの名無しさん:2011/03/06(日) 18:13:18.76
>>536-537 @フォントで:や〜は縦にならなかったです
それといい忘れてましたが@フォントを使わずにやりたいですが・・
とりあえずCreateFontで一応できてはいるんですが
もっと簡単な方法はないかなとおもいまして
それより簡単な方法ははっきり言ってない。
540 :
デフォルトの名無しさん:2011/03/08(火) 16:09:02.60
(´,_ゝ`)プッ
541 :
デフォルトの名無しさん:2011/03/09(水) 13:31:59.59
TStringGridのSelectCellでInvalidateしてるんだけど(DrawCelで描画もしてる)
これセル変わる度にチラつくんだけど、なんとかならないですかね?
なぜSelectCellでInvalidateしてるのかというと
非スクロール領域に現在選択行の印をDrawCelで書いてるので
これしないと再描画されなくて・・
そこで指定セルのみを再描画する方法を教えてください
OnSelectCellでInvalidateはしないのが正しい。
やりたいことは非スクロール領域のみ::InvalidateRect()で実現するのがいいかな。
543 :
デフォルトの名無しさん:2011/03/09(水) 14:08:51.66
544 :
デフォルトの名無しさん:2011/03/09(水) 14:19:28.05
Builder6で開発したExeをWindows7上で起動しています。
起動時はフォームのスタイルがWindows7ベーシック(フォームの角が丸っこいデザイン)
で表示されますが、フォームをリサイズするとWindowsクラシックの表示
(フォームの角が四角デザイン)になります。
デスクトップのテーマに沿って正しくフォームを表示するには
どうすればよいでしょうか?
manifest作って実行ファイルと同じディレクトリに置くか、リソースに埋め込む。
546 :
デフォルトの名無しさん:2011/03/09(水) 14:32:21.75
リサイズした時にフォームにスクロールバー出てない?
547 :
デフォルトの名無しさん:2011/03/09(水) 15:42:31.09
TRichEditで文字属性ごとファイルに保存する方法を教えてください
548 :
デフォルトの名無しさん:2011/03/09(水) 15:48:48.45
普通にできた
お前等ってほんと役立たずだなw
549 :
デフォルトの名無しさん:2011/03/09(水) 21:17:50.68
TRichEditで文字属性を変えた位置を次々検索する方法教えてエロい人
お前の言うとおりなんで俺で人間のクズでしょうがない人間なんだろう
551 :
デフォルトの名無しさん:2011/03/10(木) 15:37:08.75
屑はそんなこと考えても屑なんだよ
552 :
デフォルトの名無しさん:2011/03/14(月) 14:30:44.58
TBitmapにでかいサイズ(50000x120)をしていしたら1つめは正常に作成されるけど
2つめを作ろうとしてWidthかHeightに値を入れた瞬間にビットマップが不正エラーって出るんだけど
どうしたら2つめもちゃんとできますか?
553 :
デフォルトの名無しさん:2011/03/14(月) 16:07:26.64
相変わらずおせーなお前等w
もう解決しちまった
ほんと糞の役にもたたんカス共だなw
FastMM使え
556 :
デフォルトの名無しさん:2011/03/15(火) 12:02:29.55
>>555 おお、何か軽く読んだかぎりよさげっぽいなこれ
つーか、何でこういうのをデフォを実装してないんだ?
馬鹿なの?死ぬの?
557 :
555:2011/03/15(火) 14:17:33.76
2005だか2007からはFastMMの簡易版が標準だけど
558 :
デフォルトの名無しさん:2011/03/15(火) 20:05:00.33
まじか2007使ってるんだがまあいいや
それより教えてくれ
TRichEditで文字属性を読み出してる時にたまにSelAttributesが嘘を返す時があるんだが
例えば、
"00あ"
こんなのがあったときに"00"を赤、"あ"を青とか別の色にする
んでSelAttributesで読むとたまに嘘返すたまに
どうやったらこのバグ回避できる?
Unicode版delphiを使えば問題なし
560 :
デフォルトの名無しさん:2011/03/16(水) 20:05:30.79
561 :
デフォルトの名無しさん:2011/03/21(月) 14:06:50.38
TStringGridで入力時にセルを選択すると
セルのテキストが常に全選択された状態ですが
これをテキストを選択しないようにする方法を教えてください
C++Builder5
562 :
デフォルトの名無しさん:2011/03/23(水) 14:53:35.40
2007でデバッガから実行してソフトを終了したらデバッガに戻るけど
そのときにいつもレイアウトのコンボボックスのとこにカーソルが行くバグなんとかならない?
デバッガに戻ったらソースのとこにカーソルがきてほしいんだけど
BCB を使い始めて数日の初心者です。
教えてください。
BCB5 を使って古いプログラムの修正を行なっています。
プロジェクトに共通の #define の定義を行ないたいのですが、
BCB の場合はどのようにすればよいのでしょうか。
VC の場合はプロジェクトのプロパティに項目がありましたので、同様のことをしたいのです。
よろしくお願いします。
プロジェクトオプションのディレクトリ/条件で
565 :
563:2011/03/28(月) 16:49:43.16
ありがとうございました。
566 :
デフォルトの名無しさん:2011/03/29(火) 10:42:31.22
DLLとLIBに関して教えて下さい。
使用するOSによってDLLが複数用意されています。
具体的には、
\x86\a.dll
\amd64\a.dll
\ia64\a.dll
です。
この時ビルド時に使用するLIBファイルは、
どのDLLから作成すれば良いのでしょうか?
a.dllはOSによって予めインストールされているので、
ビルド時にはどれが使用されるかはわかりません。
LIBファイルはDLL内の関数一覧なのでどのDLLから作成したLIBファイルでも同じなのかな?と思っていますが、
この理解で宜しいでしょうか?
C++Builderは32bitアプリケーションしか作れないので、実行環境上がなんであれ
DLLはx86版が必要だし、インポートするべきDLLもx86のものしかありえない。
568 :
566:2011/03/29(火) 11:49:48.51
>567
有り難うございます。
BCB2010なので64bitアプリが作成可能だと思っていました。
指摘されて確認したら仰る通りで・・・
64bit環境で動作する32bitアプリなんですね。
569 :
566:2011/03/29(火) 14:44:29.56
どうも勘違いしている気がするので再度確認させてください。
Win7の64bit環境などで、\amd64\a.dll がインストールされてしまう場合、
C++Builderではこの\amd64\a.dll を操作するアプリは作成できないという事なんでしょうか?
570 :
デフォルトの名無しさん:2011/03/29(火) 15:42:55.17
うむ
システムDLLとアプリ同時配布以外のDLLはLoadLibraryで読み込んだ方が安全だよ。
64bit環境ないから検証できないけど、IA64やx64のDLLはLoadLibraryがエラー返すだろうし。
初歩的な質問かもしれませんが、教えてください。
あるサンプルソースを見ていて
char* date = ・・・
という風に、
型* 変数名
という宣言の仕方を見たのですが
これはポインタの事でよろしいのでしょうか?
型 *変数名 との違いなどあるのでしょうか?
573 :
555:2011/03/29(火) 21:10:16.01
>569
WOW環境下ではx86版が必要になる。
ソースコードレベルでは、
#pragma option -v-
とか。
既存のライブラリのコメントレコードを削除するには、
(バックアップとってから)
tlib /0 mylib.lib
とか。
>>577 レスありがとうございます。
ソースレベルでやりたいです。
BCB6なんですが、
#pragma option -v-
を指定すると
E2075 プラグマ指定の オプションの間違い:-v-
と出てコンパイル出来ませんでした。
-vxxx Turn on source debugging
の事ですよね?
>577
残念。BCB6 ではできませんね。
>578 >579
レス先間違えた。すまん。
>576
オプション --> リンカで「デバッグライブラリを使う」をoffにすれば
できたかも。
間違っていたらすみません。
582 :
デフォルトの名無しさん:2011/03/30(水) 16:35:07.54
wchar_tで半角と全角を区別する方法教えてください
(c & ~0x7f) == 0
半角カナはどうするの?
>>581 やってみましたが_list.hとか入っちゃいました。
やっぱダメなんですかね
586 :
デフォルトの名無しさん:2011/03/30(水) 17:11:21.68
>>583 そんなまぬけな回答は求めてはいません。
>>584もほざいてるけど半角カナはどうするの?
HighバイトをFFでみるんですか?w
馬鹿なの?死ぬの?
587 :
デフォルトの名無しさん:2011/03/30(水) 17:59:40.01
チッ
589 :
デフォルトの名無しさん:2011/03/31(木) 12:52:58.26
TRichEditで文字属性に影響を与えずに文字をインサートする方法教えてくださ
学校のPCでプログラミングやってて今年から自分のノートPCでもやりたいんだけど
visualstudioは並のスペックあれば動作するよね?ちょっと不安で
591 :
デフォルトの名無しさん:2011/03/31(木) 14:50:41.24
visualstudioのスレではない
visualstudioの質問をする人がスレタイにC++Builderと入ってしまっているスレで聞く意図がわからない。
まんまVisual Studioと書かれたスレタイのほうを見に行かないか?
たまたまこのスレが上に上がってたのかな?
主語を抜くからこんなことになる
子供じゃないんだから相手に伝わるように言わないと
インチキ民主の大本営発表じゃないんだから
598 :
デフォルトの名無しさん:2011/04/02(土) 21:36:03.95
>>595がすごく馬鹿だって事だけはわかった。
スレタイが読めないんだねえ。
いやまあ
>>1 だけを読めば
・超低レベルの質問を受け付ける
・BCB 使いがやさしく答える
ってことだから、
>>595 はある意味正しい。
>>591-593 はやさしくないし。w
600 :
デフォルトの名無しさん:2011/04/05(火) 14:40:47.84
>>1読む前にスレタイを読めない屑はレスするなっつー話だろJK
何でスレタイを見ずにいきなり
>>1を見るんだよwwwwwwwww
C++のオブジェクト指向って最初意味がわからなかったけど・・・
要はツール開発つうことか
602 :
デフォルトの名無しさん:2011/04/06(水) 17:46:00.26
Builder2010なんだけどさ
TQuickRepって無くなった??
ツールパレットのどこにあるか発見できないんだけど
QRはバンドルされなくなった。2007まではStd版を別途ダウンロードできるけど、2009以降は
製品版を購入する必要がある。
604 :
デフォルトの名無しさん:2011/04/07(木) 09:58:47.72
('д`)えー
馬鹿高い値段で2010買ったのに更に金取るの??
ダメじゃんこれ・・・
605 :
忍法帖【Lv=35,xxxPT】 :2011/04/07(木) 15:35:05.22
かかってこい
606 :
忍法帖【Lv=35,xxxPT】 :2011/04/07(木) 15:38:35.43
aa
607 :
忍法帖【Lv=35,xxxPT】 :2011/04/07(木) 15:38:43.79
unko
>>604 QRはもともとおまけでついてただけなんだが。ちゃんと調べて買わないのがいけないのでは?
BCB6でSubVersionを使って複数人でプログラムを作成しています。
プロジェクトの「オプションソースの変更」がBCB6を起動する度に毎回書き換わってしまうのですが回避方法はないでしょうか?
具体的には「オプションソースの変更」で表示される"Project.xml"の中の
<LIBRARIES value="..."/>
<SPARELIBS value="..."/>
の内容が私のPCにインストールされているコンポーネントライブラリが毎回登録されてしまいます。
複数人でのコーディングなので他の人は使っていないコンポーネントライブラリが登録されてしまうのでSVNコミット前に毎回削除しています。
仕様なんでしょうか?
610 :
デフォルトの名無しさん:2011/04/11(月) 12:02:53.66
早く教えて
プロジェクトをコミットしなけりゃいいじゃん
>609
仕様でしょうね。
>>612 とりあえずは解決しました。
まあ、バグなんでしょうが、「C:\Program Files\Borland\CBuilder6\Bin\default.dpr」に書いてあることと比較して無い場合は追加するようです。
とりあえずdefault.dprから削除することで対応しました。
自分で始めからプロジェクトを作成するときは自分でチェックし直せば良いのでこれでOKとします。
614 :
デフォルトの名無しさん:2011/04/13(水) 13:28:28.12
さっさとおしエロ!
615 :
デフォルトの名無しさん:2011/04/13(水) 16:15:34.34
BCB2010を使用しています。
フォームに幾つかのTABとボタンを配置しただけなんですが、
↓こんなエラーが50個程出力されます。
一度各種ソースやライブラリを追加して、このエラーが出たので全てコメントアウトしている状態です。
なにがいけないのでしょうか?
[BCC32 エラー] delayimp.h(21): E2257 , が必要
delayimp.hはインクルードしていませんし、
エンカバデロのWEBに記載のある下記関数も使用していません。
* __pfnDliNotifyHook, __pfnDliFailureHook
* __FUnloadDelayLoadedDLL
プロジェクトはほぼ空なので作り直しても良いのですが、
再発すると嫌なので原因を調べたいです。
616 :
デフォルトの名無しさん:2011/04/13(水) 17:28:02.24
プロジェクト作り直しても再発しました。
winusb.hとusb100.hをインクルードしたら現象が再発しました。
何かアドバイス頂けませんか?
宣言部分,初期化部分,または引数部分の中にカンマが付けられていません。
この問題は,ファイルの始まりの部分かインクルードされているヘッダーの 1 つに
構文要素の欠落があるときに,しばしば起きます。
619 :
デフォルトの名無しさん:2011/04/14(木) 16:03:41.21
ん?
620 :
デフォルトの名無しさん:2011/04/14(木) 18:30:19.27
なんだなんだ
BCBDXLibを使用してみたいのですが、
DXライブラリと比較してどの程度有用なのでしょうか
622 :
デフォルトの名無しさん:2011/04/20(水) 15:15:30.95
BuilderXEeでRS232Cを行う場合に使えるコンポーネントや方法を知っていたら教えてください。
今まではBuilder5を使っており、その時はTHmThreadedCommをつかっていたのですが、
BuilderXEではこのコンポーネントをインストールしようとするとエラーが出て使えません。
どなたかご教授ください。
623 :
デフォルトの名無しさん:2011/04/20(水) 15:16:38.66
素直にAPI使うのはダメなのか?
624 :
デフォルトの名無しさん:2011/04/20(水) 15:29:43.23
プログラムは専門外なのでできればAPIはさけたいんです・・・
ソースがあるんだからどうにでもなるだろ。
プログラムは専門外なのでどうにもならないです・・・
おれが3万円で請け負ってやるよ
629 :
デフォルトの名無しさん:2011/04/25(月) 15:46:47.04
2010で2007でも同じだとおもうけど
フォームのタイトルとタスクバーに表示されるタイトルを別にするにはテーマをOFFするしかないですかね?
Builder5は別に設定できたからよかったんだけどー
2010とかはプロジェクトオプションでアプリケーションタイトルを設定しても無視されてるので
所でなんで本が1冊も出てないの?
マイクロソフトの奴はいくらでも出てるのに
フォームのCaptionとタスクバーのTitleを
別々に指定しても、同じになる???
そんなことはないと思うが。
フォームのCaptionを書き換えたら動的にタスクバーのTitleも変更される
あるいは
タスクバーのTitleを書き換えたら動的にフォームのCaptionも変更される
という現象を確認したの?
632 :
デフォルトの名無しさん:2011/04/25(月) 16:52:09.57
>>631 2007か2010持ってます??
フォームってメインフォームね
メインフォームのタイトルとは別にプロジェクトオプションのタイトルに書いたものがあるんですが
起動するとメインフォームのタイトルになる
ちなみに2007以前はこんな風にならんけど、テーマをオフしたら以前みたいにできるのはわかってる。
>>631 知らねーならレスしないで下さい。ウザいだけですから。
そして誰もいなくなった。
やっぱ知らなかったんだw
>632
MainFormOnTaskBarの影響じゃね?
>630
マイクロソフトと違って持ち出しで本を出すのは難しいんじゃね?
637 :
デフォルトの名無しさん:2011/04/26(火) 11:09:05.55
TreeViewでノードの入替方法を教えてくださ
TTreeNode.MoveTo
639 :
デフォルトの名無しさん:2011/04/26(火) 13:04:25.66
>>638 おっおっおっ
TTreeNodeにあったのかー!!!
TTreeNodesを必死に探してたありがとう
640 :
デフォルトの名無しさん:2011/04/28(木) 11:28:42.18
TPopupMenuにSHGetFileInfoWで取得したイメージリストを割り付ける方法を教えてください
641 :
デフォルトの名無しさん:2011/04/28(木) 13:36:57.49
>>641 TextBox使わずにコンソールアプリケーションにするって事?
なら新規作成→その他でコンソールアプリケーションを選択すれば良い
C++Builderの64bit化はいつ頃の予定ですか?
4年くらい先
C++Builder XE
動作環境
MicrosoftR Windows 7(64 bit)
MicrosoftR Windows Vista? SP2(64 bit)
MicrosoftR Windows XP Professional(64 bit)
MicrosoftR Windows ServerR 2008(は64 bit)
は64 bit
645 は嘘つき
648 :
デフォルトの名無しさん:2011/05/10(火) 16:09:22.36
動作環境だからあってるだろ
ただ64bitアプリは作れないけどな
649 :
デフォルトの名無しさん:2011/05/10(火) 16:10:13.84
地球から木星までの平均距離は約483737473マイルである
この時の光が18600マイル進む事に注意して秒、分、時間に直して時間を求めよって問題が出た・・・
わかんねー
650 :
デフォルトの名無しさん:2011/05/10(火) 16:12:02.62
誤爆すまん
651 :
デフォルトの名無しさん:2011/05/10(火) 16:23:53.66
なんだ、C++Builder XEは64ビットで動くんだ。ならOKじゃん。
653 :
デフォルトの名無しさん:2011/05/11(水) 09:47:27.73
逆に64bitOSで動かないソフトを教えてくれよ
板違い
古いC++Builderはインストール途中で失敗するぜ。
そんな下位互換性の無い OS を使う方がわるい
>逆に64bitOSで動かないソフトを教えてくれよ
>そんな下位互換性の無い OS を使う方がわるい
658 :
デフォルトの名無しさん:2011/05/11(水) 17:40:54.43
TPopupMenuで質問
キーボードを監視して特定のキーが押されたらPopupMenuを出しているのですが
その時に、自分のソフトがアクティブならいいのですが
非アクティブの時にメニューを出すとメニューで何かを選択しないと
PopupMenuが消えなくなってしまいます。
これ何処かメニュー以外の違うとこをクリックした時にPopupMenuを消す方法を教えてください
659 :
デフォルトの名無しさん:2011/05/12(木) 10:57:22.52
ちなみにPopup前にはちゃんとSetForegroundWindowを呼んでます
AttachThreadInput
661 :
デフォルトの名無しさん:2011/05/12(木) 16:31:28.81
いや、ウィンドウは非表示にしてるんですけど
これでアクティブにしちゃったらOKなんですかね?
662 :
デフォルトの名無しさん:2011/05/12(木) 16:37:37.12
試しにやってみたらできたあああああああああああああああああああああ〜
>>660 マジですかありがとう!
663 :
デフォルトの名無しさん:2011/05/13(金) 16:56:46.57
C++Builder1でTPopupMenuにImageListを設定する方法を教えてください
C++Builder1のTPopupMenuってImagesプロパティが無いだよね。
664 :
デフォルトの名無しさん:2011/05/16(月) 15:37:31.69
早く教えてよエロい人
そんな古い環境用意できないよ…
666 :
デフォルトの名無しさん:2011/05/16(月) 22:22:26.15
そこをなんとか><
俺がC++Builderを買い始めたのはC++Builder4からなんで
Delphi 2.0相当か…多分方法はない、設定できない、が解答だと思う。
669 :
デフォルトの名無しさん:2011/05/17(火) 11:17:05.54
そうですか・・・
TPopupMenuでできなくてもAPIを使ったらできますかね?
できるならやり方教えてくださ
出来ないということはない。
自前で描画すればええやん。
ImageListの描画を自前でやれば表示できる。クソ面倒ではあるが。
BCB2010を使用しています。
PageControlのMultiLineをtrueにした場合、
TABが何行表示されているかを調べるにはどうしたら良いのでしょうか?
HELPには「行数はタブコントロールのタブ数で決まります」と書かれていますが、
これは間違っている様です。
TABに長い文字列を表示するとTABの数が同じでも行数が変わります。
アドバイス頂けると助かります。
672 :
デフォルトの名無しさん:2011/05/18(水) 14:05:47.67
C++Builder2010で質問ですが
InternetReadFileで取得したサイトがどうやらUTF-8みたいなのですが
これをシフトJISに変換する方法を教えてください
TStringListに入れてファイルに保存したら漢字が化けてたので
TCM_GETROWCOUNTかTabCtrl_GetRowCountでは?
674 :
デフォルトの名無しさん:2011/05/18(水) 14:38:40.09
ちがいますぜんぜんちがいますしんでくださいばか
675 :
デフォルトの名無しさん:2011/05/20(金) 15:28:17.40
そして誰も居なくなった
676 :
デフォルトの名無しさん:2011/05/30(月) 17:34:54.50
C++Builder5で質問
0除算エラーとか出たときにそれが何処で出たのかわかる方法を教えてください
0助産とかしてる所
678 :
デフォルトの名無しさん:2011/05/30(月) 19:04:22.84
>>677 知らないならレスしないで下さい。うざいだけです
デバッグモードでひっかからんの?
デバッガオプションのOSによる例外で処理をデバッガが受け取る、再実行時は原因の例外を再送出、
としてデバッガで例外を引っ掛ける
681 :
デフォルトの名無しさん:2011/05/31(火) 10:15:45.20
やってみますありがとう
>ID表示が無くなっただけで、
過去に IDを表示していた時期ってあったっけ?
どこかと間違えていないか?
C++Builder2007です。
データ入力後、計算結果を印刷するプログラムを考えています。
A4サイズに表・テキスト・図(線分と文字の組み合わせ)
を印刷するには、一般に(サンデープログラマとして)
どういう方法をとるのでしょうか?
ぐぐってもピンと来なくて。
imageに無理やり書いてもと。
なお、印刷枚数は複数を予定しています。
>>684 ググってねーだろ?
つか、TPrinter と、TCanvas をヘルプで見る事もせんのかね、コイツは。
くだすれだからって、酷くねーか?入門書にも載ってるだろ?
後はググれば、プリンター解像度の取得やら、設定について出てるとこも
結構有るし、コンポも有る。
まさか、表の書き方も解らない、面倒なんで楽したい?
なら、プログラミングなんてやめて、Officeでも使え。
>>685 なんかあったのか?
会社でイジメラレタ?
687 :
デフォルトの名無しさん:2011/06/02(木) 17:57:41.53
>>685 知らないならレスしないで下さい。ウザイだけです。
688 :
685:2011/06/02(木) 18:10:01.81
>>686 >>687 くだらんレスしてんなら、答えてやれば?
いくらなんでも、あれだけの情報が有れば、普通組めるだろ?
ってかさ。入門書とヘルプ見れば最低限の事は出来るだろ?
その上で、どうしたいとか改善したいってのなら、分からんでも無いが、
何でもいいから即、誰かに聞けばなんとかなるだろってのが、ちとな。
689 :
デフォルトの名無しさん:2011/06/02(木) 18:15:02.46
>>688 知らないならレスしないで下さい。ウザイだけです。
Developer Studio 2006 の無料版でプログラミングしています
Pos関数で第一引数(検索文字)を「|」にすると、なぜか全角カタカナの「ポ」が検出されてしまいます。
どうにか回避できないでしょうか?できれば検索文字は変えたくありません。
691 :
886:2011/06/02(木) 22:01:21.07
>>690 >Developer Studio 2006 の無料版
悪いが、そんなものは存在しない。割れはしね。
>>690 >できれば検索文字は変えたくありません。
面白い事言うな〜。それを本末転倒と言う。
693 :
690:2011/06/02(木) 22:51:03.63
turbo explorer とかいう無料のやつです。失礼しました。
Pos関数で区切り文字を検出してるのです
a|b|c
AnsiPos
695 :
690:2011/06/03(金) 20:41:19.30
>>694 できました!ありがとうございます
こういう情報がどっかにまとまってるといいですね
>>695 つHelp
と言いたい所だが、XE日本語オンラインヘルプなんか、Wikiになってて、こそり
参加者募集してるし。
基礎とかそうそう変わって無いんで、古いHelpの良いとこ移植すりゃい〜のに。
Turbo には既に残って無かったかな?
>こそり参加者募集
ただし英語でね。
日本語 Wiki ページは編集不可能。日本語でコメント書かれても英語に翻訳する金が無いからだそうだ。
>>697 なら日本語ページにその旨書かなきゃい〜のに。
てか、英語でも、そんなにHELP充実して無いんかいっ!
いや、そもそも日本法人は何の為に有るんだろ?
いっその事、(日本語という意味で)言語別にユーザーがWikiを
立ち上げた方が早いんじゃね?
>いや、そもそも日本法人は何の為に有るんだろ?
日本の会社や組織/団体がソフトを購入するときに必要。
見積書と領収書を出さなきゃいけないでしょ。
ここら辺が企業向けダウンロード販売を日本で展開する時に問題になる。
会社持ちのクレジットカードなんて、日本の会社では期待できないからねぇ
>>699 それだけなら、販売代理と一緒じゃん。さいてー
>販売代理と一緒
そうだよ。代理店業務と外人接待。
702 :
デフォルトの名無しさん:2011/06/07(火) 12:40:24.07
C++Builder2010でUTF8をシフトJISに変換する方法を教えてください
AnsiStringのコンストラクタに渡すだけじゃないの
WindowsのAPIでいいなら
MultiByteToWideChar(CP_UTF8, ...
でワイド文字にして
WideCharToMultiByte(932, ...
でシフトJISにするとか
705 :
デフォルトの名無しさん:2011/06/07(火) 12:55:26.50
>>703 マジですか?
やってみますよ
>>704 今はそれでやってるのですが
2010ならもっと楽な方法があるのかなとおもって聞いてみました
706 :
デフォルトの名無しさん:2011/06/07(火) 13:39:58.99
AnsiStringの変数にぶち込んだものを
TStringListのTextにぶち込んでSaveToFileしてテキストファイルで保存したものを
みてみたんですがシフトJISになってませんでした
707 :
デフォルトの名無しさん:2011/06/07(火) 13:53:01.51
ってうか普通にUtf8ToAnsiってのがあったし
これでさっくりとできましたよほんと
Utf8関連で。
質問じゃ無いけど、CB2010のIndy IdHTTP って UTF-8エンコードされたResponseヘッダを
正常に読み込めないね。
正確に言うと、Content-Disposition で返るファイル名に漢字で長いのが入ると、
エンコードの狂った文字は入るは、ヘッダはそこでブチ切れるは、とにかく酷い。
ヘッダのエンコードを変えても、どうやら、受け取ったCharsetで自前で直して
しまうらしく、効果無し。
直す方法を教えて欲しいが、なんとなく、UTF-8に正常に対応してない悪寒。
709 :
デフォルトの名無しさん:2011/06/07(火) 15:15:39.65
今更そんなこというなよ
一旦ストリームに取り込んで処理すればいいんでは
Indyに限らず、バグだらけすぎてそんな俺は結局WinINetとか使う。
というより、パフォーマンス要求しなきゃおとなしく.NETがお勧め。
信頼度がMSとエンバカじゃ違い過ぎる。
Indy はオープンソースで品質保証も無いしねぇ
713 :
デフォルトの名無しさん:2011/06/08(水) 15:01:02.06
TScrollBoxでスクロールバーが表示されてるかどうかを調べる方法を教えてください
714 :
708:2011/06/08(水) 16:11:11.08
まず、Helpから、Indyは 10.1.1 でした。
>>710 回答、ありがとうございます。
ヘッダからストリームに取込む方法は、IdHTTPでは分からなかったので、
結局、IdTCPでHTTPプロトコルを新たに書き起こしました(*Д* グハッ)
で、ググった数が多くて見落としてましたが、Content-Disposition というか、
HTTPヘッダ内にASCIIコード以外を使うのは、RFCでは許して無いそうで。
又、ブラウザと、IdTCPで受信したヘッダでの文字コードが違う事から、
漢字コードが送られるのは、ブラウザ向け仕様みたいですね。
で、IdHTTPでこれに対応するには、改造すれば良いんですが、ちょっと厄介で。
CB2010は文字列がUnicode標準なのでコンパイルし直すと、あちこちの文字コード
変換で頭爆発します・・・。
(Unicode対応コンパイラだと、代入での暗黙の変換も起きますので)
そういう訳で、HTTPクラスを書き起こし。
>>711 >>712 そういう訳でバグでは無く、RFCの仕様のためでした。
このバージョン以降、バグはかなり少なくなっており(コンパイルし直した環境で
文字コードの問題が起きるとこが有りますが)、後はドキュメントと、Helpの充実を
願うばかり。
特に、IOHandler については、ドキュメントが無いに等しい・・・。
>>712 別にクローズドソースが品質保証してるわけでもないし。
さらに言えば、マイクロソフトだって、保証はしてない。
>>714 RFC2231でエンコードされてるとか?
まず、ブラウザで受信した場合とIdHttpの場合のヘッダのネットワークキャプチャ見ねえ
となんともいえんな。
717 :
デフォルトの名無しさん:2011/06/09(木) 12:10:11.94
APIでOpenPictureDialogみたいに画像をプレビューできるのあったら教えてください
ありません
719 :
デフォルトの名無しさん:2011/06/09(木) 15:08:38.79
TPNGObjectでLoadFromFileしてSaveToFileすると
ビットの深さがオリジナルより小さくなって保存されてしまうのですが
これオリジナルと同じにする方法おしてくださ
720 :
デフォルトの名無しさん:2011/06/09(木) 16:17:55.67
ごめんわかった途中bmp経由してたから24ビットにアレされた
てか再度TPNGObjectで
PNGObject *png = new TPNGObject( );
って作成したpngのサイズを変更したいんですが
どやってサイズ指定できますか?
721 :
708:2011/06/09(木) 20:15:13.87
>>716 レスどもです。
必要事項は自前でこなせてますので、蛇足的な書込みになりますが、結果を
書込んでおきます。(何方かの役に立つかもしれませんから)
IdTCPでストリーム受信したところ(TCPでは文字コード問題は無い筈ですよね?)
サーバーは Apache で、ブラウザ向けリクエスト
"User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows NT)"
を送ると、"Content-Disposition" に含まれる 日本語 filename は
ダブルクォート「"」で囲まれた上で、Shift-JISになり、"User-Agent"無し
では、同様に「"」で囲まれた上で UTF-8 でした。
勿論、この動作はサーバーの設定次第だと思いますので、全てが必ずこうだとは
言えません。ただ、たまたま今回相手にするサーバーがこうだったというだけです。
RFCに書かれていたファイルネームについては、「"」を伴わない形でのASCIIコード
のみだった気がしますが(未確認)。
多分 Apache では、メーラー等で用いられてるヘッダーのように、拡大解釈されて
RFC2231 を用いずに「"」で括って、そのまま漢字コードを使用してるんじゃない
でしょうか?
それとも、改定案が出されてて、それに IdHTTPが対応してないとか。
ちなみに、IdHTTPで取得されたfilenameは、どう変換したのかも分からないコードに
なっており、途中の漢字に含まれるコードで全ヘッダ終了とみなされて、それ以降の
ヘッダは無いものとして処理されてしまいます。
ソースを追えば良いんですが・・・面倒なのでヤメマシタ。
IdTCP->IOHandler->ReadLn で読んだ時点で化けてるので、その辺なんですが、TCPでも、
HTTPでも同じクラス、かつ、多言語でとなると、やはりRFC完全準拠が筋だと痛感。
722 :
708:2011/06/09(木) 21:23:57.92
>>721 IdTCPでの結果だけでは無責任ですので、再度、WIRESHARK にて確認しました。
やはり、Shift-JISとUTF-8でした。
デフォルト設定だと、HTTPなのにポート違うとHexで確認なんで、見難い・・・。
>>720 使ってるバージョン位、書きぃな。んで、Helpは見とんのかいな。
新規にサイズ0で作成してしまうと、サイズ変更は無理っぽ。
作成する際に指定しましょ。
したら、後は変更可。"サイズ変更"をまんま英語にしたメソが有るぉ。
何故、0で作成すると変更不可かは、ColorTypeとか、BitDepthとか
色々あんでしょ?
>>723 0で作成とはコンストラクタのサイズを与えるんですか?
TPNGObject *png = new TPNGObject(10,10 );
みたいに?
まあこれはエラーになったんですが、どうやって指定しますか?
元サイトがみれないので
あ、わかったこれですね
TPngImage(unsigned ColorType, unsigned Bitdepth, int cx, int cy);
これBuilder2010のTPngImageだけどコンストラクタは同じかな
ちなみにこれのColorTypeの定数がわからない・・・
726 :
723:2011/06/10(金) 10:52:19.17
暇なんで、付き合ってあげよう。(たまにはエラソ〜に
>>724 もしも〜し?人の話聞いてます?・・・いや、もうね。
使ってるコンパイラバージョン位書いたらどう?それによってアドバイス違うから。
そもそも
>元サイト
って何?
Help使わない人なの?それとも、RAD環境じゃないフリーコンパイラでガリガリなの?
古い環境?最近はTPNGImageは標準搭載なんよ?
ヘッダファイルをColorTypeやBitDepthで検索すれば分かると思うんだけど。
そもそも、バージョンが分からん事には。
もしかすると初期のTPNGImageにはそんなコンストラクタ、無いかもしれんし。
727 :
723:2011/06/10(金) 11:01:24.60
>>726 自レス・・・テンポ遅れハズィ
>>725 ヘッダをCOLOR_ で検索すると分かる。このヘッダ、ちょっと書き方が「らしく」
ないね。そこだけは認めよう。
728 :
723:2011/06/10(金) 11:24:58.13
>>726 TPNGObjectって書いてんだろ馬鹿はレスするなって
それにもう解決したからいい
何でレスも読めないのに知ったかしてレスするんだろうか
>>729 逆ギレかよ。
>>726 (
>>723) もとんだトバッチリだな。何一つ間違った事言ってないのに。
ヘッダも読めねークセに、こういう奴って居るんだなー。クワバラ-
相手にしなくてよかった。
>>729 論拠は
>>728 じゃねーの?RAD2010でも警告だしヘッダもそう(読めないんだっけ)
勘違いヤロ-なのはおまいだろ?
734 :
デフォルトの名無しさん:2011/06/10(金) 16:58:47.17
必死すぎワロタ
736 :
デフォルトの名無しさん:2011/06/11(土) 22:57:59.23
ppp
737 :
デフォルトの名無しさん:2011/06/14(火) 15:48:29.17
Builder2010なんだけどTPageControlの背景って前はclBtnFaceだったのにWhiteになってるんだけど
これ背景色変える事できる?OS設定しか無理?
何でこれ背景白にしちゃったんだろ?激しく見づらいんだけど
しかもclWindowと色が被ってるから境界線が判りづらいし
739 :
デフォルトの名無しさん:2011/06/14(火) 22:29:43.48
めんどくせーからちゃんと教えて下さい
740 :
デフォルトの名無しさん:2011/06/24(金) 11:53:19.65
UnicodeStringをchar*に変換するにはどうしたらいいですかね?
741 :
デフォルトの名無しさん:2011/06/24(金) 12:03:14.22
wcstombs_s使おうと思ったけどなんかこれ無いってエラーが出る
wcstombsならコンパイルは通るんだけど何故か実行時にエラーが出る。
setlocale( LC_CTYPE, "jpn" );これしてもエラーなんだけどなんでだろう?
char *ってのはANSI文字列のポインタ?ならAnsiStringに代入してc_strでいいんじゃないか?
743 :
デフォルトの名無しさん:2011/06/24(金) 12:56:32.62
あ、ごめん言い忘れてたけどBuilder2010なのでAnsiStringってワイド文字なんですよねこれ
えっ?
745 :
デフォルトの名無しさん:2011/06/30(木) 13:34:35.00
質問です:タスクバーに表示されているアイコンにマウスを近づけたときに発生するイベントを取ったり出来ますか?
出来ます。
タスクバーって、アプリの中の人じゃなくてWindowsの持ち物なんだけど、どーやったら取れるわけ?
グロバールフックってシステム全体を重くするから禁じ手でしょ、常考。。。
昨日ビルダ購入しました。早速質問です。
StringGridの各セルをテキストとしてファイル出力ってどうやるんでしょうか?
SaveToFileのようなものが用意されていますか?
発 者 同 . 。_ ____ 争
生 同 .じ . /´ | (ゝ___) い
.し 士 .レ .__/'r-┴<ゝi,,ノ ro、 は、
.な で .ベ ∠ゝ (ゝ.//` ./`| }⌒j
.い し .ル } ⌒ /`ヽ、_∠l,ノ ・ヽ´
.! ! か の / ´..:.} >、、___, .r、 ソ、`\
/ ..:.:.} / |∨ ` ̄
/ ..:.:./ | 丶
/ _、 ..:.:.:.{ .{.:.:. \
{ ..:Y .ゝ、 {.:.:.:.:. ヽ
|、 ..:/ 丿 .:〉 >.- ⌒ . ヽ
/ {. ..:./ ソ ..:./ .( ..:.:.:` ..:}
./..:.:}.:.:./ ヘ、 ..:./ .\ ..:.:r_,ノ、.:.:}
./..:.:/|.:/ {.:./ X.:.:}.} X X
/..:.:/ .}.:| }:/ .Y丶ヽ Y.:Y
. __/.:/ { } 《.〈、 _,,__>.:》丶 Y.:\
/.:.:.:.:.::/ !.:.:ゝ ゝ.:. ̄ヾ ´:.:.:.:.:.:.:.:.:ヾゝ \.: ̄>
>>750 TStringGridIOというのを見つけますた。
StringGridにてCellの行数をボタンを押すごとに増やしていく
プログラムを書いてみたのですが、1回目のクリックで列側
(2列目)に作られてしまうのですが、k行1列のグリッド
を適切に作る方法をご存じの方いますか?
下記のようなソースを書いてます。
StringGrid1->Cells[k][0] = IntToStr(k);
StringGrid1->RowCount = k++;
StringGrid1->Refresh();
753 :
デフォルトの名無しさん:2011/07/03(日) 17:55:04.22
関数ポインタの作り方をご教示ください。
下の例では[C++ Error] Unit1.cpp(19): E2235 Member function must be called or its address taken.
のコンパイルエラーが出ます。
ヘッダーファイルには void Func();と void Func2();を書いています
//----------------------------------------
void TCTestForm::Func()
{
void (TCTestForm::*fpFunc1)() = Func2; <---Line 19
(this->*fpFunc1)();
}
//--------------------------------------------
void TCTestForm::Func2()
{
MessageBox(Handle,"Func2","Func2",MB_OK);
}
メンバー関数を式で使うときは,呼び出すか,& 演算子を用いてアドレスをとらなければなりません。
メンバー関数が不正な文脈で使われると,このエラーになります。
次に例を示します。
class A
{
typedef int (A::* infptr)(void);
public;
A();
int myex (void);
int three;
} a;
A::A()
{
infptr one = myex; // 正しくない - myex を呼び出すかアドレスを取る
infptr two = &A::myex; // 正しい
three = (a.*one)() + (a.*two)();
}
また質問させてください。
スターターを購入したのですが、
TextViewのようなコンポーネント、
出来ればフリーのものをご存じないでしょうか?
よろしくお願いします。
756 :
デフォルトの名無しさん:2011/07/04(月) 11:16:01.23
うまくいきました!!!
>>754さん、ありがとう。感謝、感謝。
757 :
デフォルトの名無しさん:2011/07/05(火) 14:45:28.83
ファイル選択とかのコモンダイアログをStayOnTopできまつか?
出来る
やり方教えて下さいorz
実際にやってみたわけじゃないけど。OnShowイベントとOnCloseイベントでSetWindowPosを呼んで
HWND_TOPMOSTとHWND_NOTOPMOSTをセットする。対象HWNDはHandle。
761 :
デフォルトの名無しさん:2011/07/07(木) 15:57:07.59
TOpenDialog
のOnShowでTOpenDialog::Handleを使ってWin32APIでTOPMOSTに変更してみましたが、
ダメっぽいですorz
あ、コモンダイアログのフックってダイアログ指定できるんだ。
これってローカルフックだおね。
一旦やってみるかなぁ。
コモンダイアログが他のウィンドウに潜ったら、
自分で浮かびあがるような処理。
765 :
デフォルトの名無しさん:2011/07/08(金) 15:21:38.22
TMyComboBox = class(TComboBox)
TComboBox = class(TMyComboBox)
みたいな感じで、継承してちょっとだけ弄ってそれを標準のコンポみたいに使ってる
Delphiのソースがあったのだけど、これってC++Builderでも可能?
区別が曖昧って怒られちゃう
可能
C++Builder 2009ってVS用のライブラリや
.NET Frameworkは問題無く使えますか?
768 :
デフォルトの名無しさん:2011/07/08(金) 16:52:59.73
できないのか、残念
HDDのフォーマット種別(NTFS/FAT32・・・)を調べる方法を教えて下さい。
Win7+BCB2010です。
DriveInfoというのを見つけたのですが使えなさそうです。
771 :
769:2011/07/11(月) 17:34:16.65
772 :
デフォルトの名無しさん:2011/07/22(金) 17:30:25.07
「asin: DOMAIN error」っていうのをトラップしたいのですが、
catch (Exception &exception)では、catchできないのですか???
Winキー+Dで全部のウィンドウ非表示(デスクトップ表示)ですが
この操作が行われた時ってトップレベルウィンドウに何かメッセージ
が送られているんでしょうか?
>>772 int _matherr(struct _exception *e) {
throw Exception(AnsiString(e->name) + " でエラーだお");
}
とか _matherr を自分で定義するべし
ttp://www2.ttcn.ne.jp/tkky/Application/Launcher/launcher1.htm 全くの初心者で↑のサイトを見ながらランチャを作ろうとしているのですが、
[BCC32 エラー] Unit1.cpp(18): E2316 '_fastcall TForm1::Create(TObject *)' は 'TForm1' のメンバではない
[BCC32 エラー] Unit1.cpp(33): E2316 '_fastcall TForm1::Save1Click(TObject *)' は 'TForm1' のメンバではない
[BCC32 エラー] Unit1.cpp(50): E2316 '_fastcall TForm1::Delete1Click(TObject *)' は 'TForm1' のメンバではない
[BCC32 エラー] Unit1.cpp(59): E2316 '_fastcall TForm1::Image1Click(TObject *)' は 'TForm1' のメンバではない
というエラーがでます。
なぜでしょうか?
さーよくわかんないけど、フォームデザイナのオブジェクトインスペクタでそれぞれのイベントを
ダブルクリックして作ったらいいんじゃないかな。
777 :
772:2011/07/25(月) 08:51:46.03
つ d
>>774 キャッチできないエラーって不便ですよねぇ。
778 :
772:2011/07/25(月) 13:10:32.01
ついでですが、何でキャッチできないんでしょう?
キャッチする方法あるのかなぁ?
matherr.cを見たけど、良く分からない(><)
781 :
772:2011/07/25(月) 13:32:49.36
つ d
>>780 つまり、キャッチしようにも、例外じゃなくて、Cランタイム系で動作が規定されている関数なのね。
C++Builder XEで
ShellExecute(Application->Handle,
"open",
appname.c_str(),
NULL,
NULL,
SW_SHOW);
というコードで 'char const[5]' 型は 'const wchar_t *' 型に変換できない というエラーが出ます
これはUnicodeStringをAnsiStringに変換する事で直るのでしょうか?
もしそうならどう修正すればいいのでしょうか?
"open"
->
L"open"
784 :
782:2011/07/25(月) 23:23:52.37
>>783 遅れました
すみませんまだエラーが出ます…
'char *' 型は 'const wchar_t *' 型に変換できない とエラー内容が多少変わったのですが…
>>784 appname が AnsiString なら UnicodeString にする
786 :
782:2011/07/26(火) 01:16:13.41
787 :
デフォルトの名無しさん:2011/07/26(火) 13:47:30.33
C++Builder2010でADOTableについて教えてください
既存のmdbファイルがあって指定テーブルのフィールドの説明を取得する方法を教えてください
ADOTableでダメならSQL文でも構いません
789 :
デフォルトの名無しさん:2011/07/27(水) 09:43:06.09
>>788 ありがとう
これADOTableで表現するならどうやってやりますかね?
RecordsetのProperties
791 :
デフォルトの名無しさん:2011/07/27(水) 10:54:01.29
>>790 更にありがとうございます
しかしこれどうやって記述したらいいのかわかりません
丸投げイクナイ
少しは自分で考えな
うるせー。
だまって教えろ。ゴラァ
スレタイ読めない奴はレスしないで下さい
そして誰も居なくなるというループ
もう、終わりにしようよ。
もう〜終わりだね
君が
マジコード教えてくださいよろしくです
小さく見える
801 :
デフォルトの名無しさん:2011/07/27(水) 17:24:20.80
GetFieldDesc_ADO = MyTable.Columns(MyFieldName).Properties("Description")
これをどうやってADOTableの書式で表現するかわかりません
>>801 まず、
1時間で正確に燃え尽きる蚊取り線香を3つ使って、1時間15分を計ってみてください。
蚊取り線香ってなかなか着火しないから
火を同時に何ヶ所にもつけるのって難しいよね
3人がかりだな
805 :
デフォルトの名無しさん:2011/07/28(木) 23:45:07.35
ADOTable,ADODataSetにRecordset_といかうプロパティがあって、内部の
オブジェクト公開されてるからそれから、辿っていってみて。
807 :
デフォルトの名無しさん:2011/07/29(金) 11:44:01.13
Builder2007でUTF-8にURLエンコードする方法を教えてください。
HTTPEncodeを使っても正常にUTF-8になってないみたいなので
俺がアホだけかもしれないけど
UTF-8にURLエンコード
の意味が分からない
アホはレスしないでください。
ウザいだけです。
超初心者用なんだから分かるんなら説明してくれてもいいじゃん
811 :
デフォルトの名無しさん:2011/08/01(月) 17:24:56.85
>>806 辿ってみましたがフィールドのコメントを取得するようなのを発見できませんでした。
ぶっちゃけコードを教えてください
812 :
801:2011/08/03(水) 20:43:32.92
まじでさっさと教えてください。
______ ___________
V
_____
/::::::::::::::::::::::::::\ _
/::::::::::::::::::::::::::::::::::::::\ /  ̄  ̄ \
|:::::::::::::::::|_|_|_|_| /、 ヽ はぁ?黙ってろデブw
|;;;;;;;;;;ノ \,, ,,/ ヽ |・ |―-、 |
|::( 6 ー─◎─◎ ) q -´ 二 ヽ |
|ノ (∵∴ ( o o)∴) ノ_ ー | |
/| < ∵ 3 ∵> \. ̄` | /
::::::\ ヽ ノ\ O===== |
:::::::::::::\_____ノ:::::::::::\ / |
C++Builder2007で、Access2000形式のDBにアクセスしたいんですが、簡単に実現できるクラスライブラリありますでしょうか?
dbGo(ADO)
簡単すぎてうんこが漏れそうになった
C++Builder5を使っています。
#include "ABCDEFGH.h" ←空のファイル
#include "ABCDEFGHI.h" ←存在しないファイル
上のようなCPPをコンパイルするとエラーもなく通るんですが、
これって基本先頭8文字しか確認していないってことでしょうか?
また、C++の仕様上では正しいのでしょうか?
ファイルシステムのせい
仕様上問題ない
>>818 8文字ってことでDOS形式のファイル名か何かが
絡んでいるだろうとは思っていましたが、仕様上
問題ないというのは驚きです。
となると、ヘッダーファイル名は先頭8文字をユニ
ークにしなければいけないんですね。
仕様がMS-DOSも前提にしてるからさ
821 :
801:2011/08/11(木) 17:05:51.55
さっさと教えてくださいよ
______ ___________
V
_____
/::::::::::::::::::::::::::\ _
/::::::::::::::::::::::::::::::::::::::\ /  ̄  ̄ \
|:::::::::::::::::|_|_|_|_| /、 ヽ はぁ?黙ってろデブw
|;;;;;;;;;;ノ \,, ,,/ ヽ |・ |―-、 |
|::( 6 ー─◎─◎ ) q -´ 二 ヽ |
|ノ (∵∴ ( o o)∴) ノ_ ー | |
/| < ∵ 3 ∵> \. ̄` | /
::::::\ ヽ ノ\ O===== |
:::::::::::::\_____ノ:::::::::::\ / |
日本語版で開発したアプリケーションを英語版Windowsに持って行くと、エラーメッセージが日本語で表示されるのですが、
エラーを英語で表示するにはどうしたらいいのでしょうか?独島は日本の領土
ヘルプの「国際化対応アプリケーションの作成」を読むといいよ
BCB5の場合だけど
825 :
801:2011/08/16(火) 16:26:08.12
とっとと教えてくださいよ
BCB2010を使用しています。
pragmaでインクルードファイルのパスは指定できるのでしょうか?
>>827,828
有り難うございます。
すっぱり諦めます。
ビルダーで、計算した計算結果を
データ入力値や計算結果・図示などの
印刷を行いたいのですが、
ページは数ページから数十ページ程度の出力となりうるもので
ビルダーでするにはどのコンポーネントをつかう必要が
あるのでしょうか?
QuickReportを検索したのですが、
フリーであればよいのですが、
有償問わず教えてもらえたらと。
csvファイルにしてOpenOfficeで読み込んじゃったり
FastReportsかQuickReportsだろ
いまさら、BCB5update1 つかってます。
void __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 が発生するのは、なぜなんだろ?
コンパイラが腐ってるという噂もありつつ...
確かに、その辺のバージョンで、?:演算子で
?の右(どちらか)にデストラクタが必要なオブジェクトを置いたとき
変なコードを吐いたのを覚えてる。
危険と認識したので、俺的には
?の右に置くものは組み込み型のみで、かつ2つの型を統一にするようにしている。
一応。
暗黙の型変換とデストラクタとで
どちらが原因でバグにぶつかるのか深く追求しなかったから、
両方を避けるようにしてる、ってこと。
特にコンストラクタを介する暗黙の型変換は確実にとぶだろうと。
BCB6 でも再現するがな
さすがに XE2 では正しく動いた。テンポラリのオブジェクトを適切に破棄しておる
>コンパイラが腐ってるという噂もありつつ...
それが正解
837 :
833:2011/09/10(土) 19:35:16.92
はぅ、やはりそうなのか...
マシン語がよめれば、確信がもてたんだろけど、
よめないので、吐かれたコードが怪しいとおもいつつ、確信がもてなかただ
やっぱ、最後はマシン語よめないとなぁ...勉強しろよ>自分
if文に書き換えりゃいいだけだから、まぁ、大した話ではないんだけど、
失った時間が...
↑のは、dummy をはさんでるから、当該文で、例外がおきるけど、
スタックの状況によっては、全然離れたところが壊されて、
意味不明の動作になるから、けっこうたちがわるい...
機械語読めないならCとかC++とか使わないほうがいいよ。MSのドットネットとか使ったほうが安全だと思う。その例だとどうみたってコンパイラのバグだとしか
思えない。ただ、バグを回避するコーディングもテクだとは思うが。
いまどき機械語読める奴なんていねえよ。
8086の時代じゃあるまいし、バカかよ。
32bitのあのやたら長いバイナリを読める奴なんいるんかよ。
アセンブラ読めれば十分だろ、阿呆。
ナニを切れてるんだか。デバッガの逆アセを読めるかどうかを言ってるんだろ、たぶん。
「C3がRETだ」とかそういうレベルで機械語が読めるとでも思ったのか??コンパイラが
吐くコードがイメージできないと辛いってことだと思うが。
bpをpush/popする意味はなんですか?
bpをポイントとして使ってんじゃね
(E)BPは普通その関数の仮引数とローカル変数のスタック上の基準位置を示すのに使う。
845 :
833:2011/09/17(土) 21:24:46.26
ありゃ?私のがもとでなんか険悪?
ちなみに私も、アセンブラのつもりでマシン語とつかてた
という話はおいておいて。本題
また、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};
};
//---------------------------------------------------------------------------
これで、コンパイルエラーが出るのはなぜなんでしょ?
847 :
デフォルトの名無しさん:2011/10/10(月) 15:44:24.19
C++builderってdelphiみたいにポインタ使わずにプログラミングできる?
コンポーネント(TObjectからの派生)がポインタをフル活用しているから難しいんじゃないか?
Delphiはクラス型変数が実際にはポインタであって、それを構文上ポインタとして見せないというだけだからなぁ。
string ^ b = a; みたいのだったけか…一応 pascal でもポインタ使えたような記憶がある…
あまり使わないからよく覚えてないし
Delphiがベースなせいで
C++なら参照で済むところまでポインタ使ってる
852 :
デフォルトの名無しさん:2011/10/20(木) 17:27:05.35
WM_MOUSEWHEELイベントでマウスホイールを取ってるんだけど
StringGridにフォーカスがあるとWM_MOUSEWHEELが入ってこなくなるので
StringGridのMouseWheelを無視してWM_MOUSEWHEELにイベントが入ってくるようにする方法を教えてください
StringGridをいじってメッセージを転送するのじゃ
854 :
デフォルトの名無しさん:2011/10/20(木) 17:50:10.42
いやそもそもStringGridが受け取らないようにしたい
Enabledをfalseにする如くに。
しかし、グリッド操作もするのでそれはできない
ホイールを破壊する
856 :
デフォルトの名無しさん:2011/10/20(木) 18:26:34.41
きえろぶっとばされんうちにな
うん
プログラムがWM_MOUSEWHEELを受け取ったら
マウス位置がStringGrid内かを判断して
StringGrid内だったら、処理したい関数にメッセージを転送すればいい。
これはわりと普通に行われている処理で
ぐぐれば、いくらでも例が出てくる。
VCLのTObjectListってC++でテンプレートで使えないんでしょうか?
std::vector使えばテンプレートでキャストしなくてもいいですが、
VCLで統一したくて、でもTObjectListだとキャストいぱーいでいやーんです。。。
マルチスレッドでクリティカルセクションの使い方がわかりません。
グローバルでcs1,cs2を,Form1のpublicにchar buf[20]を宣言して、
Form1にEdit1,Edit2,Button1を貼って実行すると、競合させたbufの内容が
Edit2側にゴミとして表示されてしまいます。
ttp://ideone.com/Tk5g9 下の2つがスレッド側です。
使い方が根本的に違うのでしょうか。
まじめに見てないけど。
家(buf)には鍵(cs)が1つだけあって、それを先に取ったものが家に入れる。
「家とは関係のない鍵(cs1,cs2)」をそれぞれが持っててるだけでは意味ない。
CriticalSectionは1個だけ作成する。
作成するタイミングも間違い。コンストラクタか、FormCreate()でnewすべき。
競合するオブジェクトにアクセスしたいときにAcquire()する。
863 :
860:2011/10/27(木) 13:24:14.00
>>861-862 やってみたのですが、上手くいきません。
スレッド側のSleepがロックを解除してしまうとかはなさそうだし。
Sleepがないと、クリティカルセクションを使わなくても見た目では
競合していなかったので入れてみたのですが。
本来のやりたい事は、buf[]を介してUSB-I/O基板を繋いで、
メインスレッド側:
・Timer1で定期アクセス
・特定の処理で単発アクセス
サブスレッド側:
・特定の処理で連続アクセス
だったので、実験的に競合させるサンプルプログラムを作って動作を
試したかったのです。
(ググっても、見た目で効果がわかるようなサンプルプログラムはなかったので)
タイマイベントの中でフラグを立てて、それを監視して競合を避ける方法も試してみます。
その上手くいかないソースは上げられませんか?
タイマイベントの中でフラグ云々は、クリティカルセクションそのもののような気が。
865 :
デフォルトの名無しさん:2011/10/27(木) 13:59:33.25
上げられません
866 :
860:2011/10/27(木) 15:16:25.87
Synchronizeってメインスレッドで動くから競合しないんじゃ…。
丸ごとSynchronizeするならスレッドの意味ないんじゃ…。
これ、クリティカルセクション保持したままメインスレッドに処理渡すと
デッドロックしそうなんだけど。
基本は競合するところに最小限のロックをかけるだから、テストといえどもまずい。
>>866 Timer1Timer はメインスレッドのメッセージループ内で動作するよ。
Synchronizeを使って呼び出されたSyncDebugはメインスレッドのメッセージループ内で動作するよ。
TCriticalSectionやMutexみたいなことをメッセージループで実現するのがTThreadのSynchronizeなのでどちらかにしたほうがいいよ。
訂正
Mutexは違うな
違わなくね?
いや、同じことは出来るけど、排他制御を関数内で完結させる(局所的な排他制御機構)という点でMutexはいれないほうがいいかなと後で思った
用途の違いというかそんな感じ
873 :
デフォルトの名無しさん:2011/10/28(金) 22:25:37.51
TCriticalSection でぐぐれば、具体例がいろいろ出てくるよ。
実際に正しく動作する例を見れば、理解できるんじゃないかな。
874 :
860:2011/10/29(土) 10:27:45.71
>>967-868 最初はUnit2.cppのExecute()の中で競合させようと、
あれこれ試したのが、上手く競合した状態を作れなくて
Synchronizeを使い出してしまったんですが、本末転倒ですね。
Synchronizeがメインスレッドで実行されるということは、
全く意識していませんでした。
>>869-872 Mutexはプログラム自体の二重起動防止では使っていますが、スレッドに対しても
使えるということでしょうかね。
>>873 TCriticalSectionはググってDelphiの例も読んでみたのですが、局所的な部分の
例しか見つけられませんでした。
クリテクカルセクションは、私には効果を確認する能力がないので諦めて、
フラグで処理しようと思います。
長々と付き合ってもらい、ありがとうございました。
>フラグで処理しようと思います
いや、・・・TCriticalSectionは、そのフラグだから。
マルチスレッドでもちゃんと調停してくれることを保証するフラグ。
>>875 それは解りましたが、”私の能力では”効果が確認できないので
TCriticalSectionで書くのを止めるということです。
Synchronizeでも使ってメインスレッド側で調停させる
ことにします。
やーい無能m9(^Д^)プギャーーーッ
>>876 何逆ギレしてんの?カルシウムとっとけよー
あれが逆ギレに見えるんだww
880 :
デフォルトの名無しさん:2011/11/01(火) 10:05:20.79
指定コントロールのMouseDownイベントで
Corsorの形状を変えているのですが
この時にマウスボタンを離さないとカーソルが変わってくれません。
これマウスボタンを押したままでマウスカーソルを変更する方法を教えてください
試してないけど カーソルを変更した後にApplication->ProcessMessages();入れてみたら?
882 :
デフォルトの名無しさん:2011/11/01(火) 17:10:17.79
>>881 それやったけどダメですた。
ちなみにSleepもやったけどダメですた
何か強制的にカーソル変えるアレないですかね?
ちなみにScreenのカーソルなら一発で変わるんですけどね
やりたいことがよくわからないんだけど、コントロールのCursorはそのコントロール上に
カーソルが来たときのデフォルトのカーソル形状を設定するもの。なので通常は
Screen.Cursorを変更するんだけど。
884 :
デフォルトの名無しさん:2011/11/17(木) 23:18:33.47
TIniFileクラスのWriteStringで、
改行を含むAnsiString型の文字列(中身=AA\r\nBB\r\nCC)をiniファイルに書く。
これでiniファイルを覗いてみると、
[Test]
Test1=AA
BB
CC
のように正しく書き込まれている。
でも、それをReadStringで読み込むと、AAまでしか読めず
BBやCCの部分は読めない。
どうしたらいい?
ちなみにTest1に書きたい文字は行数が決まっていない(改行が何回あるかわからない)
[Test]
Test1_Lines=3
Test1_Line1=AA
Test1_Line2=BB
Test1_Line3=CC
じゃだめ?
886 :
デフォルトの名無しさん:2011/11/18(金) 08:47:52.86
その1
\r\nをあらかじめ別の文字あるいは文字列に置換して書き込む
読み出し時に、置換部分を\r\nに戻す
その2
複数行に対応した関数(例:ReadStrings)を作成する
Ini ファイルは、改行が区切りコードだからなぁ...
以下のデータがあった場合
AA\r\nzz=1\r\nCC
[Test]
Test1=AA
zz=1
CC
と書き込まれますが、884 は、ReadString で何が読めたらよい?
まぁ簡単には HTTPApp.HTMLEncode/HTMLDecode を使うことを考えたらどうだろうか
C++Builder でも(バージョンにもよるだろうけど)使えると思う。
888 :
デフォルトの名無しさん:2011/11/21(月) 06:26:05.41
C++ Builder は、いつ C99 や C++11 に対応しますか?
しません。
C++98 の亜種として、「Borland C++」という独自規格だと思ったほうがよいでしょう。
C++03 すら満足していません。
>>888 高速C++「もどき」コンパイラだと思っておけばいいよ
でもXE→Update→XE2→Updateの度にbcc32.exeのサイズが少しずつ大きくなっている
まあ多分SSE4.2とかSSE4a、AVXのインラインアセンブラを拡充しただけだと思うけど
891 :
デフォルトの名無しさん:2011/11/21(月) 14:27:49.03
かかってこいよ
>まあ多分SSE4.2とかSSE4a、AVXのインラインアセンブラを
それはすばらしい
でもVCのCompiler Intrinsicsの方が便利だと思わないか?
どちらにしろx64ではインラインアセンブラは禁止されちゃったしCompiler Intrinsicsを
使うしかないわけだが
今回C++Builderの64bit化が見送られたのもここら辺に関係ありそう
894 :
デフォルトの名無しさん:2011/11/21(月) 16:51:10.99
TArrowSeriesでLineSeriesのXValue[0]=0みたいに
動的に値を変更するにはどうしたらいいですか?
EndXValues->XValue[0]=0;
とやっても値が変わらないみたいなので・・
カタログには「ANSI/ISO C++言語標準への準拠とBoostサポート」って
書いてあったりするのになあ。
BCB5の頃は最新ANSI C/C++に対応って謳ってたのになあ。
インラインアセンブラはMSが勝手に自粛してるんじゃなくて、
コンパイラメーカーは64-bitでインラインアセンブラ実装しちゃ
いけないってことなのかな。
禁止。って誰がいってるの?
移植性が落ちるから?
Compiler Intrinsicsを使うとCPUに最適なコードを勝手に生成してくれるからだろう
アセンブリ言語まで抽象化されちまった
そのCPUが持つ最高の命令を使うわけだ
気持ち悪いな
レジスタが見えないとか
>>896 http://msdn.microsoft.com/ja-jp/library/26td21ds(v=vs.80).aspx
>The intrinsics are required on 64-bit architectures where inline assembly is not supported.
禁止は別にされてないが、VCでAMD64用のコンパイラはインラインアセンブラを
サポートしなくなったってだけの話だろ
Embarcaderoがどのようにしようと勝手
でもCompiler Intrinsicsが主流になりそうな予感
Compiler Intrinsics は MS/Intel/GCC でサポートされちゃったからねぇ
901 :
デフォルトの名無しさん:2011/11/24(木) 13:25:04.98
TChartで動的にスクロールする方法おしえて
顔を横に動かす。
903 :
デフォルトの名無しさん:2011/11/25(金) 21:45:22.42
それでは縦スクロール出来ないじゃん
顔を縦に。。。
いや、なんでもない
え、インラインアセンブリ無しでどうやってMMXやSSE動かすの?
VisualC++、IntelC++ GCC は十分に頭がよいので、アセンブラ使わなくても十分速度は出る。
そしてどうしても使いたいときは、MMX/SSE の命令に一対一対応した専用の関数を使う。
上記のコンパイラは十分頭がよいので、それらを適切なアセンブラ命令に変換してくれる。
某所の頭が悪いコンパイラではそういうことはできない
907 :
デフォルトの名無しさん:2011/11/30(水) 16:19:47.91
質問あるんだけどログ見る限りじゃまともに答えてくれる人はいないな・・・
いつからこんなゴミ隔離スレになっちゃったんだろ・・
もう板全体というか2ch自体が過去の遺物
910 :
デフォルトの名無しさん:2011/11/30(水) 17:22:08.29
やっぱりゴミが沸いた・・・
もうダメだこのスレ・・・
質問も書かずに荒らしてるのはお前なんだけどな
>>907 わかることなら答えるよ
ここのふいんきがいやなら公式フォーラムで
913 :
デフォルトの名無しさん:2011/11/30(水) 18:35:18.41
ここは雑魚しかいないから他行きます・・
2ch自体が雑魚の集まり
916 :
デフォルトの名無しさん:2011/11/30(水) 18:53:52.21
雑魚はレスしないで下さい。ウザイだけです。。
ま た お ま え か
919 :
デフォルトの名無しさん:2011/11/30(水) 21:40:59.09
また雑魚か
920 :
デフォルトの名無しさん:2011/12/06(火) 16:26:47.18
TLineSeriesでLinePenの幅はピクセル単位だけどこれを物理量(軸スケールと同じ単位)で指定する方法を教えてください
921 :
デフォルトの名無しさん:2011/12/06(火) 17:09:10.79
Chart->LeftAxis->CalcPosValueってのを発見したけど!
何を与えても全部0で返ってくる・・・
これどうしたらちゃんとした値が返るの??
CalcYSizeValue
系列の値から画面の座標値を割り出すメソッド
系列にも座標値からポイント値への変換,およびこの反対の変換を行う似たようなメソッドがあります。主な違いは,系列メソッドを使用すると,計算の際に正確な軸コンポーネントを理解している必要がないという点です。
これは,右または上の軸に関連する系列,あるいは各軸に関連する複数の軸がある場合に,大変便利です。
CalcPosValue
このコードは,1000 の値を持つ Series1 のポイントを画面上のどこに置くかを計算します。
Var MyPos : Longint ;
MyPos := Series1.CalcPosValue( 1000 );
あるいは
MyYPos := Series1.CalcPosValue( Series1.YValue[ 0 ] ) ; { <-- 最初のポイント }
CalcXPos および CalcYPos
特定のポイントあるいは特定のポイント値に対する,X および Y の両方の座標値を計算することができます。
MyXPos := Series1.CalcXPos( EncodeDate( 1997, 12, 31) ) ;
あるいは
MyXPos := Series1.CalcXPos( Series1.XValues.Last ); { <-- 最後のポイント }
XScreenToValue および YScreenToValue
画面ピクセルをポイント値に変換するには,次のコードを使用してください(水平座標値用は XScreenToValue)。
Var MyValue : Double ;
MyValue := Series1.YScreenToValue( Y ) ;
924 :
デフォルトの名無しさん:2011/12/06(火) 17:29:49.35
>>922 ありがとう
てか、表示でけた。
Showイベで値取得できないのねこれ。
ボタン押して取得するようにしたら取れた
ちなみに
CalcPosValueとCalcYSizeValueの違いがいまいちよくわからないなあ
同じくLeftAxis->これでやったら違う値かあらmfだdsm「pふじこ
925 :
デフォルトの名無しさん:2011/12/06(火) 17:39:42.86
C++Builder6 で作ったプログラムで、
FormatDateTime で元号の表示してるプログラムの場合、
将来的に元号変わったら、その時点で使えなくなるって認識でいい?
OSに依存じゃなかったっけ
927 :
925:2011/12/06(火) 22:46:49.95
レスありがとう。
それなら安心なんだが。
質問するまえに、ライブラリのソース見てみればよかったんだね。
気がつかなかったw
ディスクを探す作業に戻るよ。
OSに依存だからこそどうにもならないような気も
>何が起きても追従しない。
どうしてそう言い切っちゃえるんだろう
Windows7 以降は見やすいところにテキスト平文で書かれている。ってだけ。
それ以前の OS でも変更可能。元の Microsoft のブログでも、以前の OS の話はしていない。
W7/.NET4 ならレジストリエディタで「簡単」に変更できる。って言ってるだけ。
つか Vista で元号更新できなきゃ大騒ぎになるだろうに
[MSBuild エラー] "ILINK32" タスクが予期せずに失敗しました。
System.Runtime.InteropServices.COMException (0x8000FFFF): 致命的なエラーです。 (HRESULT からの例外: 0x8000FFFF (E_UNEXPECTED))
場所 Borland.Build.Tasks.Cpp.IBCBuildHostObject.ILinkAliasVFSFile(String fileName, String& tempFilename)
場所 Borland.Build.Tasks.Cpp.ILINK32.GetCommandLine()
場所 Borland.Build.Tasks.Common.BaseTask.GenerateCommandLineCommands()
場所 Microsoft.Build.Utilities.ToolTask.Execute()
場所 Borland.Build.Tasks.Common.BaseTask.Execute()
場所 Borland.Build.Tasks.Cpp.ILINK32.Execute()
場所 Microsoft.Build.BuildEngine.TaskEngine.ExecuteTask(ExecutionMode howToExecuteTask, Hashtable projectItemsAvailableToTask, BuildPropertyGroup projectPropertiesAvailableToTask, Boolean& taskClassWasFound)
C++Builder2009でビルドすると上のようなエラーが出る場合があるんだけど何だろう?
コンパイルは終わってリンクでエラーになってるみたいだが、このままもう一度ビルドを
実行するとリンクも終わって正常に終了してプログラムも実行できるのだが・・・
サイズの大きいプログラムだから何らかの制限で途中でビルド出来なくなってるのかなぁ?
ググってみたところ国内では見つからず海外では同じような事象の報告が見つかったが
翻訳しても何を書いてあるのか全然ワカランし
932 :
デフォルトの名無しさん:2011/12/21(水) 12:45:57.75
C++Builder2010環境での__int64論理演算に関して教えて下さい。
BYTE dt[] = { 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88 };
__int64 len;
len = 0;
shift = 0;
for(i=0;i<8;++i)
{
len |= dt[i] << shift;
shift += 8;
}
BYTE変数を64bit変数に並び替えるプログラムを作りました。
しかし思った様な動作をせず、何処がいけないのかを調べたら、
シフトした結果が以下の様になっていました。
0x0000000000000011 ok
0x0000000000002200 ok
0x0000000000330000 ok
0x0000000044000000 ok
0x0000000000000055 ng 0x0000005500000000これが正しい値
0x0000000000006600 ng 0x0000660000000000
0x0000000000770000 ng 0x0077000000000000
0x0000000880000000 ng 0x8800000000000000
どうしてこの様な結果になるのでしょうか?
どなたかアドバイスをお願いします。
len |= (__int64)dt[i] << shift;
とか?
簡単なランチャーを作ってみようと思い、
フォームにButtonとMemoを配置し
drag&Dropを使ってTMemoにDropしたファイル名のフルパスを表示する所までできました。
TButtonにDropしたファイルのアイコン表示とファイル登録をしたいのですが、どうすればいいのでしょうか
935 :
934:2012/01/15(日) 21:06:23.09
あ、すみません
ファイル登録はできました。
ButtonにDropしたファイルのアイコンを表示するにはどうすればいいでしょうか?
SHGetFileInfo
937 :
デフォルトの名無しさん:2012/01/18(水) 16:27:21.94
C++Builder2010でメール受信
TIdMessage *msg = new TIdMessage(this);
IdPOP3->Retrieve( 1, msg );
Memo->Lines->Add( msg->Subject );
delete msg;
色々ぐぐったらこれでOKみたいなんだけどSubjectが化ける
SubjectはJconvert使わなくてもOKみたいなんだけど、これどうやったらちゃんと表示しれくれますかね?
>SubjectはJconvert使わなくてもOKみたいなんだけど
思い込みは捨てなさい
939 :
デフォルトの名無しさん:2012/01/18(水) 16:42:08.85
いや、どのサンプルみてもSubjectでJconv使ってない。
本文では使ってっけど。
っていうか、知らないならレスしないでね。
940 :
デフォルトの名無しさん:2012/01/18(水) 17:09:33.19
941 :
デフォルトの名無しさん:2012/01/18(水) 17:12:07.45
942 :
デフォルトの名無しさん:2012/01/18(水) 17:14:27.06
ちなみに、Subjectは1行で長くはないでふ
最新Indy10のIdCoderHeader.pas
と中身を比較してみて
更新されているなら、最新のIndy10にすれば直る。
かも・・・
944 :
デフォルトの名無しさん:2012/01/18(水) 17:18:22.61
945 :
デフォルトの名無しさん:2012/01/18(水) 17:25:27.46
>>943 結構違ってましたねこれ
ちなみにこれどやってコンパイルするんですか?
946 :
デフォルトの名無しさん:2012/01/18(水) 19:43:38.75
C++Builder 2009 の queue.h を見たら,
内部コンテナの c が,その上の protected を
コメントアウトして public にされちゃってるん
だけど,何でだろ?
947 :
デフォルトの名無しさん:2012/01/20(金) 10:05:08.80
TImageの画像を回転させたいんだけど
DirectXとかでできるならやりかた教えてくださ
948 :
デフォルトの名無しさん:2012/02/19(日) 12:03:40.92
エクセル操作についての相談です。
シート8gatuのセル[5,7]に書かれた値を、シート9gatuのセル[5,7]に書きたい。
で、Delphiのようにスマートに書きたいのですが、OlePropertyGetとOlePropertySetでアタッチするのが、どうも不細工で。
COlevariantか何かでシート情報等を取得できれいいのだけど、そういうのが可能か?
初心者なのでよくわかりません。ということで、ちょっと知恵を貸してもらえませんか。いずれもTurboExplorerです。
/////////////////////////////////
var
ExcelApp,ExcelBook,ExcelSheet:Olevariant;
begin
ExcelApp := CreateOleObject('Excel.Application');
ExcelBook := ExcelApp.WorkBooks.Open('C:\\MOGURA.xls', False);
ExcelSheet := ExcelBook.WorkSheets['8gatu'];//--読み込み
MIMIZU := ExcelSheet.Cells[5,7];
ExcelSheet := ExcelBook.WorkSheets['9gatu'];//--書き込み
ExcelSheet.Cells[7,5] :=MIMIZU;
//--------------
/////////////////////////////////
Variant exAppl,exWorkbooks, exWorkbookl,exWorkSheets,exWorkSheet;
exAppl = Variant::CreateObject("Excel.Application");
exAppl.OlePropertySet("Visible",false);
exWorkbooks = exAppl.OlePropertyGet("Workbooks");
exWorkbook = exWorkbooks.OleFunction("Open","C:\\MOGURA.xls");
exWorkSheets = exWorkbook. OlePropertyGet("WorkSheets");
exWorkSheet = exWorkSheets.OlePropertyGet("Item","8gatu");//--読み込み
MIMIZU = exWorkSheet. OlePropertyGet("Cells",5,7).OlePropertyGet("Value");
exWorkSheet = exWorkSheets. OlePropertyGet("Item","9gatu");//--書き込み
exWorkSheet.OlePropertyGet("Cells",5,7).OlePropertySet( "Value",MIMIZU);
BCB5で作ったプログラムをBCB2006にコンバージョンしています。
このプログラムで、別途作成したbplがあって、これは何とか
BCB2006でビルド出来たのですが、パッケージインストールして
いざコンポーネントを貼り付けようとしたら、「リストがインデックスの境界を超えた」
とエラーになります。
何とか調べたところ、以下のプロパティの n に大きな値が入ってきてることがわかりました。
__property AnsiString DspIdxs[int n] = {read = FGetDspIdxs};
それで質問なんですが、このプロパティの int n って初期化が必要なのかと思いますが、
どうやって初期化すればよいのでしょうか?
誰か、この初心者におしえてください。
950 :
デフォルトの名無しさん:2012/03/02(金) 18:33:15.90
大分昔に作ったTurboCで作ったDOSアプリをXE2にコンバージョンしたいのですが、test.prjを何に変えればよいのですか?
TurboCのバージョンは2.0です。
ファイルのリストと、特別に指定したオプションがわかるかといいかと。
.prj は、バイナリファイルなので、
Turbo C 2.0 の IDE のプロジェクトウィンドウで見るか、
prj2mak ユーティリティって、TC20 にあったっけ?
borland の make の並列化対応版て無い?
無い。
954 :
デフォルトの名無しさん:2012/03/13(火) 11:55:20.09
Windows7にC++Builder5を入れたんだけど
プロジェクトのオプションを開こうとするとアドレスエラーが出る
これ回避方法教えてくささい
回避できません。Visual Studio C++ を勧めます。
956 :
デフォルトの名無しさん:2012/03/13(火) 12:08:07.88
マイ糞ソフト信者は消えてくれ
つーか、他のWin7に5入れても特にエラー出ないんだが
今日他のに入れたらエラーでまくりなんだ
なんとかしてくれ
回避できません。
別のまともなツールを使ったら?
958 :
デフォルトの名無しさん:2012/03/13(火) 13:12:23.80
いいから消えろよ蛆虫
960 :
デフォルトの名無しさん:2012/03/13(火) 14:19:16.96
>>959 俺もそうしてる
2台に5入れてんだけどそれは大丈夫なんだけど
今日他のPCに入れたらエラーでまくり理由わからん
フォルダの権限とかもアレしたみたけどだめ
ほんとマイクロソフトはゴミすぎる
わざとかもね
962 :
デフォルトの名無しさん:2012/03/13(火) 16:09:58.05
ああ、ちなみにおかしいのはバージョンが新しいWin7だな
これ完全にマイクロソフトが仕込んだアレだろ
ばーじょんうぷ、はよはよ
いつまで前世紀のもの使ってんだよ
Q>これ回避方法教えてくささい
A>回避できません。
終了
まだOWL使ってるぜ
OWLnextにしようぜ
ああOWLNextだ
owltech
970 :
デフォルトの名無しさん:2012/03/15(木) 21:19:47.22
turboC++2006explorでメソッド単位で折りたたむと、
{}が変なところでぶちぶち切れるんだけど、
修正パッチって出てない?知らない?
ん〜聞いたことないなぁ。Turbo Explorerはもうなかったことにされちゃってるし。
972 :
デフォルトの名無しさん:2012/03/23(金) 13:52:58.06
TSpeedButtonに色付けしたいだけなのですが、
このボタンはグレイ固定?
973 :
デフォルトの名無しさん:2012/03/23(金) 14:05:18.44
うむ
ボタンに色付けしたい*だけ*って表現をよく見るけど、テーマの適用とか考えると
*だけ*じゃなくて相当微妙な問題だってことを理解する必要があるわな。
Windows 7のAero Glassとかだとフォーカスがあるボタンのグラデーションは
実際にはアニメーションしてたりするわけで。
975 :
営利利用に関するLR審議中@詳細は自治スレへ:2012/04/06(金) 10:20:24.21
C++Builder2007なんだけど
起動するたびにツールパレットが非表示になってて使いづらいWin7
XPだと毎回起動してもちゃんと表示されてんだけど
これどこで消えないように設定するの?
976 :
デフォルトの名無しさん:2012/04/13(金) 10:59:29.15
gif画像を表示させるにはどうしたらいいの?
uses
GIFImg;
978 :
デフォルトの名無しさん:2012/04/13(金) 13:52:54.45
デルファイ厨は消えてください^^
979 :
デフォルトの名無しさん:2012/04/13(金) 16:22:49.42
TMemoryStreamで読み込んだjpg画像をTJPEGImageにぶち込んで
ファイルに保存したらファイルのサイズが0になってしまう・・・
jpg->LoadFromStream( memorystream );
jpg->SaveToFile( ExtractFilePath( Application->ExeName ) + "aaa.jpg" );
ちなみに、memorystreamをそのままファイルに保存したらちゃんとjpg画像として見れますし
上のjpgをAssignしてbmpにしてファイルに保存してもちゃんとみれます。
なんでjpg->SaveToFileはダメなんですか??
980 :
デフォルトの名無しさん:2012/04/13(金) 16:32:34.97
でけた。
お前等ってほんと糞の役にも立たない屑だなw
と言われてもGDI+32叩いて作ってしまったしなぁ・・・
>>978 C++なんかやめてdelphiに来い。
格式高きPASCALの世界へ。
->も.ですむよ。
それならC#でもよくね?
てか、begin-end書きたくないって欲求のほうが勝るんじゃ無いかとw
C++脳だと、begin end と :=
で頭ウニになりそうになる