- 1 名前:デフォルトの名無しさん [2007/09/01(土) 09:41:22 ]
- C++Builderに関する質問・回答や議論等を行う相談室スレッド。
【前スレ】 C++Builder相談室 Part17 pc11.2ch.net/test/read.cgi/tech/1162918887/ 過去スレ・関連サイトは>>2-7あたり。 ※Borland C++ Compiler 5.5.1についての質問は以下のスレへ タダで使えるBorland C++ Part5 pc11.2ch.net/test/read.cgi/tech/1135127048/ ※BDS(Borland Developer Studio)の総合スレはこちら Borland Developer Studio 2006 No.13 pc11.2ch.net/test/read.cgi/tech/1175861395/ ※CodeGear(Borland)関連はこちら 【Borland】CodeGearオッチャ その5【(ノ∀`)アチャー】 pc11.2ch.net/test/read.cgi/tech/1186333161/
- 577 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 10:58:11 ]
- >プロセス間通信ってむずかしいですか?
別にそれほど 設計を間違えなければ >実装したフリーorシェアってありますか? さぁ? コントロールパネルのスクリーンセーバーのプレビューはそれに近いかも >情報表示。ユーティリティーなんて実現可能なものでしょうか? 可能かどうかっていうと、可能だろう
- 578 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 11:48:19 ]
- Winampはプロセス間通信で、他のアプリから再生制御したり、情報取得したり出来るようにしてるな。
プラグインというかフロントエンドだけど。
- 579 名前:デフォルトの名無しさん [2008/03/28(金) 12:01:05 ]
- ちょwwwwwwww
InternetOpenとかなんだけどBuilder5でちゃんとコンパイルできてたのに 2007でやるとリンカエラーになる・・・ とおもってヘルプみたらlibファイル変わってるじゃん馬鹿!! まあファイル名を変えたらちゃんとできたんだけど、ころころ変えるなやなあ
- 580 名前:デフォルトの名無しさん [2008/03/28(金) 12:10:15 ]
- ちょwwwwwwwwww
Builder5でTPanelのColor変えたら背景色変更してたのに2007じゃ変わらない・・・ これマジでわかんないです、エロい人TPanelの背景色の変え方教えてください
- 581 名前:デフォルトの名無しさん [2008/03/28(金) 12:10:26 ]
- >>579
BCBクオリティだな
- 582 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 12:30:31 ]
- >>576です。
一度調査してみます。 情報ありがとうございました。
- 583 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 12:40:14 ]
- ニコ堂厨キター
- 584 名前:デフォルトの名無しさん [2008/03/28(金) 13:21:20 ]
- ちょwwwwwww
うへwwwww変わったwっうへうへwwwww オブジェクトインスペクタで一度Color変更してから実行したら動的に変更してもちゃんと色変わったwwwww なにこの糞仕様wwwwwwwwwwwwwwwwwwwwww これ他のコントロールも危険っぽいwwwwwwwwwwww
- 585 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 14:06:09 ]
- 書き込みキター
- 586 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 17:16:51 ]
- >>580
ParetBackgroundやTransparentかな? ついでに私も質問・・・ Graphics::TBitmap *bitmap = new Graphics::TBitmap(); bitmap->SetSize(SpeedButton1->Width, SpeedButton1->Height); bitmap->Canvas->Brush->Color = clRed; bitmap->Canvas->FillRect(TRect(0, 0, bitmap->Width, bitmap->Height)); SpeedButton1->Glyph = bitmap; こんな感じでやって見ましたがボタンの色が何一つ変わりません。 どなたか教えてくらさい・・・
- 587 名前:586 mailto:sage [2008/03/28(金) 17:30:13 ]
- あ、超初心者用スレが別に存在するんですね。
向こうで質問しようと思います。 スレ汚しスンマセン・・・
- 588 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 17:45:40 ]
- > 注意 ビットマップの左下のピクセルは「透過」色用に予約されています。
> ビットマップで左下に位置するピクセルはすべて透過になります。
- 589 名前:デフォルトの名無しさん [2008/03/28(金) 18:51:04 ]
- >>586
いやwwwwwwwwwww>>584ですたよ 5からまんま移植してやってたんだけどね つかSpeedButtonなら予め用意したビットマップを設計時にあれするとかじゃだめなの?
- 590 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 19:24:27 ]
- >>588
ありがとうございます。 おかげさまで実現できました。 >>589 把握シマスタw ビットマップは、ボタンのサイズより少し小さく色づけしたいので、今の方法にしようと思います。
- 591 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 23:00:00 ]
- >>576です
プロセス間通信についてですが、 WM_COPYDATA と tp://gimite.net/bcbqtree/qtreemain.cgi?mode=thread&thread=628 共有メモリ tp://ww4.tiki.ne.jp/~yonyon/programing/bcb/tips/tips-api.htm を拝見して、動作確認できました。管理者に感謝 前者はウィンドウハンドル、後者は任意のユニークなID 1.使い勝手としては後者が使いやすいのでしょうか? 2.また、前者は受け取り側フォームひとつにつきひとつなのでしょうか? ところで、複数のデータcharとintが4つくらい送りたい場合、 3.やはり、送信側・受信側も4つのID(後者)が必要なのでしょうか? ひとつのIDでは複数遅れないのでしょうか? 4.また、それが一般的なのでしょうか? ちょっと世間一般の意見をお伺いしたくて。よろしくお願いいたします。
- 592 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 23:00:52 ]
- 4つのID->5つのID
- 593 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 07:33:51 ]
-
共有メモリと言うと普通は[ファイル マッピング]を使う [名前付き共有メモリ]だと思う。 これなら読み書き出来るメモリを共有する事になる。 2番目はアトム(GlobalAddAtom) グローバルアトムなら確かにプロセス間で渡せるけど これはメモリ共有というイメージではない。 構造体を送りたいという場合、 アトムで送る場合は、構造体をシリアライズ=文字列化して送ればいい WM_COPYDATAで送るなら構造体のポインタを送ればいい。 文字列を含む場合は、その構造体にインスタンスが完全に含まれるようにする。 ポインタや参照を含む形では駄目。 WM_COPYDATAは1対1の通信に便利だけど1対1でしか使えない。 グローバルアトムを使う場合も、相手の窓ハンドルを使う限りは1対1になる ファイルマッピングなら、複数で通信出来る。 他にwindowsにはメールスロットというのがある。CreateMailslot して後はファイルと同じようにするだけ これは同じPC上のプロセスだけではなく別のパソコンにでも送れる。
- 594 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 07:55:27 ]
- ああごめん。
2番目は HWND_BROADCAST で全部の窓アプリにメッセージを送ってるから 1対多通信が出来るんだね。
- 595 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 10:31:02 ]
- たたたいへん参考になりました。
受信側が実装しやすいものを精査して 組み込んでみます。感謝。 MyTipsとして残しておきます。
- 596 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 11:10:52 ]
- メールスロット、メッセージが来るタイミングを窓へのメッセージで受け取れたら最高なんだけどな
- 597 名前:デフォルトの名無しさん [2008/03/31(月) 10:25:49 ]
- >>595
落ち着けw
- 598 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 13:44:41 ]
- プロセスと通信するより、女の子と通信したいです。
- 599 名前:デフォルトの名無しさん [2008/03/31(月) 14:18:35 ]
- TSQLQueryでMySQLからデータの読み書きをしてると
そのうちSQLQuery->OpenやSQLQuery->ExecSQLでEAccessViolationが出るのですが・・・ これを使う際に何か気をつける点はありますか? Builder2007です
- 600 名前:599 [2008/03/31(月) 16:13:48 ]
- どうやらTSQLQueryでselect文を発行するとダメっぽい。
updateやinsertならなんぼやっても大丈夫なんですがselectを1回でもするとダメですね。 やっていることは・・・ SQLQuery->SQL->Clear( ); SQLQuery->SQL->Add( "select * from testtable" ); SQLQuery->Open( ); if( !SQLQuery->Eof ){ val = SQLQuery->FieldByName( "VAL" )->AsInteger; } なんですが、突っ込むところはありますか?
- 601 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 16:17:52 ]
- もうちょっと詳しくデバッグしてどのメソッド読んだ時に落ちてるか
調べなさい。
- 602 名前:599 [2008/03/31(月) 16:40:48 ]
- >>601
知らないならレスするなクズが
- 603 名前:599 [2008/03/31(月) 17:53:23 ]
- >>602は僕ではないですよ
今までの検証結果でわかったことは・・・ 1.select文だけ 2.update又はinsert文だけ 1,2は各々なら共に何回やってもOKで updateやinsertをやってから1回でもselectを行うとエラーになります。 このエラーはソフト終了時にコードガードが リソースリーク: メモリブロック (0x14DB5B0) が解放されていません。 メモリブロック(0x014DB5B0) [長さ: 64 バイト] は SysGetMem によって確保されました。 と出るのですが・・・
- 604 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 19:05:48 ]
- あー、それ俺もなったよ。2ヶ月くらい悩んだ。
結果的に自分のプログラムが原因じゃなかった。 よく分からないけどUpdateを当ててからか?なんかそれからおかしくなってたのかも。 解決するか分からないけど30万円で情報を提供してやるw
- 605 名前:599 [2008/03/31(月) 19:22:33 ]
- >>604
確かに自分のソースはどう考えてもおかしくないですねこれ。 やってることは単純だし、どちらか片方コメントにしたら全く落ちないし とりあえず、定期的にinsertを行ってる状態でselectするために SQLQuery->Open( )でこける(何事もなかったかのように素通りしソフト終了時にエラー) これをSQLTableにかえてみたんだけどやっぱりエラー(´・ω・`)
- 606 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 20:26:04 ]
- SQLの事はよく分からんけど、俺の場合はプログラムが半フリーズしてて
なんでだろうと、プロジェクトを調べ回ったあげく、とりあえず俺は以下のでリソースリークも半フリーズも直った。 プロジェクトソースの SetApplicationMainFormOnTaskBar(Application, true); をコメントアウトしてみて
- 607 名前:599 [2008/03/31(月) 20:29:00 ]
- >>606
コメントにしてもかわりませんでした><
- 608 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 20:31:36 ]
- ワロスwww残念だったなw
まぁ頑張ってくれw
- 609 名前:599 [2008/04/01(火) 10:47:52 ]
- と言うか、try〜catchでcatchに入るだけで終了時にコードガードのエラーが出る
なんですかこれ?Builder2007のバグですか?
- 610 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 11:12:10 ]
- ヒント:メモリ破壊
- 611 名前:599 [2008/04/01(火) 12:20:24 ]
- >>610
馬鹿はレスしないで下さい。うざいです。半年ROMってろクズ
- 612 名前:599 [2008/04/01(火) 14:20:34 ]
- >>611も俺じゃないっす
とりあえず解決しますた try〜catchは謎だけどSQLQueryはExecuteSQLがあれですた これ引数省略できるんだけど省略するとコードガードエラーになります(デフォfalse) 問い合わせがパラメータをまったく含まないあれなんでtrueでずっとfkさおf
- 613 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 18:21:48 ]
- 自分証明したければ捨てでいいからトリップつけれ
- 614 名前:599 [2008/04/01(火) 18:38:24 ]
- >>613
馬鹿はレスしないで下さい。うざいです。半年ROMってろクズ
- 615 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 00:29:40 ]
- 2007使ってるけど、実行したら、
時々オーエスごとフリーズする。 一分後動作しやがる
- 616 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 05:14:43 ]
- >>615
それ以前に、ちゃんとした日本語で的確な説明ができるように訓練しなさい。
- 617 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 07:07:14 ]
- >>612=>>611>>614
日頃の行いが悪いとそういうバグだらけのくそな製品をつかまされる。 builder2007に無駄金。 おめでとさん。
- 618 名前:デフォルトの名無しさん [2008/04/02(水) 21:13:14 ]
- CoShellWindowsの使い方を教えてください。
delphiで下記のコードをBuilderに移したいのですがうまくいきません。 sw : IShellWindows; Count : Integer; 途中省略 sw := CoShellWindows.Create; Count := sw.Get_Count; CoShellWindows* sw=new CoShellWindows(); Shdocvw::IShellWindows* is=sw->Create(NULL); int Count=sw->Count; とすると、コンパイラは通るのですが、3行目でEAccessViolationが発生します。
- 619 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 22:33:24 ]
- >>616
んーん、実行F9で実行すると、 下のウインドウでぴこぴこっと 複数行出てきて、さぁ、実行だと言う矢先、 フリーズ。タスクバーのブラウザさえ表示できない。 まぁ、結構むちゃなソース実行しているからかもしれないが。 とりあえず、2007の新規プロジェクト立ち上げ、 いちから構築するつもり。bcb5のソースをそのまま使ったのが いけないのか? それに、開発しているPCでは動くのに、ゲストOSでも動くのに、 ノートPCに入れたら、動的可変フォームのTImageがうまく描画できない。 ラベルがいいのかなぁ。 はぁ。ま、どうでもいいか
- 620 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 22:47:08 ]
- >>618
BCB6だとヘッダいじらないとコンパイルすらできないな。 で、コンパイルして実行した結果は問題なかったけど。 Get_Countでも出るの?
- 621 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 22:57:48 ]
- >>618
TShellWindows *sw = new TShellWindows(NULL); int Count= sw->Count; でどうよ
- 622 名前:618 mailto:sage [2008/04/02(水) 23:10:54 ]
- >>620
そうですかぁ。BCB6ではOKですか。 こちらの環境は、BDS2006です。 自分は、delphiは全然使ったことがないので delphi のコードは試していないのですが、ぐぐると同様の霊がいっぱい出るので delphiでは問題ないのだと思います。 ぐぐっても、Builderでの例が1件もないので、悩んでいます。 BCB6でいけるということは、たぶんちょっとした違いなんでしょうから もう少し試行錯誤してみます。
- 623 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 23:12:20 ]
- >>621で良さそうだけど、>>618のエラーの原因を一応言っとくと、CreateはCOM用のスマートポインタを
返してるんだけど、それを生ポインタで受けてる事だな。次の行では既にReleaseされてて無効になってる。 _di_IShellWindows is = ... とでもすればいいはず。
- 624 名前:618 mailto:sage [2008/04/02(水) 23:19:55 ]
- >>621 いけました。
>>623 その通りでした。 TShellWindows *sw = new TShellWindows(NULL); あるいは CoShellWindows* sw=new CoShellWindows(); _di_IShellWindows is=sw->Create(NULL); とすれば、ちゃんと Countを取得できました。 どうもありがとうございます。
- 625 名前:デフォルトの名無しさん [2008/04/04(金) 17:12:27 ]
- TImageかTPaintBoxでスクロールする折れ線グラフ(パフォーマンスグラフみたいなの)を
描画したいのですが、どういうやり方をしたらスムーズにスクロールできますか?
- 626 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 17:35:39 ]
- つ TScrollBox
もしくは、TFrameにTImageをはっておいて、 TFormにはってあるPanelの上に、 実行時にはる。
- 627 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 17:40:27 ]
- >>625
ダブルバッファリング
- 628 名前:デフォルトの名無しさん [2008/04/04(金) 18:02:02 ]
- >>626
TScrollBoxでどのようにやればいいですか? >>627 DoubleBuffered?
- 629 名前:デフォルトの名無しさん [2008/04/07(月) 10:26:52 ]
- Paintイベントでこんなことやってるんですがコピーされません。なぜですか?
TRect r = PaintBox->BoundsRect; Canvas->CopyRect( TRect(0, 0, r.right-2, r.bottom-1), Canvas, TRect(1, 0, r.right-1, r.bottom-1) );
- 630 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 18:25:46 ]
- パッと見だけで適当に答えるけど、
BoundsRect.Right = Left + Width BoundsRect.Bottom = Top + Height というのは大丈夫か? PaintBoxのOnPaintでもFormのOnPaintでも、Canvasを直接参照すると FormのCanvasになるというのは大丈夫か? CopyModeも大丈夫か? TBitmapに描画して、PaintBoxにコピーした方が良くないか? PaintBoxは描画するエリアを用意するだけで、描画した内容を保存してくれるわけではないよ。 (PaintBox->OnPaintの中だけが全て)
- 631 名前:デフォルトの名無しさん [2008/04/08(火) 18:28:26 ]
- >>630
TBitmapからCanvasにアレするようにしました
- 632 名前:デフォルトの名無しさん [2008/04/09(水) 15:08:52 ]
- TGraphicControlを継承して描画するアレを作ったのですが
クリックされた時のイベントがほしいのですが記述の仕方がわからないので教えてください
- 633 名前:デフォルトの名無しさん [2008/04/09(水) 15:27:48 ]
- クリッコイベントできますた(;´Д`)
- 634 名前:デフォルトの名無しさん [2008/04/11(金) 16:02:33 ]
- TImageに背景が白の画像をよみこませて表示しているのですが
この背景を透過する方法を教えてください
- 635 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 23:16:39 ]
- 答えは君の心の中にきっとあるさ・・・・
- 636 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 12:18:45 ]
- ファイルの列挙を再帰処理で行っています。
_findfirst、_findnextを使用し、ファイル一覧の取得方法はわかりました。 しかし、カレントディレクトリを開始位置としているようです。 指定フォルダを開始点としたいのですが、カレントディレクトリを変更するにはどうすればいいでしょうか?
- 637 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 12:48:18 ]
- chdirとかSetCurrentDirとかSetCurrentDirectory。
でも、"C:\\Windows\\*.*"みたいな文字列渡せば、別にどこからでも列挙できるよ?
- 638 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 12:55:39 ]
- >>636
フルパスを渡すのが簡単
- 639 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 13:22:58 ]
- >>637
なるほど、「*.*」と指定してたのが駄目だったみたいです ありがとうございました
- 640 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 17:24:18 ]
- BCB pro 6 なんですが、アプリ実行中にメモリ破壊が発生したかどうか?っていうの調べる方法ありますか?
1万レコードくらい演算してるんですが、演算結果がてきとーに異なるんですよねorz (今手元にデータがないので結果報告できないんですが、 調べる手段とか手法を今のうちに検討しておきたいんです)
- 641 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 17:51:17 ]
- CodeGuardは報告してくれない?
- 642 名前:640 mailto:sage [2008/04/14(月) 17:53:02 ]
- じ、じつは、Del ---> BCBを超長年使いながら、
CodeGuardしたことありませんorz
- 643 名前:640 mailto:sage [2008/04/14(月) 18:09:04 ]
- CodeGuard のログファイルってどこにできるんでしょうか?
分厚い開発者にもCodeGurad について触れられてないような。。。
- 644 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 18:22:55 ]
- つーかリアルタイムでIDEにつらつらと出てくるよ
- 645 名前:640 mailto:sage [2008/04/14(月) 18:27:35 ]
- あ、本当だ。
memcmpでAccess overrun 出まくりなんですが、これ、マズイですか?
- 646 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 18:28:44 ]
- バグだらけじゃん
- 647 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 18:29:24 ]
- そりゃマズイさ
- 648 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 18:34:08 ]
- ありえんw
- 649 名前:640 mailto:sage [2008/04/14(月) 18:41:18 ]
- 逆に言うと、CodeGuardが止まらないプログラムだとメモリ無問題なんだぁ。
なんていうか、こんな便利なものだったとは>CodeGurard memcmpのAccess overrun でプログラムのメモリを破壊という道筋は思いつかないんですけど、そんな事あるんですか?
- 650 名前:640 mailto:sage [2008/04/14(月) 18:43:09 ]
- だって、memcmpってメモリに書き込みしないから、スタック壊すなんて無いですよね?
- 651 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 18:45:12 ]
- なぜ、memcmpのとこだけおかしてく他のwriteしているところは完璧だと思い込めるのだ。
それが最大のナゾだな。
- 652 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 18:46:09 ]
- バグだらけじゃん
- 653 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 18:48:34 ]
- 今はたまたま動いているかもしれんが
エリア外の参照なんて普通にAccessViolationじゃないか
- 654 名前:640 mailto:sage [2008/04/14(月) 18:48:47 ]
- バグだらけじゃなくて、memcmpのAOって本当に1行だけですよ。
じゃ、そこ直せばって言われると思うんですが、 実データじゃないとバグ出ないんですよね。 開発マシンじゃ無バグ(現象出てないだけかorz)なんです。 件数多くなれば、memcmpがメモリを破壊する???
- 655 名前:640 mailto:sage [2008/04/14(月) 18:49:41 ]
- >エリア外の参照なんて普通にAccessViolationじゃないか
あ、なるほど。 でも、読み出しだけなら無問題じゃないの???
- 656 名前:640 mailto:sage [2008/04/14(月) 18:51:33 ]
- 今日のところは、これで失礼いたしますが、
CodeGuardを使えるようになったのは大収穫でした。 有難うございましたorz
- 657 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 18:52:01 ]
- もう少しOSの事も勉強した方がいいと思うぞ
- 658 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 18:53:02 ]
- 現象だけから見たら、ブチ壊れたポインタ使いながら走ってる典型。
- 659 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 19:03:14 ]
- 特定条件でポインタの初期化が抜けているに90リラ
- 660 名前:デフォルトの名無しさん [2008/04/14(月) 19:24:55 ]
- >>659
m9(^Д^)プギャーーーッ
- 661 名前:デフォルトの名無しさん [2008/04/15(火) 10:09:57 ]
- 質問です
よくウィザード画面てありますよね? 次とか戻るとかの、あれってあたかあも1つのフォームでやってるように見えるのですが 一般的にはどうやってるのでしょうか? 1.同サイズのフォームを用意して次を押されると次のフォームを表示して前のフォームを非表示に 2.PageControlで実行時にタブを非表示にして次を押されると次のタブに移動 これ以外に方法があったら教えてください
- 662 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 10:17:12 ]
- 親フォーム内に子フォーム埋め込んで、次へを押すと子フォームを次のフォームに切り替え。
- 663 名前:デフォルトの名無しさん [2008/04/15(火) 10:45:44 ]
- >>662
すみません。どうやって埋め込むんですか?
- 664 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 11:13:48 ]
- >>663
ボーダーをbsNoneにして TForm2 *subform = new TForm2(this); subform->Parent = Panel1; //埋め込みたい位置にパネルなりを配置しておく。 subform->Top = 0; subform->Left = 0; subform->Visible = true;
- 665 名前:デフォルトの名無しさん [2008/04/15(火) 11:29:52 ]
- >>664
なるほど。 んで次や戻るでフォームを動的にnewして埋め込むと その場合は次に進んだ時には前フォームの情報は失われるので 自分でファイルなりに保存しておくんですよね?
- 666 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 19:47:09 ]
- >661
CreatePropertySheetPage() ただし相当な修羅場を潜り抜けないと使いこなせない。 少なくともリソースについての理解が必要。
- 667 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 22:27:22 ]
- PageControlでいいじゃん
- 668 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 22:31:33 ]
- >666の関数をググってみると
VCLはやっぱり神。って思った。
- 669 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 10:48:37 ]
- >>661
非標準ライブラリの使用がOKならば、JVCLのTJvWizardは?
- 670 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 18:04:29 ]
- 名前を指定してコントロールを取得したいのですが、方法がわかりません
ご教授お願いします
- 671 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 18:21:39 ]
- 名前がわかってんなら、それがコントロールだべや。
なにを聞いているのか意味わかんね。
- 672 名前:デフォルトの名無しさん [2008/04/16(水) 18:23:28 ]
- FindComponentってことだろ?このブタ野郎が!
- 673 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 18:27:11 ]
- 説明不足ですいません
for (int i=0; i < 10; i++) { AnsiString name = txtID + IntToStr(i); // 名前からコントロールにアクセス } フォームに連番のついたテキストボックスがあるのですが 大量にあるためループで処理できれば、と考えています。 VB.NETのFindControlみたいなことがしたいのです。
- 674 名前:デフォルトの名無しさん [2008/04/16(水) 18:41:54 ]
- >>673
お前みたいなクズは始めてた お前>>672だけ100回見て1年ROMってろくず
- 675 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 18:45:40 ]
- 配列にすればええねん
- 676 名前:デフォルトの名無しさん mailto:sage [2008/04/17(木) 20:46:56 ]
- メモリリークってプログラムの途中じゃ見ることできないですよね?
やっぱ、終わったときだけ?
- 677 名前:デフォルトの名無しさん mailto:sage [2008/04/17(木) 21:02:23 ]
- >>674
カルシウム不足 不摂生な生活
|

|