C++Builderに関する質問・回答や議論等を行う相談室スレッド。
過去スレ・関連サイトは
>>2-4 あたり。
2 :
デフォルトの名無しさん :03/02/18 13:23
2
BCB6 SP2 を UI が化けないようにインストールする仕方。
上記(
>>4 )からダウンロード。シリアル等は必要なし。必要条件は CBuiler6 がインストール済みであること
SP2 をインストールする前に、bin ディレクトリの以下のファイルの拡張子を .jpn に変更しておく。
bcbide60.bpl -> bcbide60.jpn
coreide60.bpl -> coreide60.jpn
準備完了。BCB6_xxx_Upd2 を実行。
これぐらいでいい? 連続投稿6回までだったのか、テンプレ適当に張ったんで引っかかったよ
>>8 このリンク先いいねえ。お気に入りに入れました。
スレ立てな方々お疲れ様です。
>>6 の情報に従い、アップデートしてみましたが、まだ何か足りない模様。
「関数 *** はインライン展開できません」な警告が英語になってしまいますた (つД≦)
ぉっ
( ・∀・) | | ガッ と ) | | Y /ノ 人 / ) < >__Λ∩ _/し' //. V`Д´)/ (_フ彡 / ←>>前スレ996
15 :
プロフェショナル版がほしいぼけぼけちゃんです :03/02/18 18:10
パーソナルで、ダイレクトエックスに入っている、ディブィディプレーヤー のサンプルを組もうと思ってるんですけど、やはり、ビィジアルシープラスプラス でないと組めないのですか。C++Builder手に入れて、サンプル組んでる のですが、制約があって、なかなか、前に進みません。2WayToolで、いろいろ、 組めないかなと、物色しています。 なにかいい方法があったら、おしえてください。あらあらかしこ。
Pro版の正規ユーザー向けに、某からEnt版の優待販売案内が 来たよ。 20万ほどするねえ。元が取れるのかどうか・・・・・
>>17 漏れのところにも来た。\199,500 ってエライ破格のようにも思えるが、
実際 Ent の機能は多分使わないので買わない。
それより
>>17 の言うように \378,00 → \199,500 で元が取れるのかと小一時間 (ry
それになんで今更 Pro ユーザに Ent への乗換えを勧めるのかと小一時間 (ry
.NET 対応かな?>次期Ent
20 :
プロフェショナル版がほしいぼけぼけちゃんです :03/02/19 00:24
16さんどうもありがとう。参考になりました。
21 :
デフォルトの名無しさん :03/02/19 03:57
ぬるぽ
( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←
>>21
>>17 実はPersonal版ユーザのところにも来てたりする罠
25 :
デフォルトの名無しさん :03/02/19 20:35
BCB6+WinXP(SP1)で空のプロジェクトのForm1にImageListを貼り付けて そのImageListに1つでもイメージを入れてメイクしたものを起動すると ストリームからのImageListデータの読み込みに失敗しました と出てしまいます。 やっぱり環境が悪いのかな、その後BCBを再インストールしてみたのですが。
26 :
デフォルトの名無しさん :03/02/20 08:34
DelphiとC++Builderって、全体的に見てどっちがプログラム実行速度は 速いのですかね?
どっちも大差ないとおもうけど 開発環境としての使いやすさはDelphiに一票
でも、大差ないんだったら正直必要ないのじゃないかな。 みんなは何で使っているの?
大差ないからこそ、PascalとC++の好きな方を選べるわけで
VCLコードは共通だから大差ないのが当然。 最適化オプションはBCBの方が少し豊富 コンパイル速度や言語の使い易さはDelphi。 BCBにはなんと言ってもC/C++コードが使えるメリットがある。
オレもDelphiとBCBが好き。 VB.NETもいいけどね。 VC++は嫌いかな。 あのコード記述主義が嫌い。 イメージリスト一個作るのですら疲れる。
32 :
デフォルトの名無しさん :03/02/20 09:20
最近ML流れてないなぁと思ったら、一旦停止してたんだね
BCBを買うとしたら、パーソナル版かプロフェッショナル版の どちらがよろしいでしょうか? Delphiみたいに、インターネット系とデータベース系のコンポは パーソナル版には無いのでしょうか?
基本的にDelphiと一緒
そうですか、分かりました。
>>31 それは言語の差というよりはライブラリの差だな。
37 :
デフォルトの名無しさん :03/02/20 14:42
TTableでデータベーステーブルに接続後、 どのフィールドがキーとして設定されているか調べることはできますか? FieldDefには、それっぽいプロパティーが無かった BDE→ODBC→SQLServerだから駄目なのか ADOを使えば、IsIndexFieldやLookupで調べられるのか
VCLは多重継承できんからクソ。Javaとかと違ってインタフェースないし。
ハイハイ、C++の多重継承やJavaのinterfaceを活用して美しいコードを書いてください。
>>38 VCL は インターフェース使ってますが? ソース見たことないの?
C++Builder Developer's Guideという本が出ているんだって、 今年、出た本とか。6000円なら、VC++.NETの12000円のほうが、 参考になるような気がするが。う〜〜ん、悩むところなのだ。
>>42 買ったときに付いてくる開発者ガイドレベルの内容ならいらない。
あれはわかりにくすぎる。
BCB5でつくったBDEベースのプログラム 6で開くと DataModuleがフォームとして表示されないな クソー 作り直しか!?
>>44 それ、俺もある・・・ くそーーーー!!!
BCB6になって、F1押して出るヘルプでVCLかCLXかを 選択しなくてはいけないのが面倒。なにか良い手はないものか。
>>46 1.C++Builder ヘルプが起動されている場合はそれを終了します (C++Builder IDE を終了する必要はありません)。
2.(CBuilder6\Help ディレクトリにある) BCB6.OHL, BCB6.OHI, および BCB6.OHC をテキストエディタで開きます。
3.それぞれのファイルの中で,"BLX2CLX" という文字列を含む行の先頭にセミコロンを入力してその行をコメントアウトします。
4.各ファイルを保存します。
5.CBuilder6\Help フォルダを開き,拡張子が "GID" の隠しファイルをすべて削除します。同様に,拡張子が "F" で始まるすべてのファイルを削除します。
だとさ。
ちなみにこれは readme.txt に書いてあるから一度目を通しておくといいよ。
49 :
デフォルトの名無しさん :03/02/22 08:01
前スレ 958 あたり >BCB_Update4の英語版 再公開されました。なんとなく FTP にアップロードするときにテキストモードを使ったぽい。 今ダウンロードできるファイルはアイコンも表示され、起動もします。 cp6_upd4_XXX.exe
50 :
デフォルトの名無しさん :03/02/22 10:31
BCBって、DelphiみたいにEXEだけで動かす事はできるのですか?
>>49 サンクス。早速適用してみました。(当方BCB6 Pro)
まずbcc32.exeのコンパイラバージョンが5.6.4に上がっています。
日本語エラーはUpdate3のものがそのまま使えるようです。
C++Builder Directは、Update3の時に修正しておけば、英語の
サーバにつながってしまう事はありません。
バージョン情報はUpdate3の時以来ですが英語に化けています。
http://www.bcbdev.com/articles/bcb6headers.htm ↑これの修正はしてくれたっぽいです。
Delphi7をインストールしている人は、Update4を適用した後に
cc3260mt.dllをWindowsのSystemフォルダにコピーして欲しいとの
由がreadme64.txtに書いてあります。
sizeof(BITMAPFILEHEADER)もちゃんと14を返してくれますね。
>>53 ,54
指摘の点は Update2/3 で修正済みなんじゃが。
今回は IME 関係の修正が有るね。何だろう。
56 :
デフォルトの名無しさん :03/02/22 20:55
57 :
デフォルトの名無しさん :03/02/22 23:24
BCB6Proが入っているマシンに
Delphi6Personalを入れたいのですが、共存は可能なのでしょうか?
BCB6についていた紙には
Delphi6がインストールされているマシンにBCB6をインストールするときの注意点が
書いてありましたが、
逆の場合はどうなるんでしょう…
前スレ
>>787-793 に、Delphi完全互換モードの方法が書かれてましたけど、
あれってBCB6でもできるんでしょうか?
(試し方が悪いのか、ちょっとやってみた限りでは出来なさげだったんですが)
これができるとDelphiインストールする必要なくなるのですが。
>>57 BCB6 + Update2の状況にDelphi6 Personalを後書きして使ってる
けど大丈夫だよ。
>>57 喧嘩するのは プロジェクトグループの関連付 だけだと思うよ
デバッグライブラリ使うと、スケルトンの状態のままコンパイルしても CodeGuardでリソースリークが検出されるようになってしまった・・・。
61 :
デフォルトの名無しさん :03/02/23 15:21
>>60 仕様です。VCLはリーク多いから気にしない方がいい。
Update4当てると、bcb6errs.hlpが英語版で上書きされてしまうね。 製品版CDからコピーし直すことをお勧めします。
63 :
デフォルトの名無しさん :03/02/25 00:07
さんざんガイシュツだと思うが BCB5Proで、DirectX9を利用できるか?
できる
というか正式な日本語版UP2はいつになったら出るのだろうか
ユーザサポートを甘く見ている気がして、 さすがに、もうついていく気にはなれないよ。 Borland大好きだったのに。ちぇっ……
英語版のアップデート入れればいいとはいえ、そのままではメニューが英語になったり、 コンパイラのメッセージも・・・。 完全に売りっぱなしってのはどうかと。
まあ確かにめんどうだな 次の製品がでるまえに最終アップデートの日本語版がでて それで終わりだろうな アップデートに不満のある人は ボーランドの本家に苦情を言ってみてはどうでしょう 日本にいうよりも効果はあるとおもうよ(*_*;;) M$みたいにインテルのコンパイラが簡単に 使えるようになるとうれしいが無理だろうな
71 :
デフォルトの名無しさん :03/02/26 20:26
>>68 ローカライズに決まってるだろ?
それ以外のどんなサポートが期待できるのか?
>>68 いままで普通にアップデートが出ていたから、
今回も当たり前に出るものとばかり思ったもので……。
そう言えば、以前、メールニュースにこんな内容のものがあったのを思い出しました。
>米国ボーランドの本社では、
>「日本のユーザーにとって必要なことは何か」
>について、皆様の考えを知りたがっています。
>そこで、メンバーの皆様にご協力いただいてアンケートを実施し、
>その結果を改めて「日本のユーザーの声」として、
>米国本社に提供したいと考えています。
>今回は「日本語化」に関するアンケートです。
>皆様がお使いになっているボーランド製品について
>「日本語化されていて良かったと思うこと」
>を選択していただくだけの簡単なものです。
もしかして、日本は市場的に冷めているので、
すこしずつ打ち切っていく方針なのでしょうか。
73 :
デフォルトの名無しさん :03/02/26 22:52
ものすごく初歩的だと思いますが。 OnKeyPressイベントのヘルプを見てその使用例を見ました↓ void __fastcall TForm1::FormKeyPress(TObject *Sender, char &Key) { char keyString[25]; keyString[0] = Key; strcpy(&keyString[1], " Was Pressed"); Application->MessageBox(keyString , "Key Press", MB_OK); } この中で配列を使わないといけないのでしょうか? それに、keyString[*]を使っていたり、keyStringを使っていたり・・・ 特に分からないのはkeyStringをどうして使っていて、どうして使えるのか。 最近始めたのですが、悩んでしまいました。 どういう意味なのか教えていただければ幸いです。
74 :
デフォルトの名無しさん :03/02/26 23:33
>>73 超初心者向けのCの本を読み直した方がイイよ、きっと。
質問なんですが、 作成したメタファイルの中の特定の矩形をCanvasに表示、 またプリントアウトってできるでしょうか? Drawや、StretchDrawだと無理ですよね。。。
>>73 例としてはトリッキーな部類に入るから
あまり深刻にとらえなくてもいいと思う
77 :
デフォルトの名無しさん :03/02/27 00:01
>>76 どこがトリッキーなのだ???
ごくごく普通の使い方じゃん
これが理解できないってのは、文字列配列について何も理解してないってことでーす
>>77 76 ではないが、わざわざ文字配列を使うより、
AnsiString で片付けてしまえ…という事ではないかな?
漏れなら AnsiString でやっちゃうけどね。
BCBでオーバーヘッドの大きいAnsiStringを積極的に使うのもどうかと。 ただ、C文字列を理解しないで済まそうという程なら、 わざわざ難しいC++にする理由は皆無。 Delphiの方がいい。
まぁ、文字配列わからないってのはあれだけど、 AnsiStringやstd::stringは積極的に使うべきだと思うが。
>char keyString[25]; >keyString[0] = Key; >strcpy(&keyString[1], " Was Pressed"); 何故 char keyString[ ] = "? Was Pressed"; KeyString[0] = Key; じゃないのだろう…
strcpyを使ってみたかった。
http://bdn.borland.com/article/0,1410,29793,00.html BCB6 Update4 正式公開。
えーと.. 日本語版はいつになるかなぁ。
今回の修正一覧を見ると面白いものが。
18) Improved double-byte character set (DBCS) support in the linker
for handling Kanji characters.
23) Fixed an access violation that occurred after resetting an
exception during debugging on a Japanese Windows 98 machine
with Global IME.
あれれ??? いつものFTPにはないのかな、見えない・・・ 見えないのは私だけですか?
>>84 FTPはanonymousをシャットアウトしたようです。Permission denied。
このソフトの無料ダウンロードてあるんでしょうか…
>>86 Enterprise版の30日体験版なら英語サイトから落とせる。当然英語版。
印刷するとき、1ページ以上にまたがるようなデータを、 印刷するとき、バックバッファのようなものに一時的にデータを描画して、 印刷用紙の大きさに切り取るような形で、印刷したいのですが、 どのようにやればいいのでしょうか?
89 :
デフォルトの名無しさん :03/02/28 02:55
BCBでシェルとか作れますか?
作れてあたりまえだろ?
Update4 になって、Update2 のリンカで発生した LME297 エラーが修復されたから それを待っていたのではないかな? 実用的な大きさのアプリケーションに対して、IDE 上でコンパイル/リンクをすると、 3〜4回目でエラーが出て、IDE が吹き飛ぶというもの。 リンカだけ製品版のものに戻して使うしかなかった。 このリンカのバグをそのまま日本で出していたら、もっと大きな騒動になっていたと思う。
92 :
デフォルトの名無しさん :03/02/28 23:41
Delphiのis演算子に相当する処理はどう書けばいいのですか? typeidは静的な型しか返さないとヘルプに書かれていて……
95 :
デフォルトの名無しさん :03/03/01 10:01
.rcファイルをプロジェクトに追加して使うことってできるの? 試しにやってみたんだけど、 ・日本語が通らない (コンパイラオプションって指定できるの?) ・「実行」でメイクするとリンクの前で終わってしまう(もう一回実行すると動く) となってしまいました。v6使用中です。
>>95 .RC コンパイル時のロケールが英語のまま。というバグは
BCB6 Update4 で直しますた。
あの、どなたかお分かりになりませんでしょうか・・・。 1ページ以上にまたがるようなデータを印刷する方法なんですが。。。
98 :
デフォルトの名無しさん :03/03/03 01:26
どうやって使えばいいんですか?
>>88 なんか質問の意図が判らないんだけど
はみ出す部分が出るような場合は、描画ルーチンを呼び出す前に
ビューポートを設定
例:OffsetViewportOrgEx(Printer.Canvas.Handle, ...
して、ビューポート位置を変更しながら
同じ描画ルーチンを複数回呼び出すのが一番簡単だと思うけど
描画ルーチンが重いから一度しか呼ばないようにしたいならメタファイルを
作ってって事になるんだろうけど・・・・効果あるかな
100 :
デフォルトの名無しさん :03/03/04 18:35
TCanvas::TextOut()をつかって描画をしたいのですが、 文字の背景色が常に白になっちゃいますよね・・・ これを変える方法があれば教えていただきたいのですが・・・ よろしくお願いします。
>>100 文字の背景色はCanvas->Brush->Colorで変えられる。
背景を描画しないなら、Canvas->Brush->Style = bsClear。
>>101 ありがとうございます。できますた(´ー`)ノ
103 :
デフォルトの名無しさん :03/03/05 10:29
フォーム(dfmファイル)をテキスト形式で保存しているのですが 既にあるテキスト形式の.dfmファイルをバイナリ形式で保存する 方法を教えて下さい。 Builder5で作成したフォームをBuilder3でみたいため
convert.exeってついてない?
>>104 ファイルシステムを指定してください。と聞かれちゃうけど?
ネタなのかな。BCBのbinフォルダにある方・・・。
自己解決ずみサゲ
109 :
デフォルトの名無しさん :03/03/07 00:49
デバイス依存しない、ビットマップを透過印刷する方法教えて
110 :
デフォルトの名無しさん :03/03/07 08:35
WinXPのエクスプローラにある、DHTMLみたいなメニューコントロールはなんてコントロールですか? 文字メニューをクリックすると、下に文字メニューがいっぱい出るヤシ。 例えば、「ファイルとフォルダのタスク」文字メニューのサブが「このファイルの名前を変更する、、、」とか。 で、BCB6にはありますか?
111 :
デフォルトの名無しさん :03/03/07 13:40
QuickReportでマルチカラムとシングルカラムを1つのレポートに混在させることはできますか?
>>110 自分で作れば何でも有るが。
MS がコモンコントロールとして公開していれば、それを使えるけど。
Explore が実際に何を使っているのかを調べるのが最初かなぁ。
VB/.NET でもよいから、再利用可能なライブラリとして存在するかどうか
調べてみたら?
113 :
デフォルトの名無しさん :03/03/07 14:39
>Explore が実際に何を使っているのかを調べるのが最初かなぁ。 どうやって調べるの? APIコールをトラップですか。 まだ一般的なコントロールではない、ということですか。
MS SDK なら SPY Borland 系なら WinSight あとは MSDN を(図書館等で)端から読む。もしかしたら、何か載っているかもしれない。
TQRCompositeReportを使うことで解決したかのように見えたのですが、 シングルカラムの後にマルチカラムのレポートを入れると、2カラム目以降が タイトルを上書きしてしまいます。これを解決する方法はありますか?
116 :
デフォルトの名無しさん :03/03/07 16:14
>>114 トラップについて書いてある本とか読んだことありますが、
冷静に考えると、その労力よりも、似たコンポ作るのが筋だと思いました。
先ず、ソース付のそういうコンポ転がってないですかね。
117 :
デフォルトの名無しさん :03/03/07 19:37
SelectObject(Shdc,GetStockObject(NULL_BRUSH)); でブラシを選んだ時はどんなふうに Deleteobject(ここの部分);を書けばいいですか 確かソースで勉強した時ゴチャゴチャしていたため みつからなっかたのか Deleteobject();書いてありませんでした この場合Deleteobject();は書かなくてもいいんですか
>>117 ストックオブジェクトは解放しなくていいよ。
119 :
デフォルトの名無しさん :03/03/09 19:00
Word文書やExcelファイルを開いて指定のページやシートに移動させるプログラム作りたいのですが、 できるのであれば教えていただきたいのですが、よろしくおねがいします。
>>119 できる。
さあ、答えたからビジネスsoft板に逝ってくれ。
122 :
デフォルトの名無しさん :03/03/10 04:49
TChartで、実行時に系列を作成するコードを記述したいのですが、 ヘルプには、次のようなDelphiでの例しかありませんでした。 Var MySeries : TBarSeries ; MySeries := TBarSeries.Create( Self ); なんとか、<Chart.hpp>内に次のような関数を見つけたのですが、 extern PACKAGE Teengine::TChartSeries* __fastcall CreateNewSeries (Classes::TComponent* AOwner, Teengine::TCustomAxisPanel* AChart, TMetaClass* AClass, TMetaClass* AFunctionClass); 一つ目の引数に、Form1 二つ目の引数に、Chart1 を用いるとして、 三つ目・四つ目の引数には、何を持ってくればいいのでしょうか?
123 :
デフォルトの名無しさん :03/03/10 06:48
しつもん。 Javadocみたいなツールって何がありますか?
124 :
デフォルトの名無しさん :03/03/10 11:51
BCB6 personal使ってるけど、デバッグ出力を表示する いい方法ないですかね? デバッグ実行だと、DebugViewとかに出力されないんで 困ってます。
>> 124 漏れは、出力に OutputDebugString() を使っていまつ。 出力される文字列は、「イベント ログ」に出てきまつ。 でも、素のままでは沢山余分なものが出力されてしまうので、 イベントログのオプションを開いて「出力メッセージ」って いうところだけをチェックしてまつ。 …ってこういう事を聞きたかったのではないの?
>>127 はやく Update4 が出るといいね。
>>125 doxygenって、プロパティとかには対応してるの?
BCBはパーソナル版なんで、イベントログはないです。 んで、ほかのデバッグ出力表示ツールを使って表示 させたいんですが、トレース実行中だと何も表示され ません。 通常実行だときちんと表示されます。 イベントログは開発には必須だろうに、なんで削られる かな〜〜???
ActiveXのメソッド、 int __fastcall GetHoge(long hword, BSTR* buffer); をBCBから呼び出すとき、どう書けばいいのでしょう? AnsiString str; int i=GetHoge(1,Variant(str)); ではうまくいきましぇーん。。
怪傑
>>131 デバッガオプションでIDE使うにチェックしてるとDbMonとかで受け取れなくなる。
自作クラスでの データ取得のメソッド(この場合Count) の名前は、 int GetCount(); int getCount(); どちらを推奨されますか? 他の普通のメソッド Load(const char* lpszFileName); load(const char* lpszFileName); も推奨お願いします。 本によって、変わってるのでどっちがいいかわから無いのです。
C++なら int GetCount(); Load(const std::string& filename_); Javaなら int getCount(); load(String filename_)
>>134 う〜ん。DbMon ってなんだかわからないけど、
某ランド純正でそろえないとやっぱり中途半端になるのね〜。
ぬあ
Builder相談室だった。
微妙にスレ違いだった。
>>136 さん
素敵な答えありがとう。
とても説得力があります。
>>137 PlatformSDK付属のツール。
OutputDebugStringで出力された文字列を表示。
>>124 さん
>>127 さん
>>130-131 var // ∧,,∧ こんなん作れ
hwndNotepadEdit: HWND;// ミ゚Д゚,,彡
// ミ)日⊂ミ
procedure DebugPrintNotepad( S:string );
var
hwndNotepad: HWND;
begin
if not isWindow( hwndNotepadEdit )
then begin
hwndNotepad := FindWindow( 'Notepad','無題 - メモ帳' );
hwndNotepadEdit := FindWindowEx( hwndNotepad,0,'Edit',nil );
end;
if not isWindow( hwndNotepadEdit ) then exit;
SendMessage( hwndNotepadEdit,EM_REPLACESEL,0,LPARAM( PChar( S+#13#10 )));
end;
顔面飛び出てる
142 :
デフォルトの名無しさん :03/03/12 00:59
>>134 なるほど、デバッガオプションに”統合開発環境を使う”というのがありました。
これをオフにするとデバッグ出力が表示できるようになりました。
でも、ステップ実行とは共存できないのか。。
7はでないんでしょうか? 6はもう1年以上たっているので どうせならと思い新しいのを買ってみようと 思いましたので。
146 :
デフォルトの名無しさん :03/03/12 18:32
自分で自分を消すプログラムを作ろうとして DeleteFile ( Application -> Exename ) ; としましたが自分が起動中だと消せないんですね。 何か方法は無いものでしょうか
>>146 CreateProcessで自分を消すまで粘るプロセスを起動する。
下記のbatを吐いて実行させておき、自分を停止すればいいのでは? -------------------------------------- :lbl0 del "〜exename〜" if exist "〜exename〜" goto lbl0 exit ----------------------------------------
>>148 exit の前に del %0 しといた方がいいのでは。
普通のやりかただと、
Win95/98/Me: WININIT.INI に書く
WinNT/2000/XP: MoveFileEx で MOVEFILE_DELAY_UNTIL_REBOOT 指定
というのがある。ただし、再起動するまで実施されない。
私はそれが許せないので自前のアンインストーラはバッチファイル方式にしてる。
150 :
デフォルトの名無しさん :03/03/13 01:26
>>148 ,
>>149 ありがとうございました。
del %0の意味がわからなかったので
-----------------------------------------------------------------
void __fastcall TForm1::FormCloseQuery(TObject *Sender, bool &CanClose)
{
TStrings *s = new TStringList;
s->Add(":lbl0");
s->Add("del " + Application->ExeName);
s->Add("if exist " + Application->ExeName + " goto lbl0");
// s->Add("del %0");
s->Add("exit");
AnsiString exepath = ExtractFilePath(Application->ExeName);
AnsiString batpath = exepath + "del.bat";
s->SaveToFile(batpath);
ShellExecute(this->Handle,"open", batpath.c_str()
,NULL,NULL,SW_SHOWNORMAL);
}
-----------------------------------------------------------------
と、コメントアウトしないものを比較してみて意味がわかりました。
そして%0ってbatでしか使えないということも調べがつきました。
ありがとうございました。
delete s; がないじゃん、(-_-)ウツダシノウ
153 :
デフォルトの名無しさん :03/03/14 16:57
当方,C++Builderのver3,Ver4,ver6 を共存させた環境で,Ver6 で新規 アプリケーション作成→そのまま何もせずに全て保存→メイク(CTRL+F9) すると,「[リンカ致命的エラー] Fatal:ファイル名が必要:」という エラーが出ます. 症状的には,ver6で新規にプロジェクトを作った場合は必ず出るよう で,古いverでプロジェクトを作成し,ver6でコンバートした場合は 発生せず,また,別のver6のみインストールしてあるマシンでは この症状は出ません. どなたか同様の症状になられた方はおられますでしょうか?また, 解決策がありましたら教えて欲しいのですが…
PATH順なんかの関係で常に古いリンカが呼ばれてるとか?(適当)
>>153 うちは3と6を共存させてますが問題無く動きます
>>153 もしできるなら。
.mak ファイルを作成し、DOS プロンプトでプロジェクトディレクトリに移動、
make -fxxx.mak でコマンドラインから実行してみて。
それで同じエラーが起きるなら、.mak に謎が。
もし、コマンドラインからだとビルドできるのなら、IDE が渡しているオプションを
確認したい。
ところで、プロジェクトファイルの絶対パスに "-" または "+" の文字が含まれていない?
エラーメッセージからみて、「"-" または "+" の文字」こっちだなぁ。 BCB6 SP4 以降を当ててください。
160 :
デフォルトの名無しさん :03/03/15 10:39
SP4あてて日本語環境はどうよ?
>>161 バージョン情報が英語になっているだけ(w
163 :
デフォルトの名無しさん :03/03/15 13:07
throw std::runtime_error("error"); とか書いても、エラーメッセージに「C++ Exception.」と出るだけです。 自分でcatchして情報を取り出さないといけないのでしょうか?
C++には最上位クラスがないから当然最上位例外クラスも無いわけで 処理系が自動的にメッセージを表示するのは無理。
>>163 普通catchがないとuncaught_exeption()が呼び出されるんじゃ
なかったっけ。
uncaught_exception()だった。スマソ
>>165 どっちにしてもコンパイラが例外の種類に応じて
自動的に適切な文字列に書式化して表示するのは無理。
あ、そう。無理ですか。 じゃ、catchでの文字列の取り出し方とかキボンニュ。
Delphi例外を投げるのではダメなのか?
>>170 Win以外の開発が多くなったもんで。
テスト用にBCBツカテルダケ。
Linuxが多くなったら、またKylixに戻る予定。
>>171 キャッチしたら Delphi例外を投げ直したら?
>>172 だから、runtime_errorのキャッチのコードキボンニュ。
文字の取り出し方知らないしー。
ごめん。169って煽りじゃナカタノネ。 catch (const exception& e) e.what()
でもなんか、コンパイル通らないし...
>>175 ああ、もう少し具体的に書けば良かったかな。
もしかしたら what? (何だって?) と誤解されるかと書いた後で思った。
what()という名前のメンバ関数だから仕方ないね(w
>>176 例えば
#include <iostream>
#include <stdexcept>
void func() throw(std::exception)
{
throw std::runtime_error("error");
}
int main()
{
try {
func();
}
catch (const std::exception& e) {
std::cout << e.what() << std::endl;
}
}
お、コンパイル通った、thanx!
>>178 てゆうか、某のヘルプstd::exceptionのstd::が抜けてるしー。
むう・・・まさか、そんなレベルで転んでるとは思わんかった。 スマンな
BCBと他コンパイラの共存が必要なとき、__finallyはどうしてます? VC++にはあるとおもうけど、VC++なんかは要りません。
>>181 finallyなんて使わずにcatchで我慢
>>181 スマートポインタか、その場で構造体宣言してデストラクタで処理
>>155 BCB1以降,バージョンアップの際に自動で行われるファイルの
アップデートで何度か痛い目に遭っているので,古い環境も
なかなか捨てられないのですよ….全部新しいverで動くか検証
するとしたら,3桁くらいのプログラムをコンバートして調べな
いといけなくて…
>>158 ビンゴでした.
Projectファイルを "c++" なんていう名前を付けたフォルダの下に保存し
ていたため,絶対パスに"+"が含まれていて,ver6のでは引っかかっていた
ようです.ver6のみ入れたマシンはそんなことしていなかったので,大丈
夫だったというオチでした.
updateを適用してみます.
どうもありがとう.助かりました.
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
IdHTTP1->Request->UserAgent = "Mozilla/4.5 [ja] (WinNT; I)";
Memo1->Lines->Text = IdHTTP1->Get("
http://pc2.2ch.net/test/read.cgi/tech/1045542179/l10 ");
}
//---------------------------------------------------------------------------
としてみたが問題なくコンパイルできるし動いてるよ
9.0.11だす
>>186 むぅ。
もう一回ちゃんと確認してみる。
thanks.
やっぱりだめでした。
1.BCB6をIndy8なしでインストール
2.Indy9.0.11をダウンロードしてきてFullC6.batでmake
3.コンポーネント→パッケージのインストールでインストール
4.新規プロジェクト作成→とりあえずすべて保存
5.Form1にTIdHTTPコンポとメモ、ボタンを一個ずつおく
6.Button1のOnClickに
>>186 のコードをかく
という感じですが…。
ライブラリパス見てもIndyのパス追加されてるし、
さっぱりわからないよ。
>>190 パスはとおっててもリンクされてないだけでしょ。
LIBファイルをプロジェクトにドロップして追加してみ。
>>191 >>185 の症状だとそんな必要があるんか
いやー、うちはそんなことしてへんけどな
いやまて、うちのはBCB6 Pro.
>>185 氏のは?
>>191 Indyの場合、どのファイルになるんでしょうか…。
関連するようなファイル(IdHTTP.hpp,IdHTTP.obj,IdHTTP.dcu,dclindy60.bpl)を
プロジェクトマネージャに追加してみたんですが同じリンカエラーがでます
>>192 同じく、BCB6Proです。
謎ですね…。
一回インストールし直した方がいいのでしょうか。
>>185 んでは、BCB6本体にアップデートあててあります?
Indyの説明で「まずアップデートしろ、話はそれからだ(意訳)」とあったですよ
んで、その時はアップデート2まで出ていたんで、自分は1と2を順にあててからIndyを入れました。
今思い出した Indyのインストールって、 >FullC6.batでmake >3.コンポーネント→パッケージのインストールでインストール だけでは済まなかったような 色々なLibだのbplだのbpiだのを拡張子を頼りに手動でいくつも移動・上書きしたような・・・
>>194 あれ?
BCB6のアップデートってでてましたっけ?
Indyのインストール方法については、もうちょっと見直してみます…。
198 :
デフォルトの名無しさん :03/03/19 23:15
TFrom を継承したクラスをフォームの作成で定義し、 作成したスレッドから new して使用しているのですが、 複数のスレッドが起動して new していると EInvalidOpration 例外が発生して、 「 Canvas に対する描画できません」と出ます。 これは何が原因なのでしょうか。
LoadFromFile で文字コードが EUC-JP なファイルを開くと 日本語部分が文字化けするんですが、何かうまい解決法はないでしょうか。 基本的なことだと思うのですが検索してもさっぱり出てこなくて…。
>>199 メソッドをオーバーロードするしかないんじゃない?
オーバーライドじゃないですか。 そんで文字コード変換コードを。
202 :
デフォルトの名無しさん :03/03/20 02:08
>>199 コード判別してsjisにコンバートすればいいじゃん
>>197 update4 では変更されるファイルが多いから、update3 までの対策では足りないと思う。
なお、今回は Update4 を日本語環境にインストールするためのパッチは出しません。
>>200-202 読み込む時に文字コードを変えてやればいいんですね。ありがとうございました。
とりあえず
AnsiString str;
edit->Lines->LoadFromFile(FileName);
str = edit->Lines->Text;
edit->Lines->Text = ConvertJCode(str, SJIS_OUT);
などとして逃げてみました(…なんかめちゃくちゃだなぁ)。
優越意識丸出しでいやだねー
>>197 とりあえずupd4まで入れてみたんですが、
結果同じでした>Getが未解決
Indy9のC6ディレクトリに出来たものを自力で移動させないと
だめってことでしょうかね…。
208 :
デフォルトの名無しさん :03/03/20 12:22
今日から勉強始めるけど参考書になに買ったらイイ?
山川出版の「世界史」
210 :
デフォルトの名無しさん :03/03/20 13:26
自分の作ったソフトのTListViewからエクスプローラにD&Dする方法を教えて下さい
出来ました!
ちゃんとFAQ嫁ってことで…。
ヒントをくれた
>>186 氏に感謝。
>>190 の3.の後に
・ツール→環境オプション→ライブラリの
ライブラリパスにパスをC6(の中の*.DCU)の場所を追加
>>190 の4.の後に
・プロジェクトのオプションのインクルードパスにC6(の中の*.HPP)の場所を追加
これで無事にmake通りました。
>>211 おめ。
俺も最近Indyで躓いていたので、このやり取りは参考になった。
キーフック用のDLLを書いているのですが、 DLL内のグローバル変数を異なるプロセス間で共有するにはどうすればいいのでしょうか? DEFファイルのSECTIONS文を使えばいいみたいなのですがやり方がさっぱり‥‥∧||∧
>>214 VCなら#pragma data_seg()があるけど、BCBにはないからね。
アセンブラでセグメントを共有するしかないと思う。
>>215 大人しく、DLLだけVCでコンパイルします(´・ω・`)
217 :
デフォルトの名無しさん :03/03/21 17:09
if ( mBombAy < 0 ) return; //操作 switch( Key ){ case VK_SPACE: mBombX = mPlaneX; mBombY = mPlaneY; mBombAy = -5; break; case VK_UP: mPlaneAy= -5; break; case VK_DOWN: mPlaneAy= 5; break; 〜 Bombを動かしてるときはSpaceの入力を受け付けないようにしたいんですが、 「if ( mBombAy < 0 ) return;」だと全てのキー操作を受け付けなくなっちゃいます。 Spaceの入力だけ受け付けないようにするにはどうしたらいいでしょうか?
218 :
デフォルトの名無しさん :03/03/21 17:33
この中でBCB6のEnterpriseを買った人っていてる?
>>217 //操作
switch( Key ){
case VK_SPACE:
if ( mBombAy < 0 ) return;
mBombX = mPlaneX;
これじゃだめなのか?
あと、BCB使っててもこれはこのスレ範疇じゃないし
Bombという名前からしてゲームだと思うので
ゲーム板で聞いたほうがいいんじゃないかね?
変数に入力した整数を TMemoに出力するにはどうしたらいいんですか?
221 :
デフォルトの名無しさん :03/03/22 02:10
>>220 Memo1->Text = IntToStr(number);
222 :
デフォルトの名無しさん :03/03/22 02:33
>>214 メモリマップドファイルを使いましょう。
THotkey::Hotkeyの戻り値から装飾キーの状態を取りたいのですが、 LOBYTE(Hotkey)は仮想キーコードがきちんと格納されているのですが、 装飾キーがHIBYTE(Hotkey)&HOTKEYF_ALT等で取れず、 altの場合はHIBYTE(Hotkey)&0x80にしないと取れないのですが SDKのHKM_GETHOTKEYとVCLのTHotkeyとでは仕様が異なるのでしょうか?
違うみたいなんで、Modifiers使わないでHotKeyから取りたいなら、 ShotCutToKeyを使うか、HotKey & scAlt みたいにするんだと思う。
226 :
デフォルトの名無しさん :03/03/22 19:31
threadを作って、そのthreadでCreateProcessを呼んでも成功しないようなのですが、 main threadで実行しなければいけないなど、何か制限があるのでしょうか?
Win98では駄目だったんですけど2000では何故かいけました…(?)
228 :
デフォルトの名無しさん :03/03/22 21:51
TTreeViewのイメージリストにアイコンを追加しようとしたのですが、 実行時にエラーが出て実行できません。 TIcon* icon = new TIcon(); icon->LoadFromFile("icon.ico"); TreeView1->Images->AddIcon(icon); これでは駄目なのでしょうか?分かる方いましたら教えてください。
質問です。 VCL使った普通のGUIアプリ作っているんですが、 これの動作の優先度(priority)を自分自身で変更するにはどうすればよいでしょうか? #ググってみたんですが、それらしいものが見つからなくて・・・。
TTreeView->Imagesは外部イメージリストとの接続用だから他でインスタンス作ってTreeView1->Images = とやるかフォームにTImageListを貼り付けてオブジェクトインスペクタで設定するか。
>>231 ありがとうございました。
HANDLE hMyProcess;
hMyProcess = GetCurrentProcess();
SetPriorityClass(hMyProcess, 0x00000040);
こんな感じでできますた。
#何か定数を入れてもUndefinedっていわれちったので数字直接書いてますが。。。
233 :
デフォルトの名無しさん :03/03/23 02:07
GetExitCodeProcess関数を使おうとして BCBのエディタに GetExitCodeProcessと打つと、 ドライブにディスクがありません。ディスクをドライブ \Device\Harddisk1\DR1に挿入してください。 というダイアログが出て、何もできなくなるんですが、どうしたら良いのでしょうか? この症状はうちだけなんでしょうか…?
OSはWin2000です。 再インストールした方が良いんですかねぇ…?
へー。 IDEのバグ? コードエクスプローラー関連だと思うけど。
236 :
デフォルトの名無しさん :03/03/23 10:27
環境はWIN2000,C++Builder5なんですが、 データベースから、DBGridにテーブルを表示させ、クリックで選択した部分の情報を取得するには、 どのように記述すればいいでしょうか?教えてください。 それを元に、その情報を含むデータを別のDBGridに表示させたいです。
サンプルありませんか?
238 :
デフォルトの名無しさん :03/03/25 00:46
TPrinter を使って、印刷を行う場合、 PDFへの印刷は、プリンタ名にAcrobat Distillerを指定すればよいと思うのですが、 任意の場所(C:\PDF)に任意の名前(TestPDF.pdf)でPDFファイルを出力するには どのように設定してやればよいのでしょうか?
239 :
デフォルトの名無しさん :03/03/25 04:57
すみませんが、教えてください。 オプションで指定できる、下記をプログラムから参照するにはどうすれば良いのでしょうか。 会社名/説明/ファイルバージョン/内部名/著作権/商標/正式ファイル名/製品名/製品バージョン/コメント Versionは5.0です。
>>233 おれんところでは再現せず。
Ctrl-Space でコード補完をかけているか、または GetExitCodeProcess の最後で ( を打ったときに
問題が起きるのであれば、とんでもないディレクトリのファイルを見に行っているんだと思う。
リムーバル HD とか使っていなかったかな?
BCB覚えるのに何かいい本無いですかね。 ぐぐるのにやたら時間かけるのも疲れちゃって…
>>241 一冊でやろうとするから難しいのでしょう。
C++の本と Delphi本とに別けて探したら?
というか、まずDelphiに慣れてしまう方が楽なのでは?
244 :
国語が足りない奴 :03/03/25 11:02
Borland C++でリソースコンパイラが、 windows.hのヘッダファイルを展開してくれません。 「Cannot open file: windows.h」というエラーが出ます。 どうすればいいのですか?
>>244 ./bin/bcc32.cfgを見直す
246 :
国語が足りない奴 :03/03/25 14:24
bcc32.exeでコンパイルする時は、ふつうに展開するんですけど。 bcc32.cfgやilink32.cfgは SETBCC というフリーソフトにまかせました。 bcc32.cfgは -I"D:\borland\bcc55\include" -L"D:\borland\bcc55\lib;D:\borland\bcc55\lib\PSDK" こうなっているんですが両方のパスは合っています。
248 :
デフォルトの名無しさん :03/03/25 20:25
DXスレで訊くべきかもしれませんが、 D3DX(エクステンションライブラリ)を、BCB5から使う 方法はありませんか? COFF2OMF.EXE はインポートライブラリ専用だと知ってとってもガクーリだ。
249 :
デフォルトの名無しさん :03/03/25 23:50
PDFファイルってプリンタに出力するように作成できるの!? それって、めっちゃ楽じゃない?
251 :
デフォルトの名無しさん :03/03/26 08:14
C++Builderって、「実行時パッケージを使って構築」をOFFにしても、EXEだけの 単体で動かす事はできないのでしょうか? EXE起動時に「CC3260MT.DLLが見つかりませんでした。」というメッセージが 表示されて実行できないのですが。
>>251 オプションのリンカタブにある「共有 RTL DLL を使う」のチェックも外すといいんじゃないかな。
FAQね。
253 :
デフォルトの名無しさん :03/03/26 08:40
ありがとうございました。 動きました。
254 :
デフォルトの名無しさん :03/03/26 13:09
C++のクラス変数って初期化されますか?
256 :
デフォルトの名無しさん :03/03/26 16:10
C++Builder使うなら、ぱすかるの知識も必要ですか?
BCBでjpeglibを使いたいのですが、 実際にプログラムを作ってjpegを読み込もうとしても JPEG parameter struct mismatch というエラーが出てjpegが読み込めません。 なにが原因なのでしょうか? 同じようなプログラムをコンソール版でつくったら このエラーは出ずに普通に動くので、 ますます原因が分かりません。
TJPEGImage についてなら相談に乗らんではない。
>>250 ありがとうございます。
GetFileVersionInfo()を頼りに検索かけまくってようやくプログラミングできました。
これってBuilder固有の話ではなく、Win全般に共通だったのですね。
GetOwnProgramInfo()
{
char szPath[MAX_PATH];
DWORD dwSize = 0;
DWORD dwReserved;
LPVOID lpBuff=NULL;
UINT dwLen;
LPWORD lpWord;
DWORD dwLangAndCharSet;
char szKey[256];
if(::GetModuleFileName( NULL, szPath, MAX_PATH )==0)
return;
dwSize=::GetFileVersionInfoSize( szPath, &dwReserved );
if(dwSize==0)
return;
lpBuff=malloc( dwSize );
if(lpBuff){
BOOL bRet = ::GetFileVersionInfo( szPath, 0, dwSize, lpBuff );
if(bRet==true){
bRet = ::VerQueryValue( lpBuff, "\\VarFileInfo\\Translation",(void **)&lpWord, &dwLen );
if(bRet){
dwLangAndCharSet=MAKELONG( lpWord[1], lpWord[0] );
LPTSTR lpStr;
sprintf( szKey, "\\StringFileInfo\\%08x\\%s",dwLangAndCharSet,"CompanyName");//会社名
bRet = ::VerQueryValue( lpBuff, szKey, (void **)&lpStr, &dwLen );
・・・
こんな感じで取得できました。
>>260 VCで作っていた画像用のクラスの部分をBCBで使いたいので、
できればその部分はそのままの形で使いたいのです。
さて。Update4 だが。
自己解決しました。 コンソールからmakefileを使ってライブラリを作るのではなく、 BCBを立ち上げて、そこからライブラリを作るとうまくいくみたいです。 かわりに今度はコンソールのほうで同じエラーが出るようになりましたけれど。
266 :
デフォルトの名無しさん :03/03/28 06:43
ファイル名を列挙して 文字列を格納したListViewの 個々のアイテムのアイコンを ファイルと同じにしたいのですが、 ファイルから関連付けされてるアイコンのハンドル取得 →ImageListに追加 →アイテムのImageIndexを書き換える をやってたら、膨大なリソースを使いそう+重そうなんです。 他に、何か簡単な方法はないですか?
>>266 OwnerDrawをtrueにする。
そんでOnDrawItemでアイコンを取得して自分で描画する。
(・∀・)ニヤニヤ
すみません。 デバッグ時に実行する行を強制指定することは出来ないのでしょうか? VCでいうところの、右クリック->次に実行するステートメント みたいな機能 なんですが
>>267 情報ありがとう。
でも、
簡単には出来ないみたい。
~~~~~
「簡単に」ってことが「コードを書かずに」を意味しているのなら、 OS がサポートしていない機能なんだから不可能。 エクスプローラもどきを作ろうとしているわけでしょ? 既存のコード/コンポーネントを流用したら? Shell コンポーネント貼り付けちゃえば済むはなしではないかな?
>>271 べつに手順どおりに組めばいいだけだから難しくないんじゃ?
274 :
デフォルトの名無しさん :03/03/30 15:12
タスクバーのアイコン上にドラッグ&ドロップすることってできますか? いろいろ調べたんですけど情報が見つからなくて・・・ 教えて頂けると大変助かります。 よろしくお願いいたします。
>>274 どんなアプリケーションでも不可能じゃないの?
「タスクバーのボタン上にはドラッグできません」
と警告が出ますが。
どれか、できるアプリをご存知?
サービスアプリケーションを作成しているのですが、訳あってフォームを 表示しなければならなくなってしまいました。どなたか、サービスアプリ からフォームを表示する方法を教えて下さいませ。
>>276 ふつーはできません。
ユーザーがログインしていない状態でもサービスは起動しつづけなければいけないので
デスクトップ等が存在しているとは限りません。
たとえば、サービスで動く Interbase に対する IBAdmin のような単体アプリケーションを
用意し、メッセージの表示はそっちにまかせる。というのが良くある手法です。
こっから先は、CBuilder 相談室以外のところで聞いたほうが、各種情報が集まると思うぞ。
277>>早速のレスありがとうございます。なるほど〜・・・ 実は、フォームの表示というか、サービスアプリ内でjpg画像を 生成するのが目的で、フォームが表示できるなら、TCanvasコンポーネント で簡単につくれるかな〜と思った次第です。 というわけで、TCanvasなどのコンポーネントを利用せずにjpg画像を 生成する方法があれば万事解決なのですが、ご存じの方、お力をお貸し 下さい m(-_-)m
メール欄に sage と書け。無駄にあげるな。 デスクトップにアクセスする権限の無いサービスから Bitmap やデバイスコンテキストを作成できるかどうか。 人に聞く前に、ちょちょいと自分でやってみな。 サービス内で TBitmap 作ってそれの Canvas に文字を書いて TJpeg で Jpeg 化して送り返す。 だけだ。
281 :
デフォルトの名無しさん :03/03/31 11:35
>>281 今英語版のUpdate4当たっているんだけど、上書きして大丈夫かな。
試してみます。Helpの化けが直ればいいんだけど。
#しかしもうすぐBCB7が出る時に今更Update4もないよなあ。
>今英語版のUpdate4当たっているんだけど、上書きして大丈夫かな。 2ch パッチを当てている方は以下の *.jpn ファイルを「必ず」削除してください。 bcbide60.jpn coreide60.jpn comp32p.jpn bcc32.jpn >試してみます。Helpの化けが直ればいいんだけど。 それは無理じゃないか? >#しかしもうすぐBCB7が出る時に今更Update4もないよなあ。 もうじき?まだまださきじゃ無い? Q3 って秋だよ。
日本語版Update4当ててみました。英語版Update4が既に当たっている 場合は、Helpの化けが直りません(T_T)。気分が悪いので再インストール しようと思います。 英語版Update4のファイルがほとんど上書きされていました。もしかしたら 日本語版独自の拡張が何かあるかもしれません。(多分そんなものは無いと いう確信に満ちたものがありますが・・・・) bcb6errs.hlpが日本語版になったのは唯一うれしい事です。
Update1 は日本語版では反映済みで、Update3 は公開ベータ扱い。 だから Update2 を抜かしただけなんだけど.... 期間があまりにも開いたのが痛かったなぁ。だいぶ心証が悪くなった。 俺は英語版パッチ当てていたからバグは回避できていたけど。
>>284 ヘルプの化け、ってなに?
どこが化けるの?
>>286 今BCB6を完全アンインストールしてから再インストールしてみました。
俺の記憶では日本語版はHelpも日本語版だったような気がするので
すが、違ったようです。
但しURLの参照先がwww.borland.co.jpになっているので、これでよい
のだと思います。
Delphi7との共存のためにcc3260mtをwindows\system32にコピーしな
いといけないようですね。
んー だからどこのヘルプが化ける/英語のままなの? D7 と共存させているようだけど、D7 でインストールされるヘルプが表示されているのではないかなぁ。
>>283 げげっ削除しませんでした。
もう一度やり直します(T_T)
>>288 ちょっと待って。俺のは
>>283 の2chパッチが当たったままだったから、
これを削除してやり直してみる。フォルダごと削除するよ。
291 :
デフォルトの名無しさん :03/03/31 12:40
パッチで追加されたファイルは、元から存在せず、今回のパッチでも追加されていないファイル(のはず) *bcbide60.jpn *coreide60.jpn *comp32p.jpn *bcc32.jpn Update4 を当てる前でも後でも、削除すれば問題ない。はずです。 気持ち悪い場合は、再インストールまで戻ることになるかもしれませんが。 ヘルプの文字化けの件、どこが化けるのかおしえてくれよぉ。
>>291 春休みなので典型的な春厨です。
>>292 当てる後で削除してもよかったのですね。気持ち悪いので一度
再度アンインストールし、全てのフォルダを削除してからまた
インストールしました。
Helpの文字化けの件だけど、俺の記憶ではHelp->バージョン情報
が日本語だったような記憶があるのだが、今やってみたらやっぱり
英語で表示された。だからこれはこれでいいんだろう。
Helpファイルで化けることはありません。Update4英語版ででbcb6errs.hlpが
英語だったので、これが無効になるという不具合がありましたが、日本語
Update4では直っています。
全くスレ違いですが、Delphi7のアップデートファイルは出ているのですか?
「Help->バージョン情報 」と「ヘルプ」はべつだようぉ。 「Helpの化けが直りません」ってあるから.... ま、良かった。
>>295 ごめんなさい。もう少しわかりやすく書けばよかったですね。
>>296 Delphiのスレにも書いてないようなのですが・・・・・・
>>296 そうでしたか。まだ出てないのですね。英語のサーバにも行ってみたけど、
レジストリ修正のパッチしか出ていませんでした。
メニューがXPに対応していて、XPのColorMapのコンポーネントもあるので、
早くBCB7も出て欲しいです。
僕は、最初からBorlandを信じていたよ。 うん。
>>299 ナイスな皮肉。
で、正式発表はいつだろう。また一月くらいかかったりして。
>>300 ローカライズの点でまだβだったりして・・・
イスドン128なんでまだまだDLに時間がかかる…
(´-`).。oO(Readme_64.txtのヘルプのアップデートの手順が間違ってる‥‥.GIDの間違いだよな?)
2ch 以外ではどこも話題になっていないってのが情けないというか。 ユーザーは死滅したか。 ホームページのトップにでかでかと出さないと、みんな気づかないぞ。
>>304 実際知名度低くてな〜
この間仕事先でがんばってMFCでアプリ作ってる人がいて
なんか悲しかった…
BCB…どこまでも不憫なやつ ・゚・(ノД`)・゚・。
309 :
デフォルトの名無しさん :03/04/01 01:32
ところで・・・・ これ、パッチ当てたバージョンってどこで見る訳?
310 :
デフォルトの名無しさん :03/04/01 01:37
>>309 激しく尿意
バージョン情報にはあらわれないよね
6.0.10.166ならパッチ済みだっていうのかな
あー、すいません、素人質問です。 char a[] = {'A','B','C'} みたいな形で、2バイト文字を扱いたいのですが、何かうまい方法は無いでしょうか…。 昼からいじってるんですけどうまいこと思いつきません…。
char *a[]={"あ","い","う",}; short a[]={'あ','い','う',};
313 :
名無しさん :03/04/01 04:29
wcharっていう型なかったっけ。
あっ、ポインタか…どうもありがとうございます。 #もっと本読まないと
315 :
デフォルトの名無しさん :03/04/01 04:34
318 :
デフォルトの名無しさん :03/04/01 04:51
日本語版アップデート入れてみましたが、個人的には 致命的なバグが治っていなくて悲しいです。 エディタのキー割り当てをepsilonエミュレーションにした場合、 拡張モジュールに「バッファリスト」というものがあるのですが、 そのチェックをOFFにしても、次にBuilder起動するときには またONに戻ってしまいます。 epsilonエミュの場合、カーソル後ろ移動のCtrl-Bとバッファリストの キーアサインが重なってしまい、「バッファリスト」を外したい人は 多いだろう、と思っていたのですが・・・。
>>319 パッケージ一覧から外せばOKでない?
それでダメなら該当bpl消してしまえば(ぉ
>>致命的なバグが治っていなくて悲しいです だからね、どこかにレポートを出した? 出さなきゃいつまでたっても不便さは直らないよ。
C++Builder6 Update#4は、CodeGuard絡みでバグがあるようだな。 MLで報告されてる。 以下MLより。ちなみに、うちでも再現した。 ================================== 以下の環境で試してみました。 ・C++Builder6 + Update#4 ・フォームのみの単純なプロジェクトを新規作成 ・共有RTL は使用しない ・デバッグライブラリを使う ・実行時パッケージ も使用しない ・デバッグモードでコンパイル ・CodeGuard を使用する!! 次に、作成したProject1.exeをコマンドラインから起動して、終了すると CodeGuardがエラーを報告して、以下のような Project1.cgl を書き出します。 (※ 実行時パッケージ を使用すればエラーは報告されません) ----------------------------------------------------------------------- Error 00001. 0x400003 (スレッド 0x0110): Exception 0xC0000005: Access violation at 0x87B887B8. 呼び出し履歴: 0x0042AC26(=Project1.exe:0x01:029C26) system.pas#17223 0x0042C006(=Project1.exe:0x01:02B006) WinHelpViewer.pas#661 0x0046A6CB(=Project1.exe:0x01:0696CB) 0x0046A71A(=Project1.exe:0x01:06971A) 0x00469A40(=Project1.exe:0x01:068A40) 0x0046A8F0(=Project1.exe:0x01:0698F0)
DelWikiがあるんだ。 BCBWiki作ろうぜ。 おれは、参加しないが。
325 :
デフォルトの名無しさん :03/04/07 23:25
C++Builder6 Proで、チュートリアルにしたがってテキストエディタを作っているのですが、 なぜか、ツールバーにアクションマネージャから項目をドラッグすると、ボタンだけでなく、 その横に、文字も入ってしまいます。たとえば、「新規作成」をドロップすると、 ボタンだけでなく「新規作成」という文字もはいってしまうのです。 これを消して、ただのボタンにすることはできないのでしょうか。 お願いします。
ShowCaption
メニューを切り離し可能にする方法を教えてください。 Window側のDockSiteをtrueにしても何も変わりません。
328 :
デフォルトの名無しさん :03/04/08 13:35
BCB4でSTLportを使おうと思ったら、プロジェクトのインクルードパスをいじるんでしょうか? そうだとすると、プロジェクト毎にいじらないといけなくなってしまいますが、 もっとよい方法はありますか?
BCBはC/C++の開発環境なんだから、 BCBのコンポーネントはすべて、C++で書き直すべきだという考えについてどう思いますか?
>>329 時間さえあればいいんじゃないですか。
ただ、Pascal は多少なりとも覚えておくべきだと思います。
>>329 それやったらDelphi用コンポーネントが使えなくなる恐れあり。
新しいバグも含んでしまうかも。
あの、なんちゃら.pasってやつ? あれがあるから萎える。 C++オンリーにしてほしい。気分的に。
最初からDelphiつかえばいいのよ
>>333 Pascalなんて使い宅ねー。
でもBCBは純粋C++じゃねー。
ってことで。
>>334 DelphiにもKDEという標準以外のコンポーネントシステムが外国の有志で作られてますから
ご自分で、作ればよろしいのでは?
もっとも、コンポーネントを実装するにはどうしてもC++にはない拡張キーワードが必要なようだけど
>>335 BCBは自力でコンポーネントを組めるように各種の奇っ怪な拡張が
なされています。
すいません。 VC++からBCBに移行しようかなーと試しているものです。 チュートリアルのあるテキストエディタを作ってみて、 なかなか作りやすいので関心したのですが、リッチエディットと いいながら画像が張り付かないのが不満です。 たぶん簡単なやり方があるのではと思うのですが、 教えていただけないでしょうか。 つまり、クリップボードにある画像を文字の間に挿入できるような ワープロを作ってみたいのです。
339 :
デフォルトの名無しさん :03/04/08 22:08
341 :
デフォルトの名無しさん :03/04/09 00:12
Delphi資産が利用できるというメリットが生まれ、余計な工数と無用のバグを埋め込むのを回避できる という賢い選択だと思う。 それに普通に使ってる分には、パスカルを意識する必要性はない。 ただし、基数が0ではなく、1なのがキモイ これを知らずに小一時間悩んでしまった。
342 :
デフォルトの名無しさん :03/04/09 00:22
質問があります。 先日Borland C++ Builderを購入してプログラムを作っているのですが、 うまくコンパイルが出来ません。何か勝手にproject1.cppとか訳のわからない プログラムが出てきてエラーメッセージを出してきたり、表示されても数秒 で消えたり、万策を尽くしましたが一向に分かりません。 誰か教えてください!
書き忘れていましたが、バージョンは6です。 お願いします。
>>342-343 エラ−メッセージくらい書いてくれyo
どんなプログラム作ってるのかくらい書いてくれyo
>344 ランダム関数でデータを返しcsv形式で保存するプログラムを作っている。 その試しに文章表示の簡単なプログラムを作ったのだが、とにかく何か勝 手にproject1.cppとか訳のわからないプログラムが出てくる。そしてエラ ーメッセージとしては、それに関わるもの。<vcl.h>がオープンできない とか、 WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) の宣言の構文エラーだとか。そういったところです。
びっくりするほどユートピア (懐
>>345 マニュアルとかちゃんと読んでる?。最低限のC++Builderの使い方は理解している?。
クイックスタートっていう薄いマニュアルがあるから、とりあえずその本に書いてある
とおりにプロジェクトを作成してコンパイルしてみたら。(ページだと3-1以降)
ひと通りの手順はそれで理解できるはず。もしそれでもわからなかったらあらためて
質問すればいいし。今のその質問の書き方じゃ誰も答えようがないと思うよ。
348 :
デフォルトの名無しさん :03/04/09 05:59
>>341 >ただし、基数が0ではなく、1なのがキモイ
これどういう意味ですか?
配列なんかのはじめが0でなく1?
351 :
デフォルトの名無しさん :03/04/09 06:57
>>349 Pascal の String 型は、第 0 バイト目に文字列の長さが格納され、文字列そのものは
第 1 バイト目から格納されていたから。
今もその名残で、32-bit String でも、第 1 バイトから文字列が始まることになってます。
昔でも第 0 バイトは暗黙にアクセス禁止だったんじゃないかな。
(´-`).。oO(AnsiStringなんてUIまわりしか使わない気がする‥‥)
>>351 AnsiStringは内部的には0から始まってるよ。VCL/dstring.h見ればわかるけど、
char& __fastcall operator [](const int idx) {(略) return Data[idx-1]; }
だし。
(Delphi側には)string[255]なんて構文もあることだし、これを拡張して いっそAdaみたく配列同様に、String(10..20) なんて書ければ良かったのに。 C++側はtemplateで対応。 …まあ、無視してください。
355 :
デフォルトの名無しさん :03/04/09 11:34
>>353 BCB の AnsiString クラスは Delphi の長い文字列(プリミティブ型の String)を
模倣したクラス型だから。内部表現はなんでもいいんですよ。
おそらく Delphi の長い文字列も内部実装はそうなってるんでしょう。VCL に
AnsiString を渡せるということは。
Delphiの文字列は p-4 Size p 文字列先頭バイト : : p+Size #0 というような感じの構造なんじゃ?
それはDel1の実装だと思った。
BCB6std Update4ですが、最適化をしない場合は正常動作、有効にすると必ずコケる場合はコード自体に問題があるのでしょうか? エラー発生箇所を追いかけるとnew、deleteでコケている様です。 if (iniPath) delete iniPath; //ここでコケます。この行をコメントアウトしても次の行で(以下略 iniPath = new char[MAX_PAHT]; //※iniPathはchar*型。コンストラクタでNULLを代入済み。
>>358 if (iniPath) delete [] iniPath;
じゃない?
>>359 ダメでした(´・ω・`)
あと、同一のクラスを別のプロジェクトで使っていますが、そちらの方では問題なく動作しています。
(´-`).。oO(最適化しないでビルドするしかないのかな‥‥?)
>>358 最適化しない場合=デバッグ
では未初期化の変数には値が入っているから
if (iniPath) delete iniPath;
で未初期化変数の参照およびデリートが起きて
あぼんぬ って話だと思うけど違う?
>>361 下のようにコンストラクタで初期化してあるのですが‥‥
MyClass::MyClass()
{
iniPath = NULL;
}
void MyClass::SetPath(char *newPath)
{
if (iniPath) delete iniPath;
iniPath = new char[MAX_PATH];
lstrcpy(iniPath, newPath);
}
363 :
デフォルトの名無しさん :03/04/09 16:39
>>358 1 行目が実行されるときに、必ずあらかじめ iniPath = 0 と代入済みなのか、もしくは
有効に new[] された領域を指しているか、絶対にそのどちらかじゃないとだめです。
364 :
デフォルトの名無しさん :03/04/09 16:40
>>365 なんにしても、delete[] iniPath じゃないとだめだね。
それから、そのコンストラクタが絶対に呼ばれているの? コピー・コンストラクタは
どうなっているの?
365 :
デフォルトの名無しさん :03/04/09 16:44
コンストラクタと、SetPath() の if 文にブレーク・ポイントを置いて、 まずコンストラクタで止まり、次に if 文で止まるかどうか。 if 文で止まったときに、iniPath の値は何になっているのか、この二つを確認すると 幸せに慣れるかもしれません。
>>364 コンストラクタは呼び出されています。
コピーコンストラクタは定義していません。
>>365 確認しましたが正常な値が入っています。(NULL)
現時点でエラーが出る条件は
・レジスタ変数を「使用しない」以外に設定
・コード最適化を「なし」以外に設定(選択で全てのチェックを外してもエラーが出る)
上の2条件を満たすと出るようです。
BCBのデフォルトにあるコンポーネントをC++で書き直して、 それ配布とかしたら、やっぱダメだよね・・・?
> コピーコンストラクタは定義していません。 とりあえず、定義してみれば。 privateに宣言してコンパイル通れば関係ないんだろうけど。
>>367 してほすぃ。やっぱりパスカルいや。
それにいつもDelのおまけみたいな気分なのもいや。
まあ事実Delのおまけみたいな物だし。
371 :
デフォルトの名無しさん :03/04/09 20:34
>>352 どうやって文字列扱ってるの?
char[]?それともstd::string??
BCB6でアプリケーションにフォーカスがない場合でも 特定のマウスボタン・キーが押された場合にイベントを発生するにはどうしたらいいんでしょうか?
TCanvasの内容を簡単に完全コピーするには どうすればいいですか?
>>373 それだとランチャー系のソフトは全てやめとけということになりますね
>>372 グローバルフック使うかなぁ。もっとスマートな方法がありそうな気がしないでもない。
WinXPでグループ化された アプリのタスクバーボタンにマウス移動するタイミングで 左クリックしてタスクバーボタンを自動で押すアプリを つくったのですが、 人間が押した時のイベントがとれなくて 人のクリックとアプリのクリックが 重複しちゃって、使い肉苦なってしまい 作るのあきらめた、先日。 グローバルなマウスクリックのタイミングを 取得する方法(すばらしく簡単なヤツがいい) 俺にも教えてくらさい。
>(すばらしく簡単なヤツがいい) ここらへんが悪く言えば虫のよさ、よく言えば素直さを感じるなぁ。 正統的にはグローバルフック。 トリックとしては全画面を覆う透明なウィンドウ。 グループ化されたタスクバーの自動オープンは面白いネタだと思います。 フサには教えずに、自分で実装して公開しちゃおう。
じゃ、俺もグローバルフック使わずにそれを実装する方法を考えよう。
タスクバーのウィンドウそのもののフック。という手もあるな。
結局
>>358 は解決していないのかな?
if (iniPath != NULL)
delete [] iniPath;
って書いてみるとか。
俺の場合どっちに条件が転ぶか覚えていないので、NULL の条件は必ず省略せずに書いているのですが、こう書いてみるのはどうでしょう?
ぬるぽをdeleteしても問題なかったような
>>382 全く解決しないので「レジスタ変数を使用しない」で妥協しました・・(´・ω・`)
385 :
デフォルトの名無しさん :03/04/10 10:51
あのさ EnumWindowつかってさらにGetWindowでGW_OWNER すると、TApplication出なくてメインフォームが 取得されるんだけど、、 TApplicationの位置づけがいまいち理解できません。
386 :
デフォルトの名無しさん :03/04/10 15:41
class化されているのをDLLにできますか?
∧,,∧ /
>>379 ミ,,゚Д゚彡 < よく言えよ。(w
ミつ つ \
@ミ ミ
∪''∪
でけたら、フサにも教えれ。
[7 Windows Explorer]
とかいちいちクリックするのはマヂうざですー
ホットキーで、
任意のタスクトレイボタンを押すってのも結構いいかな。
それなら実装できそうだ。
∧,,∧ 世間的には
ミ,,゚Д゚彡 それはCOMのDLLに
ミつ日(ミ なるんではないかと?
>>386 さん
めずらしくMLが荒れてますね
>>388 だからおまいは、その余計な顔文字書かなくてもいいんだよ。
>>386 コンポーネントにすればいーんではないでしょーか
>>386 *.bplならクラスに限らず色々エクスポートできる。
ただし使う側もDelphi専用。
一番簡単なのは、interfaceを公開することかな。
COMにする必要はもちろん無くて、作成関数を普通にexportsして使って貰えばいい。
(レジストリとか面倒だしね。もちろんCOMにしてもいいけど)
これなら使う側はどんな言語でもいい。
>>389 >>391 それにしたって、たった2回で実名とメールアドレス晒さなくてもいいのに、と思った。
>>392-393 ご返答有難うございます。
コンポーネントだと本体ごとコンパイルしなければならないですよね?
えと私はDLLだけを修正して配布といった形をとりたいと思っていたのですが
新規作成でDLLを普通に作っても大丈夫なのでしょうか?
>>395 ようするに自分の作ったアプリの修正がし易いだけの為のDLLって事?
たとえば公開してプラグインを作ってもらおうとかそういう事じゃなくて?
そういう目的のDLLならDLLより、EXEを再配布した方がいいと思うけどなあ
おっと、そう言えばここはBCBスレでした。
>>393 はDelphiのつもりで書いてしまった。失礼。
C++なら、全メソッドをvirtual xxx() = 0; にしたクラスを作り、ヘッダーファイルに書いて公開、
実装はそこから継承したクラスで行い、new/deleteのラッパー関数をDLLからエクスポート、でいいでしょ。
基底をIUnknownにすると、使う側がCOMと同じ調子で書けるのでなお親切。
AnsiStringとか、メモリを別途割り当てる型を使いたい場合は、VCLのShareMem使うとか、
exe側のメモリマネージャを渡してもらってDLL側はそれを使うとか、色々。
>>396 ようするによゆことですね。
仕事で作ってるソフトなんですけど今まではEXEを差し替えして
もたってたんですけどね、でもなかなかEXEの差し替えって
大胆にできなくて、DLLだけの差し替えなら容易に行えるんで
>>397 ご親切にありがとうございます。
なるほど、ほういうやり方で実装するんですか
勉強になりました、早速試してみます。
しばらく読んでなかったんで亀レスだが。
>>358 の症状は、どう見てもメモリの管理ブロックが壊されてるだろ。
(deleteで×、deleteをしなくても次のnewで×)
つまり、iniPathの値やそのclassとは関係なく、そこに至るまでのどこかで
妙なところに書き込んでるってことだ。
ヒープに確保したメモリをオーバーフローしてる可能性が一番高いが
レジスタ変数を使わないと正常に動く(ように見える)のなら
スタック内のバッファがあふれて、どこかのポインタが書き変わってるかも。
401 :
デフォルトの名無しさん :03/04/13 16:20
ヘッダーファイルの作り方を教えてください。 中身ではなくて、拡張子が.hのファイルを作るにはどうしたらいいのですか? いまは、しょうがないので.txtでやってます。 本当に間抜けな質問なんですが、どうしようもないので書き込んでしまいました。 どうかよろしく。
俺どうかしてた。取り消します。かなり疲れてるらしい。
404 :
デフォルトの名無しさん :03/04/13 19:01
IEの履歴及びキャッシユの消し方を教えてくださいませ。 パスはSHGetSpecialFolderLocationで得られますが、 そのパスでファイル列挙を行っても得られるのは履歴であれば D:\Documents and Settings\k2k\Local Settings\History\History.IE5 D:\Documents and Settings\k2k\Local Settings\History\desktop.ini だけですし、キャッシュであれば D:\Documents and Settings\k2k\Local Settings\Temporary Internet Files\Temporary Internet Files\Content.IE5 D:\Documents and Settings\k2k\Local Settings\Temporary Internet Files\Temporary Internet Files\desktop.ini だけでして、 その上*.IE5を消せません。 環境はWin2000、BCB6Proです。
405 :
デフォルトの名無しさん :03/04/13 19:45
助けてください;(初心者です) 文字列を返すActiveXコントロールが作れません。 文字列を返す関数をもつコンポーネントを作って そのコンポーネントを「新規作成→ActiveXコントロール」で ActiveXコントロールに変換したのですが、 そのActiveXコントロールの関数を呼び出したときに 「サポートされていない」と言われてしまいます。 ちなみに関数は char* __fastcall TEditCom::Recive() ってかんじです。 char型ならうまくいくのですがこれだと1文字しか返さなくて。。。´Д`)
すんまそん、ファイル列挙で再帰処理してませんでした。 逝ってき(ry
再帰処理してもダメですた。 フォルダの中を取得できないし、消せませぬ。 何か他の方法があるのでしょうか・・・
更に自己レス FindFirstUrlCacheEntry FindNextUrlCacheEntry DeleteUrlCacheEntry ですた
CLX を使ったアプリでコンパイラオプションのデータの配置境界を1バイトに設定すると プログラム終了時にCLXだかQTで例外をはくのですがなにか対処方法ってありますでしょうか?
411 :
デフォルトの名無しさん :03/04/14 16:35
string s1="abc"; Memo1->Lines->SetText( s1.c_str() ); 表示できません。エラーが出ます。 どうしてですか?
>>411 string s1 = "abc";
Memo1->Lines->SetText((char *)s1.c_str());
これで動くけど
>>412 レスありがとうございます。
うごきました。たすかりました。
モーダルではないウィンドウを作り、そこでショートカットを使うと、 メインのウィンドウのものが使われてしまうのですが、 なんとかならないのでしょうか? 一応、ウィンドウが切り替わったらショートカットをすべて 退避させて消したり戻したりしていますが、 切り替え時に引っかかるような感じがしていやなのです。 それと、ショートカットをわり振るときに ctrl+方向キーや、ctrl+テンキーの+ などを割り当てるためには プログラム内で割り当てるしかないのでしょうか?
>>406 どうやって?ソース書いてみそ(・∀・)ニヤニヤ
>>415 ありがとうございます。
無事実装できました!
Win2000、BCB6Pro UPD#4にて、Wininetを使って FindFirstUrlCacheEntry FindNextUrlCacheEntry FindCloseUrlCache を使用して履歴を列挙しようとしていますが、 [リンカ エラー] 外部シンボル 'FindFirstUrlCacheEntryA' が未解決(D:\ORIGINE\UNIT1.OBJ が参照) [リンカ エラー] 外部シンボル 'FindNextUrlCacheEntryA' が未解決(D:\ORIGINE\UNIT1.OBJ が参照) [リンカ エラー] 外部シンボル 'FindCloseUrlCache' が未解決(D:\ORIGINE\UNIT1.OBJ が参照) というエラーが出てコンパイルできません。 1.何が原因で 2.どうしたら回避できるのか の2点につき御教示願います。
1. inet.libをリンクしてないのでは 2. inet.libをリンクする
>>419 ソースではFindFirstUrlCacheEntryを呼んでいるにもかかわらず
'FindFirstUrlCacheEntryA' が未解決なのは何故でしょう?
>>419 プロジェクトマネージャにWininet.libをD&Dしたら通りました。
ありがとうございました。
VCLのTFileStreamはヒジョーに使いやすいのですが STLのfstreamは同じ感じでは使えないんですね... 独自クラスのバイナリデータをやり取りしたいんですが fstreamって文字列入出力に特化されてるんでしょうか?
>>418 始めて使うAPIはSDKのドキュメント読んどけー('A`)
Function Information
Stock Implementation wininet.dll
Custom Implementation No
Header Wininet.h
Import library Wininet.lib
Minimum availability Internet Explorer 3.0
Minimum operating systems Windows NT 4.0, Windows 95, Windows CE 2.12
指定無しで使えるのはkernel32 user32 gdi32くらいのはず
424 :
デフォルトの名無しさん :03/04/15 10:36
>>422 put、get、read、write、ios::binary。
425 :
デフォルトの名無しさん :03/04/15 10:42
>>405 > char* __fastcall TEditCom::Recive()
ActiveX で __fastcall ?
__stdcall にした方がいいんじゃ?
それから、char * じゃなくてオートメーション互換型の LPSTR の方がいい。
TCustomFormで最大化ボタンを無効化するにはコンストラクタかOnCreateで SetWindowLong(Handle, GWL_STYLE, GetWindowLong(Handle, GWL_STYLE) &~ WS_MAXIMIZEBOX); を書くしかないのでしょうか?
>>424 Res有り難うございます
本読んでると read write なんかは文字読みとり
のことばかり書いてあったので ダメなのかと思ってました
fstreamのインスタンスを作ったときにbinary指定されていれば
read(独自クラス型,sizeof(独自クラス型))
という使い方ができると言うことですね
>>426 BorderIconsのbiMaximizeをfalseにする
>>428 Σ(゚д゚)気付きませんでした。ありがとうございます。
λ......目が節穴になったか
>>416 単純にこんなのでいいんじゃないの?
procedure DeleteFolder(Path: String);
var
F: TSearchRec;
begin
Path:=IncludeTrailingPathDelimiter(Path);
if FindFirst(Path+'*', faAnyFile, F)=0 then
begin
try
repeat
if (F.Name='.')or(F.Name='..') then
Continue;
if (F.Attr and faDirectory)<>0 then
DeleteFolder(Path+F.Name)
else
DeleteFile(Path+F.Name);
until FindNext(F)<>0;
finally
FindClose(F);
RemoveDir(ExcludeTrailingPathDelimiter(Path));
end;
end;
end;
うちは駄目。一旦消えるけど、また出てくる。 409の使うとちゃんと消えた。
434 :
デフォルトの名無しさん :03/04/16 17:44
TListViewからエクスプローラにD&Dする方法を教えて下さい
ひょんな事からプログラミングを始めようと思っている者なのですが、 買うのならVisual C++ と C++Builderのどちらが良いと思いますか? 単純にどうせ買うなら品質のいい物を買おうかなぁと思っているので・・ あと機能の違いとかもあるのでしょうか?
>>435 機能の違いはあるから自分で調べてね。
それから、品質が良いものって基準じゃ判らないな。 どういうのが品質が良いって思うわけ?
437 :
デフォルトの名無しさん :03/04/16 20:57
>>435 両方買いなよ
一番安いやつなら両方買っても2万位だし
>>436 すいません。いいたいことはあるのですがうまく言葉に表せられません。
出直してきますm(_ _)m
ぐぐったのですが、C#とC++は同じ物と解釈してもよろしいのでしょうか? 同じような事しか書かれていなかったので・・・
>>441 ( ゚д゚)…
全然違うが
どこをどうググればそうなる?
>>441 Delphi>>>>>>(超えられない壁)>>>C#>JAVA>>>C++>>>(パラダイムシフト)>>>VB
>>435 とりあえず、VC,BCB,C#の入門書でも読んでみたら?
使いやすそうなのを選べばいいよ。
445 :
デフォルトの名無しさん :03/04/17 11:38
>>425 やってみたんですが、どうしてもうまくいきません。
HTMLに組み込んだときに関数が無いといわれてしまいます。
オートメーション互換型という型がいいのですか?
で、LPSTRはやめてBSTRというのにしてみたんですけどコンパイル時に
自作の関数内で「'char *'型は'wchar_t *'型に変換できない」
というエラーが起こってしまいます。
'char *'型から'wchar_t *'型に変換するにはどうすればいいんでしょうか?
エラー個所は下記です。
/* シリアルポートからデータ受信 */
BSTR __stdcall TEditCom::Recive()
{
DWORD dwErrors;
COMSTAT ComStat;
DWORD dwCount;
char pszBuf[256];
DWORD dwRead;
ClearCommError(hComm, &dwErrors, &ComStat);
dwCount = ComStat.cbInQue;
ZeroMemory(pszBuf,sizeof(pszBuf));
ReadFile(hComm, pszBuf, dwCount, &dwRead, NULL);
BSTR m = pszBuf; ←エラー
return m;
}
>>446 バイト列で16bitUnicodeがやってくるの?
そうじゃなくてShiftJISなら変換が必要だ。
448 :
デフォルトの名無しさん :03/04/17 17:06
エディタ上での、cppファイルとhファイルの表示切替の ショートカットキーの入力の仕方を教えてください。
Ctrl+F6
451 :
デフォルトの名無しさん :03/04/17 17:50
Personal版で開発したアプリなどは、一般公開しまた有償販売しても大丈夫なのでしょうか?
452 :
デフォルトの名無しさん :03/04/17 18:03
>>446 BSTR m = reinterpret_cast<BSTR>(pszBuf);
でいいんだけど。
受け取った側で、
char *data = reinterpret_cast<char *>(EditCom->Receive());
しておやり。
453 :
デフォルトの名無しさん :03/04/17 18:04
ああそれからね、 char pszBuf[256]; じゃだめだよ。 static char pszBuf[256]; にしないと、Receive 関数が終了したとたんに、この配列が消えてなくなる。
454 :
デフォルトの名無しさん :03/04/17 18:06
>>446 の関数だと、Receive() の呼び出し側は、何バイト受け取ったか
教えてもらえないんだけど、いいんですか?
456 :
デフォルトの名無しさん :03/04/17 18:41
カーソル消えてしまった。どうしたら戻りますか? C++Builder6です。
>>455 げげ、そうですか。BCBを購入するのはやめようっと。
結局今までどおりVCか。
C++ 全然知らないのに C++Builder 6 personal 買っちゃったよん。 とりあえず Hello, world! プログラムつくてみた。
釣り師カコワルイ
688 名前:名無しさん@お腹いっぱい。[sage] 投稿日:03/04/08 15:52 ID:8XuBogxN XP質問スレッドから来ました。パソコンを使っていたらある日 Cと。に関連する文字が打てなくなってしまいました (chuや「>.。る」のキーボードを打つと普通「ちゅ」や「。」がでますが当方の環境では 「cふ」「.」と出てしまいます。同じ「ちゅ」でもtyuの方だったら「ちゅ」と出るのですが・・・) どなたかこのことについて知っていましたらレスお願いしますm(_ _)m 689 名前:688[sage] 投稿日:03/04/08 16:47 ID:8XuBogxN 再起動したらCHEMISTRYでした。お騒がせいたしました。 690 名前:名無しさん@お腹いっぱい。[sage] 投稿日:03/04/08 16:48 ID:8XuBogxN ↑すいません。誤爆でした。 × 再起動したらCHEMISTRYでした。 ○ 再起動したら正常に戻ってました。 です 691 名前:名無しさん@お腹いっぱい。[sage] 投稿日:03/04/08 17:20 ID:lKOOlqfu ワラタ 692 名前:名無しさん@お腹いっぱい。[sage] 投稿日:03/04/08 17:49 ID:r3Oz+U+z >再起動したらCHEMISTRYでした 辞書登録シマスタ
> 釣り師カコワルイ ほんとですって。 C++ のプログラムの書きかた全然わからんので ファイル → 新規作成 → その他 → コンソールウィザード で C のプログラム書いてみてるんよ。 C++ はこれから勉強するっす。
>>462 (´-`).。oO(コンソールアプリなら テキストエディタでコード書く -> コンソールから "bcc32 test.cpp" のほうが早い気が‥‥)
>>462 じゃ、自信を持って「知っている」といえる言語/開発環境はなに?
>>447 初心者ゆえ、とりあえず文字列を渡すことだけ実証したいと思います
>>452-453 BSTR型でのコンポーネントの作成自体はうまくいきました。
ありがとうございます。
でもActiveXコントロールにしてWeb上に組み込むと動きません。
いろんな型を試した結果、
char ・・・Web上で1文字だけJavaScriptに渡せる
char*、LPSTR、BSTR ・・・Web上でダメだった(警告:オブジェクトでサポートされてない)
String、AnsiString ・・・AvtiveXコントロールウィザードでコンパイルエラー('char *'型は'wchar_t *'型に変換できない)
という状況です。型の問題ではないんでしょうか?
(ActiveXコントロールで文字列を渡すにはなにか別の方法が必要なんでしょうか?)
>>454 呼び出し側は
Edit1->Text = EditCom->Recive();
(最終的にはJavaScript内でRET = EditCom.Recive()としてやりたい)
というかんじなので大丈夫だと思います。
467 :
デフォルトの名無しさん :03/04/18 15:52
BSTR で返す場合には、SysAllocString で作った BSTR じゃないと ダメだよ。適当な WSTR を適当にキャストしては遺憾よ。
> (´-`).。oO(コンソールアプリなら テキストエディタでコード書く > -> コンソールから "bcc32 test.cpp" のほうが早い気が‥‥) 今まで free の bcc 使ってたときはそうしとりました。 でも、C++builder 6 が 1 万円くらいで買えるって知ったんで 試しに買ってみたのよん。 まあ、今まで書いたことある C のプログラムって コンソールで動く単純なものだけなんで、 C に関してはほとんど初心者です。
>>468 =
>>458 personal版でも実用的なソフトは十分作れるよ。
まずは自分の身の回りにある小物(時計などの常駐アプリとか、簡易テキストビュワーとか)を
自作してみてはどうか。初めは適当な作りでもいい。とにかく作ってみることが大事。
BCBは出版物こそ少ないが、ネットにはそこそこ情報がある。
DelphiのTipsも役に立つだろう。
あと、C++の入門書・解説書は持っておくべき。詳しくは必読書スレへどうぞ。
がんがれ。
BCBでWTL使ってる人いないですか。 ATLが使えるのだからWTLもと思うのですが、無理かなやっぱり。
>>469 サンクスコ。
べんきょのためなんかつくってみます。
とりあえず時計がイイ!
∧_∧ ( ^^ )< ぬるぽ(^^)
473 :
デフォルトの名無しさん :03/04/21 01:27
c++builderを始めて早3週間・・・ Timerコンポーネントを使って void __fastcall TForm1::Timer2Timer(TObject *Sender) { int i; if(!kbhit){ i = getch(); Panel2->Caption = IntToStr(i); } } のような具合に、定期的にキーボードの値を読み込みたいのですが ヘルプにあるように、win32GUIの環境ではkbhit()やgetch()は 利用できないみたいなのですが、Builderで定期的にキーボードの 値を獲得するウマーな方法はありますが? 禿しく外出だとは思いますが・・・
GetKeyState GetAsyncKeyState
475 :
デフォルトの名無しさん :03/04/21 01:55
>>474 なるほど・・・
後は仮想キーコードというものを調べて真偽の判定をすればよいのですね
よくわかりませんが、とりあえずがむばってみます
ありがとうございました。
できればサンプルキボンヌ・・・
476 :
デフォルトの名無しさん :03/04/21 02:03
473です。とりあえず void __fastcall TForm1::Timer2Timer(TObject *Sender) { if( GetKeyState( VK_SHIFT ) < 0 ) Panel2->Caption = IntToStr(3); else Panel2->Caption = IntToStr(0); } のような感じにしたところ、望むような結果になりました。 調子に乗って"SHIFTキー"を連打していたら、***のショートカットを 割り当てますか? というかいうウィンドウが開き、SHIFTキーを押すたびに ピョコピョコ音がするようになってしまいましたが(^^;; 自己解決できそうです。ありがとうございました。
今までVC使ってたんだけどスタンダード版ってこともあって最適化効かないため VS.net買おうかと思ったんだけどそういえばCビルダーってのもあったなぁと思って 調べてみることに。 運のいいことに大学に1台導入されてるマシンがあったので(6のpro) ちょこっとさわってみたんだけどVCと全然使い勝手が違ったためものすごくとまどった。 VCからBCBに移行した事ある人いたら移行してここがよかったーみたいな点があったら 教えてください。 あのインターフェース慣れるのに時間かかりそうだなぁ p.s.大学のPCだからお試しに普通のアプリ作るのもどうかと思ってコンソールアプリ組んでみたら プロジェクトの作り方に小一時間迷ったあげくパソコンがおいてある図書館の閉館時間になってしまったのは ここだけの話です
478 :
デフォルトの名無しさん :03/04/22 12:29
ふむ
> あのインターフェース慣れるのに時間かかりそうだなぁ ほとんどの開発環境がこのインタフェースなので、 なれなきゃプログラミングできないのと同然と思われ。
BCBでJPEG/PNG/BMP/GIFの判別したいんですけど そういうライブラリーはないでしょうか? ただ判別だけができればいいのですが・・・
>>480 ファイルの先頭ちょっと読めばわかることじゃん
>>480 susieプラグインに判別して貰う(゚∀゚)
>>483 Delphi製ならもってたんだが・・・
486 :
デフォルトの名無しさん :03/04/23 10:56
ListViewのKeyUpイベントにBS_DELETEの処理を書いた状態で ListViewのEditCaptionを行ってキャプションを編集中にDeleteキーを押すと KeyUpイベントが反応してしまいます。 キャプションを編集中にKeyUpイベントを受け付けないようにするにはどうしたらいいのでしょうか?
単純にフラグでも用意しろ。
KeyUpで ListView1->IsEditing() で編集中か調べる。
それこそクラスを作るしかないだろ
491 :
デフォルトの名無しさん :03/04/23 11:17
あたまわるいなー (´∇`)
>>486 OnEditingで
OnKeyUp=NULLにして
OnEditedで
元に戻す。
C++Builderに対応するカバレッジツールありませんか?
496 :
デフォルトの名無しさん :03/04/23 15:16
すいません。
http://pc2.2ch.net/test/read.cgi/tech/1032402846/l50 (Access使い集合!)
の502でも書いたのですが、
AccessをDBとし、Builderで複数同時アクセスを行っております。
2クライアントで同時アクセスを行うと、デッドロックになってしまい
飛んでしまう現象です。
・TDatabaseとTQueryでODBCを使用し、Accessにアクセスしています。
・トランザクションを使用しています
・ExecSQLで飛んでいます
デッドロックになってしまう現象を回避したいのですが、
どなたかいい知恵ないでしょうか?
>Microsoft Jet 3.0 データベース エンジンを使用しますが、このエンジンは >スレッド セーフではありません。 無理っぽいが、、、バージョンによっては違うのかな
DB素人が出てきました(w
Rubyが500げとー 500げとー
501 :
デフォルトの名無しさん :03/04/23 17:18
Indy9.0.11入れて、 パスも通しましたが、 TIdHTTPをフォームに貼り付けて実行しようとすると、 起動時に プロジェクト (プロジェクト名)がEReadErrorクラスの例外を生成しました。 プロパティMaxLineActionが存在しません というエラーが出て終了してしまいます。 TIdHTTP *http = new TIdHTTP(this); というようにしてコードで生成したらエラーは出ないのですが、 フォームに貼り付けてもエラーが出ないで実行できるようにするには どうしたらいいのでしょうか?それとも9.0.11のバグでしょうか?
環境書き忘れました。 BCB6SP4です。
>>503 パスは通しましたというのが、
>>211 はやったという事です。
フォーム貼り付けでなくnewで作ればGetメソッドも問題無く動きます。
ただ、フォームに貼り付けないとプロパティの設定やイベントの設定が面倒なので…
505 :
デフォルトの名無しさん :03/04/23 19:52
string型を、AnsiString型へ変えるにはどうしたらよいのでしょうか?
String型はAnsiString型なんです。
>>505 string cpp_str;
AnsiString str(cpp_str.c_str());
では?
>>505 string a = "a";
String b = a.c_str();
409にて FindFirstUrlCacheEntry FindNextUrlCacheEntry DeleteUrlCacheEntry を使って履歴やらを消すとか書きましたが、 これらのAPIでは *IE5の中のIndex.datの中身をクリアできるだけで、実体は消せませんでした。 また、通常のファイルと同様に削除しただけだと消せません。 (消えたふりしてすぐ復活) 結論としては、上記2方法を併用しないときれいにならないようです。 この件はCookieと履歴とキャッシュについて当てはまります。 以上、報告でした。
ListView でカラムの幅を変更した時のイベントを受け取りたいのですが OnColumnDragged でイベントが発生しません。 プロパティは ViewStyle = vsReport , ShowColumnHeaders = true に 設定してあります。(カラムヘッダーを表示させているので当然ですが) 使用するイベントが違うのでしょうか?。それとも何か他に原因が???。
OnColumnDraggedというのは、カラムの移動で起きるイベントですね FullDrag = trueにするとカラム順を変えられるでしょ、 で、カラムを移動した時にマウスボタンが上がると起きます。 そんならカラム幅変更を捕まえるイベントはっちゅーと・・・ がんがって探してください。もれは知らん
おまえら、 俺様に OnClose と OnDestoroyの 違いを教えてください。 どっちにどんな処理を書けばいいんですか?
>>513 ヘルプを読んでみると、
OnClose : フォームを閉じたとき
OnDestroy : フォームが破棄されたとき
…となってる。
OnCloseは「あ、やっぱ閉じるのやーめた」ということができて、
OnDestroyだとそれができない。
…こんなところかな?
おまいら!違ってたら(または説明が足りなかったら)指摘おながいします。
BCB6で PNGの解凍をしてGraphics::TBitmapで利用できる形にしたいのですが GLDPNGは使用条件の関連でアウトなんで 何か簡単な方法ってないでしょうか? 読み込みだけでいいんで・・・ SUSIEも考えたんですが別途SUSIEプラグイン用意しろっていうのも なんなんで・・ #C++スレに誤爆しちゃった(鬱
OnCloseQuery:フォームを閉じても良いかどうかの意思確認。フォームを閉じたくない場合は CanClose に False をセット OnClose:フォームが閉じられたことの通達。このイベントでデータの保存や後始末をおこなう。 OnDestroy:VCLのオブジェクトとして破棄されることの通達。 OnCreate と OnShow, OnClose と OnDestroy の区別がつくようになったら一人前。
それだけで一人前ってC++Builder開発者はそんなにレベルが低いのか?
>> 515 Cマガジン98年6月号(PNG特集)に、C++Builder用にlibpngとzilbを使って TPNGImage を作るって記事が載ってる。
520 :
デフォルトの名無しさん :03/04/26 21:18
::SHFileOperation()を使ってファイルを移動しようとしているんですが、 「無効なポインタ演算」とかエラーが出て異常終了してしまいます。 パス名にきちんと\0を2つ付けているので問題無いと思うのですが・・・ なので、大きなファイルを1つずつ移動しているのが問題なような気がしてます。 ファイルを移動している間、本体の動作を停止しておくには どうすればいいでしょうか? よろしくお願いいたします。
521 :
デフォルトの名無しさん :03/04/26 22:11
すごく間抜けな質問で申し訳ないですが、 BCB6を使用しています。 自作の class を new しようとすると、'access violation at 077f60b6f: write of address 0x00030fec' と出ててしまいます。デバッグしても、コンストラクタにたどり着いてないようなんですが、 どういう時にこういう現象が起きるかわかりますでしょうか? ついこの間までは普通に動いていたのですがコメントをつけたとたんこんな事になってしまったので どこをどうしたものか手がかりがつかめないでいます。 もちろんコンパイル時には、エラーも警告も出ないんですが・・・・
522 :
デフォルトの名無しさん :03/04/26 22:13
>>521 何かのクラスを継承しているのなら、その親クラスの生成過程で何か
変なことをしているとか?
>>522 クラスの継承はしていません。
frendで別のクラスからアクセスできるようにはしていますが
524 :
デフォルトの名無しさん :03/04/26 22:48
そのクラスのコンストラクタが呼ばれる前に、 メンバ変数のコンストラクタが呼ばれるだろ。 そこで悪さしているとか。 そうでなければコンストラクタの引数が悪さをしているとか。 デフォルトコピーコンストラクタの動きとか理解している?
>>524 いまいちコンストラクタの動きは理解しきれてないのですが、
そのクラスはメンバ変数にクラスを使用してませんし、
引数なしのコンストラクタで new をしています。
そのコンストラクタでは初期化リストでデータの初期化とmemsetで
structの初期化をしています。
ちなみに、メンバ変数にクラスが定義されている場合、
1.メンバ変数のクラスのコンストラクタが実行される
2.new で呼び出されたコンストラクタが実行される
事になるのでよいですか?
526 :
デフォルトの名無しさん :03/04/26 23:23
>>525 その順番です。
(厳密に言えば、コンストラクタ呼び出し、
初期化リストの処理(親クラスのコンストラクタコール→メンバのコンストラクタコール)、
コンストラクタ実装部の処理、という順。)
それらの問題でなければ、memsetの引数が腐っているか、
newする前にメモリを壊しているか、どちらかでは。
527 :
デフォルトの名無しさん :03/04/26 23:29
520ですが、やはり無効なポインタ演算で落ちてしまいます・・・ 処理を while(SHFileOperation(op)); とかやったんですが、やはり終了するのを待つことはできませんでした・・・(鬱
>>527 findfirst、findnext系の関数を使って処理してます?
ファイルを移動したら、そのディレクトリの情報は書き変わってしまっているから、
findnextが壊れるのでは。
先に移動するファイル名のリストをvector<string>に突っ込んでおくとかしてはどうでしょうか。
529 :
デフォルトの名無しさん :03/04/26 23:44
>>528 使ってます。
> ファイルを移動したら、そのディレクトリの情報は書き変わってしまっているから
そうなんですか Σ(゚Д゚ )!!
なるほど、早速試してみます。
レスサンクス( ´∀`)ノ
>>526 解決しました。
原因は、クラスを newする直前に別のメモリを開放する処理を呼び出しておりました。
ありがとうございました。
>>530 は521です。
>>526 さん重ね重ねありがとうございます。
もちっと視野を広げていろいろ確認しないといけないなー。
>>518 ,519
さんくす
でも 付属のドキュメントが英語だけで分からない(汗
Graphics::TBitmap *pBmp に突っ込む方法どこかに書いて無いでしょうか・・ね
googleJPでもわずか1ページしか引っかからず・・
サンプルコードも見つからず(汗
すんません激しく簡単にできました これからはドキュメントちょっとは読みます
false と true は、なんと読むのですか?
>>528 ついに完成しました。
どうやら、findFirstの情報が書き変わっていたことと、
数百個のファイルを1つずるSHFileOperationしていたため、
スタックオーバーフローを起こしていたようでした。
vector<string>を用いて、複数のファイルを一気に移動するようにしたら
うまくいくようになりました。(゚д゚)ウマー
どうもありがとうございました。
538 :
デフォルトの名無しさん :03/04/27 16:29
TJpegImageのエラーコード表が載っているサイトとかありませんか?
540 :
デフォルトの名無しさん :03/04/27 22:29
TListViewのDataプロパティの boost::shared_ptr<foo*> bar; というようなshared_ptrを突っ込みたい時、 Listview->Data = bar.get()とやったら barの参照カウンタはうまく働かなくなってしまいますか? boostスレで聞いた方がいいですか? こことどっちで聞けばいいのかよく分からなかったので。
TListViewのDataプロパティの->TListViewのDataプロパティに
boostは使った事無いけど、うまく働かなくなるでしょうね…。
543 :
デフォルトの名無しさん :03/04/28 10:12
現在BCB3を使っているのですが、やっと今年度の予算で買い替えが出来ることになり ました。 しかし、BCBはこのまま3でいってDelphiとVCを購入した方が良いと言う人もいます。 そこで色々検証してみたいのですが、HPの新機能紹介だけではわからない使い勝手が気になります。 Ver6の体験版はDLや雑誌の付録で手に入りますでしょうか?
まず、DelphiとBCBはバージョンが近いほうがいいでしょう。
545 :
デフォルトの名無しさん :03/04/28 19:15
長い処理中に、タスクを他へあけ渡す文があったと思うのですが、すっかり忘れてしまいました。 どうか教えてください。
Application->ProcessMessages(); ダタカナ? ま、Applicationクラスが持ってるメソッドであるのは間違いない。
>>546 レスありがとうございます。ほんと助かります。またよろしくです。
548 :
デフォルトの名無しさん :03/04/30 11:40
フォームにステータスバーを貼り付けた状態でフォームにスクロールバーが出ていると ステータスバーが消えてしまいます。と言うか フォームのスクロールバーでステータスバーも一緒にスクロールしてしまします。 これをステータスバーだけ固定することはできますか?
>543 アスキー出版の「コースウエアシリーズ」のDelphi7基礎編・応用編の どちかかに確かBCB6エンタープライゼズのデモ版がついていたような気がします。
552 :
デフォルトの名無しさん :03/04/30 15:35
BCB6使ってますが、 boostとか使ってるとコンパイルが遅くてたまらないので、 プリコンパイルヘッダを使うわけですが、 VC++と違ってプロジェクトごとにプリコンパイルヘッダの内容を変えるのが 面倒ですよね。皆さんはどうやって対処してますか?
553 :
デフォルトの名無しさん :03/04/30 16:54
>class _RWSTDExport runtime_error : public exception runtime_errorエラークラスを派生しようと思うのですが、 _RWSTDExportとは何でしょ。派生後もつけるべき?
>>556 ネタじゃなくてDelphiのライブラリが貧弱すぎると言っているのですよ。
STLさえ使えないしVCLは貧弱だし。
>>557 VCLが物足りないんですか?
貪欲ですね(笑)
>>558 コレクションがリストとハッシュしかないですよね。
VCL自体がネタに近いですよね。
>>559 VCLがネタに近い!!
こりゃまた痛い所突かれましたなぁ(笑)
男は黙ってリスト!(怒)
どうせ、コレクションはリストとハッシュしか使わないくせに。
>>561 vectorもmapもsetも使わないの?
VCLにvectorもmapもsetもあるじゃん。
意外とdequeも使える場面が多かったりする
>>563 それぞれに相当するクラスを教えて下さい。
list->TList
hash_map->THashedStringList(文字列しか使えない制限有り)
vector->?(無理矢理TListで代用するの?)
deque->?
set->?
map->?
あぁ、VCLじゃなくてDelphiだったね。 うん。Delphiの標準ライブラリにあるよ。
作ればいいじゃん。作れないなら探せば?
DelphiとC++Builderは違うの?
>>566 型なのかクラスなのか知らないけど、
クラス名か型名教えて。
array ofで代用とかは無しね。
>>567 標準で無いなら意味がない
ちなみにSTLは標準。boostはすでに準標準の地位にあるし、 将来的に標準になる事が検討されてるよ。
boostが標準?勘弁してください・・・
> 標準で無いなら意味がない かなり笑える。 boostは意味が無いですね
結局Delphiは使えないですね。
boostを標準にするほどビヤ〜ンは馬鹿じゃないよ。
>>573 今まで何を見てきたのかと。
Delphi最強が結論だろ。
>>575 でvectorとmapとdequeとsetに相当するものを教えて下さい。
百歩譲ってスマートポインタは諦めてもいいんで。
つーかDelphiってマジでコレクションListとHashだけなの? まさかそんな事ないよね。ここにいるDel厨が無知なだけで。
>>576 TBekuta
TDekyu
TSetto
C++どころかC#よりも貧弱なDelphiのコレクション
>>578 その通り、ここにいる馬鹿Del厨が無知なだけです。
まともなDelphi使いが来るのをまちましょう。
まともなDelphi使いってかっこうわるいな!
ワーイ、スレが凄い勢いで伸びてる 人が一杯だよー、… (´Д⊂
Delphiはコンパイルさえ速ければいいので、 実行速度・メモリ効率を気にしてはいけません。 list->TList hash_map->THashedStringList(文字列しか使えない制限有り) vector->無理矢理TListで代用 deque->無理矢理TListで代用 set->無理矢理TListで代用(毎回自分でSort呼べ) map->諦めろ ちなみにTListにさえもポインタしか入らなかったり ポインタしか入らないのにスマートポインタがなかったりするのは仕様なんで 気にしないで下さい。
TListにポインタしか入らないのはDelphiにはテンプレートさえ無いから仕方ないのかな…
Delphiは開発者に優しい C++はユーザーに優しい ということですか?
>>586 貧弱なライブラリしか備えないDelphiが開発者に優しいなんて考えられないんですが…
>>587 コンパイルが速いだけでも十分優しいじゃん
なんかDelphiって、悲しいんだね。
>>588 コンパイルしてる間に休憩出来ないので開発者に厳しいです。
JavaでさえGenericsが付くというのに…
そんなんだからオナニーとか言われちゃうんだよ!
C++BuilderでもVCLクラスは動的にしか生成できないよね。 全部Delphiのせい。
594 :
デフォルトの名無しさん :03/04/30 18:05
C++BuilderってVC++に挫折した厨が使う開発環境だろ? スレのレベルも低いし。
C++ BuilderならC++の本質を見極めることが出来る。 VC++では無理。
>>596 C++の本質ってObjectPascalで書かれたGUI+貧弱汎用ライブラリなの?
まあメンテさえされなくなったライブラリもObjectPascalで書かれた GUI+貧弱汎用ライブラリも使い物にならない事では一緒か。
STLしか役に立たない。 boost?キモッ!
↑ boostが分からない香具師(敗北者)
↑ ライブラリ厨(落伍者)
↑ 車輪再開発厨(厨房)
なんかスレの空気が変だよー
607 :
デフォルトの名無しさん :03/04/30 20:29
神出現しました! >list->TList これは違うぞ。 TListはリスト構造ではなく、ベクターだ。 リスト構造はコンポーネントを使う場合はオーナを辿るようにする もっとプリミティブなら基本的に自分で管理させる部分を作らなければいけない。 Vector はTListでもいいがSTLにより近いのは動的配列だ。 他の構造は、もともとpascalがアルゴリズム記述言語から派生してるから アルゴリズム通り記述して表現するのが正当なやりかた。 というか、map/set/dequeなんて実装毎回やっても簡単だろうに
>>609 >TListでもいいがSTLにより近いのは動的配列だ。
findの代わりのIndexOfやpush_backの代わりのAddがあるTListの方が
array ofより
まだSTLに近いんじゃないの?
どちらにしろSTLより数段下だけどな。
>>607 TList -- 線形リスト
list -- 連結リスト
vector -- 線形リスト
TBucketListも忘れるなよ。
614 :
デフォルトの名無しさん :03/04/30 20:42
C++Builder6のstricmp漢字対応しとらん。 (Visual C++6もそうだが) printf("%d\n", stricmp("憂.TXT", "曜.TXT")); /* 一致 */ ファイル名の比較にうっかりstrnicmpつかってしもうた。
615 :
デフォルトの名無しさん :03/04/30 20:44
VCLはTがつくから気持ち悪い。
616 :
デフォルトの名無しさん :03/04/30 20:47
Delphi Personalって商用開発には使えないんですか? 実際に買って箱を開けて仕様許諾を読むまで分からなかった人が多数いるとしたら 本物の詐欺だと思いません?
>>616 CDを開封する前に返品しる。
たぶんラベルに「開封した時点で同意したものと見なします」とか書いてあるっしょ。
Builderは便利だと思うよ。これで書けないのはドライバだけ。 O○Nの3Dチャットもこれで書いたよ。STLとか道具に凝るのはいいけど、 こういうもんだって納得して使いこなしが重要ではないかな。
>>619 BuilderはSTL使えるよ。使えなかったらC++じゃないし。
>>108 VCLみたいなみせかけのビジュアルではなく
真のビジュアル開発環境は無いのかって話じゃないの?
誤爆スマソ
_________ ∧,,∧ / 昔のポスペは ミ,,゚Д゚彡 < Builder製でしたが ミつ旦(ミ~~ \ 最近のはどうですか? @ミ ミ  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ∪''∪
__closureは便利だよね。 boost::functionとboost::bind使うより簡単にイベントハンドラが出来る。 boost使う方法や、関数ポインタ+this渡してつなぎ合わせちゃったりする無理矢理な方法 より可搬性は低いけど。
>>624 __closureなんか使った時点ですでにC++では無い罠
626 :
デフォルトの名無しさん :03/05/01 01:15
マルチスレッドでデッドロックを起こしたとき どことどこでデッドロックが起こったかデバッガ上で知る方法は無いの?
>>624 C#にはclosure+マルチキャストともいえるデリゲートがありますよ。
フサギコ無視キターーーーーーーー!
ポスペってまだ人気あるのかぃ?
>>616 なぜにDelphi?
ちなみにborlandはwebにライセンス条項載せてまっせ
Builderの ワイド文字列を大文字にしようと _wcsupr関数を使っているのですが、 うまく変換されません。 どうすればいいですか
632 :
デフォルトの名無しさん :03/05/01 11:43
TScrollBoxのMouseWheelDownイベントが反応しないのですが 何かプロパティの設定が必要ですか?
633 :
デフォルトの名無しさん :03/05/01 13:52
BuilderよりもむしろWindows の質問かもしれませんが、教えてください。 OpenDialog を使って、複数ファイルの選択をし、それをMemoに貼り付けました。 if(OpenDialog -> Execute() == true){ Memo->Lines->AddStrings(OpenDialog1->Files); } ですが、貼り付けられたファイルリスト(Memoに表示されているもの)は、 選択した順番になっていません。たとえば、OpenDialogでは、 A1, A2 ,A3, A4 というファイルを、この順番でクリックして選択しても、 表示は、A4, A1 A2, A3 のようになります。 実際に選択したとおりの順番で、表示するにはどうしたらよいでしょうか。
634 :
デフォルトの名無しさん :03/05/01 14:32
もう一個の環境で、
同じもの試したら、ちゃんとなりました。
謎すぎる。
あとで、おかしい方のBuilderを再インストールしてみます。
>>634 テストでやってみたコード
// 最初にsetlocale
setlocale(LC_ALL."");
・・・
wchar_t test[]=L"test";
::wcsupr(test);
// ここで、デバッガ使ってtestの中身見ると"MM"になってた。
こんな状態ってありえるんですか?
× ::wcsupr(test); ○ ::_wcsupr(test);
IE5以降の「お気に入り」のようなコントロールを 実装したいんですが可能ですか? というかIEの「お気に入り」を横取りして表示したい。 汎用にできればよりイイ! という感じです。
MSが特許持っているので不可能です。
639 :
デフォルトの名無しさん :03/05/01 18:48
初心者の者ですが、Memoに8文字以上数字を打ち込むと、 それ以上数値を打ち込んでもMemoに表示されないように するにはどうしたらいいのですか?
>>639 そういう仕様で何故Memoを? TMaskEdit を使うのが普通では?
MaxLength=8
643 :
デフォルトの名無しさん :03/05/01 21:48
>>642 すいません!Memoを使うのが条件なんです。 MemoのプロパティのMaxLengthに8といれてもコンパイルエラー がでました。どのようにすればいいのですか?
OnKeyDownで if(Memo->Text.Kength() > 8) key = NULL;
Kength->Length
646 :
デフォルトの名無しさん :03/05/01 22:07
なんでVB.NET使わずそんな面倒な事するのかなあ
>>646 VB6とVB.NETってどう違うんですか?
>>650 「どう」と「どのくらい」の区別も付かないんですか?
最近VB.NET厨のフリした偽VB.NET厨が下らんレスしまくってるな。
良く釣れるなあ。 VB.NETにコンプレックス持ってるのが見え見えだね(ゲロ
Del厨がコンプレックスを持つのはC#.NETでVB.NETなんて蚊帳の外じゃないの?
>>656 そういう発言が、コンプレックスを持っているって言われるんだよ。
>>658 なかなか信憑性がある記事ですな。
> 現在最も使われている言語は「VB(6.0以前)」(47%)であった。
現在使用言語 もっとも習得したい言語
COBOL 6 0
C/C++ 33 4
VBA 24 1
VB 47 0
VB.NET 14 13
C# 21 49
Java 31 27
Delphi 7 0
VB(J)Script29 0
Perl/PHP 14 2
その他 10 1
信憑性…無いだろ。.NETのサイトだから見てる人は.NETに興味があって当然。 自分の周りではC/C++を勉強してる人が一番多いですよ。
自分の周りの方が信憑性無いって。
分けたらもっと減るね。
とりあえずWindows環境しかないVB.NETなのに、この数字なのは VBの今後は先細りである事は容易に想像できる。
結局C#がトップと。
C#やVBの話は死滅スレでやれ ここはBCB質問スレだ
C(10780) C++(10440) Java(8602) PHP(6495) Perl(4553) Python(2349) VisualBasic(1347) JavaScript(1179) UnixShell(1110) Delphi/Kylix(1070) Assembly(1006) C#(736) PL/SQL(718) Tcl(664) Other(586) ASP(376) ObjectiveC(339) Lisp(243) Pascal(226) Ruby(216)
>>666 SourceForgeは仕事で作られているのは含まれないからねぇ。
VBってWindowsでしか動かないのに使用率高いね。
>>672 わざわざ探してきてご苦労だが、答えは 嫌 だ。
674 :
デフォルトの名無しさん :03/05/02 00:27
675 :
デフォルトの名無しさん :03/05/02 07:32
undefined reference to age!
さ〜て、今日も煽るぞ〜
煽る前に、>633について教えていただけると嬉しいのですが、、、
念のため>633の内容コピペしと来ます。 BuilderよりもむしろWindows の質問かもしれませんが、教えてください。 OpenDialog を使って、複数ファイルの選択をし、それをMemoに貼り付けました。 if(OpenDialog -> Execute() == true){ Memo->Lines->AddStrings(OpenDialog1->Files); } ですが、貼り付けられたファイルリスト(Memoに表示されているもの)は、 選択した順番になっていません。たとえば、OpenDialogでは、 A1, A2 ,A3, A4 というファイルを、この順番でクリックして選択しても、 表示は、A4, A1 A2, A3 のようになります。 実際に選択したとおりの順番で、表示するにはどうしたらよいでしょうか。
コピペすんなぼけ
680 :
デフォルトの名無しさん :03/05/02 07:58
三匹か。
釣れた(藁
もうこのスレ死んだな
あの〜、633を書き込んだものです。 677は私が書きましたが、678は私じゃないです。 683も私じゃないです。
偽者さん。がんばってスレを安定させてくれ(藁
あの〜、682も私じゃないです。 煽りはいらないので早くレスください。
釣れた!(藁
あの〜、690も私じゃないです。 煽りはいらないので早くレスください。
またまた釣れた!(藁
あの〜、693も私じゃないです。 煽りはいらないので早くレスください。
あの〜、693も私じゃないです。 煽りはいらないので早くレスください。
あの〜、697も私じゃないです。 煽りはいらないので早くレスください。
特定の処理系スレで処理系依存とか言ってしまった
あの〜、700も私じゃないです。 煽りはいらないので早くレスください。
あの〜、702も私じゃないです。 煽りはいらないので早くレスください。
あの〜、私は本物です。 popenですか、煽りだかなんだか分かりませんが、 これから会社に行って調べます。 これさえ出来れば、プログラムが完成するので、 けっこう必死です。
633を書き込んだものです。 荒らしが常駐する中、レスありがとうございました。 あとは勝手に荒らしてください。
> あとは勝手に荒らしてください。 通報しました。
707 :
デフォルトの名無しさん :03/05/02 09:41
BCB7はいつ発売になりますか? BCB6だと、Kylixがバンドルされてないですよね。
708 :
デフォルトの名無しさん :03/05/02 09:52
SpeedButtonで打ち込んだ数字(電卓なのですが)をMemoに反映させ、 その数字を7文字以上打ち込むとそれ以上Memoに表示させないように するにはどうしたらいいのでしょうか?力をお貸しください!
709 :
デフォルトの名無しさん :03/05/02 13:03
√計算をする場合、#include <math.h>を書き、 double sqrt(double x);を書いた後、結果を表示させるには どうしたらいいのでしょうか?ヘルプを見てもよくわからなかったので! AnsiString a=Memo1->Text; double x = a.ToDouble(); Memo1->Text=FormatFloat("#0.####0",sqrt(double x)); こう書いたのですが
ShowMessage(x);
ネタ化した633の件ですが、一応解決しました。 popen や sprintf を使うという意見は、よく理解できませんでした。 そこで、OpenDialog の ofAllowMultiSelect = false にして、 OnSelectionChange イベントが発生するたびに、 そのファイル名を別のMemoにコピーすることにしました。 なんかエレガントじゃないけど、一応目的達成としうことで報告。 ちなみに705は私じゃないです。
終わってますな
713 :
デフォルトの名無しさん :03/05/02 17:31
BCB6プロにDelphiはバンドルされてますか?
714 :
デフォルトの名無しさん :03/05/02 17:31
電卓で例えば5+5++ー*5と打った場合、最後の演算子* を格納して計算に反映させたいのですが(この場合だと10*5)、 どのようにしたらいいのかわかりません。教えてください!
>>713 BCB6Proはどうだったか忘れたが、BCB5ProにはDelphi4 Standardがついてきた。
一度も使わないまま消してしまったが。
>>714 C++のバイブル「プログラミング言語C++第三版」に、例題としてそういうプログラムの作り方が載っているから、見てみては。
>>714 その例だと 5+(5*5) が普通でしょう? なぜにそんな変な仕様に?
実装は再帰下降ですか? なら、先読みした演算子でスキップさせてゆけば簡単では?
>>714 押されたボタン(キー)が演算子(+−×÷)だったら
変数 enzanshi に記録する、とか。
719 :
デフォルトの名無しさん :03/05/02 21:46
>>716 どうもアドバイスありがとうございました。
教えて頂いた本見て参考にしてみます。
720 :
デフォルトの名無しさん :03/05/02 22:03
>>717 今の段階では、前から計算していく簡易な電卓を作るということなんです。
すいません説明不足で(なにぶんBuilder始めて1ヶ月なもので)!
先読みした演算子でスキップさせるとはどういう意味ですか?(申し
わけありませんなにもかも質問して)
演算子の優先順位が無いのであれば、再起下降も必要ないでしょ。 ごく簡単な状態遷移、というか、 今の値、最後に指定された演算子、次の数字、ぐらいを変数に入れておけば充分。
722 :
デフォルトの名無しさん :03/05/02 22:07
>>718 アドバイスの通りやってみたいと思います。
レスして頂いてありがとうございました。
勉強ならなおさら再帰下降で書くべきだと思うよ。 アマゾンでコンパイラで検索して古書から入門書を探してみたら? ボタンを押して順に計算なんて段階で時間かけてちゃ勿体ないよ その時間は本読みにかけたほうがいい。
724 :
デフォルトの名無しさん :03/05/02 22:16
>>721 丁寧な説明ありがとうございました。
初心者の自分にとって為になる知識を与えてくださって
本当に感謝してます。参考にしてやってみます。
725 :
デフォルトの名無しさん :03/05/03 18:49
forループないのif文の中身がberak;のみだと、 条件満たして無くても中身を実行してしまうみたいなバグなどありますか? デバッガのトレースボタンをおして追ってみたときにおきました。 string s="abcd"; のとき if( s=="" ){ string sss;//いみのない適当な文 sss=""; break; } は、スルー(正常) if( s=="" ){ break; } は、中にはいってしまいます。 BCB6です
sp4入れた?
>>726 レスありがとうございます。
sp4とな?まだかも。
いれてみます。
なおったーーー C++やめようかとおもったよ。よかったよーーー・゚・(ノ∀`)・゚・
なんか、解せない。 if( s=="" ){ string sss;//いみのない適当な文 sss=""; break; } これと、 if( s=="" ){ break; } これ、 下のif文のbreak;の行に、ブレークポイントを設定できない。 左の枠に、青いぽっちも出ない。 もしかして、こういう書き方自体だめなのかな。
>>729 少なくとも人に教えを請うためのソースには見えない。
コンパイラーが条件を充たしていたら飛ぶと言う最適化をするから。 上のほうは、意味の無い適当な文によって最適化が阻害されている。 デバッグしてみればわかるかと。
でもきちんとbreak;は実行されてる。
ブレークポイントが設定できないというだけみたい。
>>730 書き込んだときインデントがなくなってしまうのです。ごめんなさい。
>>731 なるほど。
動きは正常なので、この場合最適化により
ブレークポイントを設定できないのは正常なのですね。
お騒がせしました。
>>732 >書き込んだときインデントがなくなってしまうのです。ごめんなさい。
ちがう。
>>733 string s="abcd";
これ?
volatile って String を修飾できたかどうかしらないけど、 できるなら volatile String s; でいいんでない?
741 :
デフォルトの名無しさん :03/05/06 08:59
再掲 : BCB6プロにDelphiはバンドルされてますか?
dcc32.exe Borland Delphi Version 14.0 がついてます
743 :
デフォルトの名無しさん :03/05/06 10:24
TTreeViewで以下のようなツリーがあったとして aaa +bbb +ccc +ddd +eee +ggg +fff hhh 初期は以下のルートノードだけ表示されていて aaa hhh 何かのタイミング(起動時等)でgggまでを一気にひらきたいのですが どのようにすればいいのでしょうか?
木を辿るのなら再帰
終了時に aaa\ddd\eee\ggg って情報を保存して起動時にgggを開きたいのですが、 ようするにこれフォルダなのですが終了時の開いてるフォルダを 起動時に開きたいのですがどのような方法があるのでしょうか?
実行終了後に記録可能な場所は レジストリかファイル
747 :
デフォルトの名無しさん :03/05/06 10:44
>>745 メイン・フォームの OnClose と OnCreate とか。
>>746-747 あ、いや、すみません。
保存はいいのですがaaa\ddd\eee\ggg ってパスを
TreeViewで開く方法を知りたいのですが、
因みに起動時には
>>743 のツリーは既によみこまれています。
749 :
デフォルトの名無しさん :03/05/06 10:50
>>748 TreeView で、エクスプローラみたいにファイルやフォルダを表示するプログラムは
自力で組めたって言う前提でいいの?
>>750 じゃあどこでつまってるの? \ の区切りでつまってるとも思えないし
TCustomTreeView->FullExpand() で全部開くのは嫌なわけ?
エクスプローラみたいに終了時のフォルダを記憶して
起動時に終了するとき開いていたフォルダツリーを開きたいのですが、
ちなみに
>>752 さんのFullExpandは全部のノードが開いてしまうので
できれば指定した場所のみを開きたいのですが
普通に作るんであれば、 汎用的な再帰を実行する関数と、個別のノード移動時に実行される関数2つを作って、 個別関数で開くか閉じるかを実行するんじゃないかな。 //個別関数(の定義) type TTVReflexiveFunction = procedure(Sender: TObject; Node: TTreeNode) of object; //汎用関数 procedure TreeNodeReflexive(TreeView: TTreeView; TreeNode: TTreeNode; TVReflexiveFunction: TTVReflexiveFunction); Var ICount: Integer; begin TVReflexiveFunction(TreeView, TreeNode); for ICount := 0 to TreeNode.Count -1 do TreeNodeReflexive(TreeView, TreeNode[ICount], TVReflexiveFunction); end;
>>754 有難うございます。
あ、でもDelphiっぽいですね・・
これCで表現するとどう記述すればいいのでしょうか・・
AutoExpandをTrueにしてSelectでは駄目かなあ
>>756 それヘルプを見たら何やら気になるのですが、Selectとは
どういったのもでしょうか?ヘルプで見つからなかったもので・・
なんかコードよこせと言われたら説明めんどくさいや もうさ、終了時にItems.Count で全部の Expanded を保存しちゃえ、 開始時に、保存した状態に戻せばいいじゃない。
ループでgggのParent全部開くか、ggg->MakeVisible() すればいい。
760 :
デフォルトの名無しさん :03/05/06 18:18
>>755 Delphi の文法ぐらい読めるようにね。
こんな感じかな。試してないけど。
//個別関数(の定義)
typedef void (*TTVReflexiveFunction)(TObject *Sender, TTreeNode *Node);
//汎用関数
void TreeNodeReflexive(TTreeView *TreeView, TTreeNode *TreeNode, TTVReflexiveFunction TVReflexiveFunction)
{
int ICount;
TVReflexiveFunction(TreeView, TreeNode);
for(ICount = 0 ; ICount < TreeNode.Count ; ++ICount) {
TreeNodeReflexive(TreeView, TreeNode[ICount], TVReflexiveFunction);
}
}
761 :
デフォルトの名無しさん :03/05/06 18:21
>>760 ここはC++Builderスレですよ?
Delphi の文法くらい読めるようにってあなたちょっと変ですよ?
>>761 BCBはObjectPascalも使えるわけだが‥‥(´-`)y=~~
764 :
デフォルトの名無しさん :03/05/06 20:07
>>761 VCL のソースとか読まないの?
C++ Builder はデバッグ機能以外 Delphi 言語をサポートしています。
BCBはObjectPascalも覚える必要があると φ(..)カキカキ VC++ならC++だけでよいとφ(..)カキカキ
766 :
デフォルトの名無しさん :03/05/06 21:05
767 :
デフォルトの名無しさん :03/05/06 21:06
>>765 ObjectPascal でも Object Pascal でもないです。Delphi です。
768 :
デフォルトの名無しさん :03/05/06 21:12
>>765 C++ Builder やるなら Delphi も覚えた方がいいですよ。
有用なコードは C++ Builder 用だけでなく Delphi 用にもたくさんありますからね。
769 :
動画直リン :03/05/06 21:13
>>767 BCB使うのに必要なのはDelphiじゃなくてObject Pascalだと思う。
Delphi - (BCB - C++) = Object Pascal
だし。
771 :
デフォルトの名無しさん :03/05/06 21:18
>>770 Object Pascal は obsolete。今は Delphi という。
トランスレータはないの?
>>771 BCB6が出た時点ではObjectPascalだからObjectPascalでok
ヘルプもちゃんと「ObjectPascal言語ガイド」になってるし。
774 :
デフォルトの名無しさん :03/05/06 21:22
>>770 の式より:
Delphi - (BCB - C++) = Object Pascal
括弧をはずして、
Delphi - BCB + C++ = Object Pascal
Delphi + C++ = Object Pascal + BCB
よって、
C++ = Object Pascal + BCB - Delphi
775 :
デフォルトの名無しさん :03/05/06 21:24
いいや、BCB = Delphi + C++
Delphi = BCB + Java
777 (゚σ_゚) ホジホジ
GWはもう終わりましたよ
779 :
デフォルトの名無しさん :03/05/07 09:02
>>761 教えてもらっておいて、テメーその口の利き方はあんまりです。
780 :
デフォルトの名無しさん :03/05/07 10:08
>>779 貴様のようなゴミに教えてもらった覚えはねえよ?
口調が違うので、多分ブビ厨による嵐とみた。
つか、そのくらいわかれや( ´_ゝ`)
BCB6が入ってるところにDelphi6インストールしても大丈夫ですかね?
785 :
デフォルトの名無しさん :03/05/07 15:14
SpeedButtonで例えば3+7++*5と押し、Labelに打った場合、最後の演算子* を格納して計算に反映させたいのですが(優先順位考えない場合で10*5)、 switchを使っていて、++と打つとエラーが出てしまいます。 今の値、最後に指定された演算子、次の数字を変数に入れておけばいいと思うのですが、 プログラムがうまく書けません(超初心者なので)。どのようにしたらいいのでしょうか? ご指導よろしくお願いします!
787 :
デフォルトの名無しさん :03/05/07 20:19
>>786 見にくいと思いますが
float sum=0; int shori_flag1=0; int shori_flag2=0; char op;
void __fastcall TForm1::SpeedButton4Click(TObject *Sender){
TSpeedButton* btn; btn=(TSpeedButton*)Sender; AnsiString a=Memo1->Text;
if(shori_flag1==0){ sum=0; Memo1->Text=""; op='+'; shori_flag1=1;}
if(shori_flag2==1){shori_flag1=0; shori_flag2=0;}
else{switch(btn->Tag){case 11: switch(op){
case '+': sum=sum+StrToFloat(Memo1->Text);break;
case '-': sum=sum-StrToFloat(Memo1->Text);break;
case '*': sum=sum*StrToFloat(Memo1->Text);break;
case '/': sum=sum/StrToFloat(Memo1->Text);break;}
Memo1->Text=""; op='+'; break;
-*/も上の+を変えるだけなので省略
btn=(TSpeedButton*)Sender;は btn = dynamic_cast<TSpeedButton*>(Sender);にしなさい。 ヘルプにも書いてあるだろ。
C++って汚いな。
>>789 それに関しては激しく同意。
でも、VBの様に低機能で文法が汚いよりはましだと思われ。
792 :
デフォルトの名無しさん :03/05/07 23:49
bcc32を利用した、簡易な開発環境を作ってみたいと思っています。 そのため、ボタンを押すとコマンドプロンプトの窓が開いて中で(別の場所で)指定した プログラムをbcc32でコンパイルし、その結果がその窓に残るようにしたいと思います。 ですが、うまくいきません。 CreateProcess( NULL, "bcc32 d:\\hoge.cpp", NULL, NULL, TRUE, CREATE_NEW_CONSOLE, NULL, "d:\\", &si, &pi ) みたいなかんじでbcc32 hoge.cppを実行すると、確かにコンパイルされますが、窓がすぐ閉じてしまいます。 かわりにcmd.exeを実行すると窓は開いたままですが、どうやってbcc32を起動するかがわかりません。 どなたかお願いします。 (まちがって、C++相談室にも出してしまいました。すみません。)
793 :
デフォルトの名無しさん :03/05/08 02:01
>>792 その開発環境自体は何で作ってるの?
いっそのこと、bcc32 の出力を Pipe で受け取ってやれば。
>>792 コマンドプロンプトで cmd /? してみよう。
これじゃだめかね?
>>792 じゃあバッチファイル(.bat)を生成してそれを叩くようにしたらどう?
bcc32 d:\\hogehoge.cpp
pause
とか。
796 :
デフォルトの名無しさん :03/05/08 04:00
そういや、コンソールのプロジェクトをF9で実行した場合も終了後、すぐにコンソール閉じて結果が確認できないけど、 表示させたままにする方法ってあるん? system("pause"); 以外の方法で。
ブレイクポイントは?
つまりIDE側で閉じないようにする方法は無いと‥‥ λ.......
ブレイクポイント張っとけよ、駄目なのか?
BCB4でTRichEditにWordBreakProcを指定したくて、 int MyWordBreakProc(LPTSTR lpch, int ichCurrent, int cch, int code) { return 0; // とりあえず } __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { SendMessage(RichEdit1->Handle, EM_SETWORDBREAKPROC, 0, (LPARAM)MyWordBreakProc); } こう書いたのですが、関数内にブレークポイントを設定しても 一向に呼び出されている気配がないんです。 何が悪いんでしょうか?
803 :
デフォルトの名無しさん :03/05/09 11:27
BCB6のバンドルDelphiはどのCDに入ってますか? ・DISK1 ・DISK2 ・Compamion Tools ・Enterprise Server
>>803 Delphi は Delphi で別 CD
>>802 TForm のコンストラクタの時点では、Windows のコントロールはまだ作成されていないから。
よく GP でないね。
OnShow のタイミングでメッセージを送るか、
TRichEdit から継承したクラスで自分自身を再設定。
806 :
デフォルトの名無しさん :03/05/09 13:09
807 :
動画直リン :03/05/09 13:13
>>806 入ってるだろ。dcc32.exeとdcc60.dll探せよ。
それと入ってるのはDelphiのコンパイラであって、IDEではない。
810 :
デフォルトの名無しさん :03/05/09 14:59
CLXアプリって、「新規作成-CLXアプリケーション」するわけですか。 VCLで作っといて、VCLヘッダーをCLXヘッダーに差し替えるだけじゃだめ?
811 :
デフォルトの名無しさん :03/05/09 15:02
フォームもdfmじゃなくて、xfmなんだぁ。 dfmとxfmとどうやってコンバートするんだろう?
812 :
デフォルトの名無しさん :03/05/09 16:25
フォームを作った時に出来る、ddpファイルってなんですか? BCB5にはありませんでしたよね?
813 :
デフォルトの名無しさん :03/05/09 17:27
既存のVCLのソースをCLXで使えないんでつか?
使えるだろ。
815 :
デフォルトの名無しさん :03/05/09 20:09
使う手順を教えて欲しいんでつ。 #include <vcl.h>と、#include <clx.h>を条件コンパイルするんですか? dfmとxfmの切り分けはコンパイラがやってくれるんですか? それとも自分でコンバートするんですか?
読み込んだcsvファイルをDBGridに表示にさせるプログラム(CUTTシステム,
コンポーネント活用&実践プログラミング本のサンプル)を試したいのですが,
csvを読み込んだ時点で,
"EDBEngineError テーブル/インデックスヘッダーが壊れています"
というエラーが出てしまいます.
似たような事例からなと思い,
ttp://www.users.gr.jp/ml/archive/delphi/45874.asp を参照しましたがよくわかりませんでした.何か原因はありますでしょうか?
↑環境はBCB4 + Win2000です.
819 :
デフォルトの名無しさん :03/05/12 13:03
再インストールしたら、使用許諾コードが駄目になりますた。 どうしたら良いのですか?
ちょっと疑問だったんですが、 某から「あ、使用許諾2ライセンス取りやがって。通報しますた」 なんてことないですよね?
>>821 もしそんな事して、「俺は正規ライセンス持ってるのに!」となったら
一人の不正使用者捕まえるよりも大変な損害をこうむる事になりますよね?
という事は、そんな事はまずしないという事です。
InputBoxでIMEモードを指定できませんか? TEditとかはそんなプロパティーがあって便利なんですが。 全角ひらがなで入力してもらいたいので。
何となくアクチべーションが気に入らないので認証 していまま半年以上すぎたけど、普通に使えてる。 あれって何の意味があるんだろう? 単にあまりつかってないからなのかな
>>824 認証しなくてもいいんですか?
なんかXPみたいに認証が必要なんてイヤラシイのでBCB4からのバージョンアップを躊躇してるんですが。
BCB6にアップグレードしようかな。
>>825 認証しなくても使える
まだユーザー登録カードすら出していない
出したらいいこと有るのか知らないし
>>826 あ、やっぱりそうなんだ。
プロテクトとして何の実効性もないこのアクチは
正規ユーザーへのいやがらせとしか思えん。
何考えてんだ。ボーランドは。
バグも多いし、偶数バージョンのボーランドは
買ってはいけない、の典型例だな。
>>825 ということで、BCB5にしといたら?(w
夏くらいには新しいのがでるんじゃねーの?
829 :
デフォルトの名無しさん :03/05/14 10:15
今フォルダ内にある全JPEGファイルをTJPEGImageで読み込んで TListViewにStretchDrawで縮小して羅列するプログラムを作ったのですが 読み込みが非常に遅いのでもっと高速でJPEG読み込むには どうしてらいいのでしょうか? できれば何かのプラグインとかに頼らず自分でできればいいのですが・・
830 :
デフォルトの名無しさん :03/05/14 11:57
エクスプローラでファイルを右クリしてでてくるメニューに 項目を追加してそれを選択されると指定したアプリが 起動するようにする方法を教えて下さい。
831 :
デフォルトの名無しさん :03/05/14 13:31
今日、C++Builder5で新規プロジェクト作って DelphiコンポーネントのSaNumEditとPrevXを張っただけの Formでコンパイルすると [リンカ 致命的エラー] Fatal: ファイル C0W32.OBJ が開けません となりました。 当然Pathは通っていて標準コンポーネントだけなら問題なし。 他のライブラリとか付けたり外したりしてみると無事リンクできる場合がある。 プロジェクトファイルで上記2つが連続して記述されると出るみたいなんだけど、 良く判らない... コンポーネントをインストールする時にコツとかあるのかなぁ。 とりあえず今は、症状が治まる状態に肉付けして動作は出来るよう にはなっているけど、気持ち悪い。 これってFAQなんでしょうか?
>>831 そのコンポーネントのOBJファイルを追加してみた?
解決しました。
コンポーネントのライブラリが二重参照されていたみたいです。
(1)コンポーネントを張ると、プロジェクト→オプションのライブラリ参照パスに
コンポーネントライブラリを展開した時のPathが明示的に自動生成される。
(2)元来Projectsディレクトリ下で一括管理されているコンポーネントライブラリのPathが
暗黙的に参照される。
(1)で生成された参照Pathを削除すると、症状は出なくなりました。
Pathを自動生成するのを抑止できるかコンポーネントを再インストールしてみます。
>>832 初期の頃にやってみましたが、ダメでした。
そもそも[リンカ 致命的エラー]なのでPathが通ってないって
問題じゃなかったワケでした。
失礼しました。
834 :
デフォルトの名無しさん :03/05/15 11:47
D&Dで質問なのですが、 エクスプローラ→自ソフトにはD&Dできるのですが 逆に自ソフト→エクスプローラにはどのようにしてD&Dをおこなうのでしょうか? 宜しくお願いします。
835 :
デフォルトの名無しさん :03/05/16 10:03
C++Builder1でマウスホイールのイベントをとるにはどうすればいいのでしょうか?
837 :
デフォルトの名無しさん :03/05/16 10:57
>>836 ありがとうございます。
無事イベントをとることが出来ました。
838 :
デフォルトの名無しさん :03/05/16 10:59
もう1つ質問なのですが、 C++Builder1や3でJPEGを扱うにはどうしたらいいのでしょうか? 5みたいにTJPEGImageクラスが無いようなのですが・・ よろしくおねがいします。
>>838 うーん TJPEGImageが無い頃にはそういう情報もあちこち転がってたけど
今となるとなあ・・・
単に表示させたいだけなら TWebBrowser で表示させたら?
> C++Builder1や3でJPEGを扱うにはどうしたらいいのでしょうか? 3はborlandのサイトにTJPEGImageのライブラリが置いてある。
841 :
デフォルトの名無しさん :03/05/16 11:12
Builder7って発売される予定は無いのかな?
842 :
bloom :03/05/16 11:13
>>839 ビットマップにに変換して縮小/拡大等をしたいもので・・
>>840 ありました。ありがとうございます
BCB6入ってる環境にDel6Personalそのまま入れても問題ないでしょうか? 逆は色々書いてあるけどDel後入れは書いてないもので‥‥ DelのプロジェクトがBCBで開ければいいんだけどね‥‥(´ω`)
>>844 全くといって問題ないです。 関連付けについては、BPGなんかは手動で関連付けるといいでしょう。
>>843 JPEGか……
Susieのプラグインとか使って読み込めないかな?
はずしていたらごめんなさい
謝って済めば法律はいらねぇ
>>845 ありがとうございます
ソース公開してるアプリって、自分で手直しできるから素敵(;´Д`)
850 :
デフォルトの名無しさん :03/05/18 00:58
すいません、質問です。 下のように書いたんですけど、 「'AnsiString' 型は 'char *' 型に変換できない」 とエラーが出て実行できませんでした。 いろいろ試しましたが回避できませんでした。・゚・(ノД`)・゚・。 どなたかご教授くださいm(_ _)m String(list) = ListBox->Items->Strings[ListBox->ItemIndex]; Form1->Caption = strtok(list,",");
変換できても書き換え禁止
じゃあなんでAnsiStringのc_str()はconst char*ではなくchar*を返すの?
char* buff = new char[list.Length() + 1]; strcpy(buff, list.c_str()); Form1->Caption = strtok(list, ","); delete[] buff; こうするしか。
うーん、
>>653 さんのでもできませんでした・・・
折れがおかしいのか・・・
もっと勉強しなきゃヤヴァイですね。
逝ってきます。
853 さんのはひとつだけ間違いがあって通らないのだけど、 それが分からないのは、やはりちょっと勉強がたらないかな。 すぐわかるようになると思うので、もちょっとがんがれ。
あれ? AnsiString::c_strってchar*返すのか。 じゃあ Form1->Caption = strtok(list.c_str(), ","); でいいじゃん。
いや、文法上は書き換えても良いんだけどね、(配列のオーバーフローも文法上は間違ってない) AnsiStringは参照カウンタを持っていて、c_str()はデータをそのまま渡してくるから。 c_str()がconst char *を返さないのは 歴史的な理由か、APIとの関係があるんじゃないかと(憶測)。
std::string::c_str()はconst char*だからAnsiStringも同じだと思ってた。
list.Unique();
Form1->Caption = strtok(list.c_str(), ",");
ってやればちょっとは安心か。
一番安心なのな
>>853 (要修正一カ所)だけど。
860 :
デフォルトの名無しさん :03/05/19 11:27
質問ですが、 C++Builder5ではStretchDrawの引数にTRect(10,10,100,100)って与えてもエラーは出ないし 正常に表示もされるのですが、C++Builder3で同じコードをコンパイルすると 「Could not find a match for argument(s)」とエラーが出ます。 どうすればコンパイルが通るようになるのでしょうか? よろしくおねがいします。
Rect(10, 10, 100, 100)を渡す
>>861 おおっ!!
確かにそれでコンパイルが通って
思ったとおりの表示になりました!
ありがとうございます。
フリーフォントを使ったアプリを作ったんですけど フォントが入ってないPCだと文字自体が描画されませぬ。 リソースみたくやる方法を教えてママン(;´ω`)
__int64 a; char num[80]; a = _atoi64(Edit1->Text.c_str()); char *p = _i64toa(a,num,10); というようやり方は知っているのですが sprintf();をつかって_i64toaに相当するようにするには どうすればいいでしょうか
865 :
デフォルトの名無しさん :03/05/19 15:00
866 :
デフォルトの名無しさん :03/05/19 17:59
教えて君で申し訳ありません。 5.5.1にてコンパイル時に 「エラー E2133: コマンド 'ilink32.exe' を実行できない」 というエラーが出てしまい、コンパイルが実行出来ません。 一応readmeを読み、cfgファイル×2は作成しました。 解決方法をご存じでしたら、お教え下さい。
867 :
デフォルトの名無しさん :03/05/19 18:05
>>866 SetBccってフリーソフトあるから、使えば?
あれは俺も使った。2000までだがXPでもOKだったし。
もし、だめならレジストリをいじるか。
他の可能性として、ぶっ壊れてるかも。
>>863 AddFontResource / RemoveFontResource
で、独自のフォントファイルを使える。
869 :
デフォルトの名無しさん :03/05/20 13:50
関連付けをプログラムでやる方法を教えて下さい。
871 :
デフォルトの名無しさん :03/05/20 21:39
>>867 遅レス申し訳ありません。
無事にコンパイルする事が出来ました。ありがとうございました!
872 :
デフォルトの名無しさん :03/05/21 10:49
C++Builderで作成して使用していたツールを、 日本語Windows以外でも使いたいという要望により英語化することになりました。 日本語を英訳する以外にやるべきことはなにがあるのでしょうか? 自分で気づいた点としては、 Fontプロパティには"MS ゴシック"や"MS Pゴシック"が設定されていますが、 これらはなにに変更すればよいでしょうか。
>>872 英語版の Consts.pas とかを使わないと VCLのエラーメッセージも英語になってしまうよ
リソースに日本語が残ってないかどうかは、リソースハッカとか使って確認するといいよ。
TDump.exe で見る方法もあるね。
874 :
デフォルトの名無しさん :03/05/21 11:25
TWMSysCommandでシステムメニューのポップアップのコードは61587っぽいのですが これのデファインってどういう名前で定義されているのでしょうか?
コマンドの種類は、下位4ビットをクリアして判断する。 61587 → 61584 61584は SC_MOUSEMENU。
>>875 ありがとうございます。
コードを0xFFF0でアンドとってSC_MOUSEMENUでできました。
877 :
デフォルトの名無しさん :03/05/21 19:16
質問ですが TIniFile *ini = new TIniFile( "a.ini" ); でiniファイルを開きdelete iniをせずに また違うiniファイルを読む方法あるのでしょうか? よろしくお願いします。
>>877 ( Д ) ゚ ゚
マジレスしとくとC++勉強し直せ
>>877 TIniFile *ini2 = new TIniFile( "b.ini" );
ini->~TIniFile(); ini->TIniFile("b.ini");
881 :
デフォルトの名無しさん :03/05/22 10:06
>>877 出来ねーよ
一回メモリー開放するか
新しいクラスで作ってくれ
>>881 Delphiなら Create はコンストラクタだけじゃなくメソッドとして呼び出せるんだけどね。
TIniFileでは内部のファイル名セットしてるだけだから
885 :
デフォルトの名無しさん :03/05/22 11:04
BCBでIIS用CGIかISAPI作ろうと思います。 RDBのコネクションプール作りたいのですが、実現可能でしょうか?
('A`)ノ TIniFile *ini, *ini1, *ini2; ini1 = new TIniFile("foo.ini"); ini2 = new TIniFile("bar.ini"); ini = ini1; ini->WriteInteger("877", "itteyoshi", 1); ini = ini2; ini->WriteString("foo", "bar", "hoge"); delete ini1; delete ini2;
887 :
bloom :03/05/22 11:11
コネクションプールが必要なほど負荷のかかる場所に BCBでってのがどうも判らん。 実験?
889 :
デフォルトの名無しさん :03/05/22 11:31
>>888 いえ、製品作る予定でつ。
じゃ、どうすれば良いですか?
>>889 いや製品作るんなら頑張ればいいんじゃないの?
でも、BCBを選んだのはどうして?
BCBらしい作り方するならDelphiの方がバージョンが上な分楽だと思うけど?
891 :
デフォルトの名無しさん :03/05/22 11:45
>>890 Web側はDelphiで良いんですが、処理側にC++コードが多いんです。
で、DelphiはC++コンパイル出来ない古いバージョンしか持ってなかったり。
892 :
デフォルトの名無しさん :03/05/22 12:32
AnsiPack.bpiを入れるにはどうすれば良いのでしょうか?
893 :
デフォルトの名無しさん :03/05/22 13:44
BCB6でふつーに、ISAPIプロジェクトを作ると、 [リンカ 致命的エラー] Fatal: ファイル PROJECT1.OBJが開けません となります。 何ででしょう?
20代OLです毎日上司のセクハラや通勤電車での痴漢でストレスがたまっていた
そのときにネットで見つけたアダルトDVDショップ以前からオナニー用にDVD
が欲しかったのですぐ注文しました、とても安くてびっくりしましたが次の日には
もう届きました私が買ったのは、オナニー、レズ、レイプです毎日オナニーしてま
す。
http://www.net-de-dvd.com/
895 :
デフォルトの名無しさん :03/05/24 15:43
なんでDelphi6にはあるのに、C++Builderには TShellListView/TShellTreeViewがねーんだよ〜。 ひょっとして、設定すれば出てくるの?誰か教えて下さいませ。
↑ちなみにC++Builder6+サービスパックです。
897 :
デフォルトの名無しさん :03/05/24 16:41
TTrayicon を貼り付けたアプリをeXeScope でのぞくと、
Importの欄にいろいろとでてきちゃうんですけどこれを出さなくする方法ってありますでしょうか?
一部抜粋。
0096 0041F4D8 @TPerformanceGraph@SetGridSize$qqrl
009A 0041F590 @TPerformanceGraph@SetGridlines$qqro
009B 0041F5A4 @TPerformanceGraph@SetPenWidth$qqrl
0098 0041F524 @TPerformanceGraph@SetScale$qqrl
0097 0041F4F8 @TPerformanceGraph@SetStepSize$qqrl
00A2 0041FD44 @TPerformanceGraph@Update$qqrv
014D 00500980 @TTrayIcon@
00A7 0042069C @TTrayIcon@$bctr$qqrp18Classes@TComponent
00A8 00420878 @TTrayIcon@$bdtr$qqrv
00C0 004213F0 @TTrayIcon@ApplicationHookProc$qqrr17Messages@TMessage
00B6 00421168 @TTrayIcon@DoClick$qqrv
00B7 004211A8 @TTrayIcon@DoDblClick$qqrv
00B4 00420E64 @TTrayIcon@DoMessage$qqrr17Messages@TMessage
00B9 00421218 @TTrayIcon@DoMouseDown$qqr21Controls@TMouseButton46System@%Set$t18Classes@Classes__1$iuc$0$iuc$6%ii
>>895 http://www.ba.wakwak.com/~h-kova/cgi-bin/bbs/cyclamen.cgi?log=faqtip&tree=r14 でいかが?
当方試してないですけど。
>TTrayicon なにそれ?
Samples にいるVCLっす。 「Borland C++ Sample Components」。 正しくは、TTrayIcon でした。
コンポーネントでしょ。 export が見えてしまうのは Windows 実行形式の特性なので Delphi / TrayIcon に限らないと思うけど?
すまんね。いま BCB 環境が手元に無い。 まさか、パッケージつかっていたりしないよね? ライブラリ、パッケージの静的リンクを選んでみては?
「Importの欄」ではないでした。 「Export」欄でした。
>>901 実行時パッケージを使って構築をOFF
共有RTL DLL を使うをOFF
でよろしいでしょうか?
実行時パッケージを使って構築をOFF 共有RTL DLL を使うをOFF とやっています。
906 :
デフォルトの名無しさん :03/05/24 16:58
>>Borland C++ Compiler 5.5をダウンロード、インストールしたのですが、そこから何をしたらいいのかわかりません。 どうやって起動したらいいのでしょうか。超初歩的で場違いかも知れないのですが、どうか答えてください。 お願いします そんなこと知らん。自分で考えれ
FAQ:BCCの使い方(きほん:はぁとw) C>mkdir \TMP C>cd \TMP C>copy con hellow.cpp #include <iostream> int main() { std::cout << "hellow,world" << std::endl; return 0; } ^Z C>make hellow.exe C>hellow hellow,world C>
↑ s/hellow/hello/g
909 :
デフォルトの名無しさん :03/05/25 19:36
現在、TLISTに必要な情報を確保→TLISTの情報をTLISTVIEWで表示というようなことをしているのですが、 データの更新をする場合はどのようにしたらいいでしょうか? 教えてください。よろしくお願いします。m(__)m
lngReturn = NetMessageBufferSend(NULL,address,fromname,(BYTE *)msg,sizeof(WCHAR) * lstrlenW(msg)); とした時にlngReturnの値がAPI本と合いません。 相手(送信先)が存在しない場合にlngReturn == 2273になるはずですが 225が帰ってきます。 何故でしょう?
912 :
デフォルトの名無しさん :03/05/25 23:50
う〜ん、意味不明ですか、なにぶん初心者なもので。 TLISTにデータを入れるときは構造体のインスタンス?dataをADDしてます。 で、その構造体の中の一部のデータを書き換えたいのですが、どうすれば可能でしょうか? 元のデータを消して、新たにADDするしかないのでしょうか?教えてください。
>>912 構造体をどうやってTListにAddしたのだ?
構造体へのポインタから各データにアクセスする方法がわかってないなら
「->」をキーワードにして調べる。それがわかっているなら迷うことはない。
Pascalをcppに変換するツールってないかな? 手作業でって言われそうだけど、膨大な量だしDelphiはまるで知らんので
まさかVCLを全部 CPP に変換したいと?
いや、pasだけ
Delphi言語にはC++に簡単に移行出来ない部分があるので 関数内関数 初期化・終了化節・・・・これはスタートアップやグローバルデストラクタで代用可能かな ユニット単位の概念・・・これはnamespaceでなんとかなるか 無理っぽい
ふーむ。。。 じゃあLinuxとかであるp2c(Pascal to C)でC言語にソースコンバートしておいてから c2cpp(C to C++)で再びソースコンバートしてC++にしたら破綻するかな? Linux機が持ってないけど。
訂正 × Linux機が ○ Linux機は
ん? DelphiじゃなくてPascalなの? ユニットの概念もクラス概念もないPascalなのね?
や、Delphiのソースなんだけど。 ひょっとしてp2cって漏れが考えてるのと全然違う?
921 さんの言っているのは、p2c は ObjectPascal 以前の伝統的 Pascal の C 言語への コンバーターだよ。クラスやイベントを含んだコードは変換できないよ。っていっているの。だとおもう。
規格?としてはこんな感じか? Pascal UCSD Pascal (+ユニット) Object Pascal (+object) で、処理系が、LinuxならGNU PascalとかFreePascalとか動いているわけで、 それらはTurboPascal/Delphiとまた違った構文拡張を持っていて… p2cは自分も知らないが、普通に考えて最小公約数的な範囲でしか使えないのでは?
もともとの UCSD Pascal にユニットの概念あったっけ?
Terak UCSD Pascal では存在しなかったはず。
Apple PASCAL / modula-2 あたりからの影響だと思ったけど。
>>924 いちおうデファクトスタンダードなので、Free Pascal は、Borland-OOPascal サポートとか、
Delphi 構文サポートをやっている。ただ、p2c はもう少し古いコードだから、多分無理だな。
Appleの p2cはC++コードを吐いてくれるらしけどね
927 :
デフォルトの名無しさん :03/05/26 14:36
C++Builder7っていつでんの?
今年はそれどころじゃない雰囲気あるね
今までC++Builder1,3,5と買い続けたので 今度は7買おうと思ってるのに7まだなら どうしよう
なんかDelphiばっか力入れてC++Builderは手抜きって感じ
まぁ、やる気がないのは1の頃からわかってたことで。
日本じゃ話題になっていないけど、Nokia とか携帯電話向けの開発キットを こまめに出していたから、まったく製品が出てないわけではなかった。 次の C++Builder は大きく変わるときいているが。
934 :
デフォルトの名無しさん :03/05/27 10:16
IBDatabase、IBTableを使おうとすると、 DBLogDlgユニットを追加しろ、と言われます。 Delphiでのユニットの追加は分かりますが、BCBでユニットの追加はどうなりますか? #include <DBLogDlg.hpp>だけでは駄目でした。
935 :
デフォルトの名無しさん :03/05/27 11:55
インクルードパスとライブラリパスから、 C:\Program Files\BORLAND\CBuilder6\Source\vcl を消せません。 なぜでしょう。消さないとhppやdcuが出来てウザイでつ。
937 :
デフォルトの名無しさん :03/05/27 12:51
>>933 次の C++Builder は大きく変わるちゅうかさ
実行ファイルのサイズもどうどん大きくなってるよね(´,_ゝ`)
>>937 「どうどん」て何?
極太のうどんか何か?
今日の昼飯はうどん(゚д゚)ウマー
939 :
デフォルトの名無しさん :03/05/27 13:19
Nokia 用の BCBがあるということでつか? JBuilderの話ですよね?
>>938 わざわざタイプミスに反応してる香具師
( ´,_ゝ`)プッ・・
三人も釣れた( ´,_ゝ`) プッ
c++builderを使ってやる問題なのですが、 酔歩・・・各時刻でx=x(t)にある点が時刻t=t+1では確率1/2でx(t)+a、確率1/2でx(t)-aに移動するとき、 この点はx軸上で酔歩を行うという。x軸、y軸に関して共に酔歩を行う時、x軸上で酔歩している点の 時刻tにおける位置をS(t)とすると、S(t)=煤ii=0からt)xi(iは添え字)である。ここで確率1/2でa、 確率1/2で-aの値と取る互いに独立な確率変数である。 ここからが問題文に入るのですが、 a=1として(x,y)平面上で一点の酔歩を行いt=0からt=1000までの点の軌跡を描きなさい。但し、初期値は(0,0) とします。更に時刻tまでの点のx座標の絶対値をξ(t)、すなわちξ(t)=max|(i=0〜x)xi|としたとき、 ξ(t)を求めて図を描きなさい。 与えられているヒントは、乱数はxi+1(i+1は添え字)≡λxi+μ(mod P)を使う。 LineToメソッド MoveToメソッドを使う。 ということです。 c++Builderを使うとどんなプログラムになるか教えて下さい。
わりといい感じになる。
∧_∧ ピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。 =〔~∪ ̄ ̄〕 = ◎――◎ 山崎渉
948 :
デフォルトの名無しさん :03/05/28 16:07
TImageListって格納できる数に制限があるんでしょうか? 160*160のサイズの画像を500個程度格納しようとすると、 400個位追加した時点でそれいじょう追加しても リストビューになにも表示されなくなってしまいます。 別にメモリ不足なわけではないのに。
ビットマップって大きさに限界なかったっけ。
> イメージリストにあるすべてのイメージは,
> 単一の大きなビットマップに画面デバイス形式で格納されています。
ってヘルプに書いてるから、数というより大きさが限界に達したのかも。
>>948
160(ピクセル) * 160(ピクセル) * 400(個) * 4 (1ピクセル 32bit/4byte) = 40960000 40M byte か。95/98 だと無理だね。NT だとあまり問題ないと思う値だが。 それより、160*400 = 64000 ピクセルだから、32bit を超えてるね。 Windows やコモンコントロール、ビデオドライバのバグを引き起こしそうな値だ。
なぜこの2つは出力結果が違うのか教えて下さい。 プログラムA #include<stdio.h> int prog1(int a, int b){ a=a+10 b=b+20; return a*b; } int main(){ int a=10,b=20,c; c=prog1(a,b); printf("a=%d b=%d c=%d\n",a,b,c); return 0; } a=10 b=20 c=800 プログラムB #include<stdio.h> int prog1(int *a, int *b){ *a=*a+10; *b=*b+20; return *a**b; } int main(){ int a=10,b=20,c; c=prog1(&a,&b); printf("a=%d b=%d c=%d\n",a,b,c); return 0; } a=20 b=40 c=800 すみませんが、どうかよろしくお願いします!!!
952 :
デフォルトの名無しさん :03/05/28 17:59
関数ん中で値変えてんじゃんばか
宿題を聞くな。そして答えるな。
>>950 OSは2000なので16bit超えが原因みたいです。
画像ビューアのような物を作っていてListViewをサムネイル表示に使っているのですが、
この場合どうすればちゃんと全部の画像を表示する事が出来るようになるのでしょうか?
ListItemのプロパティに直接TBitmapを指定する事もできないようですし。
ListViewにTImageListを2つ以上指定する事も出来ませんよね?
956 :
デフォルトの名無しさん :03/05/28 19:04
勘弁してください。
959 :
デフォルトの名無しさん :03/05/29 14:08
AnsiString 型をバイナリーファイルに書き込む・読む込む ことについて、教えてください。 AnsiString *x を宣言した後、 x = new AnsiString [100]と領域を動的に確保。 (ただし、常に100とは限りません。100は例です。) その後、各配列に、文字列を入れます。各文字列の長さは、 プログラムの実行時に決まり、一定ではありません。 これを バイナリーに書き込み、その後、読み出す場合、 どうすれば良いでしょう。 for(i = 0; i < 100; i++){ fread(&x[i], sizeof(AnsiString), 1, fp); } では、ダメのようです。これは X の各要素の大きさが 一定ではないからですよね。このような場合、 AnsiString ではなく、char *x[255]などのようにしないと 行けないのでしょうか?
>>959 TStringListを使って
TStrings *MyStr = new TStringList;
としておいて
MyStr->Textを書き込むってのはダメ?
取り出すのもMyStr->Textで取り出せばいいかなと
そもそもバイナリを使わなければならない理由があるんですか?
ありがとうございます。やってみます。 いろいろ事情があり、バイナリで書き出したいと思っています。 (文字列だけではなく、数値データなども書き出す)
とうとう、ドットネットの影響なのか、C#Builderがでるらしい。 やはり、C#に負けてしまうのだろうか。がんばれ、C++にJava。 と思う今日この頃だった。
>>963 まじぇぇっ!!!
ソースある話?
C#って、あんまり身の回りではシステム作ったって
話聞かないから、てっきりフェードアウトするかと
思ってたよ。
大分前から某のサイトにC# Builderのページあるよ。 デモ映像とかあった。
C# Builder売れないだろうな。 パーソナルがフリーなら使ってみるが(w
手元の日経ソフトウェア7月号によると、無料のPersonal版が出るらしいな Linux版もありうるらしい(monoがモノになったらの話だろうが) いい加減スレ違いだが BCBのパーソナル版も無料にしてやってくれんかな いいソフトなんだからさ、みんなに使ってもらいたいよ、ホント
いいソフトじゃないよ。 VCLはObjectPascalのままで手抜きだしバグだらけだし。
パッケージ使わないとexeのサイズも異様にでかいしね。
キタ━━━━━━(゚∀゚)━━━━━━ !!
BCB6ってSP4出るまで致命的なバグだらけで 日本じゃ使い物にならなかったよね。 TThreadは未だにメモリリークするのかな?メモリリークするから、 結局beginthreadex自分で呼ばなきゃ駄目なんだよね。
BCBはDelphiの後追い。
>>972 悪かったな、BCB6をメインで使っているんだよ
買って使ってみないとバグだらけかどうかなんてわからないわけで、
買ってもいない香具師にどうこう言われるのは不快なんだよ
6マソ払った漏れをバカにしたいだけなんだろ?
バーカバーカ
(´ー`)yー~~~
>>972 日本語化されたパッチが遅れたのは事実だが、致命的というほどのネタは無かったが?
修正コードとか公開されていたし。
日本語での情報提供が少ないのは、もうどうしようもないだろうよ。
>>972 は日本語化されたものでないと受け付けられない体質なんだろうな
可哀想に
1000
じゃあ1001
自分はかなりの初心者ですが、 ソフトバンクパブリッシングの「遊びのレシピ」にあるソースをコンパイルするとfatalエラー:VCLDBX.LIB が開けませんとでるのですが、これをコンパイルできるようにするにはどうすればよいか教えて頂ける方いらっしゃいますでしょうか?
>>983 その本は持っていないのであれだが、ソースコードはどうやって入手したの?
ソースだけ?プロジェクトファイルとかはついていなかった?
データベース用ライブラリを参照しているけど、無い。といわれている。
あなたの BCB のバージョンは?Std 版?
「遊びのレシピ」には付録CDが入っていて、その中にソースコードからプロジェクトファイル、ヘッダーも入っておりますが Googleで調べたところ このVCLDBX.LIBはBorlandC++1.0のライブラリーで 自分の使用しているのはBorlandC++6.0 StandardEditionなのでそれを含んではいないのかもしれないです。 こういったケースはどうすれば良いのでしょうか?又、デバックはコンパイルできなければ変数の変化などは確認できないんですよね?教えてくらさい
ということは VCLDBX.LIBのライブラリーを含んでいるのは少なくともProfessionalを買わなくてはいけないということなんですね 高いよなーちょっと 練習するには 仕方ないですね
>>989 勉強用ソースって読むためのもんだと思うが。
1000
「その」プロジェクトがデータベースコンポーネントを使っていないのであれば プロジェクトから削除するだけで済む。
1000
1000-6
0x1743
きゅうひゃくきゅうじゅうろく
997 :
デフォルトの名無しさん :03/06/02 13:55
3E5
998 :
デフォルトの名無しさん :03/06/02 14:08
998
999 :
デフォルトの名無しさん :03/06/02 14:09
1000 :
デフォルトの名無しさん :03/06/02 14:09
初1000ゲット ( ´_ゝ`)プッ
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。