1 :
デフォルトの名無しさん :
2006/11/08(水) 02:01:27
9 :
デフォルトの名無しさん :2006/11/08(水) 22:13:26
質問です TListViewで ListView1->Data=にデータが格納されている場所のポインタを直接格納したいのですが、データは、STLのvectorの中にあります。 今はvectorの何番目の要素なのかを(void*)にキャストして渡しています。 もっとスマートに直接、場所を示すポインタを格納する方法はないでしょうか? iteratorをvoid*にキャストして代入したら、エラーで渡せませんでした。 プログラムをはじめて日が浅く、STLは初めて使ったので何かすごい勘違いをしているのかもしれませんが、よろしくお願いすます。
ヒント:vectorは、メモリ上ではデータの連続性が保証されている。
>>9 std::vector<int> array;
...
int* ptr = &array[0];
>>10 個々の要素のポインタを取得するだけなら連続性は関係ないでしょ
12 :
デフォルトの名無しさん :2006/11/08(水) 23:39:46
>>11 別にポインタで収納しなくてもいいじゃんってこと
>>12 finallyは独自拡張だから普通の例外処理ではないな
しかもそれを含めた例外処理をCでも使えると言ってるからかなり普通ではないな
なお、某は「例外的な例外処理」この手の言葉遊びは昔から良く使ってた
最近は気が付かなかったけどこういうところで使ってたんだなw
15 :
9 :2006/11/09(木) 20:17:32
>>11 回答ありがとうございます。
でも残念ながらうまくいきませんでした。
値を設定するときは、問題ないのですが
実際にListViewがクリックされて値を参照するときには代入したポインタは使えませんでした。
push_back()を繰り返していくうちにメモリが再配置されたのか???詳しいことはわかりませんが
値の設定時と、値の取得時では、アドレスが変わってしまっていました。
ポインタを直接代入したのではダメのようです。
>>9 >push_back()を繰り返していくうちにメモリが再配置されたのか???
あらかじめ確保された容量を超えれば再確保・コピーが発生するので
要素の追加があるならポインタで持ってもしょうがないと思いますよ。
(要素数の上限がわかっていればreserve()もありでしょうが)
Dataには自分でnewしたオブジェクトのポインタを入れておくか、
単純にListViewのItemのインデクスを元にvectorの要素にアクセスすればよいのでは?
17 :
デフォルトの名無しさん :2006/11/15(水) 22:49:53
アホは自作自演でしか反論できない
18 :
デフォルトの名無しさん :2006/11/15(水) 23:13:52
2行目のニュアンスと3行目のニュアンスは並んでちゃいけない気がする
20 :
京子 :2006/11/15(水) 23:54:29
サイトで変なとこをクリックしたら、入会ありがとうございましたと出てきたんです。 そうして、×をクリックしました。 ですが、請求書みたいな画面が消えないんです。いったんパソコンの電源を切ってみましたが、起動するとまた出てきます。 なにかプログラムでもされたのでしょうか? 詳し方いたらアドバイスをお願いいます
親父に気合い入れてもらえ
>>20 インターネットオプションの全般タブ→アドレスが書き換えられてるんだろ
つまんね
ポップアップメニューで項目のRadioItemをtrueにして使ってるんですが、 AutoCheckプロパティをtrueにするとチェックが自動で切り替わる代わりに 選択済み項目を再度選択すると消えてしまいます。 バグのような気もするんですが、BDS2006でもそういうものなのでしょうか? ちなみにBCB6です。コード書くのマンドクセ・・・
>>24 それはどう考えても仕様どおりの動作なので
いやならAutoCheckを使わないで自力でコーディングするしかないじゃん
>>25 やはりそうですか。
自前に書き換えました。
マウスホイールでのスクロールについて教えてください。 マウスホイールでの画面スクロールが フォーカスがあるウインドではなくマウスが上にあるウインドで有効になるようにしたいです。 WM_MOUSEWHEELメッセージはフォーカスがあるウインドに送られてくるので フォーカスがあるウインドのOnMouseWheel()で スクロールさせたいウインドにSendMessage()等でWM_MOUSEWHEELを送っても スクロールさせたいウインドのOnMouseWheel()には何も届きません。 実現方法または、やり方を説明した場所などあれば、教えてください。
28 :
27 :2006/11/18(土) 23:19:57
だれかなんかレスください
>>28 Gone with the Wind
たぶんメッセージは風とともに過ぎ去っていったのだろう
>>28 C++Builderは興味はあるが(Javaと連携しやすいそうなので)、やったことないので分からないが、
VC++にGETWINDOWRECTという全スクリーン上のウィンドウの座標を受け取る関数があって、
こいつと大きさが分かれば、どのウィンドウにマウスが乗ってるかどうかが分かる。
完全にハードコーディングになるが。拡張させてゆく機能ならあまり好ましく無いな。
で、これと似たようなものがBuilderにあるかどうかというところ。
>>27 SendMessageはスクロールさせる当のコンポーネントに送る
Turbo C++ ExplorerでC++を学んでみようと思ってます。
>>6 はVer6の時の物みたいですが、Turbo C++でも
ある程度は参考図書として使えますか?
(インターフェースが全然違っていたりとか)
>>32 >>6 の本を読む前にC++の入門書を読む
読み終わったころにはTurbo対応版が出るかもしれない
出なかったら
>>6 でいいでしょ
ただしC++の基本をマスターしてから
じゃなきゃ、読んでも分からん
34 :
27 :2006/11/19(日) 21:19:02
レスをくださった方ありがとうございます。でもやっぱりうまくいきませんでした。 しかし何となく手がかりをつかんだので、もう少しトライしてみます。
35 :
30 :2006/11/20(月) 03:10:28
>34 31ももちろん使うが、あとウィンドウハンドル分けできてないんじゃないかな、もしかしたら。 ウィンドウごとにhWnd1,hWnd2なり分けてやると(モーダレス)うまくいきそうな。
SetStretchBltのHALFTONEモードをサポートしたOSを調べる方法ってありますか? ::SetStretchBltMode(bmp->Canvas->Handle, HALFTONE); ::SetBrushOrgEx(bmp->Canvas->Handle, 0, 0, NULL); ::StretchBlt(bmp->Canvas->Handle, 0, 0, bmp->Width, bmp->Height, img->Canvas->Handle, 0, 0, img->Width, img->Height, SRCCOPY); こんな感じで実装して2000では滑らか(微妙にシャープネスかかってるけどw)にリサイズされて、 Win95で動作させると無視されていました。 非対応OSの場合は自前の代替ロジック流したいな、と。。。
Delphiソースで配布されてるコンポーネントってBuilderでも使えますよね。
使えるのと使えない物がある
むしろ誰かQuadruple D3をBuilderで動かす方法を教えてくれい
誰かがやってたなぁ。ググればあるんじゃない?
Turbo C++でQuadruple D3をコンパイルしようとすると意味不明なエラーでるんだよなそういえば
43 :
デフォルトの名無しさん :2006/12/12(火) 20:37:43
delphiの下記のソースをBuilderに書き直すとどうなるか教えてください。 (WebBrowser1.Document as IPersistStreamInit).Load(TStreamAdapter.Create(ms)); こんな感じだと動作しませんでした。 IPersistStreamInit* document; (void*)document=WebBrowser1->Document; TStreamAdapter* ts=new TStreamAdapter(ms,soReference); document->Load((IStream*)ts); Builderには、TStreamAdapter->Create()が無いんですよね。
単純に翻訳すると IPersitStreamInit* doc = dynamic_cast<IPersistStreamInit*>(WebBrowser1->Document); //キャスト失敗時はbad_cast例外送出 doc->Load(new TStreamAdapter(ms)); こんな感じ。これで動くかは知らないが。 delのCreateはBCBではnew、Freeはdeleteになる。Create、FreeはC++コード上では原則呼び出し禁止。 TStreamAdapterはIInterface(IUnknown)の派生クラスなのでIUnknown派生のIStreamを引数に要求するIPersistStreamInit::Loadにそのまま渡せる。
TIdMessageにemlファイルを読み込ませて、 本文とか添付ファイルを取り出したりできますか? ググったらそれらしき事を書いてるサイトがあったもので。。。
>>44 レスさんくすです。
遅レスですんません。
そのまんまだといろいろエラーが出ます。
で試行錯誤してみましたが、結局うまくいきませんでした。
ぐぐっていたら、Builderではどうも
TStreamAdapter.Create(ms) これはnewに書き換えても、使えないような感じがします。
CreateStreamOnHGlobal()をつかって IStream* に変換している例があり、その方法だとうまく動作しました。
質問ですけど自作コンポーネントの関数ってインライン関数使えないんですか。 4,5日原因不明の実行時エラーで詰まっててもしかしたらと思って変えたら動いたんですけど。 private:とかprotected:だと大丈夫だったりしますか。
48 :
デフォルトの名無しさん :2006/12/16(土) 17:56:02
MFCのCFileFindを使いたいのですが、コンパイル時に 「未定義のシンボル」とエラーが出てしまいます。 Turbo C++ Builderでは使用できないのでしょうか?
>>48 TurboにMFC入ってるならMFCのヘッダをインクルード。
インポートライブラリなりスタティックリンクライブラリなりをプロジェクトに追加。
BCB6の場合はlib見あたらないから/Source/Mfc内のMakefileからビルドする必要があるっぽい
Windows2000、BDS2006のC++Builder デスクトップに「\\pc_001\data」へのネットワークプレース「PC001」があるとします。 このネットワークプレースをSelectDirectoryで選択する時、「PC001」を選択しても パスに展開されず、「C:\Documents and Settings\user\デスクトップ\PC001」と 展開されてしまいます。 これってどうやって回避するんでしょうか? ・追記1 同じ実行ファイルをWinXPで起動し、同様の操作を行った場合は、 「\\pc_001\data」というパス変換されます。 Win2000でもこのように動作すると思っていたのですが…。 ・追記2 「PC001」からサブフォルダ「061022」を選択した場合は「\\pc_001\\data\\061022」 というパスに展開されます。
InstantObjects使ってるひといますか?
52 :
デフォルトの名無しさん :2006/12/23(土) 11:42:41
GExperts 1.30ってC++Builder6で使えないの?
>>52 BCB6用のプロジェクトはあったから、ビルドしてみれば?
どっちみち、フォントを変更しないと使い物にならないし。
54 :
デフォルトの名無しさん :2007/01/05(金) 03:28:59
BCB6付属のJPEGライブラリをそのまま使ってJPEG保存すると赤成分のサンプリングが2x2で汚くなるので、 DISC2に収録されているjpeg.pasのソースをいじってサンプリング1x1を設定しようと思います。 procedure TJPEGImage.Compress; var 〜省略〜 ci: Integer; //追加 begin 〜省略〜 jc.c.input_components := 3; // JPEG requires 24bit RGB input jc.c.in_color_space := JCS_RGB;
55 :
デフォルトの名無しさん :2007/01/05(金) 03:30:36
//追加ここから for ci := 0 to MAX_COMPONENTS-1 do begin jc.c.comp_info[ci].h_samp_factor := 1; jc.c.comp_info[ci].v_samp_factor := 1; end; //追加ここまで Src := TBitmap.Create; try 〜省略〜 end;
56 :
デフォルトの名無しさん :2007/01/05(金) 03:31:28
という感じでIJGのrdswitch.cからパクって追加すると [Pascal エラー] JPEG.PAS(1073): 配列型が必要です [Pascal エラー] JPEG.PAS(1074): 配列型が必要です と出てしまいます。 pascal詳しくないので見比べても文法的ミスが発見できません。 どうすればよいでしょうか?
57 :
デフォルトの名無しさん :2007/01/05(金) 19:57:08
すんません、自己レスですが BCB6のDISC2に収録のJCPARAM.Cのjpeg_set_colorspace関数にある JPEGサンプリングを2,2から1,1に修正して、 JCPARAM.CとJPEG.PASをリコンパイル、 出来上がったjpeg.dcuとjpeg.objを\Lib\Obj内に上書きしてから 該当アプリをリビルドしたら解決しました。
58 :
デフォルトの名無しさん :2007/01/12(金) 09:00:55
タスクバーの位置をプログラムから移動しようと HWND hand = FindWindow("Shell_traywnd", NULL); でタスクバーのハンドルを取得して 現在のタスクバーの位置を取得 RECT rect; GetWindowRect(hand,&rect); SetWindowPosで位置の変更 SetWindowPos(hand,HWND_TOP, 0, rect.top,0,0, SWP_NOZORDER | SWP_NOSIZE) としてみたのですが、タスクバーの位置は変更されませんでした。 タスクバーを移動するにはどうすればよいのでしょうか、 よろしくお願いします
59 :
デフォルトの名無しさん :2007/01/13(土) 01:12:14
>>58 ::PostMessage(WM_LBUTTONDOWN〜)とかmouse_event使って手動操作をシミュレートしてみるとか。
SHAppBarMessage(ABM_SETSTATE, pData) APPBARDATA cbSize As Long 構造体のサイズ hWnd As Long アプリケーションのウィンドウのハンドル uCallbackMessage As Long コールバック関数へのポインタ uEdge As Long アプリケーションバーの位置を示す定数 rc As RECT アプリケーションバーの矩形を示すRECT構造体 lParam As Long メッセージのパラメータ uEdgeの定数 ABE_BOTTOM = 3 下辺にある ABE_LEFT = 0 左辺にある ABE_RIGHT = 2 右辺にある ABE_TOP = 1 上辺にある
61 :
デフォルトの名無しさん :2007/01/18(木) 14:46:04
BCB4でリリース版にしようとオプションを変更しプログラムを再構築したところ Unresolved external '__fastcall Scktcomp::TAbstractSocket::SetPortA(int)' referenced from 〜 というリンカエラーが表示され デバッグ戻しても再構築が出来なくなりました。 原因が判る方お願いします。
某のBCBセミナーって無くなったんでつか?
某除某 人形
くだすれ超初心者用のその3スレってないの?
68 :
デフォルトの名無しさん :2007/02/03(土) 14:10:57
どうせどっちも流れ変わらないんだからこっちに一本化でいいんじゃないの?
それもそうだな
BCB5.82をよく使ってますが、重い実数演算をさせた時に VC2005のようにFXCH命令を使ってくれませんね。 ま、時代の流れはSSE2/SSE3で実数演算をする方向なん でしょうが・・・まだFPUを使いたい場面もたくさんあります。 糞遅い実数演算を何とかできないものでしょうか?
演算が必要なところはVCで書けばいいじゃん
DLLで実装ですね。 そうなるとC++でクラスの受け渡しをする事を諦めないと いけないな・・・・コンパイラによって内部表現が微妙に 異なるものですから。
73 :
デフォルトの名無しさん :2007/02/03(土) 14:57:31
C++Builderの初心者です。 フォーム上に円、四角形や線を描画するたびに、 オブジェクトとして座標とともに記憶させていきたいのですが、なかなかうまくいきません。 どなたか、教えていただけないでしょうか。 よろしくお願いします。
>>73 円、四角形、線の描き方はランダムな順なの?
それだったらunionを使って座標を記憶してvectorに突っ込むぐらいしか
思いつかんな。
知っての通りvectorに入れられる型は一通りのみ(多相ポインタはまた
違うけど)。
75 :
デフォルトの名無しさん :2007/02/03(土) 16:04:43
>>74 迅速に、ご回答していただき、ありがとうございます。
円、四角形、線、いずれも、ランダムで、かつ、描く数もバラバラです。
開発者ガイドを片手に、unionやvectorを調べているのですが、どのように書くのかわかりません。
ご面倒おかけしますが、簡単なプログラム例を教えていただけないでしょうか。
どうぞ、よろしくお願いします。
くだすれは次は立てんの??
>75 もうやっちゃったかもしれないけど、>76をBCBに書き直したソース void __fastcall TfrmMain::pbxDrawMouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { if ( GetKeyState(VK_LBUTTON) < 0 ){ pbxDraw->Canvas->Pen->Mode = pmCopy; pbxDraw->Canvas->Pen->Width = 5; pbxDraw->Canvas->Pen->Color = clBlack; pbxDraw->Canvas->MoveTo(preX, preY); pbxDraw->Canvas->LineTo(X, Y); bmpBuf->Canvas->Pen->Mode = pmCopy; bmpBuf->Canvas->Pen->Width = 5; bmpBuf->Canvas->Pen->Color = clBlack; bmpBuf->Canvas->MoveTo(preX, preY); bmpBuf->Canvas->LineTo(X, Y); } preX = X; preY = Y; } //--------------------------------------------------------------------------- void __fastcall TfrmMain::FormCreate(TObject *Sender) { bmpBuf = NULL; bmpBuf = new Graphics::TBitmap; bmpBuf->PixelFormat = pf32bit; bmpBuf->SetSize(640,480); preX = -1; preY = -1; }
つづき DelphiのAssignedに対応する関数が分かんなかったのでちょっと変えてある void __fastcall TfrmMain::FormMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { if ( GetKeyState(VK_LBUTTON) < 0 ){ pbxDrawMouseMove(Sender, Shift, X, Y); } } //--------------------------------------------------------------------------- void __fastcall TfrmMain::FormDestroy(TObject *Sender) { if ( bmpBuf ){ // objectがあればtrue bmpBuf->FreeImage(); delete ( bmpBuf ); } ReportMemoryLeaksOnShutdown = True; } //--------------------------------------------------------------------------- void __fastcall TfrmMain::FormPaint(TObject *Sender) { pbxDraw->Canvas->CopyMode = cmSrcCopy; pbxDraw->Canvas->Draw(0,0,bmpBuf); }
ヘッダ class TfrmMain : public TForm { __published:// IDE 管理のコンポーネント TScrollBox *sbxDraw; TPaintBox *pbxDraw; TXPManifest *XPManifest1; void __fastcall pbxDrawMouseMove(TObject *Sender, TShiftState Shift, int X, int Y); void __fastcall FormCreate(TObject *Sender); void __fastcall FormMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y); void __fastcall FormDestroy(TObject *Sender); void __fastcall FormPaint(TObject *Sender); private:// ユーザー宣言 int preX; int preY; Graphics::TBitmap *bmpBuf; public:// ユーザー宣言 __fastcall TfrmMain(TComponent* Owner); };
81 :
デフォルトの名無しさん :2007/02/04(日) 13:41:52
listboxでリストのインデックスが範囲を超えていますとでます itemsの数が少ないときは出ないんだけど 20とかになるとでる なんですか あとエラーの時にでる数字はなんですか
82 :
デフォルトの名無しさん :2007/02/04(日) 15:09:33
愚問ですみません、winsock2でUDPソケット通信プログラムを作つて問題なく動作しますが EditでIPアドレスとポート番号を変更できるようにしたいのですが、ポート番号は簡単に できましたが、IPアドレスの方が参考書どうりでも変更できなくて困っています。 何か参考になる、方法があれば教えてください。 iniファイルか読んでもいいのですが、BCB5 PRO で作っています。
>82 もうちょっと具体的に。
84 :
デフォルトの名無しさん :2007/02/04(日) 17:00:47
>>83 説明不足ですいません。
addr.sin_port = htons(Edit1->Text.ToInt()); //ポート番号はEdit1 にて変更できてる
addr.sin_addr.S_un.S_addr = inet_addr("192.168.1.50"); //IPアドレス 192.168.1.50 をEdit2 で変更できるようにしたい
具体的すぎるわ このアドレスにアクセスが殺到するぞい
>>84 ネットワークは門外漢なんだが、その例で動くんなら
inet_addr(Edit2->Text.c_str());じゃできないかい?
87 :
デフォルトの名無しさん :2007/02/04(日) 18:18:43
>>85 192.168.0.0/16はローカルアドレス
>>84 それ私のPCのIPアドレスです!
勝手に使わないでください><
91 :
デフォルトの名無しさん :2007/02/05(月) 15:35:37
アクセスのデータベース検索で日付/時刻形式の検索方法がわからないのですが 教えていただけないでしょうか? Variant vDAO; Variant vDB; Variant vRS; AnsiString strSql; AnsiString str = DBOpenDialog->FileName; vDAO = Variant::CreateObject("DAO.DBEngine.36"); vDB = vDAO.Exec(Function("OpenDatabase") << str); strSql = "SELECT * FROM テストテーブル"; vRS = vDB.Exec(Function("Openrecordset") << strSql << dbOpenDynaset); vRS.Exec(Function("FindFirst") << buffer); //このbufferに検索条件を入れています while(!vRS.Exec(PropertyGet("NoMatch"))){ //検索結果に対する処理 vRS.Exec(Function("FindNext") << buffer); } vRS.Exec(Procedure("Close")); vDB.Exec(Procedure("Close"));
92 :
デフォルトの名無しさん :2007/02/05(月) 15:47:10
グローバルIPアドレスとローカルIPアドレスを理解してますか?
93 :
75 :2007/02/05(月) 15:51:34
>>76 参考になるURL教えていただき、ありがとうございました。
>>78 ,79,80
お忙しい中、BCBに直していただき、ありがとうございました。
さっそく、教えていただいたプログラムを参考に、自分の作っているプログラムにあてはめてみました。
多少、自分で作ったモノが悪く、エラーが出てしまいましたが、解決に向けて修正をしています。
本当に、ありがとうございました。
おかしいなぁ。そのIPアドレスはうちで使っているはずなんだけど…。 すいませんけど使わないでもらえませんかね?
つまらない
なら面白くすればいい
ファイルの選択は、OpenDialogですが、 フォルダの選択ができる部品ってないでしょうか。
>>81 抽象的過ぎて分からんがforとか使ってるなら
for(int i = ListBox1->Items->Count; i >= 0; i--)
として、後ろから参照する
スマン..Count - 1だったな
101 :
デフォルトの名無しさん :2007/02/07(水) 23:39:03
vista で Builder5 を使ってるんだけど、いくつかトラブルあるね。 1.デバッグサービスがインストールされない。 regsvr32.exe bordbk51.dll で解決 2.OpenDialog がバグる? OpenDialog でファイル名を拾って OpenDialog->FileName の値を見ると、 変な文字が入っていることがある。再現性は低いけど、2割ぐらいの確立で起きる。 3.フォームのレイアウトが崩れる これは俺の組み方が悪いのかもしれないけど、ボタンとかが隠れちゃうことがある。 って感じ。解決法とかあればお願い。
vistaを窓から投げ捨てろ
103 :
デフォルトの名無しさん :2007/02/08(木) 10:21:48
charで受け取ったコードをTColorへ移したいと思ってまして、 StringToColor関数を使ってみているのですけど、 「EConbertErrorクラスの例外を生成しました」 というメッセージが出てうまくいきません。 charで受け取ってる文字列は「#000000」みたいなものなんですけど、、 私のやり方がまずいのでしょうか?
>>103 リファレンス嫁
VCL定数の文字列表現かStrToIntで変換できるunsigned longの文字列表現
105 :
デフォルトの名無しさん :2007/02/08(木) 11:29:53
>>104 そのように言われても、いまいちやり方がわからないのですけど・・
できればもうちょっと分かりやすく説明お願いします
>>105 "clBlack"とか"0xFF00FF00"。
>>105 int i;
AnsiString s;
s = "#000000";
i = ("0x" + s.SubString(2, 6)).ToInt();
Form1->Canvas->Pen->Color = TColor(i);
Form1->Canvas->Brush->Color = TColor(i);
こんな感じで逝けるのでは?
108 :
デフォルトの名無しさん :2007/02/08(木) 12:17:20
>>107 あっ すみません
intの変数じゃなくてTColorの変数へ返したいのですけど
しまった。
オーダーがRGBかBGRかによって処理がまた変わってくるんだった。
RGBオーダーの場合は2文字ずつ切って値を移動させないと・・・
>>108 TColor型変数への代入だったら単に
TColor tcHogehoge = TColor(i);
でよいのでは。
>>108 TColorは、
type TColor = -$7FFFFFFF-1..$7FFFFFFF;
で定義されているから、整数型変数だ。
ソースなりマニュアルなりよく嫁。
111 :
デフォルトの名無しさん :2007/02/08(木) 16:14:32
実行時に、ボタンを押すと動的配列を使って、memoオブジェクトを数個ずらりと生成する 方法を教えてください。 void __fastcall TForm1::Button1Click(TObject *Sender) { int i = 1; while( i < 6 ) { TMemo * aMemo = new TMemo(Form1); aMemo -> Parent = Form1; aMemo -> SetBounds( 30 + i * 100 , 30, 100 , 100 ); i++; } } 上記のコードでも5個ずらりと並ぶのだがちょっと使えない void __fastcall TForm1::Button1Click(TObject *Sender) { int i = 1; while( i < 6 ) { TMemo * aMemo = new TMemo(Form1)[10]; aMemo[i] -> Parent = Form1; aMemo[i] -> SetBounds( 30 + i * 100 , 30, 100 , 100 ); i++; } } このコードも「Cannot convert 'type1' to 'type2' コンパイラメッセージ」 こんなこと言われるし 型キャストの方法 ? 誰か教えて
112 :
デフォルトの名無しさん :2007/02/08(木) 17:22:28
>>111 何がしたいのかサッパリわからんけど
TMemo * aMemo[10]; //大域変数
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int i = 1;
while( i < 6 )
{
aMemo[i] = new TMemo(Form1);
aMemo[i] -> Parent = Form1;
aMemo[i] -> SetBounds( 30 + i * 100 , 30, 100 , 100 );
i++;
}
}
こんなんじゃダメ?
113 :
111 :2007/02/08(木) 18:18:13
112さん ありがとう!
>>100 SelectDirectory ですか。
お礼遅れました。
ありがとうございました。
115 :
デフォルトの名無しさん :2007/02/09(金) 12:12:50
QuickReportを使った印刷について教えてください。 クリップボードから画像をTQRImage上に貼り付けて それを印刷する、ということをしているのですが、 Previewでは正しく画像が表示されているにもかかわらず 実際に紙に印刷すると真っ黒に塗りつぶされて 出力されてしまいます。 何か情報をお持ちの方、教えてください。 環境は C++ Builder 5 (Update済み) + Win XP SP2、 プリンタはHP Officejet 7210です。
ヒント:画像減色
>>116 ありがとうございます。
確かに PixelFormat が pfDevice になっていたので
pf24bit に変更したところ、今のところうまくいくようになりました。
ただ、以前の状態でも何回かはうまくいくけどときどき
真っ黒になる、という感じだったのでもう少し様子を見てみます。
118 :
デフォルトの名無しさん :2007/02/09(金) 19:52:23
TClientSocketについて質問があります。 TClientSocketでローカルポートを設定できなくて困っています。 ヘルプを見ると 『クライアントソケットは任意のローカルなポート番号を使います。ほかのソケットがクライアントソケットを見つけ出す必要はないからです。』 とあり設定できそうにありません。 どうにかローカルポートを設定できないものでしょうか?
VCLとSTLを混ぜない方がいいのかな。 std::list<AnsiString> とかダメ?
BDS2006です。 CodeGuardを使うと、fstreamファイル内で「関数に不正なファイルストリームが渡された」とでたり、 (fopenではなく)_wfopenで開いたファイルに対して、feofなどを行っても、同じエラーがでます。 CodeGuardをOFFにした際の動作は、期待通りのものであるんですが、 なぜこのようなエラーメッセージがでるのでしょうか。(自分が間違ってる可能性が高いですか?
BCB6 を使っています。 TComboBox の ->Style が csDropDown で、 ->Items が "abcde" で、 ->Text が "ab" にして実行した時に、 ▽ をクリックすると "ab" が自動的に "abcde" になりますが、 この時 OnChange が無反応です。反応したいです。 日本語でおk
BCB6でメニューを使ってMDI子フォームを表示させるのに、 Sample = new TSample(Application); としてるんだけど、なぜかnewでエラーになります・・・ フォームは自動対象から外していて、数あるメニューの 中でも、これ1つだけが突然エラーになってしまいました。 どの辺りから手をつければいいのやら・・・
>>122 なんで引数がTApplicationなんだ。
MDI Childなら普通親はMDIフレームだろ。
>>122 どんなエラーが出たか書きなさいって、お母さんいつも言ってるでしょ。
>>124 エラーは一般保護違反です。
アドレス****の****に対する書き込みがどうの・・っていう。
126 :
122 :2007/02/15(木) 14:37:55
大きく勘違いしてて、それに気づくのが遅かっただけですた。 レスくれたひとサンクス
TCppWebBrowserで縁を出さないようにするにはどうすればよいでしょうか? webを読み込んでいない状態だとでないのですが、 読み込むとでてきてしまいます。 フォームなどの BorderStyle = bsNone 的なのをやりたいです。 if(CppWebBrowser1->Document){ IHTMLDocument2 *doc = NULL; CppWebBrowser1->Document->QueryInterface(IID_IHTMLDocument2, (void **)&doc); if(doc){ IHTMLElement *elem = NULL; doc->get_body(&elem); if(elem){ IHTMLStyle *style; elem->get_style(&style); if(style){ style->put_border(TVariant(0)); } } } } とやってみましたが、全然でした。
Alt+Tabしたときのリストに表示されないようにするにはどうすればよいでしょうか?
ボタンをクリックしたところでフォームを表示させたいのですが ボタンなどにどのようなソースを書けばいいのでしょうか?
TForm2 *Form2 = new TForm2(this); try { Form2->init( /*必要なパラメタ。但しTForm2にinitメソッドを作っておく事!*/); Form2->ShowModal(); } __finally { delete Form2; }
>>130 うまくいきました。ありがとうございます
こういうのじゃ駄目だったっけ? Form2=new TForm2(this); if(Form2->ShowModal()==mrOk){ //ごにょごにょ } delete Form2;
DelphiR 2007 for Win32 が発表されましたが、これのC++版 (C++Builder 2007 ??) は出るのかなぁ 誰か詳しい事情、知ってる人いる?
>>132 //ごにょごにょ
があるんなら、そういうときこそtry __finallyで囲むべき。
>133 それが出たらぜひ買いたい。 出るといいなぁ。。
DelとBCBが分かれてくれたのは良いんだけど、 AJAXがEnt版だけなので、Del.EntとBCB.Entを揃えるのはきつい。 というか、買えんだろうな。 Pro版は両方揃えてまつ。
えええーーー!! CodeGearはC++を切り捨てるつもりか! 対して手間でもないだろうに、C++を付けろ!
>>133 C++ Builder 2007も数か月内に出る。
Highlanderよりも早い時期。
>>136 スタンダードサポートに入ればおkじゃねえか?
それかHighlanderまで待てば全部入りだし。
BDS2006からHighlanderへの優待コースはあるのでしょうか?
当然あるだろ
AC版でも、ですか?
アカデミック版のこと? 買ったことないから知らない。 BDS2006の時にアップグレード価格で購入できたのなら、今回も同じじゃないのか?
アップグレードの時は、AC版も通常版と同じ値段で通常版にアップグレードできる。
まだ情報が出てない。
>147 そのサンプルはDelphi上でTStringGridを継承した新しいコンポーネントを作るというもの。 それで問題なければ新規ユニット(.pas)をそのままサンプルのとおりに作ってパッケージに組み込めばいい。
TStringGridって基本的にアレだから使いたくない
Turbo C++ 2006を使っているのですが、 FormのMouseDownイベントで Formの上に他のコントロールがあるとイベントが取れないのでしょうか? (やり方が悪いのか取れなかったです) コントロールは動的?にプログラム上で書いた物なので 私の腕では其処からイベントを取るのは難しいです....orz 本当はそれが一番いいのでしょうが もしコントロールが重なっていてもイベントが取れる方法があれば 宜しくお願いいたします。
>コントロールは動的?にプログラム上で書いた物なので >私の腕では其処からイベントを取るのは難しいです....orz そのコントロールのOnMouseDownにイベントハンドラを代入するだけ、じゃなくて?
>>151 初心者のスレで自分のしたい事にバッチリ当てはまった
Parentを教えて頂いて
Image[i] = new TImage(this);
Image[i]->Parent = this;
こんな感じでプログラム上で複数作れるように
作ったのでどうやって
イベント付けるかわから無くって
腕不相応の事をしているので...orz
動的確保のフォームでイベントって事?
>>153 はい
けど私の腕では出来ないと思うので
せめてX,Yの座標から割り出せたらなと
class TForm1 (略) { TNotifyEvent EventHandler_OnClickImage; //イメージ用イベントハンドラ }; TForm1::EventHandler_OnClickImage(TObject *Sender) { if (Sender == Image1) { (略) } } Image[i]->OnClick = EventHandler_OnClickImage; //イベントハンドラ(クラスメソッドのポインタ) こんな感じじゃね?
>>155 有り難う御座いますm(__)m
挑戦してみます
157 :
111 :2007/03/05(月) 05:32:43
>>155 をもうちょっとかみくだえてもらえたら助かります。
158 :
155 :2007/03/05(月) 08:45:43
>Image[i]->OnClick = EventHandler_OnClickImage; //イベントハンドラ(クラスメソッドのポインタ) ↑ これはイメージのイベントハンドラを外から設定でしょ。 そのためには、イベントハンドラの実体を先に作っとかなければなりません。 先ず、TForm1にイベントハンドラを作っとくとして、イベントハンドラの宣言: >class TForm1 (略) { > TNotifyEvent EventHandler_OnClickImage; //イメージ用イベントハンドラ >}; あ、ごめんなさい上記間違いでした。 正しくは、 class TForm1 (略) { void __fastcall EventHandler_OnClickImage(TObject *Sender); }; です。 次にイベントハンドラ実体: TForm1::EventHandler_OnClickImage(TObject *Sender) { if (Sender == Image1) { (略) } }
何がわからないのか具体的に書け。
classとか弄るの難しいなら ActionListで用意しておいてイベントハンドラにいれるとかどう?
161 :
111 :2007/03/05(月) 17:39:15
理解できました。m(__)m
申し訳ないですが私も教えてください CreateDIBSection()で作った HBITMAPをTBitmapに持っていく方法は無いでしょうか? もしくはクリップボードに持って行ければいいんですが、 SetClipboardDataを使っても持って行けないです。 HP検索したんですが 同じ様な事で悩んで結局出来ない方もいらしたようで それ以上載っていませんでした 宜しくお願いします
>>162 リファレンス読もうよ‥‥(´・ω・`)
__property HBITMAP Handle = {read=GetHandle, write=SetHandle, nodefault};
>>163 すいません
読んでHandle を渡したんですが
ヘッダー?大きさが取れたのですが
画像が取れなかったんです....orz
やり方が悪かったのかな
165 :
162 :2007/03/05(月) 22:43:17
BitBlt(hBitmap,0,0,WhidthTemp,HeightTemp,MeDC,0,0,SRCCOPY); Graphics::TBitmap *BBitmap = new Graphics::TBitmap; BBitmap->Handle = hBitmap; MessageBox(NULL , IntToStr(BBitmap->Height).c_str() , "メッセージボックス" , MB_OK); //これで大きさは合っているのデータは渡ってると思うのですが //肝心な保存しようと思うとリソース?不足って出て来ます...orz もう少しやってみます
>>165 なんでBitBltのHDC型の第1引数にHBITMAP渡してるんだ?
あとそれなら
TBitmap* BBitmap = new TBitmap();
BBitmap->Width = WidthTemp;
BBitmap->Height = HeightTemp;
BitBlt(BBitmap->Canvas->Handle, 略);
でいいじゃない
167 :
162 :2007/03/05(月) 23:34:47
>>166 有り難う御座います
何処かのHPにこうやって載っていたもので
(これでもいけるのかと(^^;)
プログラム使わせて貰います
助かります
168 :
デフォルトの名無しさん :2007/03/07(水) 14:50:13
void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { Image1->Canvas->Font->Size = 20; HDC hdc; RECT MRect; char str[] = "Draw\nText"; hdc = Image1->Canvas->Handle; MRect.left = X; MRect.top = Y; MRect.right = Image1->Width; MRect.bottom = Image1->Height; DrawText(hdc,str,-1,&MRect,DT_WORDBREAK|DT_LEFT); Repaint(); } Image上で文字列 "Draw\nText"を二行に表示したものを マウスを動かすことによって移動させたいのですが、Repa int();を使って再描画すると、ちらつきがすごいのです。 何か言い方法ありませんか。 Repaint();しないと表示できないんですが。
169 :
デフォルトの名無しさん :2007/03/07(水) 15:16:56
コンストラクタで Form1->DoubleBuffered = true; じゃだめなの?
170 :
168 :2007/03/07(水) 15:48:20
有り難う御座いますm(__)m PaintBoxのOnPaintを使って 自己解決できました。
171 :
デフォルトの名無しさん :2007/03/08(木) 14:17:27
BCB6です。 関数が出来た時に //--------------------------------------------------------- が自動でつくんですが、これをつけないように出来ませんでしょうか。
出来る
173 :
171 :2007/03/09(金) 09:15:11
現段階でC++Builder6を買うのはアリかな? どこも取り寄せになってるけど・・・orz
今ならTurboC++のProfessionalでいいんじゃない? 俺ならそうするけど
#define SEPARATOR "//--------------------------------------------------------"\ ↑これかなぁ?自信なし。 ちなみに当方BCB5です。
TurboC++Professionalは4万だしなぁ・・ TurboC++Explorer使うかC++Builder6か
そういや、BCB6はPersonalがあったか。制限は覚えてないけど・・・。
商利用不可、DB関係のコンポ無し、VCLのソース無し、OutputDebugStrinの出力が見れない、クラスエクスプローラなし、CodeGuardなし、TASM無し。 TurboExplorerは上が可能でコンポーネントをパレットに配置できない(コード上で動的生成のみ)
痛いのはソースなしくらいか
ソースなんて要らんよ Personalで十分ですじゃ
>181 初心者はソースを読んだほうがいい。というか2択なのか?両方でいいんじゃ?
TurboExplorerでしのいで2007を待つのがいいね
やっぱ、BCB6は安定してるお。 ライセンスなら購入できるはず。 パッケージは約億?
いやいやソース読むなんて時間の無駄、マニアのやることだよ ゲームとか作るなら知らんがアプリ程度ならソースなんか見なくたってできるし 手早く作るためのポトペタなんだからさ
BCB6といえば、結局共有RTL使わないとCodeGuardでエラー吐くの直ったの? 他にもバグ色々あるけどサービスパック出たという話は聞かないしなぁ。
というか、もしかして最近のバージョンは 6よりさらに安定していないの?
コンパイラは確実に良くなってる
190 :
デフォルトの名無しさん :2007/03/13(火) 05:24:01
BCB6PROでBDS2006同梱のコンパイラに差し替えてウマー
191 :
デフォルトの名無しさん :2007/03/13(火) 11:16:43
BCB5PRO使ってますが気がつくと実行ファイルのアイコンが ボーランドのアイコンに変わってしまってました。 プロジェクトのオプションでアイコン指定して再構築してもアイコンが変わってくれなくなりました。 実行ファイルのサイズと関係ありますか? ちなみにサイズは2,468MBです。
>>191 悩むよりResourceHackerとかで書き換えた方が早くね?
>>191 BCB1とかBCB3の時代にそんな問題にぶち当たったことがありますが、
そのときはウィンドウズ側のアイコンキャッシュに乗っちゃっている
状態で実際には変わっているのに表示は古いままという現象でした。
194 :
デフォルトの名無しさん :2007/03/13(火) 13:47:43
>>192 そうなんですが、原因がわからないままだと同じ事の繰り返しになるから
>>193 PC再起動してもアイコンは変わらなかったんですよ。
数日まえまではなんとも無かったから実行ファイルのサイズがでかくなったのが
原因なのかなあとか、しかし仮にそれが原因だったとしてもそうなると対処のしようがなくなる・・・
BCB6でもあるね。 他のPCで確認して問題なければほっとくけど。
196 :
デフォルトの名無しさん :2007/03/13(火) 13:59:38
exeを他PCにコピーしてもアイコンがボーランドアイコンのまま・・・
197 :
193 :2007/03/13(火) 13:59:52
198 :
デフォルトの名無しさん :2007/03/13(火) 14:07:27
プロジェクトのオプションでアイコンを再設定して再構築してますよ
199 :
193 :2007/03/13(火) 14:13:55
>>198 いやだらさ、その行為がうまくいってないんでしょ?
だから、一つ前に戻って何やっているか考えてみなよ?
200 :
デフォルトの名無しさん :2007/03/13(火) 14:34:17
とりあえず報告 resファイルを削除してアイコン変更して再構築でもダメ んで、デバッグ情報付加しコードガードONして再構築で何故かアイコン復活 更にリリースにしてコードガードオフして再構築してもアイコンがちゃんとしてた。 わけわからん
ヒント:今まで一度もそんな事にあったことありません。
202 :
デフォルトの名無しさん :2007/03/13(火) 16:31:29
だろうな
俺は昔あるな 結局、プロジェクト作り直したと思う
俺は .rc ファイルに MAINICON を直接指定して回避した。
一太郎のアイコンがワードに変わったことならあった。
206 :
デフォルトの名無しさん :2007/03/14(水) 11:38:38
えーっと、とりあえず
>>200 なんだけど今朝みてみたらまたアイコンがボーランドに・・・
1.デバッグ情報付加して再構築でアイコンはOK
2.リリースして再構築でアイコンOK
3.更にリリースのまま再構築するとアイコンがあぼーん(一部のファイルのメイクならOK)
XPはアイコンキャッシュが少ない(デフォ)だとアイコンが腐るってバグがあるらしくて
とりあえずだめもとでキャッシュサイズを2048にしてやったけどやっぱダメ
まあ、出荷時には1,2をやると回避できるからいいんだけど・・・
Delphi Unicode Controls というのもをインストールしたのですが コンポーネントパレットに追加するにはどうしたらいいのでしょうか? BCB6です。
BDS2006使ってますが、これでSTLを使うと、STLソース内でEAccessViolationやらいろいろ例外が出てくるわけですが、 BCBのSTLはあんまり良くないんですか?(多分、自分が間違ってるとは思うんですが・・・ BCBでSTLを使う際、気をつけるべきことなどを教えてください。
>BCBのSTLはあんまり良くないんですか? 評判の良いSTLがバンドルされてるわけですが、何か?
>BCBでSTLを使う際、気をつけるべきことなどを教えてください。 イテレーターでレコードを参照する事。 それから、レコードのポインタは取った直後しか信用できないお。
>>BCBのSTLはあんまり良くないんですか?
自分は正しいハズだ!バグだらけのSTLメ
>>?(多分、自分が間違ってるとは思うんですが・・・
叩かれたらイヤだから一応こう言っておこうか
結論::190%
>>208 のプログラムバグ
例外発生の呼び出し箇所をデバッガで見れば、普通なら一発で原因はわかる。
ま、いいじゃん。 スレ見てる人がSTLの正しい使い方と間違った使い方を理解できるんなら。 ソースキボン。
214 :
デフォルトの名無しさん :2007/03/15(木) 15:13:08
さっさと醤油を見せろ!!
うpした瞬間に、 数多くのレスでボコボコにされるのであった。
216 :
デフォルトの名無しさん :2007/03/15(木) 15:17:35
うるせーばか!
217 :
207 :2007/03/15(木) 18:24:31
Visual C# で Unicode を表示できました。 BCB の方が作りやすいんですが表示できないんじゃしょうがない・・・
BCBというか、CodeGuardは信用できないね STLとは相性悪いと思うよ
>>218 俺のvector、今年ついにCodeGuardからエラーが出なくなった
BCB5w
vectorを入れ子にするとエラー吐いたりしたからなぁw
バージョン毎にSTLのベンダ変わるからたまらん(;´Д`)
最近の知らないんだが、何になったの? BCB5 = RW BCB6 = STLPort までは知ってる
BDS2006 = Dinkmwareだっけ?
BCB5しか知らない年寄りにやさしいスレはここですか? 多国語対応するためBoland Developper Studio 2006(trial)をXPにインストール、TntWareDelphiUnicodeControlsSetup.exeをDLして実行。よくわからんがC:\Program Files\TntWare\Delphi Unicode Controls下のDesignとSourceをインクルードとライブラリのパスに追加。 TntLibR.bpkを開く。メッセージに[警告] 認識できないオプション : M (Pascal コンパイラ)が出る。 無視してプロジェクトマネージャのTntLibR.bplを右クリックしてインストールを選ぶ。 すると[Pascal 致命的エラー] TntWideStrings.pas(19): F1054 Do not refer to TntWideStrings.pas. It works correctly in Delphi 2006.というので、泣いてTntWideStrings.pasをプロジェクトから削除する。 さらにインストールすると、パッケージ:C:\Program Files\TntWare\Delphi Unicode Controls\CBuilder\TntLibR.bplを登録できませんでした。このパッケージはデザイン時には使えません。 となる。 どうやったら上手くいくですか?
C++で、テキストファイルの中身を標準出力に吐くものを書いてみました。 #include <iostream> #include <fstream> #include <string> //... int main(int argc, char* argv[]) { std::ifstream ifs("C:\\boot.ini"); // 適当なテキストファイル std::string s; while (!ifs.eof()) { std::getline(ifs, s); std::cout << s << '\n'; } return 0; } 特に問題なく動いたんですが、CodeGuardをONにしてコンパイル・デバッグして実行すると、 CodeGuardが「関数に不正なファイル/パイプ ストリームが渡されました。」と言います。 どこか間違ってるでしょうか。ご指摘願います。
226 :
207 :2007/03/21(水) 23:34:12
>>224 当方 BCB6 ですが、いきなり最終手段を。
TntLibD.bpk を開いて TntLibR.bpi と書かれている部分を削除して
インストールしたところ登録されました。
で、実際の使用なんですが、ヘッダファイルがないと言われたので
hpp をプロジェクトフォルダにコピーしてソースの方も hpp に変更。
さらに TntWare\〜\Source 内の pas をプロジェクトに追加して構築したら通りました。
ええ、どう考えても間違ってます。
正しいインストール方法が知りたいですね・・・
>>226 いきなり最終手段ですか。奥の手として頂戴しておきます。
大陸の掲示板を見ると記事がありますが・・・・読めん
とりあえず、ありがとうございます。
>>225 getline()やってからifs.eof()をチェックする。順番が逆。
229 :
デフォルトの名無しさん :2007/03/24(土) 14:33:15
A->Picture = B->Picture ってやるのと A->Pictrure->Assign(B->Picture) ってやるのはどっちが速いですかね。 両方同じ画像形式だとして。
そのプロパティの代入は procedure TImage.SetPicture(Value: TPicture); begin FPicture.Assign(Value); end; が呼ばれるので、効果は全く同じものだが、どっちが早いかといえば その呼び出しのオーバーヘッドがあるとみればそりゃ下だわな
TDriveComboBox を使ってCDなどのドライブに合わせると IOエラーが出るのですがこれを回避できないでしょうか?
>231 SetErrorMode(SEM_NOOPENFILEERRORBOX)でどうでしょう?もとに戻すのを忘れずに。
>>232 ありがとう御座います
調べてそれをしたのですが、
ディスクが有りませんというエラーは消えたのですが
どうもTurbo Cの方?
のI/Oエラーと出てくる方が消えなくて困っています
説明不足で済みません
エスパー求む。
235 :
デフォルトの名無しさん :2007/03/25(日) 04:40:33
dstring.h だけインクルードする事は出来ますか? 「直接利用せず 'system.hpp' をインクルードしてください。」が出ます。 #include <System.hpp>でしか駄目ですかね。
236 :
デフォルトの名無しさん :2007/03/27(火) 11:29:36
質問ですが、 BCB6を使ったアプリをVista対応したいのですが、 BDS2006(2007はDelphiしか出てないorz)等を使って、 うpグレードされたVCLでExeを作るべきなのでしょうか? 簡単にBCB6のままVista対応したいのですが、 既にVista対応された方はどうされたのでしょうか?
Vista持ってないから知らんけどVista以外で作ったアプリでもある程度普通に動くんじゃないのか?
238 :
デフォルトの名無しさん :2007/03/27(火) 14:14:48
BCB2006ってVista対応してるのか?マジか?
239 :
デフォルトの名無しさん :2007/03/27(火) 19:08:11
>>236 俺は普通にBCB6で作ったアプリをVistaRC2で動作確認してVista対応としてるけど。
>Vista対応としてるけど。 対応方法教えて下さい。 こちらは未だVi$ta用PC見積もり中orz
241 :
デフォルトの名無しさん :2007/03/28(水) 00:35:57
sscanfが64ビットに対応していない様なのですが、 64ビットに対応した↓これと同じ事をBCB6で行うにはどうすれば良いのでしょうか? sscanf( str, "-D%lx", &Wd );
printf系なら"%I64d"とかだけど scanf系は知らね
あるコンポーネントを、フォr−ムに設置して実行→終了すると プロジェクト Project1.exe が EAccessViolation クラスの例外を生成しました。 という例外が出てしまいます。 どうしてこんな例外が出てしまうのでしょうか?同じことを体験した方はいませんか? 実行環境はWinXp, C++Builder6Proです。 あるコンポーネントとは、TRichEditやTCppWebBrowserやTDdeServerConv...等です。 BCB6を削除したあと、インストールし直してみましたがダメでした。 TRichEditやTCppWebBrowser等が使用するシステムファイルがぶっ壊れているのかもと考えましたが 怖くなったのですぐにその考えは頭から消し去りました。 原因か解決策があれば教えてください…よろしくお願いします。
Delphiとかでも良く起きるので、いつも中間ファイルをバッチファイルで削除している
246 :
デフォルトの名無しさん :2007/03/29(木) 09:51:10
>>244-245 ありがとうございます。
手順の説明が足りませんでした。すみません。
BCB起動→新規作成→アプリケーション→あるコンポーネントをフォームに配置→実行→何もせず終了
で、終了時にEAccessViolationが投げられてしまうんです。
TButton, TEdit, TMemo等を配置しても、この例外は投げられませんでした。
>>248 逆にCodeGuardつけてるからだったりして。
BCB6で Update#4 入れるとCodeGuardがバグるらしいぞ。
>>248-249 ありがとうございます
CodeGuardを有効にしてみましたが、相変わらず終了時に例外が出るだけでした…
251 :
デフォルトの名無しさん :2007/03/30(金) 10:45:48
TFormのキャプションの表示位置は常に中央ですが これをTLabelのAlignmentのように位置を変更する方法を教えてください
>251 > TFormのキャプションの表示位置は常に中央ですが えっ?
>251 それなんてWindows3.1?
255 :
デフォルトの名無しさん :2007/04/02(月) 10:13:40
あ、ごめん251だけどTFormのCaptionってタイトルバーだった・・・ しっかしおまえらって糞の役にも立たないよな
Borland C++ 5.01で作成されたアプリケーションの開発環境をBorland C++Builder 6の開発環境に移し変える簡単な方法ないですか?
OWLを使っているの? だとすると BCBに変更しても特に便利にならないように思うが
そうなんですか?OWL自体良くわかってないもので。。。(^^ゞ でも、ユーザーの要求でBCB6でいくことが決まってしまいました。 とりあえずはBCB6でコンパイルできるようになればOKなんですが 何かプロジェクト変換ツールでもないでしょうか?
259 :
デフォルトの名無しさん :2007/04/02(月) 11:49:57
ありがとうございます! IDETOBPRでフォルダ検索しただけなんですが 見つかりませんでした。 これはBCB3でしか使えないんでしょうか? BCB5 ProとBCB6 Proは持っているんですが。。。(^^ゞ
261 :
デフォルトの名無しさん :2007/04/02(月) 19:51:56
Builder1でBuilder5にあるTMouseに相当するものを教えてください。 それか、現在のマウスカーソル位置を取得する方法を教えてください
SetCapture してイベントで処理するか GetCursorPosで得たスクリーン座標から変換するか
なぜにBuilder1
Win3.1の案件とか‥‥
>264 Builder1はWin32アプリ専用ですよ。 実質、Del2=BCB1
>255 てめーにいわれたくないって。
ここは楽しいスッドレですね
doubleとfloatの有効桁数はどう?
269 :
デフォルトの名無しさん :2007/04/03(火) 18:42:47
270 :
デフォルトの名無しさん :2007/04/03(火) 19:23:40
271 :
デフォルトの名無しさん :2007/04/04(水) 10:07:30
272 :
デフォルトの名無しさん :2007/04/05(木) 10:36:52
delete this;ってやっても問題はないですか?
動くかもしれないけど、 何かやヴぁくね?
TObjectのFree(Destroy)がそんな感じなんじゃないの?
問題が無いように設計してあれば大丈夫 その後のメソッドで インスタンスにアクセスしたり デストラクタでそのメソッドにアクセスしたり あるいは、そのインスタンスが消滅したのに、それを示すポインタが空になったのをそのまま にして再度アクセスしたり
276 :
デフォルトの名無しさん :2007/04/05(木) 13:44:14
272ですが、 ボタンが押されたらそのフォームを閉じるのですが その時にClose()を使わずにdelete thisをしています。 勿論フォームはnewで作成されているものです。 特にこれで問題がある動作はしていないのですが 自分自身を破棄するのでちょっと聞いてみました。
動作はしてもコーディング的に変だろう。 閉じた直後とかに、そのフォームの値参照とか問い合わせできないお。
278 :
デフォルトの名無しさん :2007/04/05(木) 15:39:42
>>277 そのフォームは他のフォームから作成されるだけで
参照されることはないんですよ
ってどっちみち、自分をdeleteするって事事態普通はやらないもんですかね。
OnCloseのAction = caFreeはまた違う事やってるのかなあ
>そのフォームは他のフォームから作成されるだけで参照されることはないんですよ ↑ ここ注目するところ。 ソフトウェアってのは、自由にどんどん書きかえれるものであって、 今参照されてなくても将来参照されたとき、ドカンとエラー、 何だ変なコーディングしたやつ出て来い、みたいな。
280 :
デフォルトの名無しさん :2007/04/05(木) 16:18:39
>>279 まあ、その不安はあるんですけどね。
ちなみに、他フォームから参照される恐れがあるなら普通にClose使いますが
ようするに僕が知りたかったことは自分自身をdeleteしても問題がないのかどうかってことで・・・
勿論破棄後に他から呼ばれるとかそういうのを抜きにしてですが
ふと思った疑問を実際にやってみてちゃんと動作してるので聞いてみたんですよ
ハッ!参照してる値が消えてる。アッー そこで、アクセサー(アクセス関数)でSETでキッチリ保存、GETで利用ですよ。 使う関数?memcpy(+memset)、strcpy、sprintf、sscanf、用途によりけりなんでもござれ。 えっ?リテラル変えようとしてエラーでる? char a=""; strcpy(a,〜); ・・・・・・、そこで char b=''; char* a=&b; strcpy(a,〜); ですよ。
Turbo C++でプログラムを作成したのですが コンパイルしたのと別のマシンで動かそうとしたら 「CC3270MT.DLL が見つからなかったため、このアプリケーションを開始できませんでした。 アプリケーションをインストールし直すとこの問題は解決される場合があります。 」 とエラーが出ました これを、開発環境以外のマシンで出ないようにコンパイルするにはどうしたらいいですか?
STL の set を使ってるんですが、データがユニークになりません。バグですかね。
>>283 明らかなバグです。
あなたのプログラムのね。
285 :
デフォルトの名無しさん :2007/04/07(土) 00:51:35
それはない
286 :
デフォルトの名無しさん :2007/04/07(土) 13:45:21
ごみ箱の中身をプログラムから開きたいんだけど方法おしえてくれませんか?
>>280 delete thisのあとにメンバ変数いじったり非staticなメンバ関数呼ばなければOK。
delete thisはCOMのIUnknown::Release()の実装とかで普通に使うし。
288 :
デフォルトの名無しさん :2007/04/08(日) 01:12:05
全く初歩的なことがらですが,Form1 と Form2 で StringGrid または List の データを共有する方法が分りません。やりたいことはと言えば Form1 で ファイルのデータを StringGrid または List に取り込んで Form2 で参照し たいのです。どなたか教えてくだされば幸甚です。
>288 Form1->StringGrid こういうこと?
291 :
デフォルトの名無しさん :2007/04/08(日) 08:51:17
>289 恥かしながらその通りです。Focal, Algol の時代からプログラミングを やりながら,永く C++4.5 を使っていて,C++Builder は去年始めました。 >290 そう思いました。Form1 に対応するヘッダーの中の TStringGrid *StringGrid1; を __published: から public: に移して,Form2 に対応する Unit2.cpp で 仰せのように Form1->StringGrid1 としてみたのですが,上手くゆきません。 他に何かすることが必要でしょうか。(PageControl を使ったプログラムを 改造しようと思った所以ですが,原因は別のところにあるのかも知れません。)
うまくゆかないというのは、どうなるという事なの? アクセス出来ないはずはないのだが? >__published: から public: に移して これをやると、実行時型情報の自動記録が出来なくなると思うのだが なんの為にコレをやったのか? まあ、表示のインターフェースを、そのままデータの共有に使う設計はどうかと思うけどな 楽だからお試しではよくやるけど、
292 有難う御座います。__published: から public: への移動は,どこかの ホームページの例を単純に真似ました。少し考えてから再度お尋ねしたいと 思います。
別クラスでデータ部分だけ扱ってForm1、2ともにそのデータを表示するだけって設計にしないか?普通。
ははあ、 publicに移して、 TStringGrid *StringGrid1 が DFMによる自動作成の 対象から外れたのに自前でnewしなかったというオチのような
Form2の方でForm1のヘッダを呼んでないとか
Form1-> って書いたら勝手にincludeされるような
288 & 291 & 293 の者です。 報告遅れましたが,その間に 294-298 の諸兄にもあれこれお考え頂いて恐縮に 存じます。 結論から申しますと,改造作業の出発点に戻って最初からやり直したら,何ら 特別のことをせずに,Form1 の StringGrid が Form2 で問題なく参照できま した。(初回に上手く行かなかった原因を調べるのは,面倒になって途中で止め ました。) 皆様を煩わせて申訳なく思います。また宜しくお願いします。
300 :
デフォルトの名無しさん :2007/04/10(火) 20:01:07
フォームをリサイズ不可にする方法ってどうすればいいですか? よろしくです。
301 :
デフォルトの名無しさん :2007/04/10(火) 20:06:20
>300 ぼーだーすたいるだぼけ
302 :
デフォルトの名無しさん :2007/04/11(水) 02:44:47
>>300 あとボーダーアイコンのbiMaximize(最大化ボタン)の無効化忘れずに。
303 :
デフォルトの名無しさん :2007/04/11(水) 18:01:43
C++Builder5でMySQLを扱う方法とかを書いてるサイトを教えてください
>>303 RDBMSをFirebirdに変えるのはダメ?
305 :
デフォルトの名無しさん :2007/04/11(水) 18:17:58
>>304 すみません。それよくわからないですが、それで普通にMySQLを扱うことができますか?
またC++Builder6では、標準で実装されているのでしょうか?
>>305 『Firebirdに変える』っつうのは、MySQLの代わりにFirebirdにするって事だよ。
>>303 BDEからMySQLのODBCドライバへのアクセスにすれば、
どのDBも一緒だお。
ちゃんと動くお。
バイナリが途中でちょん切られるくらいで。
309 :
デフォルトの名無しさん :2007/04/11(水) 19:14:58
>>307 ああ、すんません。素で勘違いしてました。
>>308 ODBCにMySQLを登録するといいんですよね?
一応MySQLをインスコしたのですが、ユーザーDNSで追加ししようとしてもでてこないのですが・・・
ちなみにFirebird ≒ オプソ版Interbase6
>>309 MySQLのODBCドライバは別途インスコでつよ。
313 :
303 :2007/04/12(木) 19:16:24
お返事遅れました
>>310 そうだったんですね
>>311-312 ありがとうございます。
ODBCに登録できました!
が、しかし・・エラーがでる・・・
ODBCドライバのバージョンは3.51でMySQLは4.1なのですが
ユーザーDNSを作成してTestボタンを押すと
Request returned with SQL_ERRORが出ます。
それで、データベースエクスプローラでも開く事ができません。
ODBCドライバのバージョンを5でMySQLも5にするとエラーはでません
というか、Testボタンがないのですが、データベースエクスプローラでも開く事ができるのですが
TQuery等で項目の作成が
314 :
303 :2007/04/12(木) 19:28:59
あ、途切れたので、つづきですが MySQL5ではデータベースエクスプローラで開く事はできるのですが テーブル作成等の操作を行うと全てキー違反とエラーがでるのですが 何が原因でしょうか・・・
303は、Firebird+ODBCドライバ/BDEに乗り換えた方が良いと思う。 その方が超簡単。 Firebird/IBXという手もあるが、ちょっとクセあるからツマヅク人には薦められない。
なんでかっていうと、Firebirdは完全無料で、ばかちょん。
317 :
303 :2007/04/13(金) 10:33:27
ぅぅFirebirdってよさげですね・・・ しかしMySQLを使わないといけないんですよ・・・ うーん、MySQLの4も5もODBCドライバの3も5もためしたけど、Testすると必ず Request returned with SQL_ERRORが出る・・・ まだCBuilderに到達する前の段階なのですれ違いかもしれないですが・・・
まぁ、環境設定して、Databaseコンポが繋がりさえすれば、 後はQuery一本でいけるお。 色んなコンポがあるけど、一番確実なのはRDBへのアクセスはDatabase/Queryコンポのみ使うやり方。
319 :
303 :2007/04/13(金) 10:54:10
ODBCでの接続テストの段階でエラーで接続できないんですよ・・・ ちなみに、MySQLを起動してデータベースやテーブルは正常に作成はできてます
>ユーザーDNSを作成してTestボタンを押すと >Request returned with SQL_ERRORが出ます。 これって、WindowsのODBC Administratorで出るの? それともBCBのDB Explorerで出るの? どちらで出るかで何が間違ってるか決まるじゃん。
321 :
303 :2007/04/13(金) 11:45:14
>>320 WindowsのODBC Administratorです。
サーバーはlocalhostを指定しています。
>WindowsのODBC Administratorです。 なら、MySQLとODBCで、ググリまくれよ。 それか、MySQLスレに移動するか。DB板は過疎だからイマイチだけど。
323 :
303 :2007/04/13(金) 11:57:52
当然ぐぐりまくってますよ・・・
324 :
303 :2007/04/13(金) 13:58:51
できた・・・ これバージョンによってアレなのね・・・
325 :
303 :2007/04/13(金) 15:30:04
エクスプローラの右クリメニューをプログラムで作る方法を教えてください
久々にカキ
あ〜、BuilderなりTurboの未来はどうなるんだろ
徐々に、徐々に、肩身が狭い
>>325 ポップアップて言うんじゃね?
逆にメニューの作り方教えてくれ
めんどいならいいけど・・
シェルエクステンション? COMだからDelphiの方が楽かも
>326 主に人的リソースの問題で先にDelphiとなっただけで、次はBDSってことなので。 C++は標準準拠とかSTLとかTR1とかDelphiでは考慮の必要のないものが いろいろあるからなぁ。
C99は使えますか?
つかえない
フォルダ\hogeを別ウィンドウで開くにはどのようにすればいいでしょうか?
333 :
デフォルトの名無しさん :2007/04/20(金) 08:11:52
ありがとうございます 普通に開くことはできるのですが。通常コンテキストメニューで別ウィンドウで開くを実行したときの挙動を求めています 開いた後、ツリー表示にすると最上層のフォルダを指定したフォルダになるように 普通に開いてしまうとツリーの最上層がデスクトップになってしまうので できれば最初からツリー表示した状態で開きたいのですが 色々引数変えてみたりしてるのですが、うまくいきません
後半部分は自己解決 第2引数を"explore"にすることでツリー表示で開けました あとはこのツリーの最上層の指定の仕方なんですが
explorer.exe /e,/root, "C:\hoge" みたいな?
336 :
デフォルトの名無しさん :2007/04/20(金) 09:08:35
ありあとうございます、コマンドラインからは explorer /e ,/root, C:\hoge これでできるんだけど、ShellExecuteへの引数としての渡し方がうまくいきません・・・
どうやってうまくゆかないのか、書かないと エスパーじゃないんだからさ
普通にできるじゃないか ::ShellExecute(Handle, "open", "explorer.exe", "/e ,/root, C:\\WINNT", NULL, SW_SHOW);
あら、申し訳ないです 初歩的ミスで¥のエスケープ忘れでした・・・ エラーでないでデスクトップをルートに開いちゃうもので気づきませんでした恥ずかしい 皆さんありがとうございました
たぶん、今度は最上層から上が見えなくなったと言い出すんだろな
341 :
デフォルトの名無しさん :2007/04/21(土) 21:51:41
フォームのことでお聞きしたいのですが、 WINAPIのCreateWindowExを使って、 フォームに別フォームを埋め込むようなことは可能でしょうか? 具体的にはスレッドでフォームを表示し続けて、メッセージを送った時に 特定のイベントを発生させるような使い方をしたいのです。
メッセージを送るなら、そのメッセージが処理されるスレッドはメインスレッドだから VCLフォームで良いと思うが?
いや表示は直接スレッドで書き換えたいのか まあ、APIで子窓を付けるのは可能だけど VCLでパネル貼り付けてその窓ハンドルにAPIで直接描画したら同じだと思うが
344 :
デフォルトの名無しさん :2007/04/21(土) 22:51:04
342>> 単品で使用するならそれでも問題ないのですが、 APIで作成したフォームに、Video For Windowsで動画を表示したいのです。 メインスレッドで実行してしまうと、他の処理ができなくなってしまいますので 今回はその方式は見送ろうと思っています。 343>> パネルはそのような使い方ができるのですね。 パネルってスレッド内部でアクセスしても大丈夫でしょうか? 早速試してみますね。 お二方(同じ方?)アドバイスありがとうございます。
動画再生のデコード/表示処理はOS側が勝手に別スレッドでやってくれるはずだから動画のコントロール自体はメインスレッドでやって問題ないはず。 リアルタイムで動画データ生成してるなら変わるだろうけど。
2006のエディタの補完の反応が遅いような気がするんですけど。 長いあいだそういうものだと思ってたんですが、Turbo C++の只版を古いマシンに 入れてみたらそっちの方が補完が早くて。 何か設定がまずいのでしょうか。
BDS2006でサイプレスのCyAPI使っている人います?EZ-USB FX2で使っているのですが・・・・・ BCB6だと動いていたんですけど、2006では CCyUSBDevice *usbdevice = new CCyUSBDevice(Handle); でaccess violationを吐いて動かなくなってしまいました。 なにかヒントを下さいませ。。
bcc32は一体いつになったら新しくなるのか? 64ビット対応はまだなのか?
64bitはまだいらんだろ vistaが普及してからでも遅くない
350 :
デフォルトの名無しさん :2007/04/22(日) 19:46:42
パネルへのコールバック関数の設定方法でお聞きしたいのですが、 Panel->WindowProc(CallBack) void __fastcall TForm::CallBack(Messages::TMessage & msg) { switch(msg.Msg) { case WM_LBUTTONDOWN: ShowMessage("WM_LBUTTONDOWN\n"); break; case WM_KEYDOWN: ShowMessage("WM_KEYDOWN\n"); break; default: break; } } のように設定しようとしてみましたが、うまくいきません。 ヘルプをみてもそれらしい記述はないので、困っています。 パネルへのコールバック関数はどのように指定してやればよいのでしょうか? お手数おかけしますが、よろしくお願い致します。
>>350 TPanel::WndProcをオーバーライド
class TMyPanel : public TPanel {
private:
void WndProc(Message& msg);
};
void TMyPanel::WndProc(Message& msg) {
switch(msg.Msg) { //略
}
TPanel::WndProc(msg);
};
あ、privateじゃなくてprotectedな
353 :
デフォルトの名無しさん :2007/04/22(日) 21:53:28
>>351 宣言うまくいきました。
ありがとうございます。
もうひとつお聞きしたいのですが、
SendMessage(Form->Panel->Handle,WM_PAINT,0,0);
のような感じでPanelに対してメッセージを送ってみましたが、
コールバック関数が発動しません。
別途発動条件がいるのでしょうか?
>>353 そのPanelの型がTMyPanelじゃなくてTPanelってオチだと予想。
意地でも継承クラス使いたくないってなら::SetWindowLong(HWND, GWL_WNDPROC,〜);のほうが楽。
コールバック関数はstaticメソッドか通常の関数である必要があるからPanelのインスタンス渡したりが面倒だけど。
VCL的には前者の方法が正当だとおもう。
355 :
デフォルトの名無しさん :2007/04/22(日) 23:48:07
>>354 おっしゃるとおりでした。
下記のコードのように修正してみましたが、コンパイル時に宣言の訂正を要求されます。
コンポーネントの継承クラスの使い方を間違っていると思うのですが、調べてもよくわかりませんでした。
TMyPanelクラスをnewで生成しようとしても、うまくいきませんでした。
たびたび申し訳ないのですが、どこがおかしいのか教えていただけませんでしょうか。
class TMyPanel:public TPanel{
protected:
void __fastcall WndProc(Messages::TMessage &msg);
};
class TFormMain : public TForm
{
__published: // IDE 管理のコンポーネント
// TPanel *Panel; 元々Panelをフォーム上に置いたときの宣言
TmyPanel *Panel; こう宣言しなおしてみたら、コンパイル時にエラーがでます
public: // ユーザー宣言
__fastcall TFormMain (TComponent* Owner);
};
フォームのメソッドとして書いておいて、 パネルのWindowProcにメソッドポインタを代入すれば パネルを継承クラスしなくてもウィンドウプロシージを乗っ取る事が出来るよ。 でも、 VCLは せっかくメッセージ1つに1つのメッセージハンドラが呼べるような構造になってるのだから それを使わないのは勿体ないよ なんで、SDKスタイルに固執するの?
357 :
デフォルトの名無しさん :2007/04/23(月) 08:25:34
>>356 SDKスタイルに固執するというよりも、
VCしかつかったことがないので、VCLに置き換える方法がわかってないのだと思います。
理解できれば、もっと楽に組めそうな気がするのですが。
VCL的スタイルをもう少し調べてみます。
アドバイスありがとうございます。
>>357 回り道に思えても、Delphiを使ってみると理解が早いかもね
WM_PAINT の処理を書きたいのなら、BCBの場合は
パネルを貼り、その上にSystemタブのPaintBoxを貼り、
貼ったPaintBoxをダブルクリックして ソコに書けばいい
359 :
デフォルトの名無しさん :2007/04/23(月) 22:29:42
>>358 その方法で思った通りの実装ができました
おつきあいくださり、ありがとうございました。
勉強になりました。
360 :
デフォルトの名無しさん :2007/04/26(木) 13:06:37
過去ログを漁ってみたのですが、少なくともよう見つけられなかったので教えてください。 BDS2006で作っているプログラムを何度かコンパイルしていると、あるときから急に 「[C++ エラー] Sysconst.hpp(24): E2316 'ResourceString' は 'System' のメンバーではない」 「[C++ エラー] Sysconst.hpp(24): E2040 宣言が正しく終了していない」 というエラーが大量に出るようになってしまいました。 エラーが出る直前(と思われる)の内容に書き戻してみても結果は変わりません。 ネットで調べると、プロジェクトの作り直しで直るとの情報があったのですが、結果は変わりませんでした。 includeの順番によっては出るという情報もあったのですが、正常に動いている別プログラムと比べても違いを 確認できませんでした。 回避方法がわかる方がおられたら教えてください。 よろしくお願いします。
>>360 それだけの情報で原因が分かったらエスパーだよ。
「ある時から急に」じゃなくて絶対にソースに何か手を加えたな。
362 :
デフォルトの名無しさん :2007/04/26(木) 13:23:02
C++Builder1のTListViewのListItemの入れ替え方法を教えてください。 1ってListItemにAssignは無いんですよね・・・
363 :
デフォルトの名無しさん :2007/04/26(木) 13:27:34
>>361 すみません、「コンパイルしていると」の手前に「修正しながら」という言葉をつけるのを忘れてました・・・。
ただ、短いプログラムとはいえ5000行程度あるので、それをすべてここに記載するのは難しいですし、
CPPファイルのイベントハンドラの中しか触っていないのに、Sysconst.hppがエラーを吐くようになるのは
単純にソースを触ったということとは別の、何か原因があるのでは?と思って質問した次第です。
>>363 今言えるのはclass ResourceString が正しく宣言されてないと
いう事だけだ。
365 :
360=363 :2007/04/26(木) 14:40:27
すみません。 理由が判明しました。 フォームのひとつにSEARCH.cppという名前のものを作っていたのですが、 このファイルのヘッダファイルをインクルードしたとき、includeフォルダ内の search.hを見に行っていたのが原因でした。 そのため、SEARCH.cppの名前を変更することでエラーが発生しなくなりました。 なぜ急にincludeフォルダのほうを見に行ったのかは謎のままですが・・・。
366 :
デフォルトの名無しさん :2007/04/26(木) 18:01:29
#include <search.h> #include "search.h" 書き方を間違えたとか
>>366 残念ながら、そこまでおばかではなかったです。
それにしても、何で急に別ファイルを見に行ったか気になるところではありますね。
search.hなんてわかりやすいのはともかく、includeフォルダ内のファイルを全部洗って、それにかぶらない名前を
つけないといけないなんて面倒でしょうがないですし。
それがC/C++の一番ダメな所だな。 名前空間を作ったって、肝心の所がダメなまま
>>367 宣言の順番で変わったりするし、何か別のincludeファイルを追加したとか
370 :
デフォルトの名無しさん :2007/05/05(土) 13:03:38
StringGrid の行をプログラム実行中に動かせるようにしたく,暫く前までは オブジェクトインスペクタ の goRowMoving を true にすることによって問題 なくできていたのですが,プログラムの他の部分を弄っている間に動かせなく なくなりました。新規の Form1 に 1個の StringGrid だけを置いたプロジェク トで試してみましたが,同樣に駄目です。因みに goRowSelect, goEditing などは false→true で可能です。原因が分りません。どなたか教えて下されば 幸です。
372 :
デフォルトの名無しさん :2007/05/05(土) 13:59:59
>370 です。 >371 さんの仰せは「プロジェクト/オプション」で「プリコンパイルヘッダ」 の「使用しない」をチェックすることで宜しいのでしょうか。そうしてみました が,(テスト用プロジェクトでも)上手くゆきません。
>>372 ちがうお
そこはチェックのままでいいお
BINフォルダを開いて、中にあるbc32def.#nnとかbc32def.csmという
ファイルを消すお
それからLIBフォルダを開いてVCL何とかというタイムスタンプが最新の
ファイルも消すお
374 :
デフォルトの名無しさん :2007/05/05(土) 15:49:01
Vistaに移行しようかと思ってるんだが BCB6ってVistaで不具合ある?
ググってみりゃわかるが、全く動かないわけじゃないみたいよ。
WININETを使ってBCB5で作ったアプリがIE7で動作しなくなった。 LIBファイルを作り直したら動作する様になったのだが、こんどはIE6で動作しなくなった。 2種類準備すべきなんだろうか?
wininet.dll の静的リンクをやめて、動的なリンクにしたらどう?
382 :
380 :2007/05/09(水) 17:50:03
>>381 やっぱりそうするしかないのか。ちょっと面倒だ。
同じ名前で関数ポインタにするだけじゃない。 正規置換で修正したらそんなに手間じゃないさ
384 :
デフォルトの名無しさん :2007/05/09(水) 18:14:13
そんな問題じゃないんですよ馬鹿ごみ
385 :
383 :2007/05/09(水) 18:23:47
386 :
デフォルトの名無しさん :2007/05/10(木) 19:01:49
TTableでレコード追加する時にTVarRecにTDateTimeを指定するとエラーになるのですが TDateTime型はどのように追加したらいいのでしょうか?
387 :
380 :2007/05/10(木) 20:55:24
>>385 使ってみたけどエラー取れるまで時間がかかりそうだ。
FormのResizeをするとき、マウスのボタンを離すまでResizeを抑制するにはどうすればいいのでしょう? ResizeってFormの端っこをつまみますが、それってWindowsMessageじゃ取れないんですよね。
389 :
デフォルトの名無しさん :2007/05/11(金) 18:38:48
TQueryでAppendRecordをすると書き込み禁止エラーがでるのですが どこを設定すると書き込みできるようになりますか?
>>386 レコード追加は INSERT SQLの方がよくね?
もしくは TQuery + TUpdateSQLの組み合わせ。
>>389 RequestLiveを Trueに。
391 :
デフォルトの名無しさん :2007/05/11(金) 19:19:57
>>390 ありがとうございます!
RequestLiveを Trueで正常に書き込みができました。
ところで質問なのですが、
TQueryならSQLを使うべきですか?
AppendRecordを使っても特に問題はないですよね?
まだDBは不慣れで何をどう使っていいのやらわかっていなくて・・・
TQuery+TUpdateSQLの組み合わせの方が どんなSQLが流れてるか確認できるからいい。 あと、複数のテーブルをジョインしている場合でも 追加や編集、削除ができる。 あ、それからデータベースがOracleとかだと、 Appendや Editがたまにうまくいかないことがあった。
394 :
デフォルトの名無しさん :2007/05/11(金) 19:44:09
>>392-393 ありがとうございます。
そのサイトで勉強してみます!
ちなみにDBはMySQLを使ってます。
TurboC++で何か作る度にLibフォルダにvcl100.#00とかvcl100.#0Aとか 増殖してるんだけど、これプリコンパイルヘッダとかいうやつですか?
>>395 そうです。タイムスタンプも新しいだろ?
実際時々プリコンパイルヘッダは壊れる事があるので定期的に削除を
お勧めする。*.csmというのもプリコンパイルヘッダ。
>>396 ありがとう
csmが数十メガとかなってた
398 :
デフォルトの名無しさん :2007/05/13(日) 12:45:09
ちょっとC++の話になるかもですが try{ try{ if( ...) return false; } catch(...){ } } __finally{ } return true; これってtryのifでreturnしたら__finallyに入らないんですが書き方間違ってますか?
399 :
デフォルトの名無しさん :2007/05/13(日) 14:22:23
>>398 C++の規格に __finally なんてものはない。
400 :
デフォルトの名無しさん :2007/05/13(日) 15:16:07
>>399 んじゃC++Builderの話でいいんだね
んで、これ書き方間違ってる?
401 :
デフォルトの名無しさん :2007/05/13(日) 15:18:57
>>400 ごめん、独自拡張まわりの仕様なんて知らね。
おいおい、ここのスレタイを嫁w
>>398 入ったよ???
#include <iostream>
main()
{
using namespace std;
try
{
try
{
if(1) return 1;
throw;
}
catch(...)
{
cout << "..." << endl;
}
}
__finally
{
cout << "finally" << endl;
}
}
finally
try と __try に違いはあるんですか?
>try ANSI。 >__try (と__finally) 独自文法に使われている。 しかし、某C++、VC++、gccにはあるみたい
BCBでの__finally は パスカルユニットを使うのに必要だから導入したのだろ C++ならスタックにインスタンス取ればデストラクタを自動的に呼べるが Delphiはヒープにしかインスタンスが作れない。 だから、確実に解放するにはfinallyの導入が必要。 インスタンスを確実に解放するための仕掛けだから、 例外だろうがreturn だろうがgotoだろうが、ブロックを抜けるなら必ず実行されなければいけない。
407 :
デフォルトの名無しさん :2007/05/14(月) 11:39:32
>>403 ぅぅ、やっぱりifのreturnでサックリと関数から抜けちゃって__finally無視されてます・・・
try{
try{
if(1) return;
}
catch(...){
Caption = "catch";
}
}
__finally{
Caption = "finally";
}
ちなみに、C++Builder5 Proです。
408 :
407 :2007/05/14(月) 11:46:21
ちなみに、tryの中でreturnではなくて例外でcatchを通るとちゃんと__finallyに入ります
>>407 tryを二重に重ねているからだめなんだろう。
内側のtryブロックにも__finallyを書いたらどうか。
410 :
407 :2007/05/14(月) 11:51:18
さらにちなみに↓の場合でも__finallyに入ってくれます。 try{ if(1) return; } __finally{ Caption = "finally"; } 以前誰かが↓を最強って言ってたけどなんでうまくいかないのかなあ? try{ try{} catch(...){} } __finally{} なにかプロジェクトオプションで設定がいるとかですかね?
411 :
407 :2007/05/14(月) 11:52:52
>>409 あ、すみません。
それは具体的にはどういうコードになるでしょうか?
>>408 BCC5.8.2でやったらちゃんと__finallyの部分が実行された。
>>411 いや、
>>409 は無視してくれ。
俺の所ではちゃんと__finally節が実行されたわ。
414 :
407 :2007/05/14(月) 11:57:36
>>414 だからC++Builderでやってるって。何ファビョってんの?
416 :
407 :2007/05/14(月) 12:03:30
つまり、try __finallyが1つあって、かつtryがネストになってる場合は、 文法が規定されていない。 対処として、 ・try __finallyはC++らしくないので使わない ・try のネストは規定されてないので使わない じゃね?
418 :
407 :2007/05/14(月) 12:06:19
Delphiからの移植の為だから、 catchとの組み合わせまで考えてなかったんだろな。 catch(...) を __except(true) にすれば動作はすると思うよ
BCB5までは動作がおかしいんかな。BCB6とBDS2006では ちゃんと動くみたいだぞ。
421 :
407 :2007/05/14(月) 12:13:52
>>419 でもreturnじゃなくて例外ではちゃんといきましたよ。
>>420 BCB6で試してみます。
>>420 >ちゃんと動くみたいだぞ。
規定されてない文法に、ちゃんともちゃんとじゃないも無い。
ANSIがこの領域を定めた時点で、コンパイルエラー扱いになったり、
挙動が変更されるとか、ヤバイだけだよ。
423 :
デフォルトの名無しさん :2007/05/14(月) 13:38:53
BCB6にてtry-catchとtry-finallyを5〜6重で使いまくってますが正常に動いてますよ。 ただ、引数で受け取った変数はreturn文でfinallyに入った時に操作しようとすると参照先が無くなっててコケるっぽい。 後処理の中で使用する場合に予め関数内に定義した変数にコピーする必要があった。
424 :
407 :2007/05/14(月) 14:25:58
>>419 catch(...) を __except(true)にしてやってみました。
確かにreturnで抜けてもちゃんと__finallyに行ったのですが
今度は例外を発生させると「C++ Exception」ってエラーがでます・・・
425 :
407 :2007/05/14(月) 14:33:05
あ、補足。 例外はthrow 1;で発生させたらC++ Exceptionエラーがでるのですが、 普通?に0除算エラーならちゃんと__excepに入って__finallyに入りました。 これちなみに、わざと例外を発生させたい場合はthrow何て記述すればいいですか?
throw Exception("わざと");
427 :
407 :2007/05/14(月) 14:41:00
>>419 、
>>426 激しく感謝です!!!
これでやっと思い通りのあれになりました!
色々教えてくれた皆さんに感謝です^^
428 :
デフォルトの名無しさん :2007/05/14(月) 21:21:55
>>427 throw; ってやると受け取った例外を再スローできるのも覚えておいて。
429 :
407 :2007/05/15(火) 09:58:57
>>428 おはようございます。
え、それは知らなかった・・・
throw;ってやるとそこでエラーが出てたんですよ
だからthrow 1;とかしてた・・・
あ、やばい。この辺の仕様がいまいちわかってない
>throw;ってやるとそこでエラーが出てたんですよ catchの中でやってるんだよね? それとcatch()の括弧の中も正しく書いてるよね?
431 :
デフォルトの名無しさん :2007/05/15(火) 10:26:26
make***[]Error これなんのエラー?
432 :
407 :2007/05/15(火) 10:35:55
>>430-431 いえthrow;はcatchに行かせたくてtryでやってました。
エラーはAbnomal program terminationが出ます・・・
これをthrow 1;とかにするとエラーが出ずにちゃんとcatchに入るのですが・・・
>catch の後ろの( ) はどうなってる?
434 :
407 :2007/05/15(火) 10:43:55
>>433 catch(...){}
ってしてます・・・
>catch(...){} これじゃ、投げられた例外オブジェクトを、拾ってなくね?
436 :
407 :2007/05/15(火) 10:55:23
とにかく例外が発生したらそこで止めようと思っていたので なんでも拾おうとしてたんですが、普通はこういう使い方はしないもんですか?
>普通はこういう使い方はしないもんですか? しません。 何をthrowしたのか受けられないからです。 で、catchってswitch文みたく書けるので、エラーオブジェクトを受ける書き方をして、 該当するところが無かった場合のためにcatch(...)も入れときますがそれはswtich文のdefaultみたいな扱い。
438 :
407 :2007/05/15(火) 11:10:39
なるほど・・ switch使ってるくせにdefaultのみって感じでしたか・・・ そういう風に言われると確かに意味ないしそんな使い方はしないですよね はぁ、この辺勉強不足だなあ 気分的には if (...){ OK } else{ ERROR } みたいな感じで例外が発生したらオブジェクトが何であろうと全て一括中止処理をと・・・
>例外が発生したらオブジェクトが何であろうと全て一括中止処理をと・・・ いや、それは正しいんだけど、エラーオブジェクトをキャッチしなきゃ。 catch(...)だとキャッチしてないじゃん。
此処ではerror.の出力を教えないのですね?
で、VCLが投げてくるエラーは先ず、 > } catch (Exception &exception) { で受けなきゃ。 DB系ライブラリとかIndyとかはExceptionクラスを派生したものを投げてくるので、 派生クラスでcatchすれば、もっとエラー情報を取れるお。
>>440 『続』
error.出力を提示して貰った方が分かり易そうです、ね?
444 :
407 :2007/05/15(火) 11:22:44
>>439 あ、catchに入ればそれでいいとおもっておりました・・・
>>441 参考にさせていただきます。
445 :
407 :2007/05/15(火) 11:25:18
446 :
デフォルトの名無しさん :2007/05/15(火) 11:26:16
> } catch (Exception &exception) { で受けとけば、 exception.Message にエラーの内容が入ってるんだよ。 VCLがセットした論理的なエラーメッセージの場合もあるし、 Win32APIのエラーコードからエラー文字列を設定している場合もあるし。 だから、exception.Messageを書かずに、BCBスレで質問すること自体反則!
>>445 >throw Exception("わざと");
を
> } catch (Exception &exception) {
で受けると、
>exception.Message
の中身は、"わざと"。
で、 > } catch (Exception &exception) { の中で、throw; と書くと、exceptionを投げることになるが、 > } catch (...) { て書いたって投げるもん無いやん。 あえて言えば、throw NULL; になってるかも。
>>446 なるほど?
つまり、
>}catch(exception&exception){
取り除く訳ですか?
450 :
407 :2007/05/15(火) 11:35:27
>>446-447 今Exceptionのヘルプみました。
Messageプロパティにメッセージ入ってました。
>>448 えっと根本が間違ってるかもしれませんが
catch (...)と記述すると投げるものがなくてもcatchに入るので(catch内ではオブジェクトの評価はしない)
とにかくエラーはreturnで返して処理を中止って発想でした
>>451 サイズを変更できないウィンドウにしておいて、
プログラムでサイズを変更するようにすればいんじゃね?
>>451 どういう状況なのかイマイチ分からんのだが
サイズ変更を抑制してたらどれくらい変更するのか決められないじゃないか
WM_ENTERSIZEMOVE, WM_ENTERSIZEMOVEあたりが思い浮かんだ
455 :
本田 :2007/05/15(火) 23:36:27
>New C++ IDE from CodeGear^(TM) Brings Rapid Application Development to Windows Vista^(TM)
http://www.codegear.com/article/36464/ >SCOTTS VALLEY, Calif. - May 14, 2007 - CodeGear, a leader in developer tools,
> today announced C++Builder? 2007 -
>the world's only native C++ rapid application development (RAD) integrated development environment (IDE) for Microsoft? Windows.
>C++Builder 2007 provides support for Microsoft Windows Vista,
>enabling developers to seamlessly upgrade existing C++ applications to support Vista
> and rapidly build new Windows applications that take advantage of the new Vista Aero user interfaces.
動的に領域を再確保とかできるあれなんでしたっけ? なんとかarray? ヘルプ見たくてもスペルがわからないからおしえてください
std::vector
459 :
デフォルトの名無しさん :2007/05/17(木) 19:32:00
TDatabaseを使っているのですが XPだとちゃんとログインプロンプトがでるのですが 2003サーバーで行うとログインプロンプトがでてきてくれません。 なにか特別なことをするのでしょうか?
460 :
デフォルトの名無しさん :2007/05/17(木) 20:27:19
マルチですいません。こっちの方が素早い解答を頂けそうなので引っ越してきました。 初心者です。教えてください。 visualbasic c++を用いて、デスクトップ上にあるエクセルファイルをオープンして、 中に書いてあるデータをreadwriteしてプログラムで解析かけたいんですけど、 デスクトップ上(あるいはパス指定)にあるファイルをopenする方法を教えてください。 よろしくお願いします。
461 :
デフォルトの名無しさん :2007/05/18(金) 00:56:07
462 :
デフォルトの名無しさん :2007/05/18(金) 10:48:13
floatを文字にする時に長さを統一する方法を教えてください。 例えば 1.5、20.9とあったばあいに" 1.5"みたいに1.5の前に1つスペースを入れたいのですが %2.1fとしたときにxx.x形式みたいな、足らないところにスペースを
AnsiString::sprintf()
464 :
デフォルトの名無しさん :2007/05/18(金) 14:01:43
>>463 それ知ってたんですがフォーマットのとこは何てかけばいいですか?
少数無しなら"%3.3d"とかしたらスペースはいるんですが
少数がある場合のそこの記述を教えてください
465 :
デフォルトの名無しさん :2007/05/18(金) 14:03:49
今、昔をふっとおもいだした・・・
そういや"%3.1f"ってかいたら最初の3って全部の長さなんだよね・・・
だから普通に"%5.1f"ってかけばいいだけだった・・・
>>463 ありがとう、サックリとできました
>>465 std::stringを使うなら面倒だがマニピュレータを使う方法もある。
#include <iostream>
#include <string>
#include <iomanip>
int main()
{
float f1 = 1.5f, f2 = 20.9f;
std::cout << '\'' << std::setw(4) << std::setprecision(3) <<std::setfill(' ') << f1 << "\'\n";
std::cout << '\'' << std::setw(4) << f2 << '\'';
}
467 :
デフォルトの名無しさん :2007/05/19(土) 15:10:15
プロジェクト名ってハイフンついた名前ってダメだよね? なんで?
コマンドラインオプションと間違えるからじゃね
NULとかも使えないっすお
470 :
デフォルトの名無しさん :2007/05/22(火) 16:52:34
データベースなんですけどTQueryでEditしてフィールドに値を書いて Postの際に「ほかのユーザーがレコードを変更したため編集を実行できませんでした.」 ってエラーが出るのですが、どうしたら書き込む事ができますか?
471 :
デフォルトの名無しさん :2007/05/23(水) 11:03:57
UpdateSQLのModifySQで質問ですが 例えばSTATEというフィールドがあってSTATEの値が1なら0にするSQLにしたばあいにエラーになります。 エラーはUpdateエラーとしかでません・・ しかし条件通りSTATEが1のだけちゃんと0になっています。 これを1レコードしかヒットしない条件にするとエラーがでなくなるのですが Updateでフィールドの値を変更する時は複数レコードだと何故エラーになるのでしょうか?
TIFFファイルをImageに読み込みたいのだけどどうするのがいちばん簡単? BCB5or6orBDS2006の環境のどれかで・・・ プラグイン?
C++Builderで一番使いやすいと思われるXMLパーサ教えれ。
C++BuilderでSQLiteを使用するのに sqlite3.hをincludeしてsqlite3.dllをDLLloadしようと思うんだが コンパイルするとヘッダー部でエラーが出てコンパイルできないんだが この回避方法ってありませんか?
>>473 ありがと
いいやつだな
でも、試してみたらコレ目的のフォーマット対応してなかった
モノクロTIFFのG4が使いたかったんよ
C++Compiler 5.5 ダウンしたらフォルダの中にexeがなかったのですが どうすればいいでしょうか?・・・
>>477 どのURLからなにをダウンロードしたのか正確に教えてもらえないのに
何と答えればいいでしょうか?・・・
IE6 のころは opera をメインにしてたけど、IE7がでてからIE7をメインにしてる。
484 :
デフォルトの名無しさん :2007/05/25(金) 15:26:26
すみません、教えてください。 メールサーバーを経由せずにメールを送信する方法を教えてください><
><b
487 :
デフォルトの名無しさん :2007/05/25(金) 17:13:20
馬鹿しかいない時間帯でしたね><
うんうんそうだね おやすみぼうや
489 :
デフォルトの名無しさん :2007/05/25(金) 17:30:44
ほら、馬鹿はすぐ釣れる><
490 :
デフォルトの名無しさん :2007/05/25(金) 17:33:33
>>484 郵便局を経由せずに手紙を出す方法を教えてください
と言うことでしょうか?
郵便局のポストじゃなくて家のポストに投函すればいいじゃん。 家のポストは郵政公社の占有物ではないから。
492 :
デフォルトの名無しさん :2007/05/25(金) 18:21:14
意味すら理解できない馬鹿共はレスしないで下さい><
釣りでないならメールのしくみから勉強してこい
送信にしろ受信にしろメールサーバを使うからな ローカルに鯖を設置するにしろさ
495 :
デフォルトの名無しさん :2007/05/25(金) 18:42:49
どうやらここはとてもレベルが低いところみたいです>< メールサーバーを使わないと絶対送受信ができないと思い込んでる馬鹿か それしか知らない馬鹿しかいない場所・・・>< ごめんなさい釣りじゃないんだけどお前ら馬鹿がただ知らないだけなんです>< お前らは悪くないよ!無知なだけなんだから>< もっとレベルが高いところで聞いてきます><
RFC読んでから罵倒しろよなw
明らかに、解ってる連中にからかわれてるだけなんだが これだからゆとりは
498 :
デフォルトの名無しさん :2007/05/25(金) 18:57:01
全然わかってないとおもうよw><
がんばってプロトコルを手打ちしてくれ
500 :
デフォルトの名無しさん :2007/05/25(金) 19:08:38
500><
本日一番の馬鹿がいるスレはここで決まりだな
これはあれだ、P2Pメッセンジャーの話をしていたんだ ということでスカイプでも使えば?BCB製だし。
503 :
k :2007/05/25(金) 21:15:14
設定はちゃんとできているはずなのに、コンパイラできません。 Borland C++ 5.5.1 for Win32 Copyright (c) 1993,2000 Borland hello.c: Turbo Incremental Link 5.00 Copyright (c) 1997,2000 Borland と出ます。 私はTepa Editorというテキストソフトを使いたいのですが、 何故かファイルを開くと、秀丸で開かれてしまいます。 秀丸は最初から入っていたのですが、お金を払っていないためどうしていいのか わかりません。 どなたか助けてください。・゚・(ノД`)・゚・。 うえええん
ネタはネタスレでやれ
505 :
k :2007/05/25(金) 21:21:10
すみませんでした(__; 他で聞いてみます
本当にここがプログラム板なのかと疑いたくなるようなスレだな
>>480 遅くなってすいません。ありがとうございました
VS2005を友達にコピーしてもらいましたが・・・並みのレスだな
ビンに入れて海に流しましたが翌日には砂浜に打ち上げられていました
510 :
デフォルトの名無しさん :2007/05/26(土) 09:02:21
なんつーか、SMTPサーバーくらい自分で作れない人が何騒いでるんでしょうねぇ・・・ 作り終わってからOB25BLOCKが発覚して泣く泣くボツにしたけどな。。。orz
511 :
デフォルトの名無しさん :2007/05/26(土) 11:31:08
つまり
>>495 は本物のリアル馬鹿だったという結論が出たようですね。
釣れなくて釣り宣言しちゃう釣り師は無様だな
, -‐−-、 ヽ∧∧∧ // | . /////_ハ ヽ< 釣れた!> ハ レ//j け ,fjlリ / ∨∨V ヽ h. ゚l; ハイイト、"ヮノハ // |::: j 。 /⌒ヽヾ'リ、 // ヾ、≦ ' . { j`ー' ハ // ヽ∧∧∧∧∧∧∨/ k〜'l レヘ. ,r'ス < 初めてなのに > | ヽ \ ト、 ヽ-kヾソ < 釣れちゃった!> . l \ `ー‐ゝ-〈/´ / ∨∨∨∨∨∨ヽ l `ー-、___ノ ハ ´ ̄` 〈/‐-、
DelphiとBCB 2007のバージョンアップの案内が来た・・・ もう出すのか と まだ出すのか って気分だ・・・
ウチにも来た。これって2006でDelphiとBCBを統合パッケージにしたのに また別々に戻すってことみたいね
516 :
デフォルトの名無しさん :2007/05/28(月) 18:17:20
バージョンアップするか迷ってる
今回の目玉はVista対応だけでしょ?
519 :
516 :2007/05/28(月) 18:51:44
Ver.5で止まっているから
お布施するか・・・・・どうせ無駄金になりそうだが
>>520 俺も製品を使うことが目的じゃなくてお布施目的で購入しようと思ってる。
522 :
デフォルトの名無しさん :2007/05/28(月) 19:49:01
おい豚共よ2007ってどうなのよ?
Vista当分使う予定のない俺はまだまだBCB6で十分でしょうか
>>523 個人使用のプログラム開発オンリーならおk
BCCの少しでも新しいバージョンが欲しいからお布施します。 本体の方は多分ほとんど使わないだろうなあ・・・馬鹿な俺
結局BDSが失敗だったつう判断かね とりあえず、ヘルプがまともに使えるようになっていることキボン
C++Builder6からBDSにアップデートしてC++Builderとしてしか使ってないから、 C++Builderに戻ろうかな…悩む…。 BDSも継続してアップデートされるのなら、別にBDSでも構わないんだけど…
528 :
デフォルトの名無しさん :2007/05/29(火) 02:03:22
なんでBDS2006からのバージョンアップで Delphi+Builder==63000円なんだ
うちにもハガキが届いた。 Delphi7,C++Builder6以降は、方向性が揺れて、社員、開発担当も四散していったようだし 商品の品質もどんどんグレードダウンって感じだから、パス! もし使う機会があるなら、手元にあるDelphi7かBCB6。でも、さしあたりVS2005を使っちゃいそう。
31500円...お布施しようかどうか迷うな
格段に機能アップしてれば買いだけどBDSからの時間を考えてもやっぱりVistaに対応させただけだろうね 今回はパスかなあ
最新に準拠ということはC99もつかえるのかな? それと64ビットプログラムの開発はできるのだろうか?
534 :
デフォルトの名無しさん :2007/05/30(水) 16:43:24
長文失礼。MPEG4のAVIファイルをポーズ中、任意時刻の静止画を表示したい。エラーは関数CreateDIBitmap()で発生しているようです。 だれか助けてくれです。たまには家に帰して欲しいし。 Graphics::TBitmap* bmpCap; IMediaDet *pMdaDet; IMediaSeeking *pMdaSeek; GetImageFromMPG(Image1->Picture->Bitmap,"d:\\file.avi"); void __fastcall TForm1::GetImageFromMPG(Graphics::TBitmap* bmp,AnsiString FileName) { wchar_t* pwcFileName; wchar_t pcFileName[50]; pwcFileName = FileName.WideChar(pcFileName, sizeof(pcFileName)); pMdaDet->put_CurrentStream(0); pMdaDet->put_Filename(pwcFileName); long Size;hRslt = pMdaDet->GetBitmapBits(0, &Size, 0, 640, 480); if (SUCCEEDED(hRslt)) { char *pBuffer = new char[Size]; pMdaSeek-> SetTimeFormat(&(TIME_FORMAT_MEDIA_TIME)); LONGLONG pStillCurrent,pStillStop;pMdaSeek->GetPositions(&pStillCurrent,&pStillStop); double StreamTime = double(pStillCurrent)/10000000.0; pMdaDet->GetBitmapBits(StreamTime, 0, pBuffer, bmpWidth, bmpHeight); HDC hdcDest = GetDC(bmp->Handle); //ここから表示処理 if(hdcDest != NULL) { HBITMAP hBitmap; BITMAPINFOHEADER *bmih = (BITMAPINFOHEADER*)pBuffer; void *pData = pBuffer + sizeof(BITMAPINFOHEADER); BITMAPINFO bmi; ZeroMemory(&bmi, sizeof(BITMAPINFO)); CopyMemory(&(bmi.bmiHeader), bmih, sizeof(BITMAPINFOHEADER)); hBitmap = CreateDIBitmap(hdcDest, bmih, CBM_INIT,pData, &bmi, DIB_RGB_COLORS); if(hBitmap!=NULL) { //ここからが一番あやしい bmpCap->Handle = hBitmap; bmp->Assign(bmpCap); } ReleaseDC(bmp->Handle,hdcDest); DeleteObject(hBitmap); delete[] pBuffer; }}
せめて全角スペースでインデントくらいしようよ
で、とりあえずIMediaDet::GetBitmapBitsはS_OK返してるのかい? 戻り値見てないようだけど。
537 :
534 :2007/05/31(木) 10:07:20
>535 失礼。長文だったり、改行が多いと掲示板に貼れなかったので。 でもそれぐらいなら、できたかも。 >536 同じ理由で、掲示板に貼るときに消しました。 GetBitmapBitsの結果はS_OKです。 とりあえず、レスありがとう。
bmpCap->Handle = hBitmap; この行終わった時点でbmpCapの中にイメージ入ってる? あとTBitmap::Handleにビットマップハンドル突っ込んだ場合はTBitmapが自動でハンドル解放しちゃうから自分で解放しちゃダメ。
>>470 TQueryの更新には TUpdateSQLを使え。
>>471 なんか勘違いをしているような、、
更新SQLは TQueryに書いていいんだよ?
>>474 MSXML
バージョンアップするか悩んでるけど 今回バージョンアップしなかったら次回は通常価格なんだろ? 今回のバージョンアップもBDS2006からとしか書いてないから 次回を買うつもりなら今回買っても値段は同じじゃね? だったらお布施しといた方がいいんじゃね?
>540 通常ではなく優待価格が適用されるのではないかな?
じゃあ例えば今回BCB6からだといくらになるんだ?
いまBCB使うメリットってなに?
>543 今後10年は保証されるであろうWin32開発を 使い慣れた環境で開発を続けられる。 BCB6からは優待版はねーよ。 もう元は十分取ったろ6ユーザーは。
俺はBCB3なんだが...
BCB2007って結局何が変わったの? IDEがちょっと変わってVISTAに対応しただけ? 以前どっかでDelphiの長期的なロードマップみたいのがあったけど 今はどこまで来てるんだろう
TListBoxの内容をDnDで変えたいのですが、どうしたらいいのでしょうか。 OnDragDropイベントのX, Y値を使うのだろうとは思ったのですが、 それ以降を御指南頂けないでしょうか…。
549 :
デフォルトの名無しさん :2007/06/01(金) 12:44:39
ちゃんとユーザ登録していればハガキが届くハズだ。
封筒キター で、一番心配なのはBCB6の高速コンパイルユニットが動かないという話ですが(過去レス)、 BCB6に比べてコンパイル速度はどうなんでしょ?
それと、まさか、BDEが廃止になったりしてないおね? 廃止になるんなら、ODBCアクセスどうするのか、と。
552 :
547 :2007/06/01(金) 13:22:32
すみません自己解決しました。ItemAtPosを使えば良かったのでした。失礼しました。
553 :
デフォルトの名無しさん :2007/06/01(金) 13:35:24
つかまた実行ファイルサイズが肥大化するのかね
いくら肥大しても超最悪ドトネトランタイムの100分の1程度じゃね?
555 :
デフォルトの名無しさん :2007/06/01(金) 14:35:19
同じソースを1と6でコンパイルしてみー 倍くらい違うからwwwwwwwwwwwwwwwwwwww
ていうか、1の時代(BCB1って日本に入って来てたっけ?)は、 FDの時代でExeが1メガ超えるかどうかが死活問題だった。 今、ネットからセットアップExeをダウソする時代だから、 数メガ〜数十メガ(ドトネトランタイム)あたりまえ。
BCB2007ってHighlanderとは違うの?
そういえば C++Builder 2007 のエンタープライズ版だっけ? アレはどうなってんの? そんなにプロフェッショナル版と違いがないし、 値段もそんなに差がなくなってるんだったらエンタープライズ版に しようかと思ってるんだけど、値段がどこ探しても見当たらねぇ。
>>557 そんなに高くないじゃん
今回マジでパスしてもいいかなー
561 :
デフォルトの名無しさん :2007/06/02(土) 10:31:24
なんだかんだで結構BCB盛り上がってんね
BCB5でTThreadList使おう思てんやけど。 Add()があってRemove()があって、え〜っとItemsは・・・なんやて? どうやって使うんだ?
564 :
563 :2007/06/02(土) 16:30:05
例題書いてあった。
565 :
デフォルトの名無しさん :2007/06/02(土) 16:39:47
bcb2007を評価してる人いねーのん?
まだ出荷されてないだろw
せめてもう少しロースペックのマシンでも使えるくらいに軽く
TListBox::Font->Sizeを変更した場合、 TListBox::Canvas->TextHeight値に反映されるのは いつなのでしょう? デバッグして見ると、変更した直後は反映されず、 DrawItemのときには既に反映されてました。…むむむ。
コントロールの再描画(Update()やRepaint()時)じゃないん?
570 :
デフォルトの名無しさん :2007/06/04(月) 18:19:51
MySQLでTQueryでフィールドの値をFieldByNameで取得したときに 全角文字が文字化けするのですが、どこを設定すると正常表示されるでしょうか?
571 :
デフォルトの名無しさん :2007/06/04(月) 19:37:42
TQueryでデータセットを閉じずにFirstをNextをしても変更された内容を取得するにはどうしたらいいですか?
572 :
デフォルトの名無しさん :2007/06/04(月) 21:18:50
C++Builderを触ったこと無いんだが、C++BuilderはMFCをサポートしている? MFCソースをコンパイルできたら嬉しいんだが、どうですかお兄さん方
574 :
デフォルトの名無しさん :2007/06/04(月) 22:19:34
>>572 TDatasetのメソッドですか?
発見できません><
575 :
デフォルトの名無しさん :2007/06/04(月) 22:20:48
>>572 あ、イベントですね。
ヘルプみてみます。
>>573 一応サポートしてる。
少なくとも6まではPro以上にMFCは付属してた。
577 :
573 :2007/06/04(月) 22:39:07
Boostを初めて使ってみようと想うのですが、BCBで問題なく使えますか? (一部機能が使えなかったり、CodeGuardが誤爆したりしませんか
>569違う 俺も知りたいんだよな、これ・・・ VCLのソースをいじると他の人との互換が無くなるから 仕方なくコントロールのサイズを-1したあとに+1してる (´;ω;`)なさけねぇ
ボタンを縦長に使いたいのですが、captionを縦書きにするにはどうすれば良いのでしょうか
VISTA対応のVCLってどんなもんなんだ? フォームはWPFをラップ?してねえよなあ
>578 今日のデベロッパーキャンプでC++Builder 2007でBoostのどれが使えてどれが使えないってのを David Iがやってたが、現時点では(あるいは2006では)使えるのも使えないのもある、ということだった。 Boostコミュニティで対応状況を公表してるんじゃない?
>>568 >>580 .Perform(CM_RECREATEWND, 0, 0);
では、だめかい?
Font->SizeといっしょにCanvas->Font->Sizeも変えりゃいいじゃん。他の設定も変えてるならFontごと代入でもいいし。
ちなみに
>>568 に答えるなら、ListBoxがWM_DRAWITEMを受け取って、OnDrawItemを呼ぶ前。内部でCanvas->Font = Fontってしてる。
>>571 BeforePost
データベースに登録したくないならサイレント例外
587 :
デフォルトの名無しさん :2007/06/06(水) 23:07:12
デベロッパーキャンプも終了したみたいだけど C++Builder 2007の詳細ってまだなの?
つかろくな詳細もないのに買えも何もないよな
お布施しろってことでしょ
591 :
デフォルトの名無しさん :2007/06/07(木) 00:14:17
>>590 さんくす
でも購入のための参考になる記載は皆無だつた
593 :
580 :2007/06/07(木) 13:50:01
>>584 ダメでした
厳密にはListViewのColumsのAutoSizeが反映されないんです;;
594 :
デフォルトの名無しさん :2007/06/08(金) 02:52:28
ようやくBuilder2007の情報が出だしたね。
http://www.codegear.com/jp/products/cppbuilder に、カタログ・機能一覧・トライアル版が出ている。
今回のBDS2006からの変更点は
・ビルドスピードの改善(最大5倍のスピード)
・Vista対応
・機能がDelphiレベルにだいぶ追いついてきた(UML対応等)
・Indy10対応
こんなところか、そして
・64bitには非対応
・VCLのunicode表示には非対応
BDSの統合環境(最新Delphiを含む)からBuilder単体になってしまって
これで31.5千円ちと高いな。
いちきゅっぱなら即VUPするんだけどな。
まあ自分としては今回は、Update1が出るまでは様子見ですわ。
595 :
デフォルトの名無しさん :2007/06/08(金) 11:01:54
ヒント:取得した後、エンコーディング、Utf8ToAnsi
597 :
デフォルトの名無しさん :2007/06/08(金) 11:10:57
>>586 UpdateSQLで書き込みをしているのでBeforePostイベントが発生しません・・
∧,,∧ ミ,,゚Д゚彡 ミ つ旦)~~ 〜と,,,~),,~) 旦~~ ]]]]]]]]]]]]]]]]]]]]]]]]]]]] トゲザーは、C++に対しては UML閲覧だけで まだソース生成はできないようですよ。 >・64bitには非対応 >・VCLのunicode表示には非対応 開発に、がんばって欲しいですな。
>>597 ?
TQueryの中身は SELECT系のSQLなんだよね?
それだったらキャッシュアップデートでも BeforePostは発生するよ。
600 :
デフォルトの名無しさん :2007/06/08(金) 19:49:04
>>599 はい、selectです。もういちど見てみます。
それとは別に、
MySQLでQuery->FieldByNameで値を取得すると全角が??になってしまうのですが
これはどうしたらちゃんと取得できるようになりますか?
64bitさっさと対応させてくれよー
>>594 個人的にはDBX4が気になるがどんなものなんだろう
603 :
デフォルトの名無しさん :2007/06/09(土) 18:14:39
bcc64.exeマダー?
>602 プログラム側から見たら全く変わらない。実行速度や実行効率が向上している、ということらしい。
> ・VCLのunicode表示には非対応 むー 非対応なのは厳しい。また様子見・・・ かなぁ
606 :
デフォルトの名無しさん :2007/06/11(月) 11:18:02
MySQLでTQueryでフィールドの値をFieldByNameで取得したときに 全角文字が文字化けするのですが、どこを設定すると正常表示されるでしょうか?
MySQLに入っている文字のコードはなに? S-jis以外だと化けるんじゃなかったっけ?
608 :
デフォルトの名無しさん :2007/06/12(火) 11:00:06
MySQL AdiministratorでそのカラムのCharsetをsjisに変更したんですが変わらなかったです
DBの中の人はUTF8にしておいて、 構造体→コンポで描画で、 Utf8ToAnsi、および、AnsiToUtf8する方が良いと思うお。
610 :
デフォルトの名無しさん :2007/06/12(火) 16:25:20
>>609 それめちゃくちゃ参考になります!!
しかし・・・・
Utf8ToAnsiとかがありません・・・
BCB5使ってるのですが、どうしたらいいでしょうか?
つ BCB6
UTF8 > ShiftJISのコードなんてぐぐれば転がってるだろ‥‥
613 :
デフォルトの名無しさん :2007/06/12(火) 17:02:01
すみません。 ちなみにFieldByNameで値を取得すると全角は全て??(0x3F)になっているのですが 変換はどのタイミングで行うのでしょうか?
>変換はどのタイミングで行うのでしょうか? DBに入れる前にUTF8にしとかなきゃ。 で、UTF8は文字のエリアがASCIIコードとなる。全角なんて無い。
615 :
デフォルトの名無しさん :2007/06/12(火) 17:19:55
>>614 すみません、また変なことを言うかもしれませんがご勘弁を・・・
まずソフトの方では書き込みは行わず読み込みのみでして、
MySQL Query Browserでテーブル、カラム、そして値を入れてあります。
その際に値を全角で入れてあるものがあり、MySQL Query Browserで正しく表示されています。
ソフトではTQeryのSQLでselectで取得しFind、NextでぐるぐるまわしてFieldByNameで値をとってるわけなのですが
その時に全角部が??と・・・
>その時に全角部が??と・・・ AnsiじゃなくてUnicodeだからじゃね? とりあえずその取り出したものをファイル出力してワードパッドかエディタで見てみれば?
windows vistaで、C++builder6.0って 動くんでしょうか?
618 :
デフォルトの名無しさん :2007/06/12(火) 17:37:55
>>616 ??部分の文字コードは0x3Fですでに?に変換されて返ってきています・・・
じゃ、バイナリ(Blob)で取るしか無いね。
620 :
デフォルトの名無しさん :2007/06/12(火) 17:51:37
>>619 MySQL側はUTF8のままで変更ができないのでBuilder側で設定になるのですが
その場合はどこを設定するのでしょうか?
は? MySQLの中身はUTF8なの? なら、 >??部分の文字コードは0x3Fですでに?に変換されて返ってきています・・・ こんなこと発生しない。 UTF8ならAsStringでASCII文字取るだけだから。
だから、Unicode絡む案件でBCB使うなって
>>622 余計なこと言うな。
MySQL/UTF8ならASCIIの出し入れだから無問題。
いつまでも旧バージョンしか使えない会社ってなんなの?
625 :
デフォルトの名無しさん :2007/06/12(火) 18:05:25
>>621-623 それが・・・・
設計時にTQueryのSQLにselectなんとかを書いて項目の設定で全カラムを登録
そのカラムは確かにStringフィールドになっていて半角文字は普通にAsStringで取得し表示されます
しかし、しかし、「山田FC」などと入ってるフィールドの値をFieldByNameで取り込むと
「??FC」となってしまいます・・・
もう泣きそうです・・
626 :
デフォルトの名無しさん :2007/06/12(火) 18:08:31
これひょっとしてBCB6なら普通に表示できちゃったりします? 何か変換する関数も普通にあるみたいだし・・・ BCB5ではダメなのかなあ
よくわからないけどDBの中身がUTF-8で Builderで表示するときはAnsiになるんだから普通は変換しないといけないんじゃ? そもそもMySQLでUTF-8を使ってるのが問題なのでは?
BCB5の問題じゃないお。 >FieldByNameで取り込むと 627にも書かれてるけど、そのままコンポーネントに値渡してる? ならダメだよ。化けるよ。 上でファイル出力してみろって言ったでしょ?
ヒント:WideString BCB5にもあったよね?
WideStringはCOMまわりとかで使用避けられないからあるはず
WideStringってUTF8じゃなくて、UTF16(UCS2かな?)じゃなかったっけ? それならヒントになってないお。
わりぃわりぃ。そうだった。 あきらめてBCB2007買えば?
WideCharToMultiByte
634 :
デフォルトの名無しさん :2007/06/12(火) 18:30:39
>>627 いえそれは避けては通れないアレでUTF8でなんとかしたいのです
>>628 FieldByNameの戻りをそのままAnsiStringに渡しています。
ちなみに、渡すコンポーネントとは、DBGridとかですか?
ファイル出力はどのタイミングでやればいいですか?
FieldByNameではすでに全角は3Fで返ってきてるので
>>629 WideStringありますね。
でもUTF8はだめですか・・・
635 :
デフォルトの名無しさん :2007/06/12(火) 18:35:07
あ、1つ言い忘れていましたが C++Builder5にあるデータベースエクスプローラありますよね? これでも全角文字があるデータをみると??になっているのですよ。 ちなみにTQueryにデータソースをアレしてDBGridで表示してもやはり??です
>>634 おまいはばかか。
きいていることに答えろ。
>FieldByNameではすでに全角は3Fで返ってきてるので
これは何で確認したんだ?
デバッガならコンポーネントに渡してるのと同じ。×だぞ。
ファイルに書けと言ってもかかないなら、自分でやれ。さよなら。
>データベースエクスプローラありますよね? >TQueryにデータソースをアレしてDBGridで表示してもやはり??です ↑ 両方ともUtf8文字をAnsi(日本語WinではシフトJISね)で表示しようとしているので、 ??と化けるのが正しい。 化けなきゃおかしい。
638 :
デフォルトの名無しさん :2007/06/12(火) 18:55:37
>>636 コードの確認はインスペクトして確認しました。
ファイルの書くのはいいけど何をですかね?
FieldByNameの戻りをAnsiStringで受け取ってそれをファイルにってことですか?
>>637 はい、このままだと化けるのはわかっているので、化けない方法を尋ねています
639 :
デフォルトの名無しさん :2007/06/12(火) 18:58:21
>FieldByNameの戻りをAnsiStringで受け取ってそれをファイルにってことですか? その通り。 >はい、このままだと化けるのはわかっているので、化けない方法を尋ねています Utf8ToAnsi以外に解決策は無い。
640 :
デフォルトの名無しさん :2007/06/12(火) 19:03:52
>>639 なるほど、ありがとうございます。
まずはファイルに出力してみてコードを確認してみます!!
できたとしても、酷いソースになりそうだな なんつーか
そうでもないよ。 ドキュメントクラスまではUTF8。 描画のタイミングでUtf8ToAnsiするだけ。
なんだ、コード系とかまったく理解していないで化けるって言ってただけかよ。
644 :
デフォルトの名無しさん :2007/06/12(火) 19:43:47
わからないから聞いてるんじゃないんですか。 理解してたら聞く必要はないとおもうんだけど。
このスレにはBCB5でUTF-8の詳しい使い方の説明が出来る技術者がいないと考えるんだ!
Borland C++Builder5 2000/03/29発売 7年3ヶ月15日前の製品 さすがに使っている人はもうわずかでしょ。 それともBorland C++Builder6以降はあれが入ったから、5を使い続けている人も多いのかな。
647 :
デフォルトの名無しさん :2007/06/12(火) 21:21:03
(´・ω・`) ショボーン ちなみに、PHPでも読んでみたんですが同じ結果に・・・ mb_detect_encodingするとASCIIと返ってきて・・・ mb_convert_encodingしてもやっぱり??と・・・ なんで?なんで?なんでえええええええええええええええええええええええ なんかそれ以前の問題のような気がしまが・・・・ ODBC経由ですがODBCのDSNで何か設定とかあるのかなあ
>>647 リアル阿呆か
みんなが親切に教えてあげているのにそれは完全虫かよ。
それとも何も理解できていないのか?
化けるのは当たり前じゃん。
だから、BCB5なんて使うな、といっておろうが
650 :
デフォルトの名無しさん :2007/06/12(火) 23:29:42
>>648 知らないならレスしないで。
お前みたいに煽ることしかしない馬鹿がいるから荒れるんだって
>>647 はコード系というものを理解していないに1000ナナコ
かもね。だからファイルに保存すれという意味がまったく理解できないのか。
根本的に化ける理由をまったく理解していないから
>>647 のようなピントの外れた書き込みをしているんだろ。
おまいらもっと親切に教えてやれよ。
教える気がないならいじらずスルー
質問するのは良い姿勢だけど、回答をとりあえずは素直に一度やってみることができないヤシは論外だね。
657 :
デフォルトの名無しさん :2007/06/13(水) 10:05:55
はいはい、昨日の基地外ですよ。 はっきり言って全く変わってない。?のまま。 ファイルに保存とか、はぁ?とか思いながらやってみたけど当然?にしかなっておらず。 何故にインスペクトした値が信用できないとか出てくるのかが謎 んで、皆が言うUtf8ToAnsiを使うべくBuilder6をインスコしてみたがやはり結果は同じく?になる。 使い方はこんな感じで、 String buf = Utf8ToAnsi(Query1->FieldByName( NAME )->AsString); これ使い方間違ってる?? コード系を理解している人が山ほどいるみたいだから意見を聞きたいですね。 どうせ煽りしかしてこないんだろうけど
>>657 おまえマジに人間のクズだな
荒れているのはお前の人間性が最悪だからだぞ
お前も大差ないからいい加減にしとけ
お前もな
>ファイルに保存とか、はぁ?とか思いながらやってみたけど当然?にしかなっておらず。 意見を言うと、エディタでエンコード変えていくと見えるエンコードが特定できるはず。 とりあえず、はぁ?、と思うな!!!!!
>ファイルに保存とか、はぁ?とか思いながらやってみたけど当然?にしかなっておらず。 もう一つ意見を言うと、バイナリエディタで開いて、実コード書いてみ? どういう障害かはハッキリするから。
>String buf = Utf8ToAnsi(Query1->FieldByName( NAME )->AsString); >これ使い方間違ってる?? >コード系を理解している人が山ほどいるみたいだから意見を聞きたいですね。 意見:あってる。 実際にこれで業務やってる。Firebirdだけど。でもテスト用にMySQL/ODBCでもやったことあるが、動作する。
664 :
デフォルトの名無しさん :2007/06/13(水) 11:00:29
で、出けたあああああああああああああああああああああああああああああ!!!
>>661 だからとりあえず一応ファイルに出力したんですよ。
まだまだ自分の知らない事もあるだろうし、そういう情報はちゃんと実行してますよ!
>>662 当然バイナリエディタでみました、ファイルもコードみるからバイナリでかいたからね。
>>663 ですよね。
結論からいうとBCB5でさっくりできちゃいました^^
今回の問題はやはりBCBうんぬんとかコード系うんぬんとか以前の問題でした。
コード系ってさわいでた人達はわけわからずそう言ってただけと判明
ここ全く役に立たなかったしとんちんかんな回答しか得られなかったけど
おまいらの意見は今後の参考になるかもしれないので乙
なんだこいつ・・・・ ここまで騒いだなら原因書けばいいのに
>>664 だからおまいはみんなからバカだって言われるんだよ。
まったく問題の本質を理解していない。
問題の根本原因の切り分け作業の意味というものがまったく理解できていない。
ここにいる人間はエスパーや予言者じゃねえんだよ、阿呆。
どうせODBCの設定かDBの設定をちょんぼってただけだろ。 単純ミスだから原因書かないで逃げたんだろ。
もう終らせればいいじゃん、消えたのにくだぐだと
俺はロムってただけだけどプログラマにこんなヤツがいるなんて正直ガッカリ
逆に考えるんだ。 マはこんなヤツばっかり。
静的リンクついて質問です。 libファイルをプロジェクトに追加をして、コンパイルできました。 dllファイルをexeファイルと同じフォルダから、削除すると 実行時に「dllファイルが見つかりませんでした」というメッセージが出て 良い好できなくなりました。 静的リンクは、dllファイルが必要なくなるですよね? libファイルをプロジェクトに追加するのは静的リンクですよね。 やり方がおかしいのでしょうか?
672 :
671 :2007/06/13(水) 14:47:07
日本語変ですみません。 訂正お願いします。 良い好->実行
>静的リンクは、dllファイルが必要なくなるですよね? そうです。 >libファイルをプロジェクトに追加するのは静的リンクですよね。 libファイルの中の人がimport宣言だけ、といった場合もあるので、100%そうとも言えません。 >やり方がおかしいのでしょうか? やはりそうですよね。
674 :
671 :2007/06/13(水) 15:20:04
>>673 >libファイルの中の人がimport宣言だけ、といった場合もあるので、100%そうとも言えません。
解決できそうです。
どうもありがとうございました。
ちなみに既製のDLLからスタティックリンクライブラリは普通作れないぞ implibが生成するのはインポートライブラリのみ。
6でapacheで動くwebアプリを作ってみようとおもってテスト的に作ってみたのですが
これヘルプに書いてある通りにhttpd.confファイルをいじったのですが動きません
ブラウザでは
http://localhost/project でいいのでしょうか?
それとこの辺について書いてるサイトがあれば教えてほしいです
677 :
デフォルトの名無しさん :2007/06/14(木) 05:35:22
>>676 Options ExecCGI
AddHandler cgi-script .exe
こんなやつを既存の設定に合わせて追加すれば動くんじゃない?
Apacheスレで聞いた方がいいと思う。
678 :
デフォルトの名無しさん :2007/06/14(木) 09:35:18
質問です。 BCB5Proで標準VCL修正し反映させるにはどうすればいいのでしょうか? MLの過去ログで別プロジェクトでlibを生成し結合する方法は見つけましたが 他へ影響が出る可能性があるので特定のプロジェクト内のみ差し替えを考えています 対象はprinters.pasでこれを作成中のプロジェクト下にコピー 修正を行ったあとにプロジェクトに追加してみましたが 「ユニットFormsは異なるバージョンのPrinters.Printerによりコンパイルされています」 のエラーが発生しました 環境とプロジェクトのパス指定には特におかしいパスが追加されていないことは確認しています 他に標準VCLに手を入れる手順などをお願いします
>他へ影響が出る可能性があるので特定のプロジェクト内のみ差し替えを考えています こりゃ、無理じゃね? だって、Formsのコンパイルに影響してるわけだから。 あきらめて、標準VCLは修正せずに、特定のプロジェクトのためにTPrinterの派生クラスでも作るのが正解。
>だって、Formsのコンパイルに影響してるわけだから。 BCB/IDEのパレット部品のコンパイルに影響してる、と言いたかった。
真っ先に派生を考えたのですがprivateで指定されている変数を使うので無理でした・・・ 標準VCLに問題があるから手を入れたと言う話をよく聞いていたのですが みなさんlib生成して結合してるんでしょうか
privateのオブジェクトに無理やりアクセスするとかならしたけど。(最近は手抜きでしない) 例えば、TStringGridのTImplacementEditorのウィンドウハンドルをWin32APIで無理やり取るとか。 そういえば、NkPrinterとかTPrinterオブジェクトを拡張していたような。
683 :
678 :2007/06/14(木) 10:18:16
実は最初派生して作るならNkPrinterに手を入れれば出来そうと思って調べてたのですが 修正目的箇所となるBeginDocは親を呼んでいるだけだったので無理でした
>「ユニットFormsは異なるバージョンのPrinters.Printerによりコンパイルされています」 これを回避するには、BCBのライブラリの再構築が必要。 つまり、 ・BCB側のライブラリフォルダを2つ用意してプロジェクト毎にフォルダを切り替える ・コンパイル時のライブラリフォルダを切り替える のどっちかしか無いんじゃね?
685 :
678 :2007/06/14(木) 12:01:06
[builder:5512]の方法でくっつけた環境と切り替えるってことですね みんなこの方法でやっているんでしょうか?
686 :
デフォルトの名無しさん :2007/06/16(土) 08:27:49
第5回 CodeGearデベロッパーキャンプ の 資料がダウンロードできるようになってたけど C++Builder 2007の内容はなんかぱっとしないね。 細かい部分はやっぱトライアル版を入れて自分で調べるしかないのかな。
>>686 おねがいですから主な変更点をかいつまんで要約してください
どうでもいいけどもうこれからはBCBじゃなくてCCBになるんだよな。 BからCにあがったから次はDCBとかになったりするのかね。
じゃあ、20年後くらいには、JCBになっちゃうな
PCBとかw
CCBってツェツェバエの略号みたいだなw
マニアック杉
僕のロマンティックも止まりません
いや、もう止まって消えた
∧,,∧ニャン CPPB? ,,∩ミ,,゚Д゚彡 C++B CGCB ⊂ミミ ∩ ミつ ((○ ゴロゴロ  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ツェツェバエTsetse fly はCCBじゃないけど・・・
別スレで質問してしまい、こちらが質問の本スレと教えていただいたので書かせていただきます。 どなたかご存じの方おりましたら教えてくださいm(_ _)m Borland C++Builder 5 を利用して作成したシステムなのですが、 Oracleとの接続でDOA(Direct Oracle Access)を利用しています。 このシステムが速度が遅いという事で速度向上をしようと考えているのですが DOAでバインド変数を使用した検索って可能なのでしょうか? かなりループ処理が多いのでバインド変数に変更して速度向上したいと 思っているのですが。。
しゃーねーな俺が教えてやるよ 可能だ! ってかオラクルってなに?
オラ悟空だ!
>>698 思い切って処理をストアドに移植して回すとか。
702 :
698 :2007/06/19(火) 16:10:54
>>701 様
ソースコードが相当長い(5万ステップ程度)あるので、ちょっと移植は厳しいです。。
なるべくロジック部分はいじらずにチューニングしたいのですが、ほとんど主キーでの単表検索を
行っているのでインデックスによるチューニングも出来ない状態です。。
今何をどうやってんのかわからんけどさ、 本当にそこがボトルネックなら、SQLの投げ方からきっちり再検討するのがベターじゃね?
705 :
698 :2007/06/20(水) 08:22:31
>>704 様
情報ありがとうございます。
初めて見るページでした。
SELECT文には割り当て出来ないのでしょうか?
INSERTはそれほどボトルネックになっていないので出来ればSELECT文に
対してバインド変数を使いたいのですが。。
707 :
698 :2007/06/21(木) 06:38:37
>>706 様
ありがとうございます。
そうなのですか、大量ループを行っているので時間短縮されると
思っていたのですが、それほど効果は無いのですね。。
2007来ました。が、Boost.Randomのサンプルコード(さいころのやつ)からいきなり動かない。 常に1が返ってくるんだけど、設定が悪いの?コンパイラが悪いの?
>>708 ああそれBDS2006に含まれていたBCC5.8.2と同じ症状だわ。
2007はBoostへの対応を強化したとパンフには書いてあったけど
結局あんまり変わらんのね。
BDS2006でgdiplus.hがエラー出してくれやがるんですが回避方法知ってる人居ませんか [C++ エラー] GdiplusGraphics.h(34): E2015 'Gdiplus::Graphics::Graphics(void *)' と 'Gdiplus::Graphics::Graphics(void *,int)' の区別が曖昧
Graphics(IN HWND hwnd, IN BOOL icm = FALSE) ↓ Graphics(IN HWND hwnd, IN BOOL icm/* = FALSE*/)
712 :
710 :2007/06/21(木) 17:13:04
それも試したけど状況変わらないんだよね…
713 :
710 :2007/06/21(木) 17:14:23
と思ったら2箇所あったのかー! 両方コメントアウトしたら動いたよありがとー!
んなわけない。FromHWND(IN HWND hwnd, IN BOOL icm = FALSE) のほうを直してんじゃないか。
遅かったか。↑は無視してくれ。
716 :
708 :2007/06/21(木) 17:19:52
>>709 ありがとう。2006は殆ど使ってなかったから知らなかった。
random_test.cppはコンパイルすら通らなかったから調べてたら、
わかんなくなってきちゃった。
関数テンプレートをフレンドにしたいのに、
うまくいかないケースがあるみたい。
これって、どこかにtypenameとかtemplateとかつけないといけないんだっけ?
下にソース置かせてもらいます。
,-ー──‐‐-、 ,! || | !‐---------‐ .|:::i ./´ ̄ ̄.ヽ.i |::::i | |\∧/.|..|| |::::i | |__〔@〕__|.|| |::::i |.(´・ω・`).|| |::::i | キング || |::::i | カワイソース.|| |::::i L___________」| |::::i : : : : : : : : : | `'''‐ー------ー゙
718 :
708 :2007/06/21(木) 17:23:31
template <typename T> class B { T t_; }; class A { int i_; template <typename T> friend int f(const B<T> &, const A &); template <typename T> friend T g(const T &, const A &); template <typename T> friend T h(const B<T> &, const A &); }; template <typename T> int f(const B<T> & x, const A & y) { y.i_; return 1; } template <typename T> T g(const T & x, const A & y) { y.i_; return x; } template <typename T> T h(const B<T> & x, const A & y) { y.i_; return x.t_; } int main(int argc, char* argv[]) { A a; B<int> b; f(b, a); g(b, a); // h(b, a); // friendにならない }
>>718 boostの問題は知らないけど、その例だと
class Bでも関数hをfriend宣言する必要があるんじゃ?
720 :
708 :2007/06/21(木) 18:00:52
>>718 あぎゃ、仰るとおりです。
問題点を抽出する途中で混乱してしまいました。
もう一回整理して出直してきます……
721 :
708 :2007/06/21(木) 18:05:49
直してきました。関数hはこれで。 (また何か勘違いしているかな、ドキドキ。) template <typename T> B<T> h(const B<T> & x, const A & y) { y.i_; return x; }
なるほど…。clやgccはもちろん通るけど、bccだと駄目だね。
こう? template <typename T> friend B<T> h(const B<T> & x, const A & y); ↓ template <typename T> B<T> friend h(const B<T> & x, const A & y);
ちょっと豚どもおしえてください
普通にopenして書き出したファイルの属性って読み書き可能だよね? なんかGDI+呼ぶようにしてから急に読み出し専用で保存されちまうようになったんだけど関係あり?
関係ありかって聞いてんだよ!!
早く教えろ!
>>710 これって、
#define STRICT
するのはダメなの?なんか副作用でる?
自己解決しますた、豚ども
>>728 BDS2006はそれだけじゃ解決しないみたい
731 :
708 :2007/06/22(金) 15:19:11
>>723 ほ、本当だ。コンパイル通った。なぜ?
これ2007だけの現象じゃなくて、bcc系はずっとそうみたいですね。
2007(bcc32 v5.90)って何が改善されているんだろう……
C++Builder2007で作成したプロジェクトをC++Builder5で使いたいのだが、 エラーになる(プロジェクトのプロパティエラー??)。 何か方法はないだろうか?
C++Builder6をアップデートしたいのだが、codegear以外で入手する方法はないですか? ユーザ登録してもダウンロードできないので困り果てております。 昔は普通にダウンロードできたのになぁ〜。
>>733 普通にログインして落とせたが‥‥
CDNのアカウントはアクティベーション時に登録した奴で。
735 :
デフォルトの名無しさん :2007/06/30(土) 04:02:40
BCBとは直接関係ない質問で恐縮ですが、 WindowsXP上でアプリケーションからハードディスクドライブの 制御を行いたいと考えているのですが、過去ログ、Web等からは 実現方法に関する情報は得られませんでした。 具体的にはアプリケーションからユーザアクション(ボタン押下等) によりハードディスクのヘッドを電源断してもクラッシュしない 安全な位置に退避させたいのです。 どなたか情報をお持ちでしたらご教授の程、宜しくお願い致します。 以上、宜しくお願い致します。
今のHDDは昔と違って不意の電源切断時にヘッドが自動的にリトラクトされる構造になってたはずだが。
退避できたところでOSのサービスとかが勝手にアクセスしてすぐ動き出すだろ 物理的にSSDでも使うのがいいんじゃないの
MLとのマルチポストだぜこれ。
>>734 落とせない。
CDNのアカウント登録しても落とせない…。
BCB2007を購入しろということかなぁ。
741 :
デフォルトの名無しさん :2007/06/30(土) 18:02:44
ところで、ユニット増やしすぎると クラスBEVELが見つかりませんとか言われね。 BCB2006っす。 ユニット全部開くとコンパイル通るけど。
742 :
デフォルトの名無しさん :2007/06/30(土) 21:09:04
>>735 MLの方で解決しただろ。
物理的にはオートリトラクト、論理的にはNTFSのジャーナリング、電源を切っても問題ないと。
>>740 ありがとう。
でも、どうにもならなく、結局サポートに連絡することにします。
俺はC++Builder4の頃からずっと買ってるからその頃からパスワードも メールアドレスも変わらない。 回線は増強したけど
BorlandC++5.0からずっと買ってるんだけど あんまり考えたくない金額をお布施しているよなぁ
746 :
デフォルトの名無しさん :2007/07/06(金) 00:43:57
C++Builder6を使っているのですけど。 最近WEBとか文字列入力するところで(例えばスレッド書き込みで名前の入力欄)、 境界線青、背景白のエディットボックスがあるのですが、 TEditコンポーネントのプロパティをいじっても実現できません、 実現するためにはどうしたら良いでしょうか。 知っている方はよろしく、教えていただけたらと思います。 よろしくお願いします。
>>746 ブラウザのエディットコントロールはWindowsコントロールじゃなくてブラウザが独自に処理してる。
TEditにオーナドローするしかない。
XPならmanifest
749 :
デフォルトの名無しさん :2007/07/06(金) 10:28:16
ウインドウの最小化とか最大化を出来ないようにしたいんだけど、 ウインドウの右上に出てくる最大化とかのボタンは消せたんですが、 ウインドウのタスクバーから右クリックで最大化、最小化できたり タスクバーをダブルクリックでウインドウ隠せたりできてしまうんですが これらの抑止ってどうすればいいんでしょうか? タスクバーのクリックのイベントを無効にする処理とかってあるの?
最大化は抑止出来ても 最小化は無理だろ・・・
最大化も最小化も抑止は可能。 最小化は、 TApplicationEventsのOnMinimizeに最小化を押されたときの処理を書けばいい。
WM_SYSCOMMANDのSC_MINIMIZEを捕らえる。 ミ田+Dには対抗できんが。
あとさ、「デスクトップの表示」を実行したとき、もあるぜ? そのアプリだけ残ってるのは邪魔だべ
デスクトップの表示 = ミ田+D
最近のversionにはWinSight付属してないからなあ。 自アプリに流れてくるメッセージを 全て列挙するようなプログラムサンプルがあれば デスクトップの表示 = ミ田+D キー ミ田+M キー の対応も簡単にできそうだね。
ミ田+Dは、最小化に加えてデスクトップが全ウィンドウの前面に来るとかなんとか
Form上のPanelにImageを動的に作成して配置してます。 (ソースは要所のみ) Graphics::TBitmap *bmp = new Graphics::TBitmap(); TImage *img = new TImage( this ); img->Picture->Assign( bmp ); img->Parent = Panel1; このImageを削除する方法がよく分かりません。 img->Parent = NULL; delete img->Picture->Bitmap; delete img; これではアプリ終了時にAccessViolation例外が出てダメみたいです。 誰かご存知ないですか?
親(Panel1)が削除される時に、子(img)も削除される。 imgが削除されるときにimgが保持するリソース(Picture)も削除される。 要は何もしなくていい。
終了時だけでなく、任意のタイミングでimgを削除したいという事なら、delete img;だけでいい。 親子関係の解消やリソースの解放は、勝手にやってくれる。
760 :
757 :2007/07/10(火) 13:00:30
先ほど書き忘れましたが、BDS2006のC++Builderを使っています。
>>758-759 imgをdeleteするだけで他は処理しないようにすると、アプリ終了時の例外は発生しないんですけど
CodeGuardがリソースリークを報告してくるんです。
2007/07/10 12:47:14 CodeGuard(tm) プロセスを開始しました: test.exe(2776)
リソースリーク 処理中: test.exe(2776) - system.pas#2649
メモリブロック (0x12C1380) が解放されていません。
メモリブロック(0x012C1380) [長さ: 32 バイト] は SysGetMem によって確保されました。
0x00448336 - system.pas#2649
0x00466853 - Graphics.pas#1969
0x00466F9E - Graphics.pas#2313
0x00496DCC - Controls.pas#10002
0x00496364 - Controls.pas#9713
0x0047F2DF - Forms.pas#8015
自前で何かを開放してあげないといけないような気がしているのですが、それが何か解りません。
もう少し調べてみることにします。
>Graphics::TBitmap *bmp = new Graphics::TBitmap(); このbmpってローカル変数?クラス変数? 話はそれからだ。
delete bmp 追加で
img->Picture->Assign( bmp ); は、imgがbmpを保持するようになるわけじゃないから、 (たぶんこれを勘違いしてるから、delete img->Picture->Bitmapなんてしてるんだと思うが) imgとbmpはそれぞれ削除しれと。
764 :
757 :2007/07/10(火) 14:38:34
>>763 の指摘どおり、勘違いしてました。
解決したよありがとお!
VCLのクラスを使うにはnewをしないといけないようですが、 newするたびにbad_allocをcatchするのが普通ですか?
>newするたびにbad_allocをcatch 何で必要なんですか?
VCLクラスの場合はbad_allocじゃなくてEOutOfMemoryが飛んでくるぽい
>newするたびにcatch C++のnewでは要るという話はありますが、過去一度もそういうコードを見たことありません。
769 :
デフォルトの名無しさん :2007/07/11(水) 14:51:04
でっかくメモリ確保するところだけtry-catchしてますが。
>でっかくメモリ確保 これって、VCLクラスのnewとは別の話でしょうが。
__finally
MDI子窓に持たせたTSoketServerで通信を行っているのですが 複数のMDI子が同時にデータを受け取った場合並列処理はなされていないのでしょうか?
うむ
StrToFloatで例外が発生した後、メモリリークが出るんだけど これはStrToFloatを使うなって事ですか?
atofはダメなん?
例外させないようにすれば?
strtodにしますた
ところでみんな2007買ったのか? ここしばらくVS2005ばっかりつかってて 久々にVista上でBCB6起動したら あまりの軽さに また好きになってしまったw MFCもめんどくさいし CLRはもっさりしすぎ BCBはバランスとれてるなあ でも2007のアップグレード価格高杉
俺は結局買わずじまいだ BDS2006ですら持ってても使ってねーし BCB6の使用期間が長すぎて離れられん(´・ω・`)
一回離れちゃえば何のことはないよ。 俺は2006から2007へバージョンアップした。 軽くなった。安定した。.NET2.0は1.1より安定しているらしい。 ヘルプもなんかオンラインヘルプとかあるみたい。 内容も少し変わって見やすくなったような気がする。
なんでエディタの分割表示を導入しないんだちくしょうめ
BCB6でなんも困らん
2007でBDEとか無くなったりしてないよね? もしBDEが無くなってるんならBCB6から離れられない。
BDEはあるよ。 InterBaseもあるよ。
785 :
783 :2007/07/18(水) 11:05:18
>BDEはあるよ。 安心しました。 QuickReportについては先日やっと廃棄した。
BDEはもっと早めに縁を切っておくべきだったねぇ メリットないしなぁ
>メリットないしなぁ どのDBでも繋がるお。
俺もBDE使ってるけど、他には何が良いの?
C++BuilderにRuby組み込めないですかね?
BDE/Paradoxの代替でお手軽なのはFirebirdのEmbeddedかな?
>他には何が良いの? BDEが存在しなかったら、 DAO->RDO->ADO->ADO.NET と、延々とDBエンジンへのコードを書き換え続けなければならなかった。
で、BCB6マンセーなんですが、Vi$taでBCB6は動作しないんでしたっけ? D200Xは買ったけど、C++200Xは買ってないお。
>>792 インストールとか、管理者権限付きで動作させれば動いた。
すぐにXPに戻して、Vistaではちょっとしか動かしていないから保証は出来ないけど。
794 :
792 :2007/07/19(木) 09:37:58
安心しますた
>>793 とりあえず、Vi$taで使っといて、時期を見てVerうpすれば良いですね。
まぁ、BCBで大規模なアプリなんて作らないから、BDE/Paradoxで十分だよね
日本語でおk
dbExpressはみんなつかわにゃいの?
BCB+ProCでOracleDB扱ってた漏れはたぶん猛者 (いまはDirectOracleAccessにした)
俺もBDE/ParadoxのTable操作でSQLなにそれ状態なんだが
>>797 ノシ
SQL鯖にアクセスしたら、やたら遅くていじめられたww
>>798 mjsk?
確かに、ライブラリはCOFF2OMFなりIMPLIB使えば何とかならなくはないような気がする。
今度やってみよう
801 :
デフォルトの名無しさん :2007/07/20(金) 19:09:05
>>798 Pro*C使いか・・・確かに猛者だなw
理工系でもないのに、Prologを扱う科目をとってしまいました。まったくわかりません。どうかご教授ください。 観光地([笠気不動滝,滝,三重県,紀勢町,'JR柏崎駅',0]). 観光地([飛雪の滝,滝,三重県,紀宝町,'JR新宮駅',0]). 観光地([布引の滝,滝,三重県,白山町,近鉄東青山駅,0]). 観光地([布引の滝,滝,三重県,紀和町,'JR熊野市駅',0]). 観光地([六十尋滝,滝,三重県,宮川村,'JR・近鉄松阪駅',0]). というデータから、以下の四問が答えを導く道程なのですが意味がまったくわかりません。どうか教えてやってください。 (問1) fee0:-観光地([A,B,C,D,E,0]),ppj(A,40),ppj(B,30),write(C),nl,fail. fee0. (問2) g(N) :-line(40),観光地([A,B,C,D,E,F]),F>=1000,ppj(A,30),L is F/100,tab(L),write(*),nl,fail. g(N).
(問2) g(N) :-line(40),観光地([A,B,C,D,E,F]),F>=1000,ppj(A,30),L is F/100,tab(L),write(*),nl,fail. g(N). (問3) lis(P) :-地域(関西,AREA),観光地([A,B,C,D,E,F]),member(C,AREA),ppj(A,45),ppj(B,30),write(C),nl,fail. lis(P). (問4) klist:-観光地([A,B,C,D,E,F]),check(B). klist. check(B) :-d(B),!,fail. check(B) :-assert(d(B)),tab(10),write(B),nl,fail.
まず、このスレに来た動機を聞こうか。
理工系でもいまどきやらね
Cやアセンブラはすぐ理解できたがPrologだけはマジ判らなかった。
807 :
デフォルトの名無しさん :2007/07/21(土) 00:52:25
BRAINFUCKとPrologはどっちが難しい?
Prologはただのデータベースだよ。 SQL文使ってる奴ならすぐ理解できる。
BCBでPDFファイルを作成するのに、皆さんどんなコンポーネント使ってますか?
811 :
810 :2007/07/22(日) 01:04:49
スマソ、コンポでは無い
コンポつてんだろっ!”!
必要なファイルが足りない等で __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } から強制的にプログラムを終了する方法はありますか?
プログラムを終了する方法はねーかって聞いてんだよ!
Application->Terminate(); はどうよ? 他の手として、 void __fastcall TForm1::FormActivate(TObject *Sender) で、 Close(); する手はあるけど。
>必要なファイルが足りない等で >から強制的にプログラムを終了する方法はありますか? >プログラムを終了する方法はねーかって聞いてんだよ! ↑ 民度ひくい
質問した時間が悪かったな。 今は夏厨しかいないや・・・
夏厨がウザすぎるぜ。ヤレヤレ
礼儀を知らない夏厨は放置が原則 答えても礼もないし、むしろ的はずれな文句言われてむかつくだけ。
へんなのが湧いてて書き込みにくくなったってのもあると思うがw
824 :
デフォルトの名無しさん :2007/07/25(水) 19:38:30
TImageListからTImageに画像をコピーする方法を教えてください
ImageList1->GetBitmap(index, Image1->Picture->Bitmap); こんな感じかの
>>825 早速のお答えありがとうございます!!!
まさにそういうのを求めていました!
やってみます。ありがとうございました!
>>813 815とは別の方法だが、起動直後に必要なファイルを検査するのなら、わざわざフォームのコンストラクタまで来ずとも
WinMain()でファイル検査→ファイル不足検出→try節に入らず終了
で十分じゃないか?
BCB6で設計時のカレントディレクトリはどこになるのでしょうか。 Embedded Firebird使いたいのですが、Embedded Firebirdのgds32.dllをプロジェクトのディレクトリの放り込んでも オブジェクトインスペクタでDBアクセスする操作を行うとunaviableエラーが出て操作不能になるのでどこにgds32.dll他を放り込めばいいのか分からず苦戦しています (ソース上での操作は問題なし、実行時はFirebirdは正常に動作しています。)
追記、InterbaseExpress、dbExpressともに同じ状態です。
>>827 コンストラクタから終了する方法を聞いてるんですよしんでください
>>831 簡単に終了する方法あるけど態度が気に入らないから教えてあげない
>>832 大丈夫!そういう奴に限ってほんとは知らないって事を僕は知ってるから!
俺ってホント優しいよね
VFW詳しい人教えて WebCamの映像を見るだけのアプリ作っているんだけど カメラの解像度を変更する方法がわからない Panel1(640*480)に表示するようにしているんだけど低解像度(320*240)の画像が引き伸ばされるだけ capCreateCaptureWindow( "Window",WS_CHILD | WS_VISIBLE, 0, 0,640 , 480, Panel1->Handle,NULL); capDriverConnect( HWcama, 0 ); capPreviewRate( HWcama, 66 ); capPreviewScale(HWcama, true); capPreview( HWcama, TRUE ); どこかでどう設定すればよいでしょう
カメラの解像度なんて変えられるのか?
まあカメラの解像度以上には出来ないわけで
>829 実行プログラムの存在する場所でいいはずだけど。gds32.dll以外のファイルもちゃんと配置してる?
>>838 BCB\bin\とプロジェクトのディレクトリの双方にFirebird-2.0.1.12855-1_embed_win32.zipの中身そのまま置いてるんですが駄目です。
適当な空コンポ作ってGetCurrentDirectoryしてみないと駄目かなぁ
自己解決したよ。おまいら役立たず。
841 :
デフォルトの名無しさん :2007/07/27(金) 10:14:00
C++Builder1のTListViewでリストの文字色を変更する方法を教えてください
何で1なのか。 まずはその理由を聞こうか。
843 :
デフォルトの名無しさん :2007/07/27(金) 18:19:53
1しか持って無いんじゃないの もう1のCDどこいったかワカンネ
840みたいに事故解決しろよw フォントにバカだな カラーを変更するとか この程度のことで 質問すんなハゲwww
>>842 1じゃなくてもいいですので教えてください
OwnerDrawでTextOutする
>>842 わざわざバージョンを明記したのにそこに突っ込む理由を教えてください
予知能力者出現
BCB6以降しか持ってないから答えられんな
>841 OnCustomDrawItemでCanvas.Font.Colorを変更、というのがDelphiでの定石だけど、 C++Builderの1で使える手なのかどうかは知らん。
Listviewはほんとよーわからんね
頭悪いだけじゃん。
VirtualListViewサイコー!
無知はなんでも「これでいい」って思っちゃうからな。 モノを知らないから、優れた物と目の前のものを比較できない。
ListView重いからな 色々余計な機能がついてる 通はListBoxを改造しれ
859 :
デフォルトの名無しさん :2007/07/28(土) 14:11:07
>>853 1と3で色々試してみたけどダメだった。
5では呆気なくできた。
860 :
名無しさん@そうだ選挙に行こう :2007/07/29(日) 00:50:12
borlandでclapackを使いたいのですが, libファイル(blas clapack libF77 libI77)をパスの通ったLibフォルダにいれて, hファイル(clapack f2c)をIncludeフォルダにいれてからコンパイルしても, 外部シンボルが未解決ですってエラーがでてうまく使えません. extern "C"{ #include "f2c.h" #include "clapack.h" } もソースに入っています. VC++での使い方ならいろんなところに書いてあるんですが,, 何が悪いんでしょうか?
パスが通っていないんだろ。 フルパスで指定してエラーがなくなるか確認すべし。
862 :
名無しさん@そうだ選挙に行こう :2007/07/29(日) 01:14:42
bcc32.cfgが -I"C:\borland\bcc55\Include" -L"C:\borland\bcc55\Lib" ilink32.cfgが -L"C:\borland\bcc55\Lib" となっているんですけど,これじゃまずいですか?
ていうか、放り込んだだけじゃ駄目なんだけど。 コマンドラインから指定するとか、pragma commentにするとか(f2c.hにあったら知らんけど)。 そもそも.libの形式が同じかどうかも怪しいし。 (zlibなんかはbcc用を別に用意している)
COFFならOMFに変換せにゃあかん
865 :
名無しさん@そうだ選挙に行こう :2007/07/29(日) 02:24:39
coff2omfはインポートライブラリしか変換できない で、embeddedFBの件ですが起動用ショートカットでカレントディレクトリ変更してたのすっかり忘れてた/ 。゚ 3 `ヽーっ ショートカットで指定したディレクトリに放り込んだらあっさり動作。
最近VCLのクラス検索してると、ほとんど同じ構成の酷似クラスが .NET Frameworksに多数存在してて、そっちが引っかかって まともにBCBの情報が得られない件について・・・。 自分の検索キーワードのボキャブラリの無さを呪うべきなのか、Microsoftのパクリを呪うべきか。。。
そりゃ、作った人が同じだからなー
CLXのときもそんなことあったな
CLXのヘルプは即外しました。
C#は言うなればDelphiとJavaのいいとこ取りみたいな言語だからなあ そりゃ開発された時期と中の人を考えれば当たり前と言えば当たり前 なんだが・・・・ おまけにVCLより後から開発されただけあってずっと精錬されていると 来ている。これがVB.NETでもほとんど同じ恩恵にあずかれるというの だから恐ろしい。
役に立たないなおまえらって
実はC++Builderなど使ったこともない
874 :
デフォルトの名無しさん :2007/07/30(月) 21:23:09
BCBやってると仕方なしにObjectPascalさわることはあるけどDelphiはやりたくない。。
おれはC++はやりたくないけど顧客が指定するから仕方なく使ってる。 ほんとはDelphiだけでやれればどんなに楽か・・・
子供なんだから楽なほう使え
DelphiにSTLが付いてくれれば。。。
Delphiでクラスとポインタが使えれば。。。
アロー演算子の入力が面倒になる事があります
Delphiでキーボードについた精子を綺麗にできたら。。。
>878 \ ∩─ー、 \/ ● 、_ `ヽ / \( ● ● |つ | X_入__ノ ミ 俺は釣られないクマ ・・・ 、 (_/ ノ \___ノ゙ / 丶' ⌒ヽ::: / ヽ / /::: / /へ ヘ/ /::: / \ ヾミ /|::: (__/| \___ノ/:::
デルフィはポインタ使えるし暮らすも使えますyo!!!!!111!11!!
デルファイですよ
デルフォイ最高!
地中海の「デルフィー島」から命名されたんだから デルフィーが正しい
いやBorland(CodeGear)自身も言ってるからデルファイで正しい
デルッピでしょ?
でるぷひぃ
しーぷらぷらぶるだーだわばか
ほら、おまいらのせいでぶるだーつっちまっただろ
おまいら華麗に釣られすぎだろw
893 :
デフォルトの名無しさん :2007/08/04(土) 07:55:13
オッチャスレかと思ったよ
そういえば、Vista 64bitアプリはいつから作れますか?
その気になればもう作れます
そういえば、.NET2.0のアプリはいつから作れますか?
その気になればもう作れます
その気にならないと出来ないのでしょうか?
はい
NTFSのファイル情報を取得したくていろいろ調べたところ IPropertyStorageを使うらしいことが分かったんですが どう使うか分かりません。 IPropertyStorageの使い方やサンプルコード等ありましたら教えてください
はい
>>902 ごめんなさい
それがわかんないんです
COMの作法を教えて欲しいです
// COMの初期化 hResult = ::CoInitialize(0); // CLSIDとIIDからオブジェクト作成 hResult = ::CoCreateInstance((REFCLSID) CLSID_NetFwPolicy2, 0, CLSCTX_INPROC_SERVER, (REFIID) IID_INetFwPolicy2, (LPVOID*)&fwPolicy2); // COMの終了処理 ::CoUninitialize();
COMも使えんとはこむった奴だ
そんなつまらんだじゃれ言われたらへCOMわ
COM野郎、喧嘩売ってんのか
COMの作法=コムサ法(COMME CA Method)
せCOMしませんか?
C++Builder4でコンパイル時にNMUEE.hpp、Psock.hppが下記の所でエラーになって通らないんですが static const char CR = '\xd'; static const char LF = '\xa'; 書き換える以外に対策方法はありますか?
どんなエラーなのか書けよ
912 :
910 :2007/08/09(木) 09:23:10
E2040 Declaration terminated incorrectly. というエラーです。
>>912 エラーメッセージは、宣言が正しく終わっていないというものらしいけど
よく見るとconstの2重定義だな。
#ifndefで回避するかコメントアウトするか好きなほうで
914 :
910 :2007/08/09(木) 12:13:07
>>913 やはり書き換えるしか方法が無いんですね
ありがとうございました。
>>910 のコード、BDS2006のPsock.hppでもそのままだな
Borlandオhル
910のコードに問題はない。名前空間で分けられてるから、2重定義にもならない。 考えられるのは、どこかでCRやLFが#defineで定義されていること。 これならエラーコードも912と一致する。
918 :
デフォルトの名無しさん :2007/08/14(火) 03:15:36
register.borland.com が繋がらないんだが、 BDS2006とかC++Builder2007とかは、 使用許諾コードは別経由で取得できるの? 使用許諾コードが突然打ち切られることを 考えるともうC++Builder2007とか買う気失せるんだけど
買わなくてよいよ
>>918 一度取得すればローカルHDDにライセンス情報のファイルが保存されてたと思う(TurboC++ Explorer)
BCB10や2007も同じかは分からんが
BDS2006のプロフェッショナル持っているけど、 C++Builder2007だけでバージョンアップ代3万かかるってちょっとどうなの? って感じがする。 BDS2007なら払っても良いのに。
いまだにBCB5で満足してる俺。 新しいのってなんかいいことあるの?
俺も BorlandC++Builder5Pro と Delphi6Personal 使ってる。
5よりは6の方が好きだ
927 :
デフォルトの名無しさん :2007/08/19(日) 01:17:47
C++BuilderってVC++MFCより全然使いやすいのに VC++に勝てないのはなぜ?
速度が遅い 古くさい
弱小事務所のタレントみたいなものだね
D6とBCB6の組み合わせがベスト
>>927 BCB6以降はしらないけどBCB5まではエディタが使いにくい。
このこだわったエディタの操作性がBorland離れさせたんじゃないかなーと思う。
未だに長いソース書くときは別のエディタで書いて、BCBでデバッグみたいなことやってる・・・。
慣れ+知識の問題
>>927 「MS製じゃない」
日本じゃこれが重要(*‘ω‘ *)
日本人の感覚ではありえないことしてたからなぁBorlandは・・・。 インストーラーにバグあるのが当たり前の時期あったし。
最近はM$のIDEも重くてなぁ VC6が一番使いやすい。
EclipseなんてPen3じゃもっさりしすぐる でも環境移行とかまんどくさい
IDE重いとか関係なくね? BCBのは重さよりも操作性 ・複数行インデント無し ・無慈悲なアンドゥ(直前の状態へ戻らず大雑把に戻る)。 ・カーソル移動しただけでリドゥ不可。 ・変なHOME・ENDの挙動 だがBCBを愛している。
あれ?6だけど行選択してTabで普通に複数行インデントできるぞ?
インデント/アンインデントは昔からCtrl+Shift+IとCtrl+Shift+Uで出来るんじゃね?
BCB5はでけへんよw
3でも出来るのにか
できたwwww ちょww5年以上つかってて知らんかったw
テラカワイソスwww
で、でも操作性おかしいじゃん!? CTRL+SHIFT+Iとか! 俺もう帰る!!うええええん><
色々とユーザーが工夫すればなんとか改善するんだけど、なんかねぇ 高速化プラグイン入れないとアホみたい重いし
VCエミュレーション選べばできたような
だから慣れと知識の問題だっていってんだろ
>>948 こいつはなんなんだ?
おまえは大規模開発経験してないだろ
>・無慈悲なアンドゥ(直前の状態へ戻らず大雑把に戻る)。 ブロック単位UNDOをオフにすればいいよ。
知識のなさをIDEのせいにするバカばっか
それよりも分割表示の実装を本気でお願いします
>>951 知識以前に使いにくいのには変わりはない
独自仕様を貫いてきたAppleですらMSの操作に近づけているというのに
まぁ、BCB5/6辺りのIDEはマジで品質悪かったよな その後は使い込んでないから評価出来ないけれど、改善しようとする意気込みだけは感じられた
慣れれば天国
956 :
デフォルトの名無しさん :2007/08/21(火) 02:43:41
そうか? ポトペタ環境がどうも気に食わん
フォームのエディットにアンドゥが欲しい
>>953 しつこいな。だから慣れの問題だっていってんだろうが。
おまえがM$に慣れてるというだけの話。VBに戻れよ。
┐(´ー`)┌
Swingのアプリが使いにくいとか、そういうのと同じ違和感だからなぁ 機能的はほぼ問題ないけど、やっぱ使いにくい
BDS2006でCOMのオートメーションサーバーとか作って再構築すると >[C++ 致命的エラー] xx.cpp(xx): F1004 コンパイラ内部のエラー at xxx とかでる。exe出力するフォルダのファイル削除したら直るので たんに登録したCOMのexeとかを消すことができないだけっぽいって既出?
962 :
961 :2007/08/24(金) 23:00:58
と、思ったけど違うっぽいね
Borlandは営業が甘いんだろうなー
964 :
デフォルトの名無しさん :2007/08/26(日) 08:26:28
キーのカスタマイズは永遠に実装されないのか?
DelphiからCBuilderで作ったクラスを 使う方法ありますか?(逆は出来るんですが...)
かきなおせおk
COM
すみません。 C++Builder2007をインストールしたのですが C++Builder6までは多分あった、Examples(いろいろなコンポーネントを使ったサンプルプロジェクト) フォルダが見当たらないのですが、無くなったのでしょうか? それとも別途インストールなのでしょうか?
970 :
デフォルトの名無しさん :2007/08/29(水) 22:53:47
なんで7,8万もするんだよ!
971 :
デフォルトの名無しさん :2007/08/29(水) 23:08:49
だな。 Professional 版は 19,800円ぐらいでいいだろうに。
>969 C:\Documents and Settings\All Users\Documents\RAD Studio\5.0 このへんにありません?C++Builderはもっていないんであてずっぽですけど。
BDS2006だと、このあたりでした。 C:\Program Files\Borland\BDS\4.0\Demos\CPP\Apps
誰も持ってないのかよっ!
>>969 うち Vista だけど,スタートメニューに Demos へのショートカット入ってるよ.
だって6Proで十分だもの
俺も5proで十分だなあ 4のラーニングもあるけどpro版限定のコンポーネントが欲しいと思ったことは無かった
6Proが一番しっくり来たな パッケージも含めて
BCB6proは手放せない。 Del7proは良く出来てるけどやっぱC++まんせー。
6Proって5より更にコンパイルした実行ファイルのサイズでかくなった?
BCB6proはvistaで動く?
BCB6のユーザー登録はがきを出して無い人は切手のところを見てみ
TThreadを使用したプログラムについて詳しく説明されているサイト等はありませんか? 付属のExampleだと判りにくいもので・・・
>>983 Delphiならぐぐればあるような気がする
BCB6pro最強伝説
年末になれば、2万円以下で C++Builder 2007 の売れなくなったパッケージが並ぶだろう。
988 :
デフォルトの名無しさん :2007/08/31(金) 00:37:58
使用許諾コードの取得 を取得しなくても使えるんだけど?
もう少し既存コンポーネントの改良をしてほしい
990 :
デフォルトの名無しさん :2007/08/31(金) 00:55:01
自前で作ればいいだけじゃん
もう完全に投げてるんだから、改良も糞もないよなぁ
エディタの分割を…
むしろ5と6持ってるが、あんま違いがわからんからそのまま5を使ってる
6はどうでもいい関数が増えてる BDS2006でもどうでもいい関数が増えてるぞ!
5は、仮想リストビュー使用時に、メモリが開放されないバグがあったぞ、確か。 俺も5と6持ってるが、せっかくだから6使ってる。
6ってプロジェクトファイルいじると起動しなくなるから嫌だ。
997 :
デフォルトの名無しさん :2007/08/31(金) 20:47:02
6はエディタのバグも直ってるし、やっぱり6がいい
>>996 いじり方が悪いんだろ。不要な物がよく混じるから
しょっちゅういじってるが。
マイクロソフトマンセー VC++マンセー
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。