C++Builder相談室 Part17
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2006/11/08(水) 02:01:27【前スレ】
C++Builder相談室 Part16
http://pc8.2ch.net/test/read.cgi/tech/1138766165/l50
過去スレ・関連サイトは>>2-7あたり。
※Borland C++ Compiler 5.5.1についての質問は以下のスレへ
タダで使えるBorland C++ Part4
http://pc8.2ch.net/test/read.cgi/tech/1091066805/l50
※BDS(Borland Developer Studio)の総合スレはこちら
Borland Developer Studio 2006 No.10
http://pc8.2ch.net/test/read.cgi/tech/1162262669/l50
0246デフォルトの名無しさん
2007/03/29(木) 09:51:10過疎または隔離スレで誰も見に来ないのか、それとも質問が幼稚過ぎなのか・・不安なので
よろしくです。
くだすれC++Builder(超初心者用)その3
http://pc11.2ch.net/test/read.cgi/tech/1171219191/22-23
0247デフォルトの名無しさん
2007/03/29(木) 12:30:34手順の説明が足りませんでした。すみません。
BCB起動→新規作成→アプリケーション→あるコンポーネントをフォームに配置→実行→何もせず終了
で、終了時にEAccessViolationが投げられてしまうんです。
TButton, TEdit, TMemo等を配置しても、この例外は投げられませんでした。
0248デフォルトの名無しさん
2007/03/29(木) 12:34:37CodeGuardつけてみたら?
0249デフォルトの名無しさん
2007/03/29(木) 19:06:35逆にCodeGuardつけてるからだったりして。
BCB6で Update#4 入れるとCodeGuardがバグるらしいぞ。
0250デフォルトの名無しさん
2007/03/29(木) 22:50:52CodeGuardを有効にしてみましたが、相変わらず終了時に例外が出るだけでした…
0251デフォルトの名無しさん
2007/03/30(金) 10:45:48これをTLabelのAlignmentのように位置を変更する方法を教えてください
0252デフォルトの名無しさん
2007/03/31(土) 09:16:11> TFormのキャプションの表示位置は常に中央ですが
えっ?
0253デフォルトの名無しさん
2007/04/01(日) 11:12:32空白でも入れて調整しろ
0254デフォルトの名無しさん
2007/04/01(日) 11:39:23それなんてWindows3.1?
0255デフォルトの名無しさん
2007/04/02(月) 10:13:40しっかしおまえらって糞の役にも立たないよな
0256デフォルトの名無しさん
2007/04/02(月) 11:14:360257デフォルトの名無しさん
2007/04/02(月) 11:29:550258デフォルトの名無しさん
2007/04/02(月) 11:46:10でも、ユーザーの要求でBCB6でいくことが決まってしまいました。
とりあえずはBCB6でコンパイルできるようになればOKなんですが
何かプロジェクト変換ツールでもないでしょうか?
0259デフォルトの名無しさん
2007/04/02(月) 11:49:570260デフォルトの名無しさん
2007/04/02(月) 11:58:41IDETOBPRでフォルダ検索しただけなんですが
見つかりませんでした。
これはBCB3でしか使えないんでしょうか?
BCB5 ProとBCB6 Proは持っているんですが。。。(^^ゞ
0261デフォルトの名無しさん
2007/04/02(月) 19:51:56それか、現在のマウスカーソル位置を取得する方法を教えてください
0262デフォルトの名無しさん
2007/04/02(月) 20:18:36GetCursorPosで得たスクリーン座標から変換するか
0263デフォルトの名無しさん
2007/04/02(月) 20:45:030264デフォルトの名無しさん
2007/04/02(月) 21:07:150265デフォルトの名無しさん
2007/04/02(月) 21:18:47Builder1はWin32アプリ専用ですよ。
実質、Del2=BCB1
0266デフォルトの名無しさん
2007/04/02(月) 22:48:15てめーにいわれたくないって。
0267デフォルトの名無しさん
2007/04/03(火) 07:49:280268デフォルトの名無しさん
2007/04/03(火) 11:03:560269デフォルトの名無しさん
2007/04/03(火) 18:42:47日本語でOK
0270デフォルトの名無しさん
2007/04/03(火) 19:23:40いい感じですよ
0271デフォルトの名無しさん
2007/04/04(水) 10:07:30果物に例えると西瓜とメロンかな
0272デフォルトの名無しさん
2007/04/05(木) 10:36:520273デフォルトの名無しさん
2007/04/05(木) 11:05:25何かやヴぁくね?
0274デフォルトの名無しさん
2007/04/05(木) 12:14:480275デフォルトの名無しさん
2007/04/05(木) 12:17:12その後のメソッドで インスタンスにアクセスしたり
デストラクタでそのメソッドにアクセスしたり
あるいは、そのインスタンスが消滅したのに、それを示すポインタが空になったのをそのまま
にして再度アクセスしたり
0276デフォルトの名無しさん
2007/04/05(木) 13:44:14ボタンが押されたらそのフォームを閉じるのですが
その時にClose()を使わずにdelete thisをしています。
勿論フォームはnewで作成されているものです。
特にこれで問題がある動作はしていないのですが
自分自身を破棄するのでちょっと聞いてみました。
0277デフォルトの名無しさん
2007/04/05(木) 14:06:17閉じた直後とかに、そのフォームの値参照とか問い合わせできないお。
0278デフォルトの名無しさん
2007/04/05(木) 15:39:42そのフォームは他のフォームから作成されるだけで
参照されることはないんですよ
ってどっちみち、自分をdeleteするって事事態普通はやらないもんですかね。
OnCloseのAction = caFreeはまた違う事やってるのかなあ
0279デフォルトの名無しさん
2007/04/05(木) 16:01:00↑
ここ注目するところ。
ソフトウェアってのは、自由にどんどん書きかえれるものであって、
今参照されてなくても将来参照されたとき、ドカンとエラー、
何だ変なコーディングしたやつ出て来い、みたいな。
0280デフォルトの名無しさん
2007/04/05(木) 16:18:39まあ、その不安はあるんですけどね。
ちなみに、他フォームから参照される恐れがあるなら普通にClose使いますが
ようするに僕が知りたかったことは自分自身をdeleteしても問題がないのかどうかってことで・・・
勿論破棄後に他から呼ばれるとかそういうのを抜きにしてですが
ふと思った疑問を実際にやってみてちゃんと動作してるので聞いてみたんですよ
0281デフォルトの名無しさん
2007/04/05(木) 18:04:03そこで、アクセサー(アクセス関数)でSETでキッチリ保存、GETで利用ですよ。
使う関数?memcpy(+memset)、strcpy、sprintf、sscanf、用途によりけりなんでもござれ。
えっ?リテラル変えようとしてエラーでる?
char a="";
strcpy(a,〜);
・・・・・・、そこで
char b='';
char* a=&b;
strcpy(a,〜);
ですよ。
0282デフォルトの名無しさん
2007/04/06(金) 17:45:58コンパイルしたのと別のマシンで動かそうとしたら
「CC3270MT.DLL が見つからなかったため、このアプリケーションを開始できませんでした。
アプリケーションをインストールし直すとこの問題は解決される場合があります。 」
とエラーが出ました
これを、開発環境以外のマシンで出ないようにコンパイルするにはどうしたらいいですか?
0283デフォルトの名無しさん
2007/04/06(金) 20:39:460284デフォルトの名無しさん
2007/04/06(金) 21:18:34明らかなバグです。
あなたのプログラムのね。
0285デフォルトの名無しさん
2007/04/07(土) 00:51:350286デフォルトの名無しさん
2007/04/07(土) 13:45:210287デフォルトの名無しさん
2007/04/07(土) 15:41:32delete thisのあとにメンバ変数いじったり非staticなメンバ関数呼ばなければOK。
delete thisはCOMのIUnknown::Release()の実装とかで普通に使うし。
0288デフォルトの名無しさん
2007/04/08(日) 01:12:05データを共有する方法が分りません。やりたいことはと言えば Form1 で
ファイルのデータを StringGrid または List に取り込んで Form2 で参照し
たいのです。どなたか教えてくだされば幸甚です。
0289デフォルトの名無しさん
2007/04/08(日) 02:49:41つ[超初心者スレ]
0290デフォルトの名無しさん
2007/04/08(日) 04:55:39Form1->StringGrid
こういうこと?
0291デフォルトの名無しさん
2007/04/08(日) 08:51:17恥かしながらその通りです。Focal, Algol の時代からプログラミングを
やりながら,永く C++4.5 を使っていて,C++Builder は去年始めました。
>290
そう思いました。Form1 に対応するヘッダーの中の
TStringGrid *StringGrid1;
を __published: から public: に移して,Form2 に対応する Unit2.cpp で
仰せのように Form1->StringGrid1 としてみたのですが,上手くゆきません。
他に何かすることが必要でしょうか。(PageControl を使ったプログラムを
改造しようと思った所以ですが,原因は別のところにあるのかも知れません。)
0292デフォルトの名無しさん
2007/04/08(日) 09:15:26アクセス出来ないはずはないのだが?
>__published: から public: に移して
これをやると、実行時型情報の自動記録が出来なくなると思うのだが
なんの為にコレをやったのか?
まあ、表示のインターフェースを、そのままデータの共有に使う設計はどうかと思うけどな
楽だからお試しではよくやるけど、
0293デフォルトの名無しさん
2007/04/08(日) 09:57:36有難う御座います。__published: から public: への移動は,どこかの
ホームページの例を単純に真似ました。少し考えてから再度お尋ねしたいと
思います。
0294デフォルトの名無しさん
2007/04/08(日) 10:38:420295デフォルトの名無しさん
2007/04/08(日) 11:34:47publicに移して、 TStringGrid *StringGrid1 が DFMによる自動作成の
対象から外れたのに自前でnewしなかったというオチのような
0296デフォルトの名無しさん
2007/04/08(日) 12:12:360297デフォルトの名無しさん
2007/04/08(日) 12:34:000298デフォルトの名無しさん
2007/04/08(日) 13:22:33されない
0299デフォルトの名無しさん
2007/04/08(日) 18:05:09報告遅れましたが,その間に 294-298 の諸兄にもあれこれお考え頂いて恐縮に
存じます。
結論から申しますと,改造作業の出発点に戻って最初からやり直したら,何ら
特別のことをせずに,Form1 の StringGrid が Form2 で問題なく参照できま
した。(初回に上手く行かなかった原因を調べるのは,面倒になって途中で止め
ました。)
皆様を煩わせて申訳なく思います。また宜しくお願いします。
0300デフォルトの名無しさん
2007/04/10(火) 20:01:07よろしくです。
0301デフォルトの名無しさん
2007/04/10(火) 20:06:20ぼーだーすたいるだぼけ
0302デフォルトの名無しさん
2007/04/11(水) 02:44:47あとボーダーアイコンのbiMaximize(最大化ボタン)の無効化忘れずに。
0303デフォルトの名無しさん
2007/04/11(水) 18:01:430304デフォルトの名無しさん
2007/04/11(水) 18:04:45RDBMSをFirebirdに変えるのはダメ?
0305デフォルトの名無しさん
2007/04/11(水) 18:17:58すみません。それよくわからないですが、それで普通にMySQLを扱うことができますか?
またC++Builder6では、標準で実装されているのでしょうか?
0306デフォルトの名無しさん
2007/04/11(水) 18:50:060307デフォルトの名無しさん
2007/04/11(水) 18:51:40『Firebirdに変える』っつうのは、MySQLの代わりにFirebirdにするって事だよ。
0308デフォルトの名無しさん
2007/04/11(水) 19:03:35BDEからMySQLのODBCドライバへのアクセスにすれば、
どのDBも一緒だお。
ちゃんと動くお。
バイナリが途中でちょん切られるくらいで。
0309デフォルトの名無しさん
2007/04/11(水) 19:14:58ああ、すんません。素で勘違いしてました。
>>308
ODBCにMySQLを登録するといいんですよね?
一応MySQLをインスコしたのですが、ユーザーDNSで追加ししようとしてもでてこないのですが・・・
0310デフォルトの名無しさん
2007/04/11(水) 19:46:060311デフォルトの名無しさん
2007/04/12(木) 09:33:36MySQLのODBCドライバは別途インスコでつよ。
0312デフォルトの名無しさん
2007/04/12(木) 09:35:290313303
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等で項目の作成が
0314303
2007/04/12(木) 19:28:59MySQL5ではデータベースエクスプローラで開く事はできるのですが
テーブル作成等の操作を行うと全てキー違反とエラーがでるのですが
何が原因でしょうか・・・
0315デフォルトの名無しさん
2007/04/13(金) 08:48:33その方が超簡単。
Firebird/IBXという手もあるが、ちょっとクセあるからツマヅク人には薦められない。
0316デフォルトの名無しさん
2007/04/13(金) 08:49:280317303
2007/04/13(金) 10:33:27しかしMySQLを使わないといけないんですよ・・・
うーん、MySQLの4も5もODBCドライバの3も5もためしたけど、Testすると必ず
Request returned with SQL_ERRORが出る・・・
まだCBuilderに到達する前の段階なのですれ違いかもしれないですが・・・
0318デフォルトの名無しさん
2007/04/13(金) 10:39:14後はQuery一本でいけるお。
色んなコンポがあるけど、一番確実なのはRDBへのアクセスはDatabase/Queryコンポのみ使うやり方。
0319303
2007/04/13(金) 10:54:10ちなみに、MySQLを起動してデータベースやテーブルは正常に作成はできてます
0320デフォルトの名無しさん
2007/04/13(金) 11:18:15>Request returned with SQL_ERRORが出ます。
これって、WindowsのODBC Administratorで出るの?
それともBCBのDB Explorerで出るの?
どちらで出るかで何が間違ってるか決まるじゃん。
0321303
2007/04/13(金) 11:45:14WindowsのODBC Administratorです。
サーバーはlocalhostを指定しています。
0322デフォルトの名無しさん
2007/04/13(金) 11:46:40なら、MySQLとODBCで、ググリまくれよ。
それか、MySQLスレに移動するか。DB板は過疎だからイマイチだけど。
0323303
2007/04/13(金) 11:57:520324303
2007/04/13(金) 13:58:51これバージョンによってアレなのね・・・
0325303
2007/04/13(金) 15:30:040326デフォルトの名無しさん
2007/04/14(土) 05:18:25あ〜、BuilderなりTurboの未来はどうなるんだろ
徐々に、徐々に、肩身が狭い
>>325
ポップアップて言うんじゃね?
逆にメニューの作り方教えてくれ
めんどいならいいけど・・
0327デフォルトの名無しさん
2007/04/14(土) 10:19:460328デフォルトの名無しさん
2007/04/14(土) 15:15:46主に人的リソースの問題で先にDelphiとなっただけで、次はBDSってことなので。
C++は標準準拠とかSTLとかTR1とかDelphiでは考慮の必要のないものが
いろいろあるからなぁ。
0329デフォルトの名無しさん
2007/04/17(火) 18:35:210330デフォルトの名無しさん
2007/04/17(火) 19:35:520331デフォルトの名無しさん
2007/04/19(木) 10:00:190332デフォルトの名無しさん
2007/04/19(木) 13:57:45ShellExecute
0333デフォルトの名無しさん
2007/04/20(金) 08:11:52普通に開くことはできるのですが。通常コンテキストメニューで別ウィンドウで開くを実行したときの挙動を求めています
開いた後、ツリー表示にすると最上層のフォルダを指定したフォルダになるように
普通に開いてしまうとツリーの最上層がデスクトップになってしまうので
できれば最初からツリー表示した状態で開きたいのですが
色々引数変えてみたりしてるのですが、うまくいきません
0334デフォルトの名無しさん
2007/04/20(金) 08:19:55第2引数を"explore"にすることでツリー表示で開けました
あとはこのツリーの最上層の指定の仕方なんですが
0335デフォルトの名無しさん
2007/04/20(金) 08:20:01みたいな?
0336デフォルトの名無しさん
2007/04/20(金) 09:08:35explorer /e ,/root, C:\hoge
これでできるんだけど、ShellExecuteへの引数としての渡し方がうまくいきません・・・
0337デフォルトの名無しさん
2007/04/20(金) 09:16:270338デフォルトの名無しさん
2007/04/20(金) 09:29:44::ShellExecute(Handle, "open", "explorer.exe", "/e ,/root, C:\\WINNT", NULL, SW_SHOW);
0339デフォルトの名無しさん
2007/04/20(金) 09:33:11初歩的ミスで¥のエスケープ忘れでした・・・
エラーでないでデスクトップをルートに開いちゃうもので気づきませんでした恥ずかしい
皆さんありがとうございました
0340デフォルトの名無しさん
2007/04/20(金) 09:48:210341デフォルトの名無しさん
2007/04/21(土) 21:51:41WINAPIのCreateWindowExを使って、
フォームに別フォームを埋め込むようなことは可能でしょうか?
具体的にはスレッドでフォームを表示し続けて、メッセージを送った時に
特定のイベントを発生させるような使い方をしたいのです。
0342デフォルトの名無しさん
2007/04/21(土) 22:03:35VCLフォームで良いと思うが?
0343デフォルトの名無しさん
2007/04/21(土) 22:09:37まあ、APIで子窓を付けるのは可能だけど
VCLでパネル貼り付けてその窓ハンドルにAPIで直接描画したら同じだと思うが
0344デフォルトの名無しさん
2007/04/21(土) 22:51:04単品で使用するならそれでも問題ないのですが、
APIで作成したフォームに、Video For Windowsで動画を表示したいのです。
メインスレッドで実行してしまうと、他の処理ができなくなってしまいますので
今回はその方式は見送ろうと思っています。
343>>
パネルはそのような使い方ができるのですね。
パネルってスレッド内部でアクセスしても大丈夫でしょうか?
早速試してみますね。
お二方(同じ方?)アドバイスありがとうございます。
0345デフォルトの名無しさん
2007/04/22(日) 00:17:04リアルタイムで動画データ生成してるなら変わるだろうけど。
0346デフォルトの名無しさん
2007/04/22(日) 12:45:02長いあいだそういうものだと思ってたんですが、Turbo C++の只版を古いマシンに
入れてみたらそっちの方が補完が早くて。
何か設定がまずいのでしょうか。
■ このスレッドは過去ログ倉庫に格納されています