C++Builder相談室 Part21
C++Builderに関する質問・回答や議論等を行う相談室スレッド。 ※2008/07よりCodeGear(Borland IDE/DB部門)はBorlandからEmbarcadero(エンバカダロ)に移動しました 【前スレ】 C++Builder相談室 Part20 http://toro.2ch.net/test/read.cgi/tech/1280985719 過去スレ・関連サイトは>>2-7 あたり。 >>76 XE7なんだが、32Bitコンパイルで通るコードが64Bitコンパイルで通らないんだ。 テンプレート絡みの部分で解釈違うっぽいね そもそも出自が全然ちがうからそういうことも有り得るんだよな ホームページには同じコードで全部okとかC++11とかウソ書いてあるけど MYSQLで指定のテーブルCommentsをFireDacを使用して 取得する方法をお願いします。 ADMetaInfoQuery1->ObjectNameのMetaInfoKindや ADConnection1を試しましたがへたくそで2日間はまっております。 ヒントだけでも結構です。 さすがに解決してるよね? http://docwiki.embarcadero.com/RADStudio/XE8/ja/MySQL_ サーバーへの接続(FireDAC) http://docwiki.embarcadero.com/RADStudio/XE8/ja/FAQ (FireDAC) MySQL使うのってphpのほうが楽なのですかね。 XAMMPの新しいものからはMySQLは標準ではインストールされないらしいし今から覚えるのは微妙な気もしていますが。 Starterが来ても盛り上がらないのは何故なんだ? 登録が嫌ってことなのかな? 盛り上がらないのはマイナーすぎるからじゃないかな? 昔はパソコンショップのソフト売り場でパッケージを買ったけど 今はなんかワケワカランとこから買わなきゃならないんだな GNU GDB 7.2 snapshot - with rudimentary TDS (Turbo Debugger Symbol) format support (originally written by Troy Rollo) obtained from old mail list postings, and migrated to this snapshot with some corrections and slight enhancement. https://sourceforge.net/projects/gdbwtds/ パソコンを買い換えようと思ってるんだけど C++Builderの開発環境を移す巧い方法ないかね 再インストールするのメンドクサイし ファイルとレジストリを漏れなく移せればいいんだろうけど 最近のバージョンなら設定移行ツールなるものがあるけど A tool to convert Borland tds debug symbol files to Microsoft dbg symbol files. https://sourceforge.net/projects/tds2dbg/ DelphiTDS the purpose of this application is to display as much information as possible about debug info (TDS) https://github.com/tothpaul/Delphi/tree/master/DelphiTDS TreeViewのnodeのテキストを改行表示する方法ってありますでしょうか? 昔出来なくてハマって避けたけどまた要求が来て調べ直してる所です 今はBCB6ですが新しい奴で対応出来るなら移行しなければいけないレベルです よろしくお願いします XE8と10.2って結構違う? XE8で作ったのって10.2で普通にコンパイルしてもエラーでない? Zeta Debugger is a stand-alone source level debugger and code profiler for certain applications. http://downloads.fyxm.net/Zeta-Debugger-64970.html C++Builder10.2の無償のアレしれたんだけど コンパイルすると以下のエラーでる パーソナリティ "CPlusPlusBuilder.Personality" およびプラットフォーム "Win32" 用のコンパイラがないか使用できません。 これどやったらコンパイルできるようになりますか? C++Builder10.2でCanvas->TextWidthが実行時にアクセスエラーになるたすけて XE8では問題なく動作してます。10.2でコンパイルし実行すると出るようになった ちなみにCanvas->TextWidthで実行時エラーでるのはTChartのCanvas 試しにTBitmapのCanvas->TextWidthは問題なしだった BCB6からC++Builder 10.2 Tokyoに移行、試行錯誤して慣れるようにしているのですが 以前でしたらエディタ上でのブレークポイントを設定し変数の上にマウスカーソルを移動 させると変数の値を見られたのですが、C++Builder 10.2 Tokyoでは見られません。 そういった機能が無くなったのでしょうか?有るのでしたらどうしたらいいのか 教えてもらえないでしょうか。 お願いします。 >>99 もし Starter をお使いなら Starter では無効化されている機能です。 Delphi なら https://github.com/lynatan/DLight をインストールすれば 使えますが C++Builder だと使えたのか失念しました。 >>100 その通りStarterです。 DLightは私のスキルではインストール出来ませんでした。 ありがとうございました。 BCB6でRichEdhitのダブルバッファをtrueにすると、 RichEdhiのテキストが表示されないのはなぜでしょうか。 長文で失礼します。 今回Windows7からWindows10 proに機種変更をしてbuilder6をC:\borlandディレクトリにインストールしました。 これ自体はすんなりインストールできたのですが、 http://www.gesource.jp/programming/bcb/indy.html を参考にして Indy_9_00_17_srcをインストールしたのですが、 「コンポーネント」-「パッケージのインストール」の所で 「パッケージ C:\borland\Bin\dclIndy60.bpl を読み込めません。 指定されたモジュールが見つかりません。」 と表示されインストールできません。 以前のWindows7では上記のUrlを参考に、すんなりインストールできたのですが。 どなたか解決法を教えてもらえませんでしょうか? また、こうしたらWindows10にbuilder6をインストールしかつIndy_9_00_17を インストールできるよ、と教えてもらえませんでしょうか。 新しいバージョンにすればいいのでしょうが、builder6で作ったソフトのメンテと やはりこのバージョンの方が使い慣れているので愛用していきたいので よろしくお願いします。 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方 役に立つかもしれません グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』 GUIM7 C++Builder10.2.3でカスタムスタイルを適用すると再描画時にちらつきが発生してしまいますが これを抑えるのにはどうしたらいいのでしょうか? Direct2DCanvasやDoubleBufferd=Enabledにしても解決しませんでした。 自己解決しました。 どうもプロパティの値がうまく反映されていなかったらしく、 FormのDoubleBufferd=Enabledにして再構築したらちらつかなくなりました。 1年間の有効期間が切れたら新しいライセンスキーを発行か 以降は有償になったりして rad c++ builderでファイルの入出力やドラッグ&ドロップ 簡単なdb操作は出来る様になったけど、もう一歩踏み出したいです 福岡当たりで勉強会みたいなのはないでしょうか? 大阪、東京でも有るなら飛行機使っていきたいです 「ゆるふぁい」というのを毎月東京でやっているみたいだけども・・・。 BCB5とWindowsXpの組み合わせでは問題がなかったHintColorの色指定が C++Builder10.2.3 CEをWindows10上で動かすと無視されてしまう。 BaloonHintとかでは試していないけど、細かいところの互換性に問題が残っていそうですね。 C++Builder 10.2.3でソースからコンパイルした結果なんですが まぁ、大した問題じゃないから C++Builder 10 Seattleですが、 TEdit.MaxLengthの『アプリケーションがテーマを使用している場合、MaxLength の単位は、バイトではなく文字です。 』ってどういう意味なんでしょうか? 1文字が何バイト使うかは、文字コードだったり文字セットだったりでいろいろ違う という話かしら それとも、テーマを使用とはどういう意味なのか という話かしら >>119 >テーマを使用とはどういう意味なのか こちらの方になります ランタイムテーマをOFFにしても相変わらず文字数なので・・・ チェック外しても治らない場合は、リソースファイル削除して作り直すとかtips昔無かったっけ? UnicodeString us1; us1.c_str() UnicodeStringの文字列をc_str()で取り出すとwchar_t*型の文字列が返されるのね そして UTF8String utf8_1(us1); utf8_1.c_str() UTF8Stringにしてからc_str()で取り出すとchar *型のUTF-8の文字列になるのね Windowsで10.1 Startar使ってるのですが bcc32だとu8""が使えず、UTF-8指定の文字列リテラルが使えないのね bcc32cだとu8""は使えはするがSJISになってしまうようだ utf-8を無理に使わずにwchar_t*型のUnicode文字列を使うほうが楽みたいね C++ならstd::stringよりもstd::wstringを使った方が楽そう UnicodeStringからwchar_t*型のUnicode文字列はc_str()で取り出せるし、 _D("hogehoge") のように_D()で囲むとwchar_t*型のUnicode文字列のリテラルが生成されるようだ その上でソースコードをUTF-8にしておくとSJISでは表現できない文字も普通に使える模様 C++Builder10.2でTChart使っているのですが マウスドラッグでグラフを拡大した時に 拡大したX軸とY軸のMinとMaxを知るにはどうしたらいいですか? マウスのサイドボタン押されたの認識できるイベントおしエロ >>125 WM_MBUTTONDOWN WM_MBUTTONDBLCLK WM_MBUTTONUP WM_XBUTTONDOWN WM_XBUTTONDBLCLK WM_XBUTTONUP あたり? https://github.com/katahiromz/vkeycheck わからなかったらこれもチェックしてみて。 TIdTCPServer + TIdTCPClientで数MBの長大な文字列を送受信する場合はどうしたらいいのでしょうか? Client(送信)側: TIdBytes buf; buf = TEncoding::UTF8->GetBytes(SendStr); IdClient->IOHandler->Write(buf, buf.Length); Server(受信)側: void __fastcall TForm1::IdTCPServerExecute(TIdContext *AContext) { TIdBytes buf; AContext->Connection->IOHandler->ReadBytes(buf, -1); RecvStr = TEncoding::UTF8->GetString(buf); } これだと最初の32768バイトだけ受信されている状態でした。 ネットワーク関係は 相手が送った量をそのまま受け取れると仮定するのが間違い 分割されて複数になるかもしれないし 結合されてまとめて送られてくるかもしれない それを大前提として、データはもう送られてこないとわかるまで 何回も受信するのが当然 >>128 ありがとうございます。 とりあえずこんな感じにしたらできました。 void __fastcall TForm1::IdTCPServerExecute(TIdContext *AContext) { TIdBytes buf; if (!AContext->IOHandler->InputBufferIsEmpty()) { buf.Length = 0; while(1) { AContext->Connection->IOHandler->CheckForDataOnSource(100); if (!AContext->IOHandler->InputBufferIsEmpty()) { break; } AContext->Connection->IOHandler->ReadBytes(buf, -1, true); } RecvStr = TEncoding::UTF8->GetString(buf); } } C++Builder2007をWin10にインスコしようとしたら途中でエラー出てインスコできないんだけど 誰か助けて >>130 まず、どこにインストールしようとしているのかとか インストーラを管理者権限で実行しているのかとか 2007年だとVistaか UAC出始めた時だしProgram Files(x86)にはインストールせず CドライブにProgramsみたいなフォルダ作ってそこにインストールしたほうがいいよ >>131 返事遅れてすみません インスコ先はインストーラーのデフォルトドライブ(C)とデフォパスです 教えてもらったように、管理者権限で別フォルダにインスコしてみます ありがとうございます ダメでした、インスコ先フォルダ指定する前にエラー出てました エラー内容 .NET Frameworks 2.0(x64)をインストールできませんでした Windows updateを利用して手動で更新せよと書いてあるので 全て更新したのですがこのエラーきえません。 このあとXE4とXE8と10もインスコ予定なのですが、これら全てエラーでますかね? これどやったらいいのだろうか・・・ Frameworks Service pack2をダウンロードしてインスコしてから 2007のインスコしたらうまくいきました。 お騒がせしました Builder10でPageControlのTabSheetの背景変える方法教えてくださいよ 以前のBuilderはグレーだったのにいつからか背景白になって糞見づらいので こういう感じのをC++Builderで表現するにはどうしたらいいのでしょうか? function TCustomListView.CreateListItem: TListItem; var LClass: TListItemClass; begin LClass := TListItem; if Assigned(FOnCreateItemClass) then FOnCreateItemClass(Self, LClass); Result := LClass.Create(Items); end; C++Builer10.2でTAnimate動かないんだけど どうしたら動くのこれ。 以前のはAction=trueだけで動いたのに何このバグ ヤフオクでC++Builder6とC++ Builder 2009 Professional DELPHI RAD STUDIO が出品されてます。 OS Windows10で使いたいのですがどちらが良いですか? 中古品だとエンバカ登録のメールアドレスがないと使用許諾コードの入手ができないのでは? 前ユーザが登録したメールアドレスじゃなくても 自分でメアドをエンバカに登録して、それで認証通せばいいだけじゃない? たぶん、この使用許諾コードは他のユーザが使用しています、とか表示されると思ったけど そこで改めてエンバカに事情を説明すれば、認証通してくれるかもしれない(経験ないから分からない) PC買い替えで同時インストール数(だっけ?)超えた場合はエンバカに連絡すれば認証通してくれるよね それと同じで エンバカが中古販売を認めているのならだけどね、認めてなかった場場合最悪ライセンス料金請求(新規購入して)されるかもしれんけど >>138 です。 前利用者が登録してなかったのか、メールアドレスも登録できました。 (インストールまでエラーが三個ほど出た。) 2枚CDが入ってたけど、1枚しか使わないんでしょうか。 あとavastウイルススキャンがデバッグの時いちいち動作して、デバッグできないです。 >>143 本体インストールは一枚だけ もう一枚はオプション的なアプリケーションとかだったと思うけど自分はインストールしていない >avastウイルススキャンがデバッグの時いちいち動作して avast使ってないから詳細は答えられないけど、 たいていavast側に除外する設定があるはずなのでググるなりなんなりして設定してみて あとインストールおめ ありがとうございます。 高額の買い物だったので動作してくれてあんしんしました。 それと、以前どこかで見かけたのですが、C++98 とか C++ 11とか、コンパイラ(visual studioとかC++ builder)の対応表、ご存じないですか? Firefoxのお気に入りがすべて消えてしまってわからなくなりました。 TChartで現在表示されているY軸の最大値と最小値を取る方法教えて Chart1->MaxYValue だと現在表示されているのではなくてY軸の最大値だったので C++Builer10.2で256x256のアイコンをアプリケーションのアイコンに登録しようとすると 「アイコンを設定できません。システムリソース不足です」とエラーが出るのですが これ登録する方法教えてくだあし。 それとも64x64が限界ですか? >>148 いえ、ありがとうございます。 色々調べたらどうもアイコンが原因で読めなかったみたいです。 アイコンエディタで開いて保存してから読み込んだら正常に読むことができました。 Win10 2009でデバッグしようとしたらフォームを閉じた後 bds.exe - bordbk120N.dll Assertion failure:"(!"SetThreadContext failed")" in ..win32src\thread32.cpp at line 434 Continue exection? と聞かれてYESでもNOでも再起動するしかなかった。 ググったらdllのバイナリ書き換える方法が載ってた。 ひやひやしたけどなんとかなった。 なんでこんなバグ直さないのかな? C++Builder 10.4 hotfix3 でデバッグ実行時 「〇〇〇.exe エントリポイントが見つかりません」 「プロシージャエントリポイントILfreeがダイナミックライブラリ〇〇〇.exe から見つかりませんでした。」 というエラーが出ます。 ilink32ではエラーが出ておらず、再ビルドするとエラーが消えて暫くすると再発します。 何か解決方法はないでしょうか? onidleの使い方がよくわかりません。 助けてエロい人 Builder2009で質問です。 OnIdleの使い方がよくわかりません。 http://docwiki.embarcadero.com/Libraries/Sydney/ja/Vcl.Forms.TApplication.OnIdle アプリケーションがアイドル状態になった際に発生します。 OnIdle イベント ハンドラを記述すると、アプリケーションがアイドル状態になった際に、特別な処理を実行させることができます。 アプリケーションは、コードを処理していないときに、アイドル状態になります。たとえば、アプリケーションは、ユーザーからの入力を待っている際になどアイドル状態になります。 OnIdle は、アプリケーションがアイドル状態に移る際に、一度だけ呼び出されます。Done パラメータが false に設定されない限り、継続して呼び出されることはありません。Done を false に設定したアプリケーションは、過度の CPU 時間が消費されるため、システム全体のパフォーマンスに影響がでます。 うーん。 読んだんですが実例コードないから、よくわからないんですよ。 使い方がよくわからないから助けて、と言うのがよくわからない 使いもしない機能の使い方を知らなくても困らないのでは? TActionの更新などはOnIdle イベント 内ではないけど、OnIdle イベント が呼ばれるプロシージャで行われている 直ちに更新する必要があるわけじゃないけど定期的に更新する必要がある場合に使う感じかね 同じ用途でTTimerなんかもあるけど、TTimerの場合アプリがなんか他のメッセージ処理していても時間が来れば呼ばれるのに対して OnIdleは他のメッセージ処理をしている間は呼ばれない ユーザの操作(入力)に対してアプリが応答、その最後に状態を更新するなんてのが使い方としては適正かなと思う ただ場合によってはいつまでたても呼ばれない可能性もあるのと OnIdleに時間のかかる処理を入れるとアプリの応答性が悪くなるので注意が必要 >>158 一秒間60フレーム(古いかな)とかを実現するのにタイマーより(精度が)良いのかと思ってます。 使ってみたいだけで確かに困ってはいないです。 >>159 精度はないよ 言った通り、アプリのメッセージループでウインドウメッセージが空だった時に実行される つまりずっとメッセージが届けばいつまでたっても実行されない可能性がある 一定時間に動作することを期待するのは無理 入力待ちのように「空いた時間に処理をさせる」ための仕組み .net用に作られたCOMコンポーネントをbuilderからアクセスできる? 調べてもbuilderからCOMは作れるってくらいしか見つからないんだけど。 C++Builder10.4.2でSDL2を使用したいのですが .includeの段階で躓いています。 includeとlibのパスは何処を指定するといいのでしょうか? 最近のバージョン使ってる人ってどのくらいいる? 10.4.2でWin64使ってるけど品質がクソ過ぎてイヤになってくる 10年前のXEから付いてくるCodeSiteを初めて使ったんだけど、 すっげー便利だな 10年間も知らずにテキストのログファイルにシコシコ出してたのが悔しいのう 10.4.2使ってるよ デバッガがダメダメなのもそうだけど、TwineCompileを有効にすると落ちやすいのと ヘッダを書き換えるとクリーンアップせざるを得ないのが悲しい サードパーティーコンポーネントのインストーラが残念なのも何とかして欲しい TwinCompileは何ともないな GetItのフリーのコンポーネントはC++向けの設定をちゃんとやってくれない物が多いね 前のバージョンではそんなこと無かったんだけど、10.4ではTurboPack系のコンポーネントは全滅してる Win64 C++では実行時パッケージを使わないとデバッグ中の例外でブレークしない(直ったことになってる) TwineCompile何ともないのか。じゃあこちらの環境依存かな こちらは逆に10.4.2にしてからTurboPack系が良くなった 実行時パッケージをリンクしない様にするとトラブル多いね ブレークが効かないのはこちらも困ってる ステップ実行もおかしくなるし、この辺は早急に直して欲しいね。 後、エディタの「定義の検索」が全く効かないのだが、これもおま環なのだろうか エディタの支援機能はC++では2009の頃から使い物にならない TurboPack系は10.4.2でC++のライブラリパスの設定が漏れてて静的リンクできない >>169 普段から実行時パッケージ使ってるの? 俺は使わない主義だけど >>170 すまん、今日入れ直したらできなくなった 前は自分でパス通してたのかもしれん BPLはVCランタイムと違ってどの環境にも入っている訳じゃないから 実行時パッケージは通常使わないね でもFireMonkeyだと10MB超えるから悩ましいところ 仕方ないからデバッグビルドでは実行時パッケージ有りにしてる 今のプロジェクトは16MBにもなる 客がなんか言ってきたら、EXCELは22MBだよって言おうと思ってる お前のソフトはEXCELほどの機能があるのか?と言われると困るけどw 10.4.2入れ直したらエクスプローラからのドラッグ&ドロップで WM_DROPFILESメッセージが飛ばなくなってるな 昔からある BEGIN_MESSAGE_MAP MESSAGE_HANDLER(WM_DROPFILES, TWMDropFiles, WMDropFiles) END_MESSAGE_MAP(TForm) でもイベントハンドラに飛ばない 過去できていたプロジェクトでも再構築すると同症状になるが、これはおま環なんだろうか >>173 俺の所ではちゃんと動く IDEは確かにクソだが出来上がるコードについての問題には遭遇した事は無い DragAcceptFiles()を呼んでないか、 フォームの別の階層にDispatch()があってそれが呼ばれてるか、ではないか? 原因はVMWare workstation playerのVMWare Toolsで、再インストールしたら治った 後出しで申し訳ないが、VMにインストールしてあるんだよ 最近になってやっとFiremonkeyへ移行するべく動いているのだが グラフィック周りはこちらの方がいいね 画像をファイルから読み込むだけでもパフォーマンス差があるのは驚いた SynEditのようなVCLしかないコンポーネントもそろそろこちらをサポートしてくれないかね sqlite3.dll を使ってみようと思ったんだが まずは簡単にsqlite3_openとsqlite3_closeだけを使ってみるのが目標 implib.exe 使って同梱のdefファイルからlibを生成 で、libをプロジェクトに追加したんだけど [リンカ エラー] 外部シンボル '_sqlite3_open' が未解決(C:\CBUILDER5\TEST\UNIT1.OBJ が参照) [リンカ エラー] 外部シンボル '_sqlite3_close' が未解決(C:\CBUILDER5\TEST\UNIT1.OBJ が参照) これが出る 他にしなきゃいけないことってなんだろうか? read.cgi ver 07.5.4 2024/05/19 Walang Kapalit ★ | Donguri System Team 5ちゃんねる