1 :
デフォルトの名無しさん :
2007/09/01(土) 09:41:22
・過去スレが行数オーバーになったのでhtml化されてない過去スレは削除
・
>>3 にTurboC++入れ忘れ。とりあえず
>>7 に突っ込んだ。次スレで修正よろしく。
・404化したサイトを削除
乙
10 :
デフォルトの名無しさん :2007/09/03(月) 11:08:22
>1 乙 しかし過去スレ省くのはいかんぞ html化してなくても見ることは可能なんだから だれかPart8以降の過去スレアドレスあったらはっといて↓
12 :
デフォルトの名無しさん :2007/09/04(火) 14:55:19
文字列を暗号化・復元をする方法を教えてください
暗号化<−>復号化
×暗号化<−>復号化 ○暗号化<−>復号
× ×暗号化<−>復号化 ○ ○暗号化<−>復号化 ○ ○暗号化<−>復号
2007の優待ハガキがまた来たが、まだの人で布施るつもりの人いる?
うちもハガキ来たけどなぁ なにがうれしゅうてBDSからBCB7に3万も出さなあかんのか Delphiと合わせてこの値段なら検討もするがな こうなると、BDSってのがどうしようもない鬼ッ子になってるなぁ
ウチにも来てる。 BCBとDelphi両方の案内があるのに、注文の選択肢はなぜかDelphiしかない。(w BCBもDelphiも6から全然バージョンアップしてないから、期限切れか? 特に不自由してないからたぶん買わないけど。 独身の頃なら買ったかも。
Highlanderを思い切って安くしないと信者を大勢失いますぜCCさん。
Rad Studio 2007 ってなに?
21 :
デフォルトの名無しさん :2007/09/05(水) 18:56:02
フォームのコンストラクタで ListView->Items->Clear( ); をやってもリストの内容がクリアされません Showイベントでならクリアされるのですが、コンストラクタでクリアする方法を教えてください BCB5
DBX4に少し興味があるのだがどんなもんだろうなあ BDS同様使わないの覚悟でバージョンアップしてみるか、迷うなあ
BCB6 って Delphi と違って TDesigner の互換性がないよね?
C++Builder2007のUpdate2で、pascalでWinSockがusesできるようになったが、 VCLの登録でアイコンが出ないバグは治ってないみたいだな....... VCLを登録している.cbprojファイルの中身をみたら、最初に登録した時は "Res Files="で.dcrファイルが登録されているのに、再度追加して保存すると、 "DCCRefarence="になってしまっていたよ。 現状は、保存後にC++Builder2007を終了して、"DCCRefarence=" を"Res Files="にエディタで修正してから再度開き直して、 その後にクリーン→再構築で何とか凌いではいるが、 これは早く直して欲しいモンだ...... というか、バグレポートを上げるのが英語じゃないといかんから、 英語が苦手なオレには上げられんし、このバグレポートが上がっているかも HPのバグレポートの確認が面倒で分からん...... この辺りも早めにどうにかしてくれって思うなぁ......
普通なら"DCCReference"だよな…保存ファイルのスペルミスが原因?w
26 :
24 :2007/09/06(木) 22:47:07
>>25 あ、"DCCRererence="か......
でも、そこは関係ないよ。オレがただ単にここに書き損じただけだからね。
まず、初期のVCL登録時は、"Res Files="になってて、その時はちゃんと
アイコンが出てるんよ。
で、その後追加登録して保存すると、"Res Files="が"DCCReference="
に勝手に変更になって保存されてて、そうなると今度はアイコン
が出なくなるんだよねんだよね......
あくまでも、オレがやってる事は、"DCCReference="を手動で"Res Files="
に変更してるって事。
こりゃ明らかにバグだろうさ。
本来、"DCCReference="で動くべきならば、そういう風に直して欲しいよ。
スマン揚げ足取りするつもりじゃなかったんだ でもそのスペルミスの才能には嫉妬する DCCレレレンスは秀逸 まあ、クオリティレポートにもDCCReferenceに関する報告がいくつか上がってるみたいだし 対応を待つしかないかも知れんね、これは…
28 :
24 :2007/09/08(土) 18:34:50
>>27 オイラも気にしてはおらぬよ(w
とりあえず、クオリティレポートにDCCReferenceに関する報告
が上がってるなら、近いうちに修正されると信じたい所だねぇ......
そういえば、RadStudio2007へのアップグレードの手紙が来てたが、
これを買わないとこの辺りの修正版もないなんて事ないだろうな......
とかガクブルで考えてる漏れがいる......
C++Builder5以来遠ざかっていたんだけど、2007が出るというので、 また情報を集めているんだけど。 DirectXへの対応って、相変わらずなんでしょうか? COFF2OMF使えるものは良いとして、D3DXがねぇ....
>>29 DirectX使うんだったらどうせVCLの恩恵も薄いんだから
VSで作ればいいだろ
BCB2007と違ってVSは安いしな
>>30 >>31 情報ありがとうございます。
グラフィックを使用した学術研究用(流体力学系)のアプリを書くんで、
最新鋭のグラフィクスを使用しつつも、VCLの手軽さも必要なんですよね。
パラメータを変えながら演算をシミュレートするのが目的で、Direct3Dは
結果の目視確認用なんです。
VCは本末転倒でアプリ作るのが目的になりそうなので却下です。コーディ
ングそのものは目的ではないので....
結論として、現行のBCB5でもう少し様子を見てみることにします。
C丼+Managed DirectXの手も
34 :
デフォルトの名無しさん :2007/09/15(土) 17:32:45
あああああ何でTThreadはメモリリークするんだぁああああ・・・・。
BCB5はしないよ。 BCB6からなんか仕組み変わったらしいよ。
36 :
デフォルトの名無しさん :2007/09/15(土) 23:18:35
>>35 見事にBCB6でございます、ええ。
TurboC++でビルドしようと思ったらgifimaged7とpngdelphiを使ってるせいか
上手くビルドできず。
しょうがないのでマルチスレッドは封印して関数として呼び出す形にしました。。。
使い回せばいいんだよ
TThreadなんか使わなくてもWinAPIで書いちゃった方が早くない?
_beginthreadというのもありましてね
_begintreadex と _endthreadex なんか使ってやるといいよ。 Borland のソースは、多分、ハンドル閉じ忘れてんだろうなぁ〜
posix のスレッドとか使えると便利だけどね。
相手は Windows だし…
BCB6あたりから、マイクロソフトに人材引き抜かれた後だから、 ソースとかガタガタになっていてもおかしくないな。
ヘジ等引き抜かれまくりでMSを訴えたの97年だから、初めからガタガタ
45 :
本田 :2007/09/16(日) 19:50:22
46 :
デフォルトの名無しさん :2007/09/16(日) 21:03:33
おまいら親切だな… 機能の実装が終わったらbeginthread調べて試してみるよ。 ありがとう+.(・∀・)。+
IBXを使ったDB接続についての質問なんですが、キャラクタセットがUNICODE_FSS(UTF-8)のDBにShiftJIS外の文字ってIBX経由での出入力って無理でしょうか? TIBDataSetのSQLまわりがことごとくAnsiStringだのTStringだので固められてるので‥‥ NTFS上のファイルパス突っ込みたいんですが、NTFSのファイル名がUnicodeなので万が一簡体漢字だのハングルだののパス突っ込まれても化けないようにしたいんですが(;゙゚'ω゚'):
BLOBにしちゃえ。
49 :
41 :2007/09/16(日) 22:15:52
>>45 へーこんなのがあったんだ。
どうもありがとう。
mutexも使えるなんてなかなかお通だね。
Win32 でふぉだと引数とかやたらめったら多くて嫌だったんだけど
これは普通に使えそうだ。
TntDBGrid使ってもDataSource以下が非Unicodeのせいか入力確定した瞬間「??」に化けてくれたりとかもうね‥‥(゚∀゚)
>>48 検索かけるんでBLOBは‥‥
51 :
48 :2007/09/16(日) 23:12:15
DBX4にしちゃえ。
>>42-44 その結果生まれたのが、あのVBに汚染された
C#(.NetFrameWork)の文法とライブラリ集だってんだから、
泣くに泣けない。
なんだよ、switch〜case で break 強要とかの頭の悪い文法や
まともに使えないWindows forms系のライブラリ群は orz
君がまともに使えないだけ
ウンコのニオイに慣れすぎて それがウンコであり、くさいとされているものなんだという 認識すら失ってしまうのは哀れ ましてや「ウンコはくさい」と言われて「それは君の鼻がまともじゃないだけ」 とか返すのは人として終わってる ウンコに隷属してもいいことないよ
君がウンコ好きなのはわかった
>>47 ヒント:
UTF8String = String
57 :
デフォルトの名無しさん :2007/09/17(月) 12:37:36
__thread をポインタにずーっと使ってきたが,今になってポインタは スレッド変数にはできませんとヘルプに書いてあるのに気がついた。 今まで問題なく動いてきたし,吐かれたコードを見ても何で使えんのか よく分からん。ホントにあかんの?
>>53 つうか、使った上で言っているんだけどね。
多分、君よりは使っていると思うよ。
ウンコをいじって遊んでるうちに 自分もウンコになっちゃった人とは 会話が成立しなくて当たり前
俺も君より使ってると思うよ
61 :
34 :2007/09/24(月) 19:13:21
お久しぶりです。TThreadでボヤいてた者です。 TThreadをプールして使い回してみたところ問題なさそうなのでこれで行くことにしました。 あとスレッドで処理中にフォームを操作するとCPU100%のまま帰ってこなくなる現象が出ましたが、 TThreadの方にpublicで作ったAnsiStringに渡した文字列が原因だったようで、 スレッドの変数をAnsiString.Unique()して参照を切り離してやったら問題無くなりました。 これから先に嵌る人が居るかもしれないので書いておきます。 改めてありがとうございましたorz
62 :
本田 :2007/09/26(水) 20:22:02
63 :
本田 :2007/09/26(水) 20:37:52
>Why Threads Are A Bad Idea (for most purposes).
> This was an Invited Talk at the 1996 USENIX Technical Conference (January 25, 1996).
> The talk compares the threads style of programming to an alternative approach, events,
> that use only a single thread of control.
> Although each approach has its weaknesses, events result in simpler,
> more manageable code than threads,
> with efficiency that is generally as good as or better than threads.
> Most of the applications for which threading is currently recommended
>(including nearly all user-interface applications)
> would be better off with an event-based implementation.
> The slides for the talk are available in PowerPoint or PDF format.
> There isn't a written paper that corresponds to this talk.
http://home.pacbell.net/ouster/ http://home.pacbell.net/ouster/threads.ppt http://home.pacbell.net/ouster/threads.pdf
これはアメリカのゲームです。1度やってみてください。 これは、たった3分でできるゲームです。試してみてください。 驚く結果をご覧いただけます。 このゲームを考えた本人は、メールを読んでからたった10分で願い事が かなったそうです。このゲームは、おもしろく、かつ、あっと驚く結果を 貴方にもたらすでしょう。 約束してください。絶対に先を読まず、1行ずつ進む事。 たった3分ですから、ためす価値ありです。 まず、ペンと、紙をご用意下さい。 先を読むと、願い事が叶わなくなります。 @まず、1番から、11番まで、縦に数字を書いてください。 A1番と2番の横に好きな3〜7の数字をそれぞれお書き下さい。 B3番と7番の横に知っている人の名前をお書き下さい。(必ず、興味の ある性別名前を書く事。男なら女の人、女なら男の人、ゲイなら同姓の名 前をかく) 必ず、1行ずつ進んでください。先を読むと、なにもかもなくなります。 C4,5,6番の横それぞれに、自分の知っている人の名前をお書き下さ い。これは、家族の人でも知り合いや、友人、誰でも結構です。 まだ、先を見てはいけませんよ!! D8、9、10、11番の横に、歌のタイトルをお書き下さい。 E最後にお願い事をして下さい。さて、ゲームの解説です。 1)このゲームの事を、2番に書いた数字の人に伝えて下さい。 2)3番に書いた人は貴方の愛する人です。 3)7番に書いた人は、好きだけれど叶わぬ恋の相手です。 4)4番に書いた人は、貴方がとても大切に思う人です。 5)5番に書いた人は、貴方の事をとても良く理解してくれる相手です。 6)6番に書いた人は、貴方に幸運をもたらしてくれる人です。 7)8番に書いた歌は、3番に書いた人を表す歌。 8)9番に書いた歌は、7番に書いた人を表す歌。 9)10番に書いた歌は、貴方の心の中を表す歌。 10)そして、11番に書いた歌は、貴方の人生を表す歌です。 この書き込みを読んでから、1時間以内に10個の掲示板にこの書き込みをコピーして貼って下さい。 そうすれば、あなたの願い事は叶うでしょう。もし、貼らなければ、願い事を逆のことが起こるでしょう。とても奇妙ですが当たってませんか?
65 :
本田 :2007/09/27(木) 21:30:35
66 :
34 :2007/09/27(木) 23:42:12
67 :
デフォルトの名無しさん :2007/10/01(月) 13:36:49
>【A3】C++Builderテクニカルセッション >「wxFormsで始めるwxWidgetsプログラミング」 これ、スゲー木になるんだけど、 セミナー行かなくてもセミナー後に資料ダウソできるんだっけ?
できる。
69 :
デフォルトの名無しさん :2007/10/05(金) 15:24:30
できるな
そっかー、セミナーに逝かなくても良いか。一度も行って無いけど。 C++BuilderでwxWidgetsポトペタできるんだったら、超使いまくり。 製品とか確認せずにライセンスイパーイ買って、移行しまくる。 MFCは禁止にしたけど、それに続いてDelphiも禁止令しちゃう。 ま、その条件としては、wxWidgetsをラップしたVCL.wx。
71 :
デフォルトの名無しさん :2007/10/05(金) 18:23:47
TStringGridのDrawCellイベントでセルに色をつけているのですが タイマーで200ms間隔で色を塗るセルを変更してStringGrid->Invalidate( )してるのですが グリッドがチラつきます。 そこで、グリッドの再描画をしてもチラつかないか、指定セルだけ再描画をする方法を教えてください><
簡単なのはStringGrid->DoubleBuffered = true;
元Builder使いとしてはTThreadとか見ると泣ける。 対策? タイマイベントからソースを移した時のウエイトの残骸が残っていたりとかで何かあったけど忘れた。 思い出したら書いとく。
VC++.Netの移行も考えたけど試したら重すぎるのですぐ投げた。
>【A3】C++Builderテクニカルセッション >「wxFormsで始めるwxWidgetsプログラミング」 これって直接聴いたら何らか良い情報あるかなぁ? 組み込みでwxWidgets〜VCL使えてしまったらどーしよー。
wxPythonってのもあるけどそれじゃなくて、 C++BuilderによるwxGUI+Pythonって構造って出来るかな? PythonのHTTP系とかで使いたいモジュールがあったり。 IndyってVCLだから他環境にポーティングできないんだおね。
77 :
デフォルトの名無しさん :2007/10/17(水) 13:58:45
Indyってバグだらけだから使ってない
質問です。 最近LimeWireとかいうP2Pソフトが実装した、告知用の MessageBox を見て、 これはシンプルで素晴らしいと 久しぶりに感心したのですが、こういうのモジュール化さ れていないでしょうか? 動作としては、「○○が終了しました」みたいなMessageBoxがアイコントレイの位置から、 ニョキニョキっとせり出して来るものです。 (生い立ちはRSSリーダーとかVistaガジェットとかがオリジナルなのかも知れませんが) タイマー使って作ってもいいですが、もし既に有ればと思い質問しました。 宜しくお願いします。
「新製品紹介セミナーのご案内: 負荷テストツール」という表題のメールが文字化けして読めないのは仕様ですか? メーラーはbeckyです。
Beckyの仕様です
質問です。 環境:BCB6Pro OS:WinXP アプリケーションからOLEを使ってEXCEL保存はできるのですが、 実行環境にEXCELがインストールされていないと保存ができませんでした。(エラーになる) EXCELがインストールされていない環境でも保存できるやりかたってありますか?
自前でxlsファイル生成するしかないと思う。
>>81 csvで保存。
htmlで保存。
どっちもExcelで読み込める。
レイアウトに懲りたきゃhtmlおぬぬめ。
でもVBScriptは埋め込めない諸刃の剣。
×VBScript ○VBA VBScript/JavaScriptは当然おk
85 :
81 :2007/10/25(木) 21:25:07
>>81-84 レスありです。
当然csvに関しては考慮しましたが、多少のレイアウトありなためNGです。
htmlをEXCELで読み込めるのは恥ずかしながら知りませんでした。
ただ、使う人がPCに詳しくないと考えると、htmlを開くとデフォでIEが立ち上がるので
ここではxlsで保存としたく思います。
そこで
>>82 さんのおっしゃるように自前でxlsを作成しかないかなぁと
思ってはいるのですが、探してはみてもOLEを使う方法しか出てこなくて
困っていたところです。
86 :
デフォルトの名無しさん :2007/10/26(金) 10:37:07
メール受信するならNMPOP3とIndyとどっちがお勧めですか?
>85
Excelのない環境で動かすのに、Excelで起動することを意識するのって変じゃない?
それはそうとHTMLを拡張子xlsで保存したらダブルクリックでExcel開いて読込めた。
試したのはExcel2000。他のバージョンは知らない。
あとは使ったことないがこういうのがある
ttp://xlslib.sourceforge.net/
88 :
81 :2007/10/26(金) 17:40:25
>>87 その発想は無かったわ>拡張子変更
これはこれで使えるシチュエーションが有るかと思うと目から鱗だな。
逆に考えると拡張子連動のWindowsがまた一つ怖くなったって事か...w
#include <Classes.hpp> class HogeThread : public TThread { private: protected: void __fastcall Execute(); public: __fastcall HogeThread(bool CreateSuspended); }; void __fastcall HogeThread::Execute() { // begin(); while(Terminated != true){ // do(); Application->ProcessMessages(); } }
HogeThread *Process; void __fastcall BeginThread(void) { Process = new HogeThread(true); Process->Priority = tpTimeCritical; Process->Resume(); } void __fastcall EndThread(void) { Process->Terminate(); Process->WaitFor(); delete Process; }
>>81 Excel2002以降はxml形式での読み書きに対応しているので、ウチの「OLEを使わない表出力プログラム」はこんなかんじ。
1.Excel上で表の雛形を作成しxmlで保存しておく
2.自作プログラムから雛形xmlを読み込む
3.目的のタグを操作してxmlで出力
xml操作は、Builder6付属のLoadXMLDocument()使ったり、TStringList使ったり。
93 :
81 :2007/10/29(月) 09:33:40
レス遅くなりすみません。
>>89 txtをメモ帳開いてタグ打って、後で拡張子をhtmlに変換してアップロードとか
やってたんで、これが普通と思ってしまっていたw
>>92 とりあえずExcel2003で適当な表を作ってxmlで保存し、
それをエディタで見てみたが…単純な表なのに結構なタグの量ですな…
で、気になるのは、>3.目的のタグを〜〜なのですが、<Cell>タグが並んでいる
だけのような気がして…
TstringListにぶっこんでループで目的の座標までを回せばいけるかな…
ってここから先はBCBじゃなくxmlの話になりそうなので自粛しときます。
95 :
デフォルトの名無しさん :2007/10/30(火) 14:05:15
メール受信するならNMPOP3とIndyとどっちがお勧めですか?
そりゃ、Indyのんが使われたり開発されたり安心じゃね?
97 :
デフォルトの名無しさん :2007/10/30(火) 14:48:59
でも安心感なら標準でついてるNMPOP3のがないですかね? 使いやすさはどちらがいい感じですか? 自分では大差なかったのですが、何か決定的にこっちがお勧め!ってのがあればいいのですが
BCB6からIndy標準。 つまり、NMPOP3をケチラシタんでわ?
99 :
デフォルトの名無しさん :2007/10/30(火) 15:39:42
BCB5しか持ってない>< 6買えとか言わずに、5でどっちがお勧めか知りたいですう
BCB2007はIndy10標準です
やっぱ、標準がIndyに移ったんならIndyじゃね?
日本語対応の点でIndyは色々大変って話もあるな C++BuilderはIndy10使えないし
103 :
デフォルトの名無しさん :2007/10/30(火) 17:43:24
どっちも受信したメールはコード変換しないとダメですよね?
Indyはゴミだからやめとけ
そうはいってもNM(FastNet)はもう終わっちゃっていて先がないから。 そういやRad Studio 2007でもC++BuilderはIndy9なの?
Indyはダメすぎる 自前でなんとかしたほうが無難
別にだめじゃないよ
Indyソース付きなんだから、自前みたいなもん。 但し、pasファイル
単純なソケットなら自前でもいいけど 自前で実装するのは大変過ぎ
111 :
デフォルトの名無しさん :2007/10/31(水) 14:09:59
Visual Studioのほうが良くないか?
V$側の良い部分が1つも無い。
113 :
デフォルトの名無しさん :2007/10/31(水) 14:15:08
ボーランドは高いだろ。 マイクロソフトので十分。 4言語はいってる品。ww
114 :
デフォルトの名無しさん :2007/10/31(水) 14:19:45
ボーランドは1パッケージで1言語。 マイクロソフトには全然負けている。
開発するときは1言語なんだけど。 それより、Indy使えるようになったらスレに入ってきな。 土俵にも上がってないよ。
116 :
デフォルトの名無しさん :2007/10/31(水) 14:21:23
ボーランドの製品かうならデルファイでいいんじゃねえか?
C++ BuilderにVCLコンポ最強。
118 :
デフォルトの名無しさん :2007/10/31(水) 14:25:54
>>115 昔は俺もボーランドのC++ビルダ プロを6万6千円で購入した。
しかし、ほとんど使わないまま、Visual C++(マイクロソフト)を買い。
4言語入ったVisual Stdio スタンダードにアップグレードした。
これでもマイクロソフトのパッケージは2パッケージで3万千円程度。
言語はVB、VC++、VC#、J#と飽きのこない内容充実。
>>118 だから土俵に上がってないおまいが居る(存在する)からって何?
もう避難したから某ランドはつぶれてもいいよ
>しかし、ほとんど使わないまま、 >もう避難したから たてほこ
ちせつな文といい、ヴビ厨って頭がかたわだなw
123 :
デフォルトの名無しさん :2007/10/31(水) 14:40:07
124 :
デフォルトの名無しさん :2007/10/31(水) 14:46:17
>>119 ずいぶん幼稚な次元のコンポーネントの話してたのか?
プログラマ同士でやってくれ。
ぐぐったらよくわかった。
125 :
デフォルトの名無しさん :2007/10/31(水) 15:53:40
舞糞ソフトのセンスは糞 VCやVBも使いづらいしゴミ OSも舞糞ソフトじゃなかったらここまでバグだらけになってないだろうな
なんか頭の弱い人が乱入してきてるみたいだが、 ここはC++Builderのスレなんだから、それ以外は巣に帰ったら? VisualStadioのほうがいいとか…開発者は元ボーランド社員を引き抜いたわけだし。 要はここは質スレだ。俺もスレチだからこれで終わっとく。
はげどー
128 :
デフォルトの名無しさん :2007/10/31(水) 16:04:32
はげどー
129 :
デフォルトの名無しさん :2007/10/31(水) 18:06:52
フレドーフレドー
フロドー
パッケージに何言語も入ってたって意味なくね? メインで使う言語ってだいたい決まってるし
VCL使う事かんがえるとDelphiとC++は一緒にあると便利 少なくとも俺は両方無いと困る
VSのIDEって使えば使うほど重くなってくよね。なんで?
言語がイパーイ入っててもちょっぴり嬉しいんだけど、 中の言語が短命で変わりまくりだったり、 ネイティブモンリーorドトネトモンリーといったカタワはカンベン。 VCLみたく両方対応しろと。
135 :
デフォルトの名無しさん :2007/11/01(木) 09:53:56
こいつらレベル低い派wwwwwwwww
... は? ... で?
137 :
デフォルトの名無しさん :2007/11/01(木) 13:10:19
こいつらレベル低い派wwwwwwwww
138 :
デフォルトの名無しさん :2007/11/01(木) 16:15:07
馬鹿じゃないけど低能が書いてるんだろww
ヒント: バカでも使えるBuilder。
140 :
デフォルトの名無しさん :2007/11/01(木) 17:31:19
んじゃ舞糞ソフトよりはマシってことですね
141 :
デフォルトの名無しさん :2007/11/01(木) 17:41:25
低能がらしい当て痔 wwwwwwww
STRRET構造体のpOleStr,uOffset,cStrがないとか言われるの何とかならんのかな。
>>142 ヘッダ調べてみたら解決した。
STRRET構造体.pOleStr
じゃなくて
STRRET構造体.u.pOleStrだった。
サーセン。
C++Builder2007とRAD Studio2007と、 どっちが良いんでしたっけ?
145 :
デフォルトの名無しさん :2007/11/02(金) 10:22:23
どっちが萌えるってこと?
146 :
デフォルトの名無しさん :2007/11/02(金) 10:22:47
>>118 さん
Vスタジオその値段で買えますか...?
買えるなら欲しい。(アカデミック版でしょうか)
>>147 自己レス。スタンダード版は確かにその値段ですね。
>>118 現状、実際使うのはC++、C#だけじゃん。
J#自体は完全な継子扱いだし、奇形C#のVB(.net)は使うメリットないべ。
更に言えば、VCのライブラリ使いにくいし、役に立つのはC#位。
ってかさ、MSは はいい加減に .NetのWindows.Formsの奇形GUI部品群を
どうにかしろよ。
未だに、まともにUI部品として使えるのはサードパーティー製のデュアル
インターフェースのActiveXばっかじゃないか。
いい加減、.NetネイティブでまともなUI部品を組める様にしてくれやorz
MS製ソフトなんて昔からそんなもんだよ
Windowsのカーネルだけしっかりさせといて、 その上の部品をガラガラポンした方が儲かるんだろ。
152 :
デフォルトの名無しさん :2007/11/06(火) 00:12:06
ユニットってどういう意味ですか? たとえば、クラスを書く場合ユニットを作成し、 Unit.h,Unit.cpp に書いたほうがいいのですか?
>>152 死ね役立たず。
人の足引っ張って楽しいかゴミクズ。
今すぐ死ね。
死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。
死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。
死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。
死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。
死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。
死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。
死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。
死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。
死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。
死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。v死ね。死ね。
死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。
死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。
死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。
死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。
死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。
死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。
死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。ね。死ね。
死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。
死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。
死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。
もちつけw
どうしたんだ ファビョってる朝鮮人でも来てるのか?
なんかC++スレのコピペw
>>152 本来はObjectPascalのソース単位。Unit*.pas = 1ユニット。
BCBだとUnit*.hとUnit*.cppに相当。新規作成>ユニットは同名のヘッダファイルとソースファイルをまとめて作るくらいの認識でおk
unko
なんでC++勉強したいのにObjectPascalまで覚えないといけないのかと最初は思ってたけど Delphiの知識もついて一石二鳥だったなと今なら思える
使い道あんまりないけどな
C++の勉強用にはclosureだのDelphiRTTIだのイベントハンドラ適当に定義すれば動いちゃうだのVCLの疑似GCだの弊害が多すぎる予感。
そうでもないよ。 MFCなんかだとスケルトンコードが大きすぎるし、 かつそれがC++じゃない化け物コードみたいなものだし、 コーディングしてて自分が何したいのか分からなくなるくらい。
C++の勉強にクラスライブラリは直接関係無いというか 本質的な事ではないな
>C++の勉強にクラスライブラリは直接関係無いというか あの、C++での開発っていうのはクラスライブラリの派生なんだから、 勉強っていうのはクラスライブラリの勉強だお。
それなら環境はおのずと決まるだろう
イミフメ
わかってないな
わかってないな 勉強なんだから、特定の環境、例えばWindowsで良質なクラスライブラリを使う勉強をしても構わない。 本番では、その良質な設計の部分のみを参考にして、別の環境でやれば良い。
わかってないな
わかってなくても使えるC++Builderが好きです
その事に関してだけはC++コンパイラ中最強。
わかってないな コンパイラじゃないIDEだ
わかってないな C++Builder製品の分類はコンパイラ
わかってないな ボーランドがOS作ればウィンドウズもここまで糞にはならなかったってことだ
わかってないな Windowsは良いよ。悪いのはヴィジュアルスタジオドットネット(笑)。
少しはわかれよお前らw
わかってないな オラ、悟空だ!
てっきり天津飯だと思ってた
わかってないな ほんとはクリりん
181 :
デフォルトの名無しさん :2007/11/08(木) 18:08:25
VisualC++が真にヴィジュアルな開発環境じゃなかったのが全ての原因ニダ!
マイクロソフトではアレでいっぱいいっぱいだったんですよ
初めてVC使ったときの衝撃は忘れられないな 既にVB使った後だったから更に倍って感じだった
見た目は似てるからなw ぱっと見リソースエディタの画面なんか見ると RADツールじゃないかと勘違いできる
3,4の当時C++BuilderはヘルプがMSにくらべて丁寧で使いやすかった。 今でもC標準ランタイムのヘルプなんかはBuilderのを見てしまう。
ところでJ#常用してる方いますか?
居ませんよ
188 :
デフォルトの名無しさん :2007/11/09(金) 09:34:05
BCB6なんですが、FastMMのインスコ手順をお教え下さい。
189 :
188 :2007/11/09(金) 09:46:58
もう一つ教えて欲しいのですが、 C++Builder6→C++Builder2006だと、 2000増えていますが、 FastMM導入で高速化、 STL差し替えで低速化、 であってますか? 具体的にはSTLは何から何に変わったのでしょう? 何で変わったんだろ。
FastMMはダウンロードしてプロジェクトファイルのあるフォルダに展開、ではだめですか? STLは昔はSTLPortだったのがDinkumwareになったらしい。 MLか公式newsgroupで聞いてみたら?
>>187 やっぱり居ないですか。
僕もあれは幻かなにかだと思っていたんですよ。J#。
.NETなんかに手を出したのが失敗の始まりだったな
>>188 FastMM4BCB.cppのコメントに書いてある
良質なライブラリやパッケージ設計を知ってないと良質な設計は出来ない。
VCLはロジック系は凝りすぎずに素直だし、UI系の継承関係とイベント処理は見事だよ。
ロジック、継承だけならJavaのAPIもいいんだけど、UIのイベント処理が不便。
.Netのは基本概念はいいんだけど、ロジック系はJavaのデッドコピー(っても良い
設計はにかよるからこれはOK)だし、UI部品に到ってはあの腐れVBの部品の
デッドコピーorz
Javaにせよ、.Netにせよ、まともなGUI組める機構+ライブラリがありゃ、更に普及するのに。
>>186 .NetになくてJavaにあるクラスのパチモンを使用したいときだけ呼び出していたよ。
常用は居ないでしょう。
195 :
デフォルトの名無しさん :2007/11/15(木) 14:27:27
Variant u; u=u+pDS1->Fields->Fields[0]->Value; Edit6->Text=u; u=""; コンパイルは通るのですが、バリアントに対する演算が正しくありません。 と言うエラーがでます。 どうすればいいでしょうか?
>>195 Variant u;って初期化しなくてもおkなの?
Variantはふつー使わない。 Edit6->Text = Fields[0]->AsString(); じゃね?
198 :
デフォルトの名無しさん :2007/11/15(木) 14:50:06
>>196 >>197 ご教授のとおり
初期化しAnsiStringになおすとエラーもなくなりなした。
ありがとうございました。
VariantってのはCOMとかActiveXを扱う専用みたいな。 オブジェクトの値の抽象型って意味では既にTFieldってのが機能する。 AsString、AsInteger、とか。
そういやVariantなんてあったっけか 使った事ないや
Excelのセル範囲にまとめて値を代入する時だけVariantの配列を使った。
いや、それがVariantの唯一の用途だから
僕がVariantです
204 :
デフォルトの名無しさん :2007/11/15(木) 16:31:10
じゃあ私はLPSTR 。
それならボクはUTF8String
しかたがない、俺がvoid *だ
>>206 あ、あなたがvoid*!!
われらポインタの主!!へへー!
void氏って香具師?
for(int i=0;i<10;i++) Series1->AddXY(random(10),random(10),"",clTeeColor); TPointSeries、Zoomを何回か繰り返すとポイント消える。 何でなの?
僕はTPointSeriesじゃありませんから
211 :
デフォルトの名無しさん :2007/11/15(木) 20:34:12
僕はchar 3倍速いんだぜ
>>211 でも、全部赤い文字になるし、角も生えるし…
213 :
デフォルトの名無しさん :2007/11/20(火) 15:34:44
半角カナを全角に変換する方法を教えてください
冬休みはまだのはずだが、とにかくbuilderと関係ない
BCB6(SP2)でTClientSocketを使用してTCP接続を行った時に、 大量の接続エラーを繰り返すと以下のエラーが発生して 止まってしまいます。 NonBlockingで接続しています。 ”Windowsソケットエラー:システムのバッファ領域が不足 しているか、またはキューがいっぱいのため、ソケット操 作を実行できませんでした。(10055)” 対処方法をご存じの方は教えてもらえますでしょうか。 TCPClient1->Open(); これの繰り返しです。 OnError()イベントで接続エラーが発生後再度、Open()を 繰り返しています。 最終的に上記のエラーが出ますがOnError()イベントには 飛んでこないで、OnDisconnect()イベントに飛んできてそ の後BCBが上記エラーを表示します。 上記エラーはcatchもできません。
216 :
デフォルトの名無しさん :2007/11/20(火) 16:09:53
知らないならレスしないで下さい!ウザイだけです!
218 :
デフォルトの名無しさん :2007/11/21(水) 04:42:21
>>213 先頭から順に文字を見て置換していけばいいだけ。
WideStringにぶち込んだ方が文字単位で処理できて楽だった。
>>215 非同期をイベントで処理するのが間違いでは?
>>213 C++Builderだろ?AnsiStringで出来るんじゃなかったけ?
221 :
デフォルトの名無しさん :2007/11/21(水) 10:51:02
知らないならレスしないで下さい!ウザイだけです!
LCMapString
223 :
デフォルトの名無しさん :2007/11/22(木) 17:04:33
エクスプローラーからネットワークで他のPCのフォルダを閲覧に行く場合にユーザー名とパスワードが要求される場合がありますが プログラムでユーザー名とパスワードを自動的に入力して他PCのフォルダを閲覧しに行く方法はありますか?
224 :
デフォルトの名無しさん :2007/11/22(木) 17:54:51
ある
お前いったい何が目的だ
>223 WNetAddConnection2
228 :
デフォルトの名無しさん :2007/11/24(土) 18:11:44
>>226 コピペなんだろうね。
なんかデジカメ板でも見た気がするしww
229 :
デフォルトの名無しさん :2007/12/10(月) 18:37:40
TListViewで質問ですが 設計時にリストに値を登録しておいてるのですが フォームのコンストラクタでListView->Items->Clear()をしてもリストがクリアされません フォームのShowイベントでListView->Items->Clear()をするとクリアされるのですが これバグですか?仕様ですか? できればコンストラクタで1回だけやりたいのですが
>229 仕様ですね。コンストラクタの段階ではウィンドウが生成されていないのが原因です。
コンストラクタの段階でウィンドウはハンドルは既にあるし、ListView->Items->Clear()すれば消えてるけど。 バージョンの違いか?
232 :
デフォルトの名無しさん :2007/12/11(火) 10:39:42
>>230-231 お答えありがとうございます
言い忘れていましたが、C++Builder5 proです。
たぶんこのバージョンだと
>>230 さんの言うとおりだとおもうのですがいまいち使いづらいですねこれ
例えば今はForm1のコンストラクタでFormをnewして作成
Form1のグリッドがクリックされるとForm2を表示として
Form2はListViewしかなくここのコンストラクタでiniファイルを読んでリストを作成しているので・・・
Showイベントでリストを作るとグリッドをクリックされるたびに毎回無駄にiniファイルを読んでリストを作ってって
するのを回避したかったのですが・・・
233 :
デフォルトの名無しさん :2007/12/31(月) 09:25:57
すいません、求人の採用条件にVC++経験者が多いのですが、 TurboC++とかBDS2006とかの経験持ちで採用している会社を 探してます。 教えてください。
アンチ乙
235 :
初心者 :2007/12/31(月) 15:30:39
C++builder2007 だけど installaware でインストールプログラムをつくったら vista で システムポリシーがどうのこうの このインストールはできないのこうの とインストールを拒否された。 xp はだいじょうぶなんだけどなぁ。 どないしたらいいねん?
>>233 確かにVC++経験じゃないと嫌だ!と言う面接官もいるかも知れないが
受かりたいなら嫌でも経験者だと言うだろ
そして経験者ってのも曖昧だ
>>233 そういう条件の会社は使い捨て派だから止めといたほうが無難かと
それでも誰かが消費されなければならないのだから、あえて突貫する漢を止める事もあるまい。
VCも覚えればいいだろ
240 :
デフォルトの名無しさん :2008/01/08(火) 12:33:18
フォームにEdit1をおいてFormMouseWheelイベントを取得すると、 フォームとEdit1でイベントを取得してしまって、 計2回呼ばれてしまいます。どうすればいいのでしょうか
bool &Handled
>>233 会社に入ってしまえば、C++Builderに変更可能だお。
そうこうしてるうちに、MFC禁止令を出せばみんな納得する。
MFCはプロジェクトを越えてダイアログを使いまわせないことを理由に社内禁止しますた。
但し、受託は除く。
243 :
240 :2008/01/08(火) 12:56:39
Handled = True; でうまくいきました。ありがとうございました! #ShowMessage(((TComponent*)Sender)->Name);で表示させると、 #Form1から3回も呼ばれてました。。
244 :
デフォルトの名無しさん :2008/01/08(火) 14:11:13
スクロールバーをプロポーショナルにしたいのですが、 Pagesizeの算定方法で定石ってありますでしょうか?
246 :
デフォルトの名無しさん :2008/01/14(月) 21:33:01
C++Builder 2007、Visual Studio 2008 ずばり、どっち買ったらいい?!!
C++Builderに決まってるだろ、常識で考えて。
うむ
>>246 マジレスするとVisual Studio 2008。
VSは無料版で十分。買う必要はない
そりゃぁ君はそれで十分だけど。
買うことに関しては意見が割れますたが、 使うべきは C++Builder 2007 です。
C++Builder 2007買って シェアウェア作って VS2008を買う。 これ最強!
ノンノン VS2008買う→シェア作る→儲かる(゚д゚)ウマー
それは、まあ夢。 まだ、 Delphi無料版→シェア作る→儲かる→C++Builder 2007買う→シェア作る→もっと儲かる こっちの夢の方が現実味がある。
シェアウェア(笑)
まてまて BCB、Delphiでアプリ作るのと MFCで作るのは労力が10倍くらい違うぞ 幾ら最新版の2008買おうが VC+MFCの面倒さは微塵も変わらん それにVCLみたいな便利なパーツもないよ Win32のもってるベースパーツのみ それともマネージドでつくったもんがシェア?w だいたいシェアで儲かるとかどこの国の話だよ どこかのおっさんがVBでアドレス帳つくって それを1000円のシェアにしてたのを思い出したよ だれが買うんだよ >250 ExpressとStandardでは雲泥の差があるんだが 特にVCやるんだったらMFCいるだろうが 安いんだからStandardくらいは買えや
BCB IDEでMFCのスケルトン作成してですね‥‥
MFCで画面作成はカンベン
MFCで画面作成は簡便
* * * うそです + n ∧_∧ n + (ヨ(* ´∀`)E) Y Y *
262 :
244 :2008/01/16(水) 14:57:54
勘違いして他のですが、PageSize = 1; で勝手にプロポーショナルになりました;;
263 :
デフォルトの名無しさん :2008/01/16(水) 15:10:08
勘違いしないでください
ScrollBar1->Position = 0; としたときに ScrollBar1Change イベントを発生させたくないのですが、 どうしたらいいのでしょうか。
TNotifyEvent a = ScrollBar1->OnChange; ScrollBar1->OnChange = NULL; ScrollBar1->Position = 0; ScrollBar1->OnChange = a;
266 :
264 :2008/01/16(水) 15:18:32
おお、イベントハンドラを一時的に退避させるのですね。。 速レス謝謝です!
どういたしました
268 :
デフォルトの名無しさん :2008/01/18(金) 19:49:24
ListViewで特定の行の特定のサブアイテムの値を変更する方法が解りません;; ListView1->Items->Item[SelectedRow]->SubItems->SetText("###"); だとだめですた
AnsiString TListItem::SubItems::Strings[int]
270 :
268 :2008/01/18(金) 20:06:15
毎度ありがとうございます。。 Visual StudioはIDEが助けてくれるのですが、 C++ Builderは情報も少なくて難儀しています;;
結局、Pascal側のソースを読まないとね。
それくらいはヘルプ見れば分かるでしょ
まあそうだね。 BCBだとポインタだから直接[]が使えないんで、Strings[]とかItems[]とかになる、ということが わかってないとPascal読んでも解決しないし 逆に、わかってればヘルプのプロパティで見当つくしね。 補完に頼るといらいらするし。
BCBは補完に頼る軟弱物は斬り捨てる。 逆にVSのオートマシンはすばらしく軽い。
ResizeKit1.5 C++Builder6 これ使ってる人いんの?
それだけのために1万円は出せねーな
画面の解像度なんてめったに変えないだろ 液晶使ってたら固定されてるようなもんだし
2006でD&Dの部分を HDROP &Drop = (HDROP)Message.Drop; と書いていたのですが、2007だと [BCC32 エラー] Unit1.cpp(143): E2357 参照は 'void *' で初期化されているが 'void *' 型の左辺値が必要 のエラーが出てしまいます。なぜでしょうか
279 :
278 :2008/01/21(月) 16:58:21
HDROP &Drop = (HDROP)Message.Drop; int Files = DragQueryFile( Drop, 0xFFFFFFFF, NULL, 0 ); と書いていたものを、 int Files = DragQueryFile( (HDROP)Message.Drop, 0xFFFFFFFF, NULL, 0 ); とすればコンパイル通りました。むむむむ
よく知らないけど typedef void *HDROP; だろうとすると わざわざHDROP(=void*)を参照で受ける意味がわからん。 エラーは、「キャストした型は左辺値じゃない」から出てるんだろうし。
つまり、 >HDROP &Drop がポインタ評価されてたのが2006、 参照とポインタとちゃんと別にしたのが2007ってことだね。
282 :
278 :2008/01/21(月) 18:57:08
283 :
278 :2008/01/21(月) 19:00:11
さらに質問なのですが、2007で、 #difine NAME "わっしょい"; Form1->Caption = NAME "前田"; ってことはできないんでしょうか。gccではできました。
わっしょいのセミコロンいらんべ
285 :
デフォルトの名無しさん :2008/01/21(月) 19:15:44
できません
286 :
278 :2008/01/21(月) 19:16:25
ハッΣ(゚Д゚;)セミコロンがあると、 Form1->Caption = "わっしょい"; "前田"; と置換されて後ろの文字りてらるが無視されるのですね! レベルアップした鐘の音が聞こえます。
287 :
デフォルトの名無しさん :2008/01/21(月) 19:18:20
どっちみちできません
え? できないの?
289 :
278 :2008/01/21(月) 19:30:00
セミコロン外したらできました
あ、できないって書いてる奴の言いたいことわかった #difine じゃだめだな
291 :
デフォルトの名無しさん :2008/01/21(月) 23:06:52
Cプログラマの為に、ポイントをまとめたドキュメントを販売しています。
プロのプログラマでもあまりにレベルが低い人が多すぎます。
そんな人に限って、自分のレベルの低さを自覚していない、、、
本人は構わないかもしれませんが、その下についた新人プログラマは
たまったものではありません。(私が経験しました。)
今になって分かりました。
彼らもまた、理解できていなかったのです。
プログラミング言語の一番の習得の近道はきちんと理解している人にアドバイスをもらうこと。です。
私のC言語に取り組んだ7年間をすべてぶつけたつもりでテキストを作りました。
私の会社の後輩からは、どんなテキストよりもわかりやすかった!や、
今まで教えてくれていた先輩や、テキストたちが、ちゃんと理解できていないことがわかりました。
と、嬉しいコメントをたくさんもらいました。
そしてなにより、彼らの社内での評価がとても高いということが、私の誇りです。
興味がある方はどうか、下のサイトをみてみてください。
http://mori.eco.to/
たけーよ
TurboC++(C++Builder2006) Explorerは\0です
今さらCってどうなのよw
295 :
デフォルトの名無しさん :2008/01/22(火) 13:26:05
今更Cってどうなのよって言う奴ってどうなのよw
少し興味はあるけど、Cマガジンの春の特集程度かも
\8800って高杉 誰が買うかよカス
構造体、もしくはクラスをTObjectListで管理したいのですがうまくいきません。 class test { public: AnsiString fileName; AnsiString fullPath; } foo; foo.fileName = "momomo"; TObjectList *list = new TObjectList; list->Add( foo ); なコードを試したのですが、 [BCC32 エラー] Unit1.cpp(28): E2034 'test' 型は 'TObject *' 型に変換できない [BCC32 エラー] Unit1.cpp(28): E2342 パラメータ 'AObject' は TObject * 型として定義されているので test は渡せない と出てきてしまいます。何処がいけないのでしょうか。 またTObjectListから格納した構造体に list->Items[0]->fileName なんてあくせすできるのでしょうか?
TListには静的確保したオブジェクトは格納できない。 test* foo = new test()で確保してポインタを渡すか、std::vector<test>を使う。 test foo; list->Add(&foo); はスコープ抜けた時点で実体が消滅するからやっちゃダメ。
300 :
デフォルトの名無しさん :2008/01/22(火) 15:36:57
list->Add( (TObject*)&foo );
上記で追加されたようですが、取り出し方が解りませんT-T list->Items[0]->fileName; では取り出せませんでした。 test でキャストするのでしょうか。。?
302 :
デフォルトの名無しさん :2008/01/22(火) 17:00:44
ええー無視なんかしてないですよー「上記で追加されたようですが」って引用してますし、 最初の質問でアクセス方法も書いたので、 アクセスできてからまとめてお礼をしようと思ってました……
>今更Cってどうなのよって言う奴ってどうなのよw せめてC++だろ。
>>304 Linuxとかの/usr/binの中の多くはまだまだ、そしてこれからもCな現実。
TObjectListがどうしても理解できなかったので、
std::vectorを使うことにしました。ありがとうございました。
って
>>302 、あなた誰なのよ
>>302 たまに出てくるあれだな、
自分が答えてないのにえらそうな態度とりたい香具師
303 != 301 と打ち間違ったのだと思ってた
( 303 != 301 ) == True;
>>305 Cなんて誰でもできる
もっと他のがいい
じゃあDelphiやれば
312 :
デフォルトの名無しさん :2008/01/23(水) 15:12:02
すでにフォームに貼り付けてあるTImageにpublicな変数を追加したいのですが どうやったらできますか?
314 :
デフォルトの名無しさん :2008/01/23(水) 15:25:14
>>313 あー!
こんなことできるんですね。
つかやっぱTimageを継承してクラス作る以外にないですよね
ありがとうございました
>>314 Tag プロパティでは足りないの?
文字列ならCaption・Hintに突っ込むとか
ポインタなら Components に突っ込むとか
自分なら、ポトペタするときはTPanelを貼り付けておいて、 TImageEx *ImageEx = new TImageEx(this); ImageEx->Align = alClient; ImageEx->Parent = PanelImage; とかする。
32bit幅の値ならproperty TComponet.Tag : Integerを使うという手も
318 :
デフォルトの名無しさん :2008/01/23(水) 15:45:33
>>314 Tagの他にもう1つほしかったんですよ!
>>316-317 みなさんいろいろ工夫してるみたいですね
んで、Tagじゃ足らんからHelpContextも使おうっておもってたんですが
TImageにそれないんですよね・・・
ちなみに、Hintも使ってます・・
この際、Tagにクラスポインタを‥‥
320 :
デフォルトの名無しさん :2008/01/23(水) 16:01:02
Tagにポインタをぶち込むのも考えてましたが・・・ できればTImageだけの閉じたあれでしたかったので ちょいと皆様に良い知恵があったら戸おもいかきこみいいfなsんふぁ
>Tagにポインタをぶち込むのも考えてましたが・・・ たしかに、これではクラス派生のOOPにならないから良くない。 316の場合、綺麗にファイル単位でクラスを分けれて作成&メンテしやすいお。
322 :
デフォルトの名無しさん :2008/01/23(水) 16:09:46
>>321 えーっと
>>316 さんの策はとりあえずフォームに
Imageを貼り付ける場所にPanelを貼り付けて
んで実行時にPanelをコンテナとしてその上にTImageを継承したクラスを
のっけるってことでいいですか?
>>322 その通りです。
コンストラクタでのっけてます。
deleteはしなくてもおk。
TImageクラスとかの名前を、
TImage_(用途).cpp とか T(用途)Image.cpp
にしてまつ。
324 :
316 :2008/01/23(水) 16:19:57
>コンストラクタでのっけてます。 の場合もありますし、 何度もデータを入れ替えしたい場合は、 キッチリ削除したいので、 Form::init メソッドでのせる場合おあるかな。
325 :
デフォルトの名無しさん :2008/01/23(水) 16:33:05
>>323 なるほどなるほど。
しかしこの場合はイベントハンドらはどうしていますか?
予めダミーっぽいTImageでClickとか設計時に作っちゃってから
TImageExのnewしてからわりあててますか?
326 :
316 :2008/01/23(水) 16:57:30
>>325 そうそう、目が効いてますね。
イベントハンドラがちょっぴりテクニックです。
TForm1に、
>void __fastcall Event_OnClick(TObject *Sender);
みたいな感じで手書きでイベントハンドラ作っておきます。
そうしてTImageExをnewしたあとに、イベントハンドラを外からセットします。
ちょっと読むと、え”ーという感じかもしれませんが、意外にこれに利点があります。
1.イベントハンドラの無い派生クラスなので、複数画面で共有しても全く弊害無し
2.Form1のイベントハンドラとして書くので、TImageExと他の例えばTGridExと
それらのオブジェクトが連携するように記述できる上、
それらのオブジェクトが互いに参照しない
派生クラス作るんなら派生クラス内にイベント書いてコンストラクタで入れちゃえばいいんじゃないん? class TxxImage : public TImage { public: TxxImage() : TImage() { OnClick = TxxImageClick; } private: TxxImageClick(TObject* Sender) { ... } };
328 :
316 :2008/01/23(水) 17:04:56
>>327 いや、やっぱ、イベントハンドラはForm1のものとして書いたほうが、色んなオブジェクトにアクセスできるお。
逆にTxxImageに色んなオブジェクトアクセス参照用にプロパティ付けようもんなら、
TxxImageが依存するものが増えちゃう。
329 :
デフォルトの名無しさん :2008/01/23(水) 17:08:48
>>326 なるほろ。イベントハンドらの指定はわかりました
利点についてはまだ納得できるレベルに到達していないので精進致します
>>327 それならイベントからフォームをアクセスしたい場合に困ったりしないですか?
あー、イベントから他のコントロールへのアクセスは考えてなかったわ/ ,' 3 `ヽーっ
331 :
316 :2008/01/23(水) 17:13:40
氏ぬんじゃない
332 :
デフォルトの名無しさん :2008/01/23(水) 17:18:43
しかし皆さん色々とうまい方法を持っていますよね 久々に良い勉強になりますた(;´Д`)
333 :
デフォルトの名無しさん :2008/01/23(水) 18:23:00
BCB5で起動直後メインウィンド以外のフォームをShowModalで表示するとき 一番いいと思われる方法はどんなものがありますか? おしえてエロい人!
起動直後に、 Form2->ShowModal();
>>334 ありがとうエロい人!
Application->Run();の直前あたりに書くの?
そうするとメインウィンドは表示されるの?
マルチスレッドじゃないんだから、Runの前じゃそこでダイアログが表示されるだけだろ フォームにタイマーでも入れて、最初の1回目でやればいいじゃない
337 :
デフォルトの名無しさん :2008/01/23(水) 19:01:25
Idle
OnCreateでメッセージ投げるとか
>333はきっとスプラッシュウィンドウを出したいんじゃないかな、と勝手に考えてみたり。 Delphiならそのフォームをinitialization部でCreate/Show/Updateして、そのフォームの OnDeactivateイベントでReleaseとするのが定石なんだが。C++Builderだと initialization部にあたるのはどこなんだろう?
スプラッシュなら、それこそ何時でも好きなタイミングで表示してくれって感じだが。
initialization部相当は クラスのインスタンスをグローバル領域で定義して、そのコンストラクタでやるとか
>>339 WinMain関数のApplication->Initialize();の後ろ辺りでnew/Show/Update。
表示後にメインフォームとか作ってApplication->Run();の前辺りでClose
343 :
デフォルトの名無しさん :2008/01/29(火) 20:02:10
だからcloseはIdleでやるつってるだろ!!このばかちんが!
344 :
デフォルトの名無しさん :2008/01/29(火) 21:02:43
C++Builder 6を使っているのですが。 TPageControlで最後のページを削除した後、 先頭のページがアクティブになってしまいます。 そうでなくて、削除したページの一個前をアクティブに したいのですが、どうすれば良いでしょうか。 以下のコードだと、一瞬変な表示になってしまいます。 ちなみに最後のページ以外は、普通にdeleteすれば そのような現象はおきません。 //最後のページを削除 TTabSheet *pLastPage = PageControl1->Pages[PageControl1->PageCount -1]; delete pLastPage; //先頭のページがアクティブになってしまうので、 //最後のページがアクティブになるように選択 PageControl1->ActivePageIndex = PageControl1->PageCount -1;
一個前のページをアクティブにしてから削除してもダメ?
スプラッシュウィンドウごとき、そんなに凝ったり議論したりするものでない。 出て消えれば、おk。
347 :
デフォルトの名無しさん :2008/01/30(水) 10:01:09
>>345 344です。
一個前をアクティブにしても、結局先頭がアクティブになってしまいます。
C++BuilderのIDE自体は何気に出来てるのに、そのコンポーネントで出来ないとは、
いやな感じだ。
TPageControl::RemovePage()をオーバーライドしないと無理っぽい
delete pLastPageの前に、pLastPage->PageIndex = pLastPage->PageIndex - 1 を入れれば?
>>349 VCLのソース見るとタブ削除時にページ切り替え動作やってるから駄目だと思うお
いや。ソース見た上で言ってるよ。
ああ、削除前に最後のページを後ろから2番目に移動させるのか。
削除前にタブの順番が変わるけど即時描画じゃないから、入れ替え動作は全く見えないはず。
354 :
デフォルトの名無しさん :2008/01/30(水) 14:39:38
役に立たない答えばっかりですね・・・
君が役に立つ答えを言ってもいいんだよ
349ので何か不満あんのか
>>356 それでいけるはず。
C++Builder6って結構モッサリした仕様のコンポーネント多いよなぁ。
358 :
デフォルトの名無しさん :2008/01/30(水) 16:09:43
344です
//最後のページを削除
TTabSheet *pLastPage = PageControl1->Pages[PageControl1->PageCount -1];
pLastPage->PageIndex = pLastPage->PageIndex - 1
delete pLastPage;
>>349 のやり方ですが、大体の場合はうまく行くのですが、
タブをたくさん作って、最後のタブをユーザの操作などで何回も消していくと
タブが表示されなくなり、その状態でタブ表示のスクロール見たいのを
操作すると、中途半端にタブが描画されてしまいます。
Refresh()やInvalidate()などを使っても描画されません。
やはり、最後のタブを消したときに、先頭がアクティブになるのは、
この辺がうまく行かないから、そうしたのではないと考えてしまいます。
そういえばIDEのエディタのタブもそうなるな
最後のタブ消した時だけ PageControl1->ScrollTabs(1) とか
361 :
デフォルトの名無しさん :2008/01/31(木) 20:25:56
344です
>>360 の内容を参考にして見てソースを修正したところ、
一瞬表示がびくつくのと、右端で最後のタブの表示が半分隠れる
場合があるのですが、描画の不具合などがなくなりました。
もう少し、きれいに動作すればいいのですが。
ScrollTabsの引数は -1 の方が良いみたいです。
//最後のページを削除
TTabSheet *pLastPage = PageControl1->Pages[PageControl1->PageCount -1];
pLastPage->PageIndex = pLastPage->PageIndex - 1
PageControl1->ScrollTabs(-1);
delete pLastPage;
362 :
デフォルトの名無しさん :2008/02/02(土) 21:10:47
ビルダー落としたんだが 各サイトの説明が詐欺でできません。 XPのコントロールパネルからのシステムなんて項目ありませんが どうするん?
363 :
デフォルトの名無しさん :2008/02/02(土) 21:30:01
もういいやめたクソが シネよ
春かと思った
うちの大学は春休みだよ
367 :
デフォルトの名無しさん :2008/02/03(日) 10:56:49
まったく初心者に回答すらやらないなんてお前ら醜態をさらしているのか? 俺が醜態を晒しているんじゃない、答える側はお前らだからな。 器の小ささを披露している書き込みが二つだな、恥ずかしい。
そのコピペいただき
369 :
デフォルトの名無しさん :2008/02/03(日) 11:02:45
コピペじゃねぇよ お前がいただくならお前がコピペすんだろ? まったく、上の奴は相談室で回答しないならここに来るなよ
370 :
デフォルトの名無しさん :2008/02/03(日) 11:03:26
371 :
デフォルトの名無しさん :2008/02/03(日) 11:04:33
おっと知的障害の方でしたか 失礼しました
373 :
デフォルトの名無しさん :2008/02/03(日) 11:10:04
>>372 はい身障者差別発言、
まったくどこまで・・・
いや文盲か
375 :
デフォルトの名無しさん :2008/02/03(日) 11:12:40
他所でやれ
376 :
デフォルトの名無しさん :2008/02/03(日) 11:16:35
相談室に俺相談者、俺は場違いじゃないけど、チャチャ入れは場違いだ 普通の初心者レベルの質問に春だとか言う場違いな人は荒らしだな
377 :
デフォルトの名無しさん :2008/02/03(日) 11:20:23
他所でやれ
378 :
デフォルトの名無しさん :2008/02/03(日) 11:22:31
もう自演で言い返すのはやめろ、また醜態さらしか。 見ててくだらなすぎる。もともとお前は場違いなんだから、 もう言い返しに必死になってないで去れよ
Windowsのコントロールパネルの話ならPC初心者板の範疇だろ。常識的に考えて。
暇なの?俺も暇。
381 :
デフォルトの名無しさん :2008/02/03(日) 11:33:30
まだ突っかかってくる辺りがもう・・・
もう最後な、回答してやるのは。
>>379 そんなもん書き方だろ、ボーランドの初期設定からのコントロールパネルの話だし、何言っちゃってるの?
>>380 公言して相手に見せるために言っている辺りがもう・・・
はいここでもうお前らみたいなのとの会話終了、
二度と来るな、書き込みしても放置する
(・∀・)
ここまで俺の自演
384 :
デフォルトの名無しさん :2008/02/03(日) 11:43:34
ああ、最後にもう一つだけ言っとく。 先に突っかかってきたのはお前らだ。 俺は質問しただけだから、いい迷惑だ。 お前らは醜態から始めちゃったわけだ。 自分で招いておきながらそれに言い返したりして、まったくアホか。
362 名前:デフォルトの名無しさん[] 投稿日:2008/02/02(土) 21:10:47
ビルダー落としたんだが
各サイトの説明が詐欺でできません。
XPのコントロールパネルからのシステムなんて項目ありませんが
どうするん?
363 名前:デフォルトの名無しさん[] 投稿日:2008/02/02(土) 21:30:01
もういいやめたクソが
シネよ
364 名前:デフォルトの名無しさん[sage] 投稿日:2008/02/02(土) 21:33:18
>>362 PC初心者
http://pc11.2ch.net/pcqa/ -----------------------------
これで完結してるやん
>362とか書いてあることがマジ理解不能なんだけど、俺の日本語能力はここまで落ちてしまったのか?
春かと思った
ほいで、誰か質問の意味がわかったのか?
>>389 WindowsXPのコントロールパネル内のシステムのアイコンが見つけられません><
じゃないん?
あ、それでいいのか。ボーランドのどうこうって言うからまた別物かと思ってた。
開発環境はTurboC++Builderで、 DirectXを使うのにお勧めな環境やライブラリを教えてください
395 :
初心者 :2008/02/05(火) 21:00:06
Button に Color プロパティがありませんぞ。 どうやって色を設定するのでしょうか。
TButtonをOwnerDrawするかTGraphicControlを派生して自作
TButtonをOwnerDrawする方法はぐぐればDelphiのソースが簡単に見つかる
>395 まぁそういうことなのだが、Microsoft的にはそういうことをしてほしくないらしい。 VisualStyleを適用するとOwnerDrawもうまくいかないような。
399 :
デフォルトの名無しさん :2008/02/06(水) 12:00:36
TImageListで設計時にイメージを追加するとイメージがTImageListのWidthやHeightより 大きい場合縮小して格納とかできますが これをコードで追加する場合はどうすればいいですか?
400 :
デフォルトの名無しさん :2008/02/08(金) 10:32:26
エクスプローラのフォルダツリーのようにTListViewにフォルダツリーを作ったのですが そこで指定したパスのノードを開く方法を教えてください
401 :
395 :2008/02/09(土) 14:14:51
いろいろありがと。>396 >397 >398 visual studio だと簡単にできるのになぁ。 XMLだとか ドラッグアンドドロップだとかも 簡単にはできないのはちょっと不満。
Visual StudioってかC#だろう?簡単に出来るのは。
C# つか.NETか。
>>401 VSでVC++とMFCでそのセリフを吐いてみろ
自分がどれだけラクチンにC++を書いてるのかわかる
ダイアログベースならよゆーっすよw
配置が楽なだけじゃん
いや、でも、VCLより確実に楽
色ボタンなんてコンポ拾って張りゃいいじゃん
それかえって手間だと思う。 コンポーネントの管理がやりづらいからなぁ。
一回登録するだけじゃん。てかそんな事のためにVC使うとか自体あほらしいけど。
411 :
401 :2008/02/09(土) 17:18:45
>>404 それそれ。
MFCのウワサは聞いてるから
最初から手を出してない。だから C++ は
C++ builder に手を出した。
でも C# はホント、楽だよ。
日本語より英語は楽、とかいっても意味はないね
( ゚д゚ ) マアマア
言語仕様にライブリラリを含めた総合的な生産性で判断して楽とか 言ってんじゃないの? 何、その日本語より英語は楽とかとう例え。頭悪そう。
楽とかとう ( ゚д゚ ) マアマア
>>411 .NET系の生産効率の高さは周知だよ
C#に限らずVBでもC++/CLIでもね
WinForm使う限りGUIはラクチン
CGもついてるし
なんだけどね……
初学者がいきなりVC+MFCは敷居高すぎるのは確か
BCBなんかでC/C++に慣れてから
MFC+Win32APIの海へ漕ぎ出した方がいい
コンポーネントを1回登録するだけ マジでそれが理想だけど色々と面倒だよね、あるプロジェクトだけで使えるコンポーネント とか簡単に指定できればいいのに
色々ってナニよ。1回登録したら再インストールするまで何もしてないぞ。
ぜーんぶまとめて1つのパッケージに入れちゃう人もいるみたいだねぇ。
BCBを再インスコしてコンポーネントを入れてたときに作ったコンポーネントを使ってないプロジェクトを開くとエラーになる
名前ぶつかったり、コンポーネントは厳選しないとろくなことがないよ。
>MFC+Win32APIの海へ漕ぎ出した方がいい これをやる必然性が0。 >.NET系の生産効率の高さは周知だよ 大丈夫、ドトネトの事は世の中に知られてないから。 >C#に限らずVBでもC++/CLIでもね これもウソ。 C丼のバージョンうp嵐どころか、managed C++がヒックリかえったね。 ブビに至ってはユーザーがいないから、スクリプトブビ@ドトネトを復活させるとか、割るいとこ鳥。
門外漢がドトネトを語るとこんな事言ってしまうという好例
VCLの方にろくな進歩がないからストレス溜まってるんだよ 次こそはやっと完全にUnicode対応するそうだけど、おせーよw
IBXでUTF-8を楽に扱えるようになるのかい?
IBXはーどーだろ、あれそもそももう期待しない方がいいんじゃね
>IBXでUTF-8 今でも使ってるよ。
再インストールする羽目になった・・・。 また、いちいちプロジェクトファイル編集しなきゃ駄目なのか。 必要ないのに使ってないコンポーネントのlibまで追加するのやめてくれないかなぁ、うざすぎる。
TntのDBコントロールにShiftJIS外の文字ぶち込むと盛大に文字化けしてくれる‥‥>UTF-8
430 :
デフォルトの名無しさん :2008/02/11(月) 00:20:44
bprファイルをIDEから編集してもちゃんと保存されないし酷い仕様だよな 後からのことまーったく考えられてないw
431 :
デフォルトの名無しさん :2008/02/12(火) 15:15:59
おしえてください
// 1 . {. . .ヽ. . ヽ. . ',. .ヽヽ / .:/ ハ: :!: :.:ト、:.:. :\:...l:.. :}: : |_⊥ 、 j . {: .:{ :l、:l、: :.ト-ヽ、_:..`ヽ、j__イ_つノ l 1:ハ.::{ゝl=くヽ:.ヽ トィjr}Tァ┬ァ:.:´| |ハ :ヽlァ{トィrj \i ー_'っ /:.イ-、:。:| ヽ。ハ^rぅ' 丶 ` ノ', く } }:.ol゜ o 。 `ハ 。 {ァ´ヽ ,ー o':.へl お客様の中にエスパー様は ゜ ´ノi\ ー' ィ:;:.ィ/|/゜ 。 いらっしゃいませんか?? 。 o 。 ゜ハヘ;:>ー--<_rv〈、_ / ̄ヽ \/ll }l}`'^'ト、 / ::Y77l j l !_`7 l, ---::、〉 jl l ハゝ-i ヽ Vi } ,' ノ, ー_ヽ } , -‐ァl ノ / レ´,.- j j イ !l / / ハ -,.く!
433 :
デフォルトの名無しさん :2008/02/12(火) 15:23:58
いいからさっさと教えやがってください
434 :
初心者 :2008/02/15(金) 13:57:33
vista + builder2007 だけど デバッグモードで実行して open dialog を開いて 詳細表示にすると builder が落ちちゃう。
435 :
デフォルトの名無しさん :2008/02/15(金) 14:04:58
そうですか
Vistaを窓から投げ捨てろ
C++Builder 2007の体験版みたいなのないですか? RAD Studioは今更JSharpのランタイムが必要とか、トチ狂ったことぬかすので あまり入れたくありません
単独のトライアルはないけど、いずれにせよIDEが使ってるんでJ#ランタイムと.NETは必要だからなぁ。 Turbo C++ Explorerでも同じこと。あきらめれ。
しかし、なんでJ#なんて使ったんだろうね MSですら早々に見捨てたのにw
IDEのリファクタリングでMS-Javaをつかった流れらしい。APIを呼び出せるのがMS-Java→J#となった理由だと。
Lazarusでさえネィティブでリファクタリング搭載してるのにね
442 :
デフォルトの名無しさん :2008/02/25(月) 14:45:13
Indy10 TIdTcpServerの使い方が解らないです。
http://codezine.jp/a/article.aspx?aid=197 ここを参考にIndy9のdelphiソースをIndy10とBuilder2007に置き換えようとしています。
TCPサーバの例 以下行をどう記述すればよいのでしょうか。詳しい人教えてください。
// 接続しているクライアント全員に str を送信する
procedure TForm1.BroadcastMessage(str : string);
var
Count: Integer;
List : TList;
begin
List := IdTCPServer1.Threads.LockList;
try
for Count := 0 to List.Count -1 do
try
TIdPeerThread(List.Items[Count]).Connection.Write(str);
except
TIdPeerThread(List.Items[Count]).Stop;
end;
finally
IdTCPServer1.Threads.UnlockList;
end;
end;
443 :
デフォルトの名無しさん :2008/02/26(火) 17:55:53
TListViewで任意のカラムを非表示にする方法を教えてくださいよ
WinXP BCB5でこんなコードを書くと意図しない結果が返ってくるんですけど、 使い方が悪いんでしょうか? 型を変えてみようとは思うけど、知ってる方いたら教えていただきたい std::vector< bool > vectorbool; for( int i = 0 ; i < 12 ; i++ ) vectorbool.push_back( true ); vectorbool.insert( vectorbool.begin(), false ); bool test = vectorbool[12]; ← falseが帰ってくる。
>443 簡単にはいかないんじゃないかなぁ。ListView_DeleteColumn/ListView_InsertColumnの 組み合わせで頑張るしかないと思う。
>>443 Width=0
>>444 あたりまえの結果じゃん。
マジで理解できなのか、それとも釣りなのか?
マジで理解できないのなら、初心者スレに逝った方が良し。
目が悪いなら眼科池。頭が悪いなら仕方ないけど。
>>446 当たり前の結果なの?
もう一度勉強してみるよ・・。
6はちゃんとtrue返すから、5のバグだと思うけど、 それとは関係なくvector<bool>は使わないほうがいいと、 なんかの有名な本に書いてるらしい。
>それとは関係なくvector<bool>は使わないほうがいいと、 kwsk
>>449 Effective STLの第18項だな
vector<vool>はproxy classを使っているのでよくないんだと
>proxy class サンクス & kwsk
proxy class=代理クラス More Effective C++ 項目30 一般的にはクラスの中にクラスを作って普通ではできないような 操作を行う。
442です。Web検索で中華サイトや英文サイトを彷徨った結果、なんとか解決しました。
結局おまえらって糞の役にも立たなかったね。あばよ
>>449 ありがとう。
VCでやってみてもtrueでした。
なんとなくわだかまりが取れました。
つまりRogue Waveのバグか こいつバグ多いねえ
459 :
デフォルトの名無しさん :2008/02/28(木) 14:15:17
std::fstreamはstd::iostreamから派生しており、std::iostreamは std::ostreamとstd::istreamから多重継承しています。 しかしstd::ostreamを受け取る関数にstd::fstreamのオブジェクトを 渡してCodeGuardを掛けると多量のエラーメッセージが実行時に 出ます。これって仕方ないのですか?
はい
461 :
デフォルトの名無しさん :2008/02/28(木) 15:19:28
糞仕様だな。アップキャストにも対応してないのか
はい
もしかして、BCBってboost::trim()使えない?
はい
いいえ
バージョンくらい書けよ
BCB5でTQueryを使って2秒おきにデータを取得しているのですが 数分放置しておくとソフトが落ちてしまいます。 やっていることは Query->SQL->Clear( ); Query->SQL->Add( "select * from table1" ); Query->Open( ); Query->First( ); Query->Next( ); 30件くらい Query->SQL->Clear( ); Query->SQL->Add( "select * from table2" ); Query->Open( ); ここで落ちます Query->First( ); Query->Next( ); 10件くらい と1つのモジュールで同じTQueryで2つのテーブルを読んでいます TQueryを使う際になにか注意事項とかありましたら教えてください
2秒でデータを取得が終わる前に、QueryのOpen() を実行したらデータセットがメモリから破棄されて、そこにアクセスしたr落ちるんじゃね? >TQueryを使う際になにか注意事項 2秒以内に処理が終わらなかったら、処理をスルーするって工夫要るけど。 それに加えてQuery使いまわすんじゃなくて、作り直したら? Query = new TQuery(this); try { Query->SQL->Clear(); //処理 __finally { delete Query; }
>>468 try内でやっているのですがcatchにはいかずにそのまま落ちてしまいます
>>469 TTimerで2秒間隔でやっていてTimerに入るとタイマーを止めているので
一応DB読み込みが再度呼ばれることはありません。
Queryでテーブル2つを読むより毎回newしたほうがいいのでしょうか?
471 :
467 :2008/03/03(月) 10:37:14
ちなみに、Query1でtable1、Query2でtable2と Queryを2つにしてやってみたのですがやっぱり強制終了してしまいます ソフト起動時に設定 Query1->SQL->Clear( ); Query1->SQL->Add( "select * from table1" ); Query2->SQL->Clear( ); Query3->SQL->Add( "select * from table2" ); { Query1->Open( ); Query1->First( ); Query1->Next( ); Query1->Close( ); ここで必ず強制終了します Query2->Open( ); Query2->First( ); Query2->Next( ); Query2->Close( ); }
レコード件数は可変? 1回多くNextしたりするとドカンと落ちる現象はあったような。
473 :
467 :2008/03/03(月) 10:50:50
>>472 可変ではありますが
query->First( );
for( int i = 0; i < query->RecordCount; i ++ ){
query->FieldByName
query->Next( );
}
としています・・・
ちなみに落ちる場所は同じなのですがタイミングはそれぞれで
1分で落ちる時もあれば5分で落ちる時もあります。
1回目で落ちるということは今のところありませんが・・・
>for( int i = 0; i < query->RecordCount; i ++ ){ これ、マズイとオモ。 >while (!Query->Eof) { みたく、次が有るか無いかの判定じゃないと。 上にも書いたが無いのにNextすると、catchできずにドカンと落ちる。
475 :
467 :2008/03/03(月) 10:56:59
>>474 うわー
やっぱりTQueryがまずいんじゃなくて処理がまずいですか・・・
今はレコード数に変化がなくその処理でレコード数が同じだったからいいとおもってましたが
見方がわるかったんですね、ありがとうございます。
その方法で試してみます。
476 :
467 :2008/03/03(月) 11:06:02
うう、やっぱりCloseで落ちてしまいます・・・
しかし
>>474 さんのやりかたはヘルプにも書いてあったので参考になりました。
ちなみにtable1の方のQueryをためしにnewして動的に作成してやってみたところ
今のところ落ちてないです。
うーん、設計時に追加したのと動的にnewしたものと何が違うのかなあ・・・
これtable2もnewで作成したqueryを使う方が安全なのかな・・・
>query->FieldByName してる最中に、該当レコードが消えてる可能性は無いの? 該当レコードが消えるなら、RequestLive を falseにしてる方が良いかなぁ。
478 :
467 :2008/03/03(月) 11:30:19
>>477 レコードが消えることはありませんがRequestLiveはtrueにしてます・・・
やっぱりnewで作ったqueryでやると落ちないのですが
これってRequestLiveがfalseだからなのでしょうか???
ちょっと試してみます
>newで作ったquery >RequestLiveがfalse 落ちる原因は分からないが、上記2つを揃えるQueryは氏ぬ程安定する。
480 :
467 :2008/03/03(月) 11:43:17
>>479 確かにnewでつくったqueryでは全く落ちなくなりました。
ちなみに、試しに当初のに戻して設計時に追加したqueryで
RequestLiveをfalseにしてやっているのですが
これもまた今のところ落ちていません。
これ2秒毎にDBを読んでいるのですが、DB読み込み時にnewするのと
起動時の最初にnewするのとどちらがいいでしょうか?
>DB読み込み時にnewするのと 起動時の最初にnewするのと Queryをグローバルとして使いまわしはソース読みにくかったりするが、上記2つは大差無いんでわ?
482 :
467 :2008/03/03(月) 11:56:07
皆様いろいろありがとうございました。 RequestLiveをfalseにするだけで落ちなくなりました。 なんかこれ片方向しかあれとか書いてたからこれをtrueにしないと 書き込めないとおもってtrueにしてたのですが(この同じQueryで別タイミングで書き込みもしてます) これselect時のみのあれだったんですね。 ちなみにUniDirectionalはtrueでいいのでしょうか? メモリ節約になるとかかいてますので
>ちなみにUniDirectionalはtrueでいいのでしょうか? メモリ節約になるとかかいてますので 聞いた事歩けど、気にしたことは無い。
484 :
467 :2008/03/03(月) 11:58:23
>>481 そうなんですよね、グローバル化は見づらくなるのですが
なんというか2秒毎にnewしてdeleteしてって繰り返しても大丈夫なのかなとか・・・
1ヶ月とか放置するので何か昔のmallocのイメージがあってちょっと不安になったので
>なんというか2秒毎にnewしてdeleteしてって繰り返しても大丈夫なのかなとか・・・ 大量のnewや大量のdeleteは性能に関係するかも知れないが、 2秒にnewとdelteの嵐なんてC++ではちょーふつーできごと。
486 :
467 :2008/03/03(月) 13:08:40
>>483 これはtrueのままでも落ちるのとは無関係みたいなのでそのままにしておきます。
>>485 あ、そうなんですか。それを聞いて安心しました。
まあVCL使ってると内部で山ほどしてるでしょうし問題ないですよね。
>大量のnewや大量のdeleteは性能に関係するかも知れないが、 正しくは、 >超大型メモリのnewやdeleteは かな。
心配してるのは断片化だろ? サイズの違うメモリーを確保・開放を続けると メモリの利用箇所が虫食いになって最後は使えなくなるという。 これは今の組み込みや、昔のPCのようにメモリ容量の制限がキツイと困る問題だけど 必要なメモリの何10倍もある現代のパソコンでは問題にならない。
489 :
デフォルトの名無しさん :2008/03/04(火) 02:14:05
Windowsなら・・・きっとWindowsなら何とかしてくれる・・・ そう信じてnew-deleteしまくってます。。。
newとdeleteをオーバーロードしてオブジェクトプールから取り出すようにする
>心配してるのは断片化だろ? サイズの違うメモリーを確保・開放を続けると >メモリの利用箇所が虫食いになって最後は使えなくなるという。 コンパイラが、スタックエリア、ヒープエリアを確保しているだろうから、それはない。
493 :
デフォルトの名無しさん :2008/03/04(火) 18:18:24
ForceDirectoriesが未解決ってエラーが出るのですが#include <FileCtrl.hpp>以外に何か必要なことってありますか?
ヘルプを見なさい
495 :
デフォルトの名無しさん :2008/03/05(水) 10:24:54
知らないならレスしないでウザイだけです
そうですね。知らないなら回答すべきではないです。 でも俺は知ってるからレスしました。ヘルプを見なさい。
497 :
デフォルトの名無しさん :2008/03/05(水) 22:30:41
わからない七大理由 1. 読まない ・・・説明書などを読まない。読む気などさらさらない。 2. 調べない ・・・過去スレ、ググるなど最低限の内容も自分で調べようとしない。 3. 試さない ・・・めんどくさいなどの理由で実行しない。する気もない。 4. 理解力が足りない ・・・理解力以前の問題で理解しようとしない。 5. 環境のせいにする ・・・自分が悪いのではなく環境が悪いと責任転嫁する。 6. 人を利用することしか頭にない ・・・甘え根性でその場を乗り切ろうとする。 7. バカだから ・・・バカだから。
499 :
デフォルトの名無しさん :2008/03/06(木) 10:31:56
へたれな事ですみません。。 BorlandC++Builder6を使用しています。 コンポーネントの端に「Office2k」があって、Work,Excel,Access等の制御ができそうなものがあります。 ヘルプやキーワードにも見当たらず、使い方がいまいちわかりません。 田舎にしては大きな本屋で調べても、「Office2k」に関するものはみあたりませんでした。 てか、Borland自体少ないですし。 どこかにリファレンスや参考になる資料はないでしょうか。 教えてください。 お願いします。
500 :
デフォルトの名無しさん :2008/03/06(木) 10:35:15
1つ抜けていたので追記します。 使用したいOfficeはAccessです。 ごめんなさい。。
501 :
デフォルトの名無しさん :2008/03/06(木) 10:52:26
グg(ry
502 :
デフォルトの名無しさん :2008/03/06(木) 10:59:07
各種検索サイトも見たのですが、リファレンスらしきものは発見に至りませんでした。 Excelの使用サンプルはあったのですが、Accessで使用したいことに応用はできませんでした。 どのコンポーネントをどう使えば、どうなるのかさっぱりなんです。 皆様からみればアホみたいな事ですみませんが、なにか知っていることがあれば教えてください。 お願いします。
具体的に何を実現したいのかを聞くのが当たり前だと思うのだが。 具体的に何を実現したいのかさえわからないのかね。
504 :
デフォルトの名無しさん :2008/03/06(木) 11:31:31
何がしたいのかは上にも書きましたが、使い方を知るためのリファレンスを探しています。 解りにくくてすみません。
微妙じゃね
ググって実質80数件しか出ないコンポは茨の道な気ガス
まあCOMコンポーネントだから、リファレンスならMSDN見るのが一番でない。 ぱっと見VBAのしか見当たらないけど。オブジェクトやメソッドの意味は調べられるし、 タイプライブラリから機械的にクラス作ってるだけだから、出来る事は同じはずda。
ACCESS扱うだけならコンポーネントなんて通さなくても自分でソース書いた方が楽
やることはほとんど同じだけどな
COM関係は自分で理解して書いた方が楽だね そもそも付属のコンポ、マトモに動作するかすら疑わしい
人が手で書いたものじゃないんだぜ。getter/setterをプロパティにしたり、インターフェースを スマートポインタで包んだだけのもの。
まぁ、アーリーバインディングを行う場合は、C++Builderのタイプライブラリ インポーターを使ってラッパ作成しないと死ぬが、 実際はそこまで速度要求するとは思えないからバリアントを使ったレイトバインディングで十分だとは思う。 アーリバーインディングはサーバーの特定のバージョンに依存しちゃうしね。
514だけど、514の発言は気にしないでくれ。ここは、C++Builderのスレね。Delphiメインな 俺はC++Builderにバリアントなんてあるのか知らん。めんご。
拡張キーワードみたいのはなくて、クラスで表現してるから見た目はいまいちだけどあるよ。 Variant v = Variant::CreateObject("Access.Application"); v.OlePropertySet("Visible", true);
普通のサンプル利用するならTVariantの方がわかりやすいかもしれん Variant、OleVariant、TVariant、好きなの使えw
504は既にみんなが何を書いてるのかすら理解に苦しんでるかもしれんw
すみません、他のモジュール書いてました。。 VB等とプロパティが同じなら、そこから追えそうです。 ありがとうございました。m(_ _)m
C++Builder2007にはIBXついてますか?
え”、付いてなかったら、自分自滅するお!
522 :
デフォルトの名無しさん :2008/03/11(火) 10:39:39
DBGridで行毎に色を変える方法を教えてください
InterBaseのコンポーネントは一通りあるよ。C++Builder2007 Professional。 使ったこと無いけど。
>>522 TDBGrid使ったことないけど、多分TDBGrid::OnDrawDataCellで記述する。
525 :
デフォルトの名無しさん :2008/03/12(水) 18:37:11
>>524 確かに色を付けることはできるのですが
イベントに来たときのRowはどうやって取得したらいいですか?
527 :
デフォルトの名無しさん :2008/03/13(木) 10:04:57
>>526 そうそうそれです!
色の塗り方はわかるのですがイベントに入った時のRow又はレコード位置がわからないので
奇数行ならっていう条件がわからなくて・・・
それと色を塗るとテキストが消えてしまうのでStringGridみたいに
Cellsから値をとってTextOutできないのでやはりレコード位置から
データを持ってくる必要がありますか?
528 :
デフォルトの名無しさん :2008/03/13(木) 10:06:55
と、思ったのですが
>>526 さんのリンクにしっかりやりかた書いてますね・・・
ありがとうございました。
参考にさせていただきます
529 :
デフォルトの名無しさん :2008/03/13(木) 10:38:43
うーん・・・ やっぱりColumn->Field->DataSet->RecNoが常に-1になってしまって 行の判別ができないです・・・ 何故RecNoが-1になっちゃうのでしょうか?
データベースによってはRecNoは無効になる。というかそういうRDBMSのほうが多いのでは?
531 :
デフォルトの名無しさん :2008/03/13(木) 13:19:28
ヘルプにも-1になるって書いてますねこれ。 TQuery使ってるのですがどうやってレコード番号というか グリッドの行を識別したらいいんでしょうか
RDBのテーブル設計で、Int型のレコード番号つけてそれをプライマリキーにするだろ、jk。
533 :
デフォルトの名無しさん :2008/03/13(木) 15:46:02
そんな頭の悪いレスを望んではいません
イベントハンドラでセルのTop座標が受け取れるので、それをセルの高さで割って見てはどうだろう
535 :
デフォルトの名無しさん :2008/03/13(木) 17:40:14
す、スクロールしていたら・・・
VCLコンポーネントでマルチスレッドをする方法はないでしょうか。 TImageがフォームに二つあり、極端に大きな画像を両方に読み込ませたいとか。
互いに別の空間で動いていたら問題ないけどね 同じメモリをアクセスする場合は1wordアクセスにするか、出来ないなら排他処理する。 メソッドポインタが2wordになる事に注意して書けば大丈夫でしょう。 Loadする場合は、 1, まずParentを外し、フォームの参照をnilにしておく。 (フォームでそのImageを間違って参照しないように) 2, LoadFromFileまでは別スレッドで行う為の 1word のグローバル変数のフラグを立てる 3,読み終わったら、そのスレッドからフォームにメッセージを送る。 メッセージでフォームの参照とParentを元にも戻す A,B 2つある場合は、それぞれフラグを別にして、読み込みスレッドは1つで 片方が処理終わってからフラグを見てBを読む。
ここはBuilder相談室。
539 :
デフォルトの名無しさん :2008/03/14(金) 08:25:35
>>536 JPEGやらPNGやらで展開処理が重くてマルチスレッド(マルチコア対応)化したいというのなら
展開用スレッド作ってそれぞれ展開してsynchronizeだかなんだかでVCL割り込んでフォームのTImageに紐づければよくね?
いつも御世話になります。 フォームを徐々に透明化して行きフェードアウトするコードを書いています。 for文がPCの処理に依存している為、 どんな環境でも(ある程度)同じ間隔で 透明度の変化を希望しています。 なにか良い手はないでしょうか? システム版画利案が痛いですが。ソース晒します。 for(int it=100;it>0;it--){ fmShow->fcfmShowTransparency(it); Sleep(1); Application->ProcessMessages(); } void __fastcall TfmShow :: fcfmShowTransparency(int intTransparency){ //ツールチップの透明度を設定 int intMyTransparency=(int)((double)intTransparency*2.55); // *255/100 fmShow->AlphaBlendValue=intMyTransparency; } 環境winXP bcb2007
541 :
デフォルトの名無しさん :2008/03/16(日) 19:44:40
>>540 フェードアウトに掛ける時間を決めて、経過時間から不透明度を設定するというのは?
// 1000msでFO(簡略化コード。※バグあり)
DWORD dwStart = ::timeGetTime();
while( 1 ){
int nOpaque = 255 - ( ( ::timeGetTime() - dwStart ) * 255 ) / 1000;
if( nOpaque < 0 ){
break;
}
Form->AlphaBlendValue = nOpaque;
Application->ProcessMessages();
::Sleep( 1 );
}
Form->AlphaBlendValue = 0;
時間が厳密じゃなくてもいいのなら、タイマイベントでいいと思うけど。
::AnimateWindow(Handle, 1000, AW_HIDE | AW_BLEND);
545 :
デフォルトの名無しさん :2008/03/16(日) 22:01:36
AnimateWindowなんてAPIあったのか・・・俺も使おうかな。
::Sleep( 1 ); この「::」ってなんですか?
Global scope
つけなかったらどうなるの? どんな影響が。。。 気が向いたらオシエテ
そのコードの書いてある名前空間内(グローバル名前空間内でないとする)に Sleep という名前の関数なりなんなりを作った場合に そちらが使われてしまう。
なんとなくわかりました。
551 :
デフォルトの名無しさん :2008/03/17(月) 01:22:12
Vista用の256x256アイコンを含ませる方法ってないですかねー・・・ PNG圧縮のかかった形式でicoに含ませてからbrcc使うとコケちゃうし・・・
>>551 VisualStudioを使ってください。中途半端な部分がたくさんあるので
CodeGearの製品はお勧めできません。
M$の製品は完璧でうらやましいです
VCはいいけどVBは糞だったなぁ
AnimateWindowの質問したやつですが、 AlphaBlendValueで半透明状態からの フェードアウトアニメーションはできるものでしょうか? AnimateWindowは255から0にしかならないものですか? ちょっと確認したくて。BCB2007 winXP
556 :
デフォルトの名無しさん :2008/03/20(木) 11:47:32
>>555 XP使ってるなら自分で確認できるんじゃね?
もちろんそうなんですが、できないと思ったからです。
AnimateWindowの仕様かもしれませんが、
もしできないのであれば、
>>542 さんの
ソースでやるしかないので、確認です。
ぐぐってもピンとこなかったので。
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Form1->AlphaBlend=true;
Form1->AlphaBlendValue=200;
}
void __fastcall TForm1::Button2Click(TObject *Sender)
{
::AnimateWindow(Form1->Handle,1000, AW_HIDE | AW_BLEND);
}
自己中で申し訳ないです。
>>529 ClientDataSetを使えばいいんじゃなかったか。
Builder2007使ってるならフォームのAlphaBlendValueを タイマーとかでループで減らしていけばいいんじゃね?俺はそうしてるよ
そうなんです。はじめはループさせてフェードアウトさせていいたのですが、 アニメーションを教えてもらったが、 半透明だとうまく動かない。 やっぱり動かないの?っていうことです。 お騒がせしました。 次の相談どうぞ
561 :
デフォルトの名無しさん :2008/03/24(月) 10:07:35
Builder2007ってXP Homeじゃインスコできませんか?
563 :
デフォルトの名無しさん :2008/03/25(火) 14:52:15
HomeでもSP2ならいけますた。SP1はインスコ途中でダメって出てインスコできんかった
よくできました!
565 :
デフォルトの名無しさん :2008/03/27(木) 10:59:13
2007って以前の5とか6みたいな画面にできない? 画面構成変わってめんどいんだけどこれー
BCB6をインストールして、コンパイラとライブラリ一式だけBCB6上に上書きするとか
埋め込みデザイナのチェックを外せ
568 :
デフォルトの名無しさん :2008/03/27(木) 13:29:21
>>566 いや6もってないし
>>567 とりあえずデザイナだけは埋め込みじゃなくなったけど・・・
デザイナとオブジェクトインスペクタとソースは別窓にしてOK
しかしツールバーとかあの辺がうざいー
しかもこれつねに他の窓の下にくるからツールパレットがソースの下に隠れてつかえね
かといって横表示にしたら文字があれしてうざいし
以前のようにタブで選択できればいいんだが・・・
569 :
デフォルトの名無しさん :2008/03/27(木) 13:41:56
うーん、エディタ窓を切り離したい
570 :
デフォルトの名無しさん :2008/03/27(木) 13:45:27
あ、さっき別窓であれしたらだめだったのに今度でけた
571 :
デフォルトの名無しさん :2008/03/27(木) 13:49:14
あ、やっぱダメかあ これソースを別窓でひらいたらそのソースだけかよ めんどくせー
572 :
デフォルトの名無しさん :2008/03/27(木) 13:58:29
ソースを別あれにするのは諦めた、この糞仕様は涙を飲んで我慢しよう しかし、しかしだ! VCLデザイナを分離させると常に前面表示なのは納得いかねえ!! これソースにかぶるとみえねーじゃないか!! エロいおっさんVCLデザイナがソースの背面にいく方法をおしえてくれ
とりあえず、埋め込みデザイナをオフにして慣れるのが一番。 そうすれば、いつでもVisual Studioに移行できる。
ある外部DLLを使ってるのですが、 このDLLは内部でスレッドを作っていて、更にそのスレッド内で例外が起きてもcatchしてないようで 本体のEXEまで巻き添えになって死亡してしまいます。 こういうヤヴァイDLLでもEXEが巻き添えになって即死しない方法はありますか? EXEはBCB製ですが、DLLは何で作ったか解らずソースもないので変更できません。
>>574 DLL呼び出し部を別プロセスに分けて、共有メモリとかプロセス間通信を使って本体とデータをやりとりするとか・・・
プロセス間通信ってむずかしいですか? プラグ印をつくるには、dllで提供されるとおもうのですが、 素人にはexeが作りやすい。 できるだけ気軽にプラグ印開発するのに、 親exe+dllではなく、親exe+子exeという格好に 実装したフリーorシェアってありますか? 用途は親が小難しいことやって、プラグ印フォームで 情報表示。ユーティリティーなんて実現可能なものでしょうか?
>プロセス間通信ってむずかしいですか? 別にそれほど 設計を間違えなければ >実装したフリーorシェアってありますか? さぁ? コントロールパネルのスクリーンセーバーのプレビューはそれに近いかも >情報表示。ユーティリティーなんて実現可能なものでしょうか? 可能かどうかっていうと、可能だろう
Winampはプロセス間通信で、他のアプリから再生制御したり、情報取得したり出来るようにしてるな。 プラグインというかフロントエンドだけど。
579 :
デフォルトの名無しさん :2008/03/28(金) 12:01:05
ちょwwwwwwww InternetOpenとかなんだけどBuilder5でちゃんとコンパイルできてたのに 2007でやるとリンカエラーになる・・・ とおもってヘルプみたらlibファイル変わってるじゃん馬鹿!! まあファイル名を変えたらちゃんとできたんだけど、ころころ変えるなやなあ
580 :
デフォルトの名無しさん :2008/03/28(金) 12:10:15
ちょwwwwwwwwww Builder5でTPanelのColor変えたら背景色変更してたのに2007じゃ変わらない・・・ これマジでわかんないです、エロい人TPanelの背景色の変え方教えてください
581 :
デフォルトの名無しさん :2008/03/28(金) 12:10:26
>>576 です。
一度調査してみます。
情報ありがとうございました。
ニコ堂厨キター
584 :
デフォルトの名無しさん :2008/03/28(金) 13:21:20
ちょwwwwwww うへwwwww変わったwっうへうへwwwww オブジェクトインスペクタで一度Color変更してから実行したら動的に変更してもちゃんと色変わったwwwww なにこの糞仕様wwwwwwwwwwwwwwwwwwwwww これ他のコントロールも危険っぽいwwwwwwwwwwww
書き込みキター
>>580 ParetBackgroundやTransparentかな?
ついでに私も質問・・・
Graphics::TBitmap *bitmap = new Graphics::TBitmap();
bitmap->SetSize(SpeedButton1->Width, SpeedButton1->Height);
bitmap->Canvas->Brush->Color = clRed;
bitmap->Canvas->FillRect(TRect(0, 0, bitmap->Width, bitmap->Height));
SpeedButton1->Glyph = bitmap;
こんな感じでやって見ましたがボタンの色が何一つ変わりません。
どなたか教えてくらさい・・・
587 :
586 :2008/03/28(金) 17:30:13
あ、超初心者用スレが別に存在するんですね。 向こうで質問しようと思います。 スレ汚しスンマセン・・・
> 注意 ビットマップの左下のピクセルは「透過」色用に予約されています。 > ビットマップで左下に位置するピクセルはすべて透過になります。
589 :
デフォルトの名無しさん :2008/03/28(金) 18:51:04
>>586 いやwwwwwwwwwww
>>584 ですたよ
5からまんま移植してやってたんだけどね
つかSpeedButtonなら予め用意したビットマップを設計時にあれするとかじゃだめなの?
>>588 ありがとうございます。
おかげさまで実現できました。
>>589 把握シマスタw
ビットマップは、ボタンのサイズより少し小さく色づけしたいので、今の方法にしようと思います。
>>576 です
プロセス間通信についてですが、
WM_COPYDATA と
tp://gimite.net/bcbqtree/qtreemain.cgi?mode=thread&thread=628
共有メモリ
tp://ww4.tiki.ne.jp/~yonyon/programing/bcb/tips/tips-api.htm
を拝見して、動作確認できました。管理者に感謝
前者はウィンドウハンドル、後者は任意のユニークなID
1.使い勝手としては後者が使いやすいのでしょうか?
2.また、前者は受け取り側フォームひとつにつきひとつなのでしょうか?
ところで、複数のデータcharとintが4つくらい送りたい場合、
3.やはり、送信側・受信側も4つのID(後者)が必要なのでしょうか?
ひとつのIDでは複数遅れないのでしょうか?
4.また、それが一般的なのでしょうか?
ちょっと世間一般の意見をお伺いしたくて。よろしくお願いいたします。
4つのID->5つのID
共有メモリと言うと普通は[ファイル マッピング]を使う [名前付き共有メモリ]だと思う。 これなら読み書き出来るメモリを共有する事になる。 2番目はアトム(GlobalAddAtom) グローバルアトムなら確かにプロセス間で渡せるけど これはメモリ共有というイメージではない。 構造体を送りたいという場合、 アトムで送る場合は、構造体をシリアライズ=文字列化して送ればいい WM_COPYDATAで送るなら構造体のポインタを送ればいい。 文字列を含む場合は、その構造体にインスタンスが完全に含まれるようにする。 ポインタや参照を含む形では駄目。 WM_COPYDATAは1対1の通信に便利だけど1対1でしか使えない。 グローバルアトムを使う場合も、相手の窓ハンドルを使う限りは1対1になる ファイルマッピングなら、複数で通信出来る。 他にwindowsにはメールスロットというのがある。CreateMailslot して後はファイルと同じようにするだけ これは同じPC上のプロセスだけではなく別のパソコンにでも送れる。
ああごめん。 2番目は HWND_BROADCAST で全部の窓アプリにメッセージを送ってるから 1対多通信が出来るんだね。
たたたいへん参考になりました。 受信側が実装しやすいものを精査して 組み込んでみます。感謝。 MyTipsとして残しておきます。
メールスロット、メッセージが来るタイミングを窓へのメッセージで受け取れたら最高なんだけどな
597 :
デフォルトの名無しさん :2008/03/31(月) 10:25:49
プロセスと通信するより、女の子と通信したいです。
599 :
デフォルトの名無しさん :2008/03/31(月) 14:18:35
TSQLQueryでMySQLからデータの読み書きをしてると そのうちSQLQuery->OpenやSQLQuery->ExecSQLでEAccessViolationが出るのですが・・・ これを使う際に何か気をつける点はありますか? Builder2007です
600 :
599 :2008/03/31(月) 16:13:48
どうやらTSQLQueryでselect文を発行するとダメっぽい。 updateやinsertならなんぼやっても大丈夫なんですがselectを1回でもするとダメですね。 やっていることは・・・ SQLQuery->SQL->Clear( ); SQLQuery->SQL->Add( "select * from testtable" ); SQLQuery->Open( ); if( !SQLQuery->Eof ){ val = SQLQuery->FieldByName( "VAL" )->AsInteger; } なんですが、突っ込むところはありますか?
もうちょっと詳しくデバッグしてどのメソッド読んだ時に落ちてるか 調べなさい。
602 :
599 :2008/03/31(月) 16:40:48
603 :
599 :2008/03/31(月) 17:53:23
>>602 は僕ではないですよ
今までの検証結果でわかったことは・・・
1.select文だけ
2.update又はinsert文だけ
1,2は各々なら共に何回やってもOKで
updateやinsertをやってから1回でもselectを行うとエラーになります。
このエラーはソフト終了時にコードガードが
リソースリーク: メモリブロック (0x14DB5B0) が解放されていません。
メモリブロック(0x014DB5B0) [長さ: 64 バイト] は SysGetMem
によって確保されました。
と出るのですが・・・
あー、それ俺もなったよ。2ヶ月くらい悩んだ。 結果的に自分のプログラムが原因じゃなかった。 よく分からないけどUpdateを当ててからか?なんかそれからおかしくなってたのかも。 解決するか分からないけど30万円で情報を提供してやるw
605 :
599 :2008/03/31(月) 19:22:33
>>604 確かに自分のソースはどう考えてもおかしくないですねこれ。
やってることは単純だし、どちらか片方コメントにしたら全く落ちないし
とりあえず、定期的にinsertを行ってる状態でselectするために
SQLQuery->Open( )でこける(何事もなかったかのように素通りしソフト終了時にエラー)
これをSQLTableにかえてみたんだけどやっぱりエラー(´・ω・`)
SQLの事はよく分からんけど、俺の場合はプログラムが半フリーズしてて なんでだろうと、プロジェクトを調べ回ったあげく、とりあえず俺は以下のでリソースリークも半フリーズも直った。 プロジェクトソースの SetApplicationMainFormOnTaskBar(Application, true); をコメントアウトしてみて
607 :
599 :2008/03/31(月) 20:29:00
>>606 コメントにしてもかわりませんでした><
ワロスwww残念だったなw まぁ頑張ってくれw
609 :
599 :2008/04/01(火) 10:47:52
と言うか、try〜catchでcatchに入るだけで終了時にコードガードのエラーが出る なんですかこれ?Builder2007のバグですか?
ヒント:メモリ破壊
611 :
599 :2008/04/01(火) 12:20:24
>>610 馬鹿はレスしないで下さい。うざいです。半年ROMってろクズ
612 :
599 :2008/04/01(火) 14:20:34
>>611 も俺じゃないっす
とりあえず解決しますた
try〜catchは謎だけどSQLQueryはExecuteSQLがあれですた
これ引数省略できるんだけど省略するとコードガードエラーになります(デフォfalse)
問い合わせがパラメータをまったく含まないあれなんでtrueでずっとfkさおf
自分証明したければ捨てでいいからトリップつけれ
614 :
599 :2008/04/01(火) 18:38:24
>>613 馬鹿はレスしないで下さい。うざいです。半年ROMってろクズ
2007使ってるけど、実行したら、 時々オーエスごとフリーズする。 一分後動作しやがる
>>615 それ以前に、ちゃんとした日本語で的確な説明ができるように訓練しなさい。
618 :
デフォルトの名無しさん :2008/04/02(水) 21:13:14
CoShellWindowsの使い方を教えてください。 delphiで下記のコードをBuilderに移したいのですがうまくいきません。 sw : IShellWindows; Count : Integer; 途中省略 sw := CoShellWindows.Create; Count := sw.Get_Count; CoShellWindows* sw=new CoShellWindows(); Shdocvw::IShellWindows* is=sw->Create(NULL); int Count=sw->Count; とすると、コンパイラは通るのですが、3行目でEAccessViolationが発生します。
>>616 んーん、実行F9で実行すると、
下のウインドウでぴこぴこっと
複数行出てきて、さぁ、実行だと言う矢先、
フリーズ。タスクバーのブラウザさえ表示できない。
まぁ、結構むちゃなソース実行しているからかもしれないが。
とりあえず、2007の新規プロジェクト立ち上げ、
いちから構築するつもり。bcb5のソースをそのまま使ったのが
いけないのか?
それに、開発しているPCでは動くのに、ゲストOSでも動くのに、
ノートPCに入れたら、動的可変フォームのTImageがうまく描画できない。
ラベルがいいのかなぁ。
はぁ。ま、どうでもいいか
>>618 BCB6だとヘッダいじらないとコンパイルすらできないな。
で、コンパイルして実行した結果は問題なかったけど。
Get_Countでも出るの?
>>618 TShellWindows *sw = new TShellWindows(NULL);
int Count= sw->Count;
でどうよ
622 :
618 :2008/04/02(水) 23:10:54
>>620 そうですかぁ。BCB6ではOKですか。
こちらの環境は、BDS2006です。
自分は、delphiは全然使ったことがないので
delphi のコードは試していないのですが、ぐぐると同様の霊がいっぱい出るので
delphiでは問題ないのだと思います。
ぐぐっても、Builderでの例が1件もないので、悩んでいます。
BCB6でいけるということは、たぶんちょっとした違いなんでしょうから
もう少し試行錯誤してみます。
>>621 で良さそうだけど、
>>618 のエラーの原因を一応言っとくと、CreateはCOM用のスマートポインタを
返してるんだけど、それを生ポインタで受けてる事だな。次の行では既にReleaseされてて無効になってる。
_di_IShellWindows is = ... とでもすればいいはず。
624 :
618 :2008/04/02(水) 23:19:55
>>621 いけました。
>>623 その通りでした。
TShellWindows *sw = new TShellWindows(NULL);
あるいは
CoShellWindows* sw=new CoShellWindows();
_di_IShellWindows is=sw->Create(NULL);
とすれば、ちゃんと
Countを取得できました。
どうもありがとうございます。
625 :
デフォルトの名無しさん :2008/04/04(金) 17:12:27
TImageかTPaintBoxでスクロールする折れ線グラフ(パフォーマンスグラフみたいなの)を 描画したいのですが、どういうやり方をしたらスムーズにスクロールできますか?
つ TScrollBox もしくは、TFrameにTImageをはっておいて、 TFormにはってあるPanelの上に、 実行時にはる。
628 :
デフォルトの名無しさん :2008/04/04(金) 18:02:02
>>626 TScrollBoxでどのようにやればいいですか?
>>627 DoubleBuffered?
629 :
デフォルトの名無しさん :2008/04/07(月) 10:26:52
Paintイベントでこんなことやってるんですがコピーされません。なぜですか? TRect r = PaintBox->BoundsRect; Canvas->CopyRect( TRect(0, 0, r.right-2, r.bottom-1), Canvas, TRect(1, 0, r.right-1, r.bottom-1) );
パッと見だけで適当に答えるけど、 BoundsRect.Right = Left + Width BoundsRect.Bottom = Top + Height というのは大丈夫か? PaintBoxのOnPaintでもFormのOnPaintでも、Canvasを直接参照すると FormのCanvasになるというのは大丈夫か? CopyModeも大丈夫か? TBitmapに描画して、PaintBoxにコピーした方が良くないか? PaintBoxは描画するエリアを用意するだけで、描画した内容を保存してくれるわけではないよ。 (PaintBox->OnPaintの中だけが全て)
631 :
デフォルトの名無しさん :2008/04/08(火) 18:28:26
>>630 TBitmapからCanvasにアレするようにしました
632 :
デフォルトの名無しさん :2008/04/09(水) 15:08:52
TGraphicControlを継承して描画するアレを作ったのですが クリックされた時のイベントがほしいのですが記述の仕方がわからないので教えてください
633 :
デフォルトの名無しさん :2008/04/09(水) 15:27:48
クリッコイベントできますた(;´Д`)
634 :
デフォルトの名無しさん :2008/04/11(金) 16:02:33
TImageに背景が白の画像をよみこませて表示しているのですが この背景を透過する方法を教えてください
答えは君の心の中にきっとあるさ・・・・
ファイルの列挙を再帰処理で行っています。 _findfirst、_findnextを使用し、ファイル一覧の取得方法はわかりました。 しかし、カレントディレクトリを開始位置としているようです。 指定フォルダを開始点としたいのですが、カレントディレクトリを変更するにはどうすればいいでしょうか?
chdirとかSetCurrentDirとかSetCurrentDirectory。 でも、"C:\\Windows\\*.*"みたいな文字列渡せば、別にどこからでも列挙できるよ?
>>637 なるほど、「*.*」と指定してたのが駄目だったみたいです
ありがとうございました
BCB pro 6 なんですが、アプリ実行中にメモリ破壊が発生したかどうか?っていうの調べる方法ありますか? 1万レコードくらい演算してるんですが、演算結果がてきとーに異なるんですよねorz (今手元にデータがないので結果報告できないんですが、 調べる手段とか手法を今のうちに検討しておきたいんです)
CodeGuardは報告してくれない?
642 :
640 :2008/04/14(月) 17:53:02
じ、じつは、Del ---> BCBを超長年使いながら、 CodeGuardしたことありませんorz
643 :
640 :2008/04/14(月) 18:09:04
CodeGuard のログファイルってどこにできるんでしょうか? 分厚い開発者にもCodeGurad について触れられてないような。。。
つーかリアルタイムでIDEにつらつらと出てくるよ
645 :
640 :2008/04/14(月) 18:27:35
あ、本当だ。 memcmpでAccess overrun 出まくりなんですが、これ、マズイですか?
バグだらけじゃん
そりゃマズイさ
ありえんw
649 :
640 :2008/04/14(月) 18:41:18
逆に言うと、CodeGuardが止まらないプログラムだとメモリ無問題なんだぁ。 なんていうか、こんな便利なものだったとは>CodeGurard memcmpのAccess overrun でプログラムのメモリを破壊という道筋は思いつかないんですけど、そんな事あるんですか?
650 :
640 :2008/04/14(月) 18:43:09
だって、memcmpってメモリに書き込みしないから、スタック壊すなんて無いですよね?
なぜ、memcmpのとこだけおかしてく他のwriteしているところは完璧だと思い込めるのだ。 それが最大のナゾだな。
バグだらけじゃん
今はたまたま動いているかもしれんが エリア外の参照なんて普通にAccessViolationじゃないか
654 :
640 :2008/04/14(月) 18:48:47
バグだらけじゃなくて、memcmpのAOって本当に1行だけですよ。 じゃ、そこ直せばって言われると思うんですが、 実データじゃないとバグ出ないんですよね。 開発マシンじゃ無バグ(現象出てないだけかorz)なんです。 件数多くなれば、memcmpがメモリを破壊する???
655 :
640 :2008/04/14(月) 18:49:41
>エリア外の参照なんて普通にAccessViolationじゃないか あ、なるほど。 でも、読み出しだけなら無問題じゃないの???
656 :
640 :2008/04/14(月) 18:51:33
今日のところは、これで失礼いたしますが、 CodeGuardを使えるようになったのは大収穫でした。 有難うございましたorz
もう少しOSの事も勉強した方がいいと思うぞ
現象だけから見たら、ブチ壊れたポインタ使いながら走ってる典型。
特定条件でポインタの初期化が抜けているに90リラ
660 :
デフォルトの名無しさん :2008/04/14(月) 19:24:55
661 :
デフォルトの名無しさん :2008/04/15(火) 10:09:57
質問です よくウィザード画面てありますよね? 次とか戻るとかの、あれってあたかあも1つのフォームでやってるように見えるのですが 一般的にはどうやってるのでしょうか? 1.同サイズのフォームを用意して次を押されると次のフォームを表示して前のフォームを非表示に 2.PageControlで実行時にタブを非表示にして次を押されると次のタブに移動 これ以外に方法があったら教えてください
親フォーム内に子フォーム埋め込んで、次へを押すと子フォームを次のフォームに切り替え。
663 :
デフォルトの名無しさん :2008/04/15(火) 10:45:44
>>662 すみません。どうやって埋め込むんですか?
>>663 ボーダーをbsNoneにして
TForm2 *subform = new TForm2(this);
subform->Parent = Panel1; //埋め込みたい位置にパネルなりを配置しておく。
subform->Top = 0;
subform->Left = 0;
subform->Visible = true;
665 :
デフォルトの名無しさん :2008/04/15(火) 11:29:52
>>664 なるほど。
んで次や戻るでフォームを動的にnewして埋め込むと
その場合は次に進んだ時には前フォームの情報は失われるので
自分でファイルなりに保存しておくんですよね?
>661 CreatePropertySheetPage() ただし相当な修羅場を潜り抜けないと使いこなせない。 少なくともリソースについての理解が必要。
PageControlでいいじゃん
>666の関数をググってみると VCLはやっぱり神。って思った。
>>661 非標準ライブラリの使用がOKならば、JVCLのTJvWizardは?
名前を指定してコントロールを取得したいのですが、方法がわかりません ご教授お願いします
名前がわかってんなら、それがコントロールだべや。 なにを聞いているのか意味わかんね。
672 :
デフォルトの名無しさん :2008/04/16(水) 18:23:28
FindComponentってことだろ?このブタ野郎が!
説明不足ですいません for (int i=0; i < 10; i++) { AnsiString name = txtID + IntToStr(i); // 名前からコントロールにアクセス } フォームに連番のついたテキストボックスがあるのですが 大量にあるためループで処理できれば、と考えています。 VB.NETのFindControlみたいなことがしたいのです。
674 :
デフォルトの名無しさん :2008/04/16(水) 18:41:54
配列にすればええねん
メモリリークってプログラムの途中じゃ見ることできないですよね? やっぱ、終わったときだけ?
大学でBorland C++ Builder version.4を使用しています。 自宅でもプログラムを組みたいので、Borland C++ Builder 2007の体験版を使っているのですが、 *.dfmの互換性がないため、大学側のC++ Builderで使用するのに一々フォームを組み直す必要があって非常に面倒です。 *.dfmに下位互換を持たせることはできるのでしょうか?教えてください。
>>678 BCB4を大学からコpうわなにをするやめr
>>678 両方にTurbo C++ Explorerをインスコ
お世話になります。 ファイルマッピングの実装が完了しました。 で、複数のデータをひとつの文字列で送る予定なんですが、 数字であれば、カンマ仕切りで分ければいいのですが、 数字と任意の文字列も含んでおり、任意の文字列の中にカンマがあれば、 受信側で処理ができにくいと考えています。 " "や"|"や","など考えましたが、できるだけ、任意の文字列に例外文字・予約文字? を作りたくありません。 こんな場合、どういう方法があるのでしょうか? もちろん、仮想メモリーを別に設ければいいだけなんですが、 良い方法があれば教えてください。 ちょっとスレ違いです。すみません。
任意の文字列に"があったら\"に、\があったら\\に変換すればいい
普通に考えれば','じゃなく\x9を区切りに使うんじゃね?
文字列長も一緒に送るなら\0で区切っても‥‥
普通、ファイルマッピングならバイナリーをやり取り出来るわけでわざわざシリアライズする必要はないと思うけどな
もしかして文字列の最大サイズを設けたくないのかな?
あるいは読み出し側でストリームとして読み出してるんだろうか? ならパイプでいいと思うけどな。
とりあえず、文字列の問題は送信時に文字列の部分をエンコードするのが普通
>>682 さんの方法のほかに特殊文字は全部 %xx と%の後に2桁の16進数にしてしまう方法がある。
これがエンコードもデコードも簡単。
文字列の部分をエンコードしてからTStringListにAddで入れて CommaText で1行にして送るだけ
エンコードは、1文字づつみて英数字以外は全部 %xx に置換してしまえばいい
デコードは %を見つけたら次の2文字を取ればいいだけ
TChartのSeriesCountが1、軸にAutomaticを設定 この状態で最初のデータに2859以上のデータを追加するとエラーになるのはBCBの仕様?
シリアライズの件ですが、 難しいです。 検討してみたいと思います。 レスありがとうございました。
静的リンクを設定したのですが、BCB非インストール端末にて動作させるとエラーが発生します。 当方BCB6のProを使用しております。 解決方法があれば教えていただきたいです。 以下エラーメッセージ vclx60.bplが見つからなかったため、このアプリケーションを開始できませんでした。アプリケーションをインストールし直すとこの問題は解決される場合があります。
689 :
デフォルトの名無しさん :2008/04/24(木) 16:42:47
リンカとパッケージ
>>689 リンカの共有RTL DLL、パッケージの実行時パッケージを使って構築
この二つはチェックをはずしてありますが、他にも設定する部分があるのでしょうか?
691 :
デフォルトの名無しさん :2008/04/24(木) 17:11:41
コードガードとデバッグ情報
>>691 CodeGuardは対象無し、デバッグ情報はリリースで再構築しているためチェックが外れています
どうも他の人がやるとエラーの出ない実行ファイルが作成されたので、プロジェクトでなく処理系の設定じゃないかと思っています
693 :
デフォルトの名無しさん :2008/04/24(木) 17:23:56
exeのサイズはそれなりのサイズになっとるかね? ディレクトリ・条件で無駄なあれがあったら削除してみるとか
1.2Mくらいの実行ファイルが出来てます 他の人に作成してもらったものとは30kくらい大きいです 条件は不要なものがあったので削除してみましたが、変化無しでした
obj tds dsk とか不要ファイルを全部消してみたら?
BDS2006/2007は、単独実行exeを作成するにはオプション3箇所変更する必要あるけど、 Builder5/6は2箇所でいいのかな? オプションをもう一度目をこらして確認してから、再構築かな。
プロジェクトファイルが変になってるとか 新規プロジェクトで再構築はどうかな
うおおありがとうありがとう いろいろやってみたけどどうも上手くいかなかったです とりあえず再インストールしてやってみます
FindFirstでファイルの列挙を取得しています 自分のPCだと問題なく取得できるのですが、ファイルサーバだと取得できません。 調べてみたところTSearchRecのAttrがものすごく大きい値になってしまっているのが原因のようです。 回避策などあればご教授お願いいたします。 TSearchRec sr; int attr = faAnyFile; if (FindFirst(Edit1->Text + "\\*.EXE", attr, sr) != 0) { return; } do { if ((sr.Attr & attr) != sr.Attr) { continue; } // 処理 } while (FindNext(sr) == 0); FindClose(sr); }
700 :
699 :2008/05/07(水) 14:19:19
うお、字下げがひどい TSearchRec sr; int attr = faAnyFile; if (FindFirst(Edit1->Text + "\\*.EXE", attr, sr) != 0) { return; } do { if ((sr.Attr & attr) != sr.Attr) { continue; } // 処理 } while (FindNext(sr) == 0); FindClose(sr);
TSearchRec.Attrは実装的には0x7FFFまで取りうるはず。 (winnt.h 5208行以降とWindowsSDK WIN32_FIND_DATAのドキュメント参照)
Attrってフラグの組み合わせなのに、大きさがどう関係あるの? > if ((sr.Attr & attr) != sr.Attr) あとこれの意図は?
ああfaAnyFileが全部のフラグカバーしてないじゃないかって事か
>>701 確認しました。
圧縮ファイルになっていました。
>>703 ご指摘のとおりです。
顧客の設定がわからないため、とりあえず属性の条件部分をコメントにして動くようにします
705 :
デフォルトの名無しさん :2008/05/07(水) 17:02:28
C++Builder6で、 膨張処理 細線処理 のプログラムをおしえてください。
706 :
デフォルトの名無しさん :2008/05/07(水) 19:24:26
borland C++Builder6からgnuplotを実行し、 グラフを書かせたいのですが、 以下のコードではエラーが出てしまいます。 (pgnuplot.exeを認識しない。) ご指摘をお願いします。 ----------------------------------------------------- FILE* gp; gp = _popen("C:/Gnuplot/bin/pgnuplot.exe","wt"); if(gp == NULL){ ShowMessage("I can't find PATH"); exit(EXIT_FAILURE); } fprintf(gp, "plot sin(x)\n"); fprintf(gp, "pause -1"); fflush(gp); /* Don't forget to flush the buffer. */ getchar(); _pclose(gp); exit(EXIT_SUCCESS); ----------------------------------------------------
>>706 ディレクトリ区切り記号を\\にしては?
シェル上だとスラッシュでも動作する事多いけどDOS/Windowsの本来のディレクトリ区切り記号はバックスラッシュ。
708 :
デフォルトの名無しさん :2008/05/07(水) 20:28:56
>>707 コメントありがとうございます。
\\でやってみましたが、動きませんでした。。
そもそもC++builderからgnuplotは起動できないのでしょうか・・・。
んなことはなかろう。
710 :
デフォルトの名無しさん :2008/05/09(金) 13:36:24
んなことはないつってんだろっ!
711 :
TOM :2008/05/09(金) 14:21:20
// interface class Interface { public: virtual int getValue() const = 0;}; // print class Print { public: void out(const Interface& interface) { cout << "## " << interface.getValue() << endl; }}; // class A class A : public Interface { public: virtual int getValue() const { return 0; }}; // class B class B : public A { private: Print p; public: virtual int getValue() const { return 1; } void out() { // オブジェクトがコピーされて、class Aの値が表示される p.out((A)*this); // class AのgetValueが呼び出される p.out((A&)*this); } }; オブジェクトをコピーすることなく、クラスAの値を表示できませんか?
Turbo C++ Explorerを使っています。 TEditで文字の右寄せを行いたいのですが、Turbo C++ Explorerでは コンポーネントの登録ができないため、登録せずに実現する方法があれば 教えていただけないでしょうか? XP以降ならSetWindowLong()で実現できますが、2000などにも対応したいのです。
スレ違い
TMemoで代用とかって話があったような
>コンポーネントの登録ができないため、登録せずに実現する方法があれば new して、Parentプロパティに貼り付け先のコンポーネントを設定汁!
test
>716がBCBで2chブラウザを作るそうです
プロジェクトソース部分だけ書けば既存のJaneのソースがそのまま使えそうな>BCBで2chブラウザ
スレッドを別に分けて作成しているんですが、 別スレッドからmainの中にあるimageコンポーネントに絵画したいんですが、 どうやら駄目なようです。 このような場合の特殊なやり方教えてください
>>719 なんか質問が抽象的杉。
何がダメなんや。
調停入れて描画すればええだけだろ。
ビルダーで作っているんですが、 ShellExecuteで他のプロセスを実行させていますが、 自前のプロセスが終了したとき、実行させたプログラムも 一緒に終了させたいのですが、良い方法ありませんか? 今はハンドルを一生懸命さがして PostMessage で終了させてます。 ShellExecuteの段階でハンドルがわかればいいとおもうんですが。 いろいろ教えてください。
ちょっとお尋ねしたいのですが、 #include <string> #include <sstream> #include <fstream> using namespace std; int main() { stringstream test; test << (char)0x12 << (char)0x11 << (char)0x10 << (char)0x00 << (char)0x00 << (char)0x09 << (char)0x09 << (char)0x09 << (char)0x09 << (char)0x09; ofstream fout("test.txt"); fout << test.str(); return 0; } このプログラムが吐き出すtest.txtをバイナリエディタで見てみると、後ろから2バイト目に謎の0Dが出てくるのですが、この0Dは一体なんなのでしょう?? コンパイラはMinGWです。
すいませんソースコードが間違ってました。 正しいのはこっちです。 #include <cstring> #include <sstream> #include <fstream> using namespace std; int main() { stringstream test; test << (char)0x12 << (char)0x11 << (char)0x10 << (char)0x00 << (char)0x00 << (char)0x09 << (char)0x09 << (char)0x09 << (char)0x09 << (char)0x09; int aa = test.str().length(); string uu; uu = aa; test << uu; ofstream fout("test.txt"); fout << test.str(); return 0; }
725 :
722 :2008/05/18(日) 23:38:08
誤爆失礼しました。。
tp://akky.cjb.net/mfc/appclose.html これをもう少しスマートにならないものでしょうか?
727 :
デフォルトの名無しさん :2008/05/19(月) 02:36:18
void __fastcall TForm1::Button1Click(TObject *Sender) { try { Chart1->BottomAxis->Automatic = true; Chart1->LeftAxis->Automatic = true; TChartSeries *cs = new TLineSeries(Chart1); Chart1->AddSeries(cs); cs->AddXY(30000, 0, "", (TColor)clTeeColor); } catch (Exception &ex) { Application->ShowException(&ex); } } これ実行するとEInvalidPointerになるんだが意味がわからんとです
よくわからんけど、 > Chart1->AddSeries(cs); これいらなくね?あと > EInvalidPointerになるんだが どの行で?デバッガで例外を発している処理をちゃんと確認してみたら?
>>729 > これいらなくね?
これないと表示されないんだ…
> どの行で?デバッガで例外を発している処理をちゃんと確認してみたら?
ブレークかけてるけど、イベント終了まで例外は発生されなくて、終了後に例外が発生
こっちで試した限りじゃ空文字列がまずいようだ
空文字を適当な文字列にしたらいけました ラベルが例外の温床なのかと思い、軸のLabelStyleをtalValueに変えてやってみたら例外発生 あとは実際のプロジェクトで試してみたら例外は変わらず コンポーネント追加してるのが悪いのかもしらん
733 :
デフォルトの名無しさん :2008/05/21(水) 21:55:24
BCBの64ビット環境への対応に関して情報あれば教えてください。
734 :
デフォルトの名無しさん :2008/05/22(木) 03:20:42
>>733 とりあえずDEP切っておけば動くんじゃね?
フォームを持たないプログラムを作るにはどうしたらいいですか? プロジェクトソースのWinMainにどうやってかけばいいですかね?
ウィンドウ持たない常駐型アプリはWindowsの仕様上無理。 メインフォームのVisibleをfalseにすればおk。 起動時に処理してそのまま終了ならコンソールアプリと同じ処理をすればいい(mainをWinMainに置き換えるだけ)
737 :
デフォルトの名無しさん :2008/05/22(木) 16:32:25
TPNGObjectを探してるんだけどこれって本家HPが見れないー どっかDLできるとこある?
738 :
デフォルトの名無しさん :2008/05/23(金) 23:10:10
739 :
デフォルトの名無しさん :2008/05/24(土) 05:24:00
740 :
デフォルトの名無しさん :2008/05/24(土) 17:53:43
以下のようなエラーが出て、原因がわかりません。。。 エディターはBCC Developerで -W オプションにはチェックをいれています。 初歩的な質問ですみません > C:\borland\bcc55\Bin\make.exe -fDebug\testWin.mak -B Debug\testWin.obj MAKE Version 5.2 Copyright (c) 1987, 2000 Borland brcc32 -W -3 -Od -w -AT -pc -H- -k -b -v -y -DDEBUG -nDebug -c D:\util\bccdev1221\bccdev1221\DATA\testWin\testWin.cpp Borland Resource Compiler Version 5.40 Copyright (c) 1990, 1999 Inprise Corporation. All rights reserved. Illegal Parameter: -W
リソースコンパイラにC++ソースコンパイルさせるな
742 :
デフォルトの名無しさん :2008/05/24(土) 18:02:32
brcc→bcc32
743 :
デフォルトの名無しさん :2008/05/24(土) 18:04:50
>>741 さん
どういうことでしょうか?
もう少し詳しく教えていただけると助かります。
>>743 付属の「Borland C++ Builder ツール」ってヘルプファイルを読みましょう。
結論から行くとmakefileの記述ミスじゃね?BCBIDEだとmakefileいじる機会ほとんどないから予測だけど。
746 :
デフォルトの名無しさん :2008/05/24(土) 18:19:34
>>745 さん
百万遍読んだんですが、どこで設定すればよいのか分からないのです。。。
教えて教えてですみません。
747 :
746 :2008/05/24(土) 18:22:53
すみません、解決しました。 ご迷惑お掛けしました。
BCB 5を使っているんですが、ブレークポイントから動きを追っていると いきなり上の行に戻ったりおかしな挙動をすることがあります。 どっかでメモリ壊してるんじゃないかとは思うんですけど、同じような現象起きることありませんか? ちなみにCodeGuardでは何も検出されませんでした。
マルチスレッド使ってるだろ。
意図的なマルチスレッドは使っていませんでした。
マルチスレッドか最適化ぐらいかな。ありえそうなのは。それ以外は経験した事無いな。
効率よくデバッグするときは最適化をOFFにするのがセオリー。 そうしないと、変数のレジスタ割当てやループの最適化や重複コードの最適化 などの影響であっちこっちに飛ばされるよ。
コピーしたフォルダがあるとか
ってか、デバッグするときは、 プロジェクト-オプション-コンパイラの デバッグ(F)を押した設定にする。 これ常識あるね。
756 :
デフォルトの名無しさん :2008/05/26(月) 11:31:17
bmpを読み込んでTJPEGImageに変換してTJPEGImageのCompressionQualityを設定して Timageに表示したいのですがいまいちうまくいきません。 CompressionQualityはファイル書き出し時に有効みたいなことが書いてたので jpg->Assign( bmp ); jpg->CompressionQuality = 10; TMemoryStream *ms = new TMemoryStream( ); jpg->SaveToStream( ms ); jpg->LoadFromStream( ms ); Image->Picture->Bitmap->Assign( jpg ); としてみたのですが、↑で実行時にエラーになります。 SaveToFileでファイルに書いてそれをLoadする分には正常に処理されるのですが ファイルを作らずにやるにはどうしたらいいですか?
StreamはPositionを意識しないといけない。SaveToStream後のPositionを見てみるといい。 LoadFromStreamはその位置からデータを読もうとする。
>>757 あなたは神ですか?
まさにその通りでした!!
それでちゃんと読めるようになりましたありがとうございます!
し、しかし・・・
CompressionQualityってSaveToFileにのみ反映されるんですね・・・
SaveToStreamでは効果がなかった・・・
あ、違った(;´Д`) SaveToStreamがうまくいってなかったからコードをアレしてたんだった SaveToStreamでもちゃんとCompressionQuality処理されてましたー
つーかVCLのLoadFromFile/SaveToFileってメソッド内でTFileStream作成して〜Stream呼ぶだけだかんねぇ
しかしVCとは違って各種ビルドオプションが切り替えられないのが面倒。 6使ってた頃にはリリースビルド専用のmakefile作ってた。
762 :
デフォルトの名無しさん :2008/05/27(火) 05:00:24
>>761 はDelphi6と勘違いしているのじゃねえの
ひょっとして[デバッグ][リリース]ボタンでオプション設定する機能を 構成切り替え機能だと思ってるの?
で、みんなどのバージョンを頭に置いて書き込んでるの?
6Pro
>>766 あれ?
>>761 はわざわざ「6使ってた頃には〜makefile作ってた。」って書いてあるんだから、
対象は6以外ってことで、2006以降の話なんじゃないのか?
はぁぁ?
>>761 今はどうしてるんだ?
今は6使ってないんだろ?
今は5使ってます
771 :
748 :2008/05/27(火) 21:22:14
う〜ん、最適化でそういう動きするのか。 でもデバッグを押して再構築してもまだそういう動きをしました。 テンプレートを多用してあまりにサイズが大きくなったので #pragma option push #pragma option -vi- 〜 #pragma option pop でインラインを止めてみたんだけど、これが問題なのかなぁ。
ていうかテンプレートそのものが原因だろw
773 :
デフォルトの名無しさん :2008/05/29(木) 10:28:29
ODBCを経由せずにアクセスデータベース(mdbファイル)とやり取りする方法を教えてください
つ Win32API
775 :
デフォルトの名無しさん :2008/05/29(木) 10:41:29
関数名は?
それくらい自分で探したら。 大ヒントもらったんだから。
777 :
デフォルトの名無しさん :2008/05/29(木) 14:10:49
知らないならレスしないで下さい。ウザイだけです。
知らない場合はレスしないよ。 知ってるけど自助努力の余地を残してあげてるだけ。 ここで努力して見せれば次は回答あげたりするわけだけど、 いきなりキレたりしたら、馬鹿にして見捨てるわけ。 今回は見事にキレたから、馬鹿にして見捨てた次第です。ばーかw
779 :
デフォルトの名無しさん :2008/05/29(木) 14:53:16
見事に知らない奴がするレスの手本だ
と言いつつ、本当に「知らない奴」かどうかは一度も確認したこと無いよね。 初めて見た時からずっと「これは知らない奴がするレスの手本なんだ!」ということにしてきただけw
コピペにマジレス(ry w
http://delfusa.blog65.fc2.com/blog-entry-40.html のやり方でTMemoを継承して、SetWindowLongで追加できないES_CENTERを持つメモコンポーネントを作成したいのですが、
CreateParamsで設定したスタイルが反映されません。どこに問題があるのでしょうか?
class TMemoEx : public TMemo {
protected: void __fastcall CreateParams(TCreateParams& param);
public: __fastcall TMemoEx(TMemo* original);
};
--------↑ヘッダ--------↓ソースファイル---------------
__fastcall TForm1::TForm1(...) : TForm(...) {
Memo1 = new TMemoEx(Memo1);
}
void __fastcall TMemoEx::CreateParams(TCreateParams& param) {
param.Style = param.Style | ES_CENTER | ES_NUMBER;
TMemo::CreateParams(param);
}
__fastcall TMemoEx::TMemoEx(TMemo* original) : TMemo(original->Owner) {
Parent = original->Parent;
TMemoryStream* ms = new TMemoryStream();
try {
ms->WriteComponent(original);
delete original;
ms->Position = 0;
ms->ReadComponent(this);
} __finally {
delete ms;
}
SendMessage(Handle, ES_SETRECT, ....);
}
param.Style = param.Style | ES_CENTER | ES_NUMBER; TMemo::CreateParams(param); ↑逆
いま、簡単に書けば void __fastcall TForm1::FormCreate(TObject *Sender) { loadInifile(Sender); } void __fastcall TForm1::loadInifile(TObject *Sender) { Panel1->Show(); Panel2->Show(); } のように、FormCreateでIniファイルを読み、 その結果でフォームのスクロールバーを表示したり、ステータスバーを消したりしています。 ここの処理をできる限り速くしたいと思います。 C++ Builderの場合、タイミング的にはloadIniFileが完了してからフォームが表示されるのでしょうか?
786 :
デフォルトの名無しさん :2008/06/04(水) 15:02:24
CreateよっかコンストラクタかShowでやったほうがいいんじゃね?
てかBCBではOnCreate使わずにコンストラクタでやれってヘルプに書いてあるね
788 :
785 :2008/06/04(水) 15:35:34
>>788 TCustomForm::OnCreate
> 注意 フォームのコンストラクタとのやり取りが不良になる可能性があるので,
> C++Builder で OnCreate イベントを使うことはお勧めできません
> (OldCreateOrder を参照)。かわりに,フォームコンストラクタをオーバーライドすることをお勧めします。
790 :
785 :2008/06/04(水) 15:49:03
>>789 ひぃ〜!ありがとうございます!
早速先のloadIniFileをコンストラクタに移動してみました。
が、動作をみると、まだフォーム表示後にフォームのサイズが変更されたりしてるようです。。
理想でいえば、ウィンドウのサイズや位置や、各コントロールのプロパティに値が設定された後、
フォームを表示したいのですが、どうすればいいのでしょうか。。?
TForm1::Visibleの初期値をfalseにして、コンストラクタの最後でtrueにすればいいんじゃね?
792 :
デフォルトの名無しさん :2008/06/04(水) 15:54:28
loadInifileでやってるPanel1->Show();の意味がわからんのだが
793 :
デフォルトの名無しさん :2008/06/04(水) 15:55:57
つーかフォーム操作はコンストラクタでやっとけばフォーム表示時には変わってるとおもうんだがー 他のコントロールならまだ作成されてない可能性はあるとおもうが
794 :
785 :2008/06/04(水) 16:13:12
>>791 新規プロジェクトでForm1のVisibleを見るとfalseでした。
フォームのVisibleはフォームの表示には関係ないのではと思ったり。。
795 :
785 :2008/06/04(水) 16:15:12
>>792 すみません、適当に書いたのであんまり意味はないです。。
>>793 なんか処理をコンストラクタに移したらうまくいったようなないような。。
フォームにActiveXのコンポーネントが乗ってるので、
そちらのちらつきが目立つようになってしまいました。。
796 :
デフォルトの名無しさん :2008/06/04(水) 17:11:29
C++Builder5 ProでMDBファイルから直接レコードを読んだりしたいのですがどうやったらできますか?
>MDBファイルから直接 なにゆえ直接読む必要があるのだろうか・・・
ODBC
799 :
デフォルトの名無しさん :2008/06/05(木) 10:54:37
ODBCを経由したくないからに決まってるだろぼけが
普通にファイルオープンして読み書きすりゃいいじゃん
801 :
デフォルトの名無しさん :2008/06/05(木) 13:26:53
馬鹿はレスするなよ
くだすれ行けよ
803 :
デフォルトの名無しさん :2008/06/05(木) 15:20:14
お前らの馬鹿なレスに期待してんだよクズ
>>796 マジレスすると、BCB6なら、プロジェクトに「タイプライブラリの取り込み」ってあるはずだから、
それでADOの対象DLLを取り込んで、COM経由で読めたような気がする。
確か、BCB5でもOKだったような。
それが無ければ、#import文でも取り込めた気がする。
この辺の作法はVC++と同じはず。
直接レコードを読むってのは、ADO接続するってことなのか?
806 :
デフォルトの名無しさん :2008/06/06(金) 16:14:00
むしろDAOで
つまんないことですけど、 std::sortで比較関数を書く場合、 bool sortNameAsc(const FI& left, const FI& right) { return left.Name < right.Name; } bool sortNameDesc(const FI& left, const FI& right) { return left.Name > right.Name; } で std::sort( vec.begin(), vec.end(), sortNameAsc ); // 名前昇順 std::sort( vec.begin(), vec.end(), sortNameDesc ); // 名前降順 と、 std::sort( vec.begin(), vec.end(), sortNameAsc ); // 名前昇順 std::sort( vec.begin(), vec.end(), -1 * sortNameAsc ); // 名前降順 は同じことですよね。。?自分に自信がなくて。。
808 :
デフォルトの名無しさん :2008/06/06(金) 21:09:10
ちがわい boolではtrueは1、falseは0に変換される
ってことは、 std::sort( vec.begin(), vec.end(), sortNameAsc ); // 名前昇順 std::sort( vec.begin(), vec.end(), ! sortNameAsc ); // 名前降順 ですか?><
810 :
デフォルトの名無しさん :2008/06/06(金) 23:53:10
>>809 それコンパイル通る?
通ればそれでいいんだけど
あれなんかageになってたごめん
812 :
809 :2008/06/07(土) 06:48:02
三番目の引数が関数じゃないって怒られました \(^o^)/
関数オブジェクト使えよ sortName(Asc) とか sortName(Desc) と書けるように
814 :
809 :2008/06/08(日) 05:43:37
関数オブジェクトが理解できません\(^o^)/ ヤバス
STLよく知らんがこんなんでいいんじゃないん? struct CData { CData(std::string name, int value):Name(name), Value(value){}; std::string Name; int Value; }; struct CCompareTest { int mode; CCompareTest(int val) : mode(val) {} operator()(const CData& l, const CData& r) { if (mode == 0) { return (r.Value > l.Value) ? true : false; } else { return (r.Value < l.Value ) ? true : false; } } }; main() { std::vector<CData> test; test.push_back(CData("Item1", 0)); test.push_back(CData("Item2", 4)); test.push_back(CData("Item3", 2)); test.push_back(CData("Item4", 3)); test.push_back(CData("Item5", 0)); std::sort(test.begin(), test.end(), CCompareTest(1)); for(std::vector<CData>::iterator it = test.begin(); it < test.end(); it++) { std::cout << (*it).Name << ":" << (*it).Value << endl; } } Name基準でしかソートしないならoperator >(const FI&, const FI&)とoperator <(const FI&, const FI&)定義して std::greaterとstd::less使えば事足りるだろうけど。
関数オブジェクトってのは単に operator() をオーバーロードしたクラスのオブジェクトってだけのことだ。
なんだ関数オブジェクト知らなかったのか 普通に関数呼び出すよりも関数オブジェクトの方が 最適化を掛けるとインライン化されて速度が上がる可能性が高い まあ中にはVCみたいに関数呼び出しまでインライン化するお馬鹿な コンパイラもある事にはあるが
818 :
デフォルトの名無しさん :2008/06/10(火) 18:37:40
Variant型のvarDispatchタイプにバイナリデータが入ってるのですが これをHEX文字に変換する方法を教えてください
ん。varDispatchってことは、インターフェースへのポインタが入ってるわけでしょ? そのインターフェースに何かしらのデータ取得用のメソッドないの?? varByte || varArrayなどのSafe配列としてバイナリデータ格納されてるわけじゃないんでしょ?
HBITMAP Spi_LoadImage(LPSTR plugin,LPSTR filename) というHBITMAPを返す関数があるのですが、これをフォームに表示する方法がわかりません>< HBITMAP bitmap = Spi_LoadImage( "c:\\ifjpeg.spi", "c:\\0.jpg" ); Image1->Canvas->CopyRect( Rect(0,0,bitmap->Width,bitmap->Height), bitmap->Canvas, Rect(0,0,bitmap->Width,bitmap->Height) ); とすると「E2288 -> か ->* の左には構造体のポインタが必要」ってエラーが出てしまうのです。 どうしたらいいでしょうか
TBitmap::Handleに戻り値のハンドルぶち込めばいいんじゃね?
822 :
820 :2008/06/16(月) 20:13:17
>>821 TBitmapコントロールってないですよね?><
フォームにはTImageを張ればいいのでしょうか??
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { HBITMAP hBitmap = Spi_LoadImage("IFPSD.spi", "test.psd"); Image1->Picture->Bitmap->Handle = hBitmap; } //--------------------------------------------------------------------------- __fastcall TForm1::~TForm1() { Image1->Picture->Bitmap->ReleaseHandle(); }
824 :
820 :2008/06/16(月) 20:29:22
>>823 ひぃ〜、できました!!感動です!ありがとうございます!!
このスレはすぐ的確な回答が返ってくる素晴らしいスレだと思います!!
つーかちゃんとVCLのドキュメント嫁
826 :
820 :2008/06/16(月) 20:34:02
bcbに関しては全部ネットで勉強してるので、 なんかとっかかりがないんです(汗 VBとかVCはIDEがナビゲートしてくれる感じなのですが。。
827 :
820 :2008/06/16(月) 21:39:47
たびたびすみません;; テキストボックスを入力不可にしてグレーにしたいんです。 VBとかだとenableをfalseにすると勝手にグレーになって編集不可になったと思うのですが、 bcbだとreadonly=trueにして、自前で色を変更しないといけないのでしょうか?;;
自前でどうぞ。
無効にすればそうなるはずだが
830 :
820 :2008/06/16(月) 21:55:24
ああ、enabled=falseにすると、エディットボックスのテキストがグレーになりました!! テキストボックス自体をグレーにするには自前でするしかなさそうですね。。
831 :
デフォルトの名無しさん :2008/06/17(火) 15:36:15
知らないならレスしないでください。
ベッキーのようにexeから関数をエクスポートしたいのですが、 exeとエクスポート先のexe両方ともコンパイルできたのたのですが、 呼び出しexeで初期化が失敗しましたとでます。 とりあえず、exeのlibを作って静的にリンクしています。 またソースは extern "C" __declspec(dllexport) char* __stdcall GetA(void); という形で両exeに宣言してます。
833 :
デフォルトの名無しさん :2008/06/19(木) 10:19:34
そうですか
832です。 こういうサイト見つけました。 トライしてみます。 ptth://abyss-21.hp.infoseek.co.jp/junk/C&C++/PP02.htm
やっぱDLL対EXEでしょ。
837 :
デフォルトの名無しさん :2008/06/20(金) 19:35:34
そうですか
dllからexeの関数を参照する場合、 どうすればいいのでしょうか? dllで共有メモリにフラグ立てて、 exe側で共有メモリをループ内で監視したら いけそうですが、ちょっととろくないですか? プラグイン拡張させたいという希望の元。
___ ━┓ ___ ━┓ / ― \ ┏┛/ ―\ ┏┛ / (●) \ヽ ・. /ノ (●)\ ・ / (⌒ (●) /. | (●) ⌒)\ /  ̄ヽ__) / | (__ノ ̄ | /´ ___/ \ / | \ \ _ノ | | /´ `\
前半2行と後半4行のつながりをオラに教えてくれ
えぇと、
用はdllからexeの関数を叩きたいわけです。
API用意できない場合は、最後の4行で
なんとかならないかな
という想像で、このやり方はやりたくないが。
わかってもらえるかなぁ。
>>841 <<フル無視?鴨
>>835 のサイトに書いてるでしょ。EXE側でdllexportした奴を、GetProcAddressしたら呼べたけど。
Callback関数を用意して予めDLLにそのアドレスを教えておけばいいんじゃないの? 例えていうならEnumXXXみたいなAPIのように。
844 :
デフォルトの名無しさん :2008/06/23(月) 16:56:30
はやくbrcc32がVista用アイコン(PNG圧縮)に対応しないかな。 体験版から最新exeいただきますよー、まだまだBCB6で逝きますよー
845 :
デフォルトの名無しさん :2008/06/23(月) 18:17:26
あ、SDK for Vistaからrc.exeとrcdll.dll抜いて.rcをコンパイルしたら使えた。 MAINICONのために.rcを書くのが面倒だけど何とかなりそうだ。
アイコンってそんなに重要か?
しょぼい質問んだんけど(BCB6) デフォのフォームに「閉じる」ってボタンつくって、その中にclose()を書いとく。 フォームの右上にある×マークと、自前で作った「閉じる」ボタンの違いってあるん?
普通のアプリ作る分には無いものと考えてよし。 厳密に言うと違いはある。 ×ボタンは直接クローズメッセージがポストされるが、 Close()の場合はVCLがクローズメッセージをポストする。
849 :
847 :2008/06/23(月) 21:08:35
boost::variate_generator< boost::mt19937, boost::uniform_smallint<>> rnd_gen(gen, ret_type); boost::variate_generator< boost::mt19937, boost::uniform_smallint<> > rnd_gen(gen, ret_type); この構文で上はコンパイル時に構文エラー、下は正常に通るのですがこれはBCB6の問題という認識でいいのでしょうか?
BCBに限らずそういうもんだよ。>> が >>演算子と解釈されるらしいから。 …と思ってたけど、cl は >> で通るようになってるんだな。g++ は駄目だったけど。
>>でも問題なく通るようになるのはC++0xの規格だから 今は使わない方がいい
なるほど。
>>851-852 テンプレートまわりの記述は後者の記法を取らないと駄目と言うことですね。ありがとうございました。
AnsiString fileName; で、fileName = fileName + "\0\0"; としても末尾にNULL二つつかないんですね。。 char *で操作するしかないのでしょうか?
fileName += AnsiString("\0\0", 2);
857 :
855 :2008/06/25(水) 21:15:06
バージョンによるのかな。BCB6はできたけど。後は fileName = fileName + '\0' + '\0';
859 :
855 :2008/06/25(水) 21:23:30
2007です。 fileName += '\0'; fileName += '\0'; と二行に分けても駄目でした。 Ansistringクラスで最適化してるんでしょうか。むむーん。
861 :
855 :2008/06/25(水) 21:45:20
デバッガで変数値見てるんですけど、変わってないです。
862 :
855 :2008/06/25(水) 21:53:31
そもそも、fileName = "\0\0"; で\0が一個しか代入されません。うへえ。
>>861 デバッガはヌル文字の手前までしか表示せんよ。
fileName += '\0'; でちゃんと文字列長がインクリメントされてるじゃん。
865 :
855 :2008/06/25(水) 22:19:33
>>864 文字列長ってfileName.Length()で得られる値ですか。。?
866 :
デフォルトの名無しさん :2008/07/02(水) 14:48:11
CreatePopupMenuでポップアップメニューを作って TrackPopupMenuで表示させるとこまではうまくいったんだけど これのイベントを取ろうと MESSAGE_HANDLER( WM_COMMAND, TWMCommand, WMCommand ) で、イベントを作成するとメニューを表示したときにはここにくるんだけど メニューが表示されなくなったんですけど、何が原因ですかね? WMCommand イベントの中で何か特別なことを書かないといけない?
867 :
デフォルトの名無しさん :2008/07/02(水) 15:05:58
あ、わかった>< ボタン押したらポップアップメニューを表示させてたんですけど WM_COMMANDメッセージをあれするとボタンを押したイベントも取られて 本来のボタンクリックイベントにこなくなってしまってた・・・ WMCommandイベントの中で DefaultHandler( &Msg ); これ呼んでるんだけど本来のボタンクリックがどうやったら呼ばれるようになりますか?
せっかくC++BuilderなのになぜTPopupMenuを使わないの?
869 :
デフォルトの名無しさん :2008/07/03(木) 10:54:56
APIでポップアップメニューをやりたかったからに決まってるだろ?
何のために
871 :
デフォルトの名無しさん :2008/07/03(木) 13:27:53
それは聞かないって約束しただろ?
872 :
デフォルトの名無しさん :2008/07/03(木) 21:18:13
でも、もう隠し事されるのは嫌なの!
APIでやりたいならおそらくスレ違い。Win32APIスレへどうぞ。
874 :
デフォルトの名無しさん :2008/07/04(金) 09:58:39
C++Builder使ってる人ってAPIはわからないのよ!
A…あなたの P…ポコチン I …インポです
876 :
デフォルトの名無しさん :2008/07/04(金) 18:13:12
C++に関する本で、演習(解答も)ついてるおすすめの本ってありますか?
878 :
デフォルトの名無しさん :2008/07/04(金) 18:38:13
このスレでageてる奴地雷だから踏まないほうがいい
C++Builder2007において フォルダの中にソース以外の生成物がでてきて、 フォルダが肥大化します。 ソースのバックアップに、良い手はありませんか? バッチファイルをつくってファイルを削除するのか すべての生成物を別フォルダに生成できればいいんですが。 中間と最終出力は別フォルダにしています。 おしえてください
BCBは未だクリーン機能(ビルド生成物を全部消去する機能)無かったのか?
えっ?
>中間と最終出力は別フォルダにしています。 していれば、分離されてました。 古いのが残ってたみたいです。 すみません。 バッチファイルで消したらすっきりしました。
885 :
デフォルトの名無しさん :2008/07/07(月) 10:04:21
相談スレなんだからあげるのは当たり前
またこいつかってのが分かりやすいからいいよ。
887 :
デフォルトの名無しさん :2008/07/08(火) 10:00:56
#defineによって生成されるexeファイル名を変更したいのですが ソース上ではどのように記述したらいいですか?
888 :
デフォルトの名無しさん :2008/07/08(火) 11:35:50
makeファイル使ったら?
889 :
デフォルトの名無しさん :2008/07/08(火) 11:36:23
><
890 :
デフォルトの名無しさん :2008/07/11(金) 15:52:26
C++Builder2007でデータベース(mdbファイル)を操作するにはどのコンポを使えばいいですか?
>>890 TADOConnectionとかの類でおk
892 :
デフォルトの名無しさん :2008/07/13(日) 00:36:12
特に不具合無かったので長い間BCB5を使っていたのですが 中文など多言語を扱わないといけなくなり移行を考えています そこで質問なのですがunicodeでの文字列操作がある程度出来る バージョンとなるといくつから先と考えればいいのでしょうか? シビアな文字列操作は必要無く、変数に入れても壊れることが無く ちょっとしたファイル読み込みと書き込み程度が出来れば十分です
895 :
デフォルトの名無しさん :2008/07/14(月) 15:35:41
んじゃ5のままでいいじゃん
文字列処理中はStringにUTF-8を入れるなら5で無問題。 WideStringとかは使ったことないので知らん。
5にTNTで十分じゃない? 文字列はWideStringに入れておけば壊れないから。 バージョンアップ前提なら、次期バージョンのC++Builder2009を待て。 VCLがUnicode化されるらしいから。
898 :
894 :2008/07/14(月) 16:22:57
UTF8Stringを使うというのを見かけたのですが
これはバージョンいくつから使えるのでしょうか?
>>897 TNTも考えたのですが国際化対応が必要無い箇所で
SJIS文字列をバイト操作しているところが多々あり躊躇しています
C++Builder2009か・・・・・
本当に今度こそVCLをunicodeして出してくれるんだろうか
お布施稟議がなかなか通らなくなってきてます;;
>UTF8String このことに触れようかと迷ってたんだが、UTF8StringはAnsiStringでtypedefしてるだけ。 つまり、どのバージョンでも使える。(というか、AnsiStringのまま書け)
>sysmac.h >typedef AnsiString UTF8String; みたいな感じ。
901 :
デフォルトの名無しさん :2008/07/14(月) 17:43:42
><
902 :
894 :2008/07/15(火) 10:17:35
>899 なんだっ・・・て・・・・・・・
結局のところ、 ・AnsiString __fastcall AnsiToUtf8(const AnsiString S); ・AnsiString __fastcall Utf8ToAnsi(const AnsiString S); があるか、ないかが問題。 BCB6にはあるが、5にはどーだっけ?
904 :
894 :2008/07/15(火) 10:34:53
どうも誤解してたみたいです>AnsiString 「VCLはSJIS依存」と言う記憶によってunicodeを扱うのに躊躇していたのですが ここでのSJIS依存、もしくは今度のVCLのunicode対応というのはTFontなどの キャラクターセットを持ったVCLについてであり、変数としてのAnsiString(WideString)に ついては問題無くunicodeを使用出来ると言うことでいいのでしょうか? Sysutilsはちょっと危ないかな?
905 :
894 :2008/07/15(火) 10:40:15
>>903 BCB5には無かった・・・・・orz
どうやらスタートラインに立ってなかったようです;;
>>904 UTF8ってのは、もともとコードの範囲もヌルターミネイトが1文字ってのもASCIIと同じ。
つまり、いったんUTF8にしちゃえば、ソフトウェアというかプログラム側からは、
ASCIIなのかUTF8なのか知らなくてもふつーに処理が通る。
(ま、AnsiStringが単なるメモリバッファみたく何も意識せず使えるってのも間違いではない)
で、UTF8を受け付けずに、ANSIの入出力を受け付けないのはGUIコンポーネントの入出力。
だから、構造体は全部UTF8入れといて、描画のタイミングにUtf8ToAnsi、それと、コントロールからデータを貰った瞬間にAnsiToUtf8しとけば無問題。
>>905 無いんだあ。関数2つ足すだけなんだけどねぇ。
>で、UTF8を受け付けずに、ANSIの入出力を受け付けないのはGUIコンポーネントの入出力。 で、UTF8を受け付けずに、ANSIの入出力しか受け付けないのはGUIコンポーネントの入出力。
Turbo C++ Explorer を使用しています。 フォームのみのプロジェクトを作成して デバッグすると約1分ほど固まる場合があるのですが なぜでしょうか? Hotfixは13まであてています。
製品版買わないから
IDEとかもう少し使いやすくカスタマイズ出来るようになったら 製品版買いたい
製品買わないヤツは、言い訳を考え続けて 絶対に製品を買わない。
913 :
デフォルトの名無しさん :2008/07/15(火) 17:47:35
製品買った奴はくやしいのうくやしいのうwwwwwwwwwwwwww
またおまえか
昔のやつより使いにくくなっているから バージョンアップ出来ないでいるんだよ
どんな物でも欲しいと思った時が買い時です
最新版には高速コンパイルユニットと、メモリマネージャーが組み込まれたそうですが、 それによりIDEの反応速度はうpしてますか? なんていうかIDEの反応が落ちるのが怖くてバージョンうpしてません。
919 :
917 :2008/07/16(水) 09:49:12
>>918 それ、入れてます。入れてから快適(少しクセはあるけど慣れた)。だからバージョンうpが怖いのです。
入れてなければ逆にバージョンうpしか考えられなかったのですが。
再婚パイル。
>>914 製品厨 釣られすぎw
くやしいからってリスカして死ぬなよ
イキロ
何言ってんのこいつ
924 :
894 :2008/07/17(木) 09:00:58
>>906 なるほど、解説ありがとうございます
まだ手元にBCB6の環境が構築出来て無いんですがUtf8ToAnsiは
日本語以外の2バイト系文字列についても有効なんでしょうか?
入力は諦めるとしても表示くらいは行いたいんです
(該当言語のフォントはインストールされているのが前提)
Ansiは日本語WindowsだとShiftJISで扱われるから、当然Ansiにした時点で化ける。 表示するならTNTとかのUnicode用GUIコンポは必須。 無しでやるならAPIレベルでコントロール作成するか、GDIのTextOutWでラスタライズして表示させるしかない。
いや、BCBの関数の言うAnsiはWindowsのロケール言語設定のことだから、 日本語Windowsでは、Ansi=ShiftJIS。
927 :
デフォルトの名無しさん :2008/07/17(木) 10:44:05
いいやいやAnsiはShiftJISだって
928 :
894 :2008/07/17(木) 10:49:11
となると例えば中文ならファイルはunicodeで保存しておいてそのまま読み込み 表示にはキャラクターセットとフォントはをGB2321にしたコンポーネントに unicodeからGBにコード変換する関数を通して代入って感じでいけるか・・ 変数(Utf8ToAnsi)単位でロケールの指定が直接出来るか Win32Apiで直接変換出来ればなぁ
WideStringで扱って、表示系はUnicodeコントロール使ったほうがいいと思うぞ。
Utf8ToAnsiだってAPI(WideCharToMultiByte)使ってるんだから、コードページ指定すれば変換できるんでない。
931 :
デフォルトの名無しさん :2008/07/18(金) 14:18:57
構造体にAnsiString変数を入れても普通にポインタ渡しして問題ないよね? sizeofとかでサイズをアレしたりしなければいいよね?
ポインタ渡しなら実体は一つだから問題なし デフォルトコピーコンストラクタ呼び出してコピーもAnsiStringのコピーコンストラクタ呼ばれるから問題なし ::memcpyする奴は氏ね
933 :
デフォルトの名無しさん :2008/07/18(金) 16:21:27
APIのZeroMemoryしても大丈夫?
std::string はダメみたい。 Stringはどうなんだろうね?
駄目に決まっとろう
936 :
デフォルトの名無しさん :2008/07/18(金) 16:56:55
なにがダメなんだよ
>933 c_str()で取ったポインタならやっても大丈夫。
C++Builder2007使ってるんだけど HOOK.dllロードのところで固まる。 解決策教えてもらえませんか?
939 :
デフォルトの名無しさん :2008/07/22(火) 15:33:38
割厨乙
941 :
デフォルトの名無しさん :2008/07/22(火) 16:33:44
無料厨乙
BCB6での質問です DLL内で、"__declspec(dllexport)"を使ってクラスをエキスポートして、 アプリの方で"__declspec(dllimport)"を使ってリンク 該当クラスをnewした後deleteするとAccessViolationが起きます 中身は大体こんな感じです // エキスポートしたいクラスのヘッダファイル (MyClass.h) class DLL_EXPORT MyClass() { public: MyClass(); ~MyClass(); int dummy(); }; // アプリ側 (Unit1.cpp) #include "MyClass.h" void __fastcall TForm2::Button1Click(TObject *Sender) { MyClass *a = new MyClass(); delete a; } 試行錯誤の結果、以下方法を取ればエラーは起きませんでした ・共有RTLを使用する、にチェック ・MyClassのコンストラクタ&デストラクタの処理をヘッダに移動 BCBのDLLウィザードにあったmemmgr.libを追加もやってみましたが変化無し cppにあるコンストラクタ、デストラクタの中身を全て削除しても変化無し デストラクタのスコープ抜け時にinternal_free?周辺でエラー? プロジェクトオプションは、ディレクトリと条件定義以外は 共有RTL DLLを使う、実行時パッケージを使って構築のチェック解除のみです 長文になっちゃいましたが、わかる方いらっしゃったらお助け下さい
943 :
デフォルトの名無しさん :2008/07/23(水) 16:51:45
エクスプローラから自分のソフトにファイル名をD&Dする方法はわかったのですが 逆に自ソフトからエクスプローラにファイル名をD&Dする方法を教えてください
DoDragDrop
945 :
デフォルトの名無しさん :2008/07/23(水) 17:26:37
>>944 たしかにそれBuilder2007にはあった。
ありがとう後は見づらい糞ヘルプみながらチャレンジしてみるぜ
2007にはそんな便利なもんがあるのか?
PlatformSDKが結合されてるんじゃないん? OLEDnDまわり、カプセル化してくれないかなー
948 :
デフォルトの名無しさん :2008/07/24(木) 08:02:46
VCのlibをBCBのlibにしたいのですが、 libからDLLをコンパイルで作ってimportとか言うのを使えばいいですか?
VC側でDLL作ってimplibでインポートライブラリ作成だね、スタティックライブラリの場合は。 DLL作る際に関数のエクスポートを忘れずに。 インポートライブラリならCOFF2OMFで直接変換可能。
950 :
デフォルトの名無しさん :2008/07/24(木) 11:45:11
トンクス libの中身がわからずdllにできないです・・・
関数くらいわからなけりゃどのみち使えないだろ ちなみにD3DXならC++Builder用公開してる人がいる
952 :
デフォルトの名無しさん :2008/07/25(金) 09:53:01
TListViewで早く表示する方法を教えてくださいな
仮想モードを使う
954 :
デフォルトの名無しさん :2008/07/25(金) 12:09:55
CBuilderの仮想リストビューの参考になるとこってないですかね? ぐぐったんだけどdelphiしかないしsubitemsもよくわからなかったしー
仮想モード使わなくてもこれで解決できるレベルと予想 っTListItems::BeginUpdate
956 :
デフォルトの名無しさん :2008/07/25(金) 13:45:11
>>955 予想は大きくはずれてるよ。
そんなのやってるし
957 :
デフォルトの名無しさん :2008/07/25(金) 16:10:32
>956 SubItemsわからんと言ってるからたぶん当たってるぞw
958 :
デフォルトの名無しさん :2008/07/25(金) 16:12:01
>>957 知らないならレスしないで下さい。ウザイです。
959 :
957 :2008/07/25(金) 16:36:09
今Delphiのサンプル見てきたんだけどこれで十分だろ? SubItemsわからんっていったいなんのことだ? 夏が来たってことか・・・・
仮想ListViewってOnDataに記述するだけだよな? ListView->Items->Add()で返ってくるTListItemと同じ扱いをするだけだと思うけど なんでそんなことがわからないのかがわからない・・・
961 :
デフォルトの名無しさん :2008/07/25(金) 18:24:49
>>960 知らないならレスしないで下さい。ウザイです
962 :
957 :2008/07/25(金) 19:12:03
夏だな・・・ 室内に閉じこもらないでプールでも行ってこい>961
ただでさえ人少ないスレなんだから、もう少しうまくやらないと望む回答は得られないよ
騙りなんだろうけど、面白いと思ってやってるのかな
966 :
デフォルトの名無しさん :2008/07/26(土) 02:18:56
>>965 コピペだから何言っても馬鹿の一つ覚えでアレしか出てこない
967 :
デフォルトの名無しさん :2008/07/26(土) 13:18:18
あるオープンソースのソフトをbcc32(5.6.4)でmakeしたら エラーも出ずにコンパイルできたものの、正常に動作しない で、動作を追ったらDialogBoxParam()が1813エラーでスルーしてる 解決できる人いる?
質問 C++Builder2007で コンストラクタの初期化リストで起こる例外を 捕まえようとすると "E2040 宣言が正しく終了していない"と コンパイルエラーになってしまいます。 VisualStudio2008ではうまくいくのですが C++Builderではできないのでしょうか?
970 :
デフォルトの名無しさん :2008/07/26(土) 14:37:08
971 :
969 :2008/07/26(土) 14:56:25
無理そうなのであきらめました。すみません。
972 :
デフォルトの名無しさん :2008/07/28(月) 00:10:10
全然…。
974 :
デフォルトの名無しさん :2008/07/28(月) 02:01:41
975 :
デフォルトの名無しさん :2008/07/28(月) 17:21:31
コントロールパネルの地域のオプションの数値の区切り記号の変数名は何ですか? 桁区切り記号はDecimalSeparatorってのがあったのでこれもあるとおもうのですが・・
つ ThousandSeparator
977 :
デフォルトの名無しさん :2008/07/29(火) 10:24:44
>>976 いやそれ少数点じゃない?
それかシステムデフォルトの区切りかどっちかかな?
もしThousandSeparatorだとすると、これのユーザーデフォルトの値が欲しいのですが
何か他の変数に設定したりするんですか?
日本語でおk 何が知りたいのかさっぱりわからん。グローバル変数DecimalSeparatorとThousandSeparatorは それぞれ小数点と1000の単位の区切り文字で、Windowsの地域の設定から取得するようになっている。 で?ユーザデフォルトって何?
979 :
デフォルトの名無しさん :2008/07/30(水) 10:10:25
>>978 ThousandSeparatorは現在の言語設定じゃなくてOSのじゃないかってこと
例えば日本語OSで地域オプションをイタリア語にしてもThousandSeparatorはカンマになる(これはセミコロン)
ちなみにDecimalSeparatorはちゃんとイタリア用のカンマになってる。
んで文字区切りをAPIで取るとシステムとユーザーと取る事ができて
システムで取ると日本語用になってるがユーザーで取ると地域オプション設定から取ってるみたいな
だからThousandSeparatorは黙ってると地域オプションからもってきてないのかなーと
980 :
デフォルトの名無しさん :2008/07/30(水) 17:53:27
仮想リストビューでソートする方法を教えてくださいよ。 仮想モードだとCustomSort使えねー
項目をvectorに放り込んでsortとか使えば?
982 :
デフォルトの名無しさん :2008/07/30(水) 18:19:28
>>982 仮想リストビューは描画が必要なときにデータ要求するだけだから元データでソートするしかないんじゃないかな
984 :
デフォルトの名無しさん :2008/07/30(水) 18:30:39
>>983 ですよね・・・
元アレでやってみまーすう
>>984 元データの順番変えたくないなら、元データからlist作成してソートかな
>979 どちらもスタートアップの処理内でGetLocaleInfoを使用して現在のロケールの設定を もらってきている。ただしGetLocaleInfoがエラーを返したときはデフォルトとして"."および","を 使用するようになっている。詳細はSysUtils.pasを参照。つかステップ実行で試せばいいじゃん。
仮想リストビューの人うまくいったんだなw
988 :
デフォルトの名無しさん :2008/07/31(木) 13:35:53
仮性包茎のうまくやったんだな?
989 :
デフォルトの名無しさん :2008/07/31(木) 17:10:25
エクスプローラのリストビューで複数ファイルを選択してドラッグしたら 選択したファイルが半透明であれするんだけどそれどうやってやるの?
OLEDnD
991 :
デフォルトの名無しさん :2008/07/31(木) 18:59:59
どこかに参考になるソースないですか? あと、右ボタンでもドラッグしたいんだけどやりかたおしえてくださいよ
992 :
デフォルトの名無しさん :2008/07/31(木) 19:14:37
つーか、DoDragDropのやりかた教えて
またお前かw
アイコンが半透明で表示される機能はイメージリストにそういう機能があったような
996 :
デフォルトの名無しさん :2008/08/01(金) 10:12:58
997 :
デフォルトの名無しさん :2008/08/01(金) 15:07:43
さっさと右ボタンでD&Dする方法教えろよ
右ボタンのダウンを拾えばいいジャン。
駄目な奴は(ry
何をやっても駄目
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。