新C++Builder相談室
■ このスレッドは過去ログ倉庫に格納されています
0001新人
NGNGよろしくお願いします!
0635デフォルトの名無しさん
NGNG多分、出ると思う・・・
しかし、Delphi6のAnsiStringはUnicodeに対応してるのかな・・・
Del6が対応してなかったら、次バージョンのC++Builderも対応してないと
思われる。
0636デフォルトの名無しさん
NGNGUNICODE 使いたければ WideString でしょ。
コンポーネント自身のプロパティの Unicode 化の話はべつね。
CLX / Windows で実装されているからできるんだと思うけど、
同じ名前のクラスが異なる型のプロパティを返したら破綻すると
思う。
0637デフォルトの名無しさん
NGNGそのために__UNICODEとか-WUオプションがあるんだろ?
それを言ったら、WinAPIのTextOut()だって破綻するぞ。
0638デフォルトの名無しさん
NGNG#ifdef _UNICODE
#define TString WideString
#else
#define TString AnsiString
#endif
0639デフォルトの名無しさん
NGNGフォーム上に、Imageコンポネントと、いくつかのButtonを配置した
ものを作っています。Buttonをクリックすると、フォーカスが
ボタン上に移ってしまいますが、ボタンクリックに関する処理後、
自動的にフォーカスをImage上に戻すにはどうしたらいいのでしょうか?
ImageにFocusがあるとき、とある処理をしたいのです。
SetFocus()みたいなことをすればいいのかな?と思うのですが、
Imageコンポーネントには SetFocus()がないです。
0640デフォルトの名無しさん
NGNG必要なら、パネルの上に載せて、パネルにフォーカスを持たせるのが簡単かと
0641639
NGNGありがとうございます。
0642デフォルトの名無しさん
NGNG持ち合わせてないんだけど、いいのかな?
0643デフォルトの名無しさん
NGNG0644デフォルトの名無しさん
NGNG1. BCBかDelphi持ってる?
2. そのヘルプ見た?
0645デフォルトの名無しさん
NGNGだからOnEnter/OnExitで作りたいというような話ではないのかな?
0646643
NGNGWin32APIにしか無いと思った。
639は対象のHWNDだけ調べれば済むと思ったから。
0647デフォルトの名無しさん
NGNGTButtonもTPanelもTWinControlから派生しているからSetFocusやFocusedを持ってる。
ただTPanelはクリックしてもフォーカスを持ったような表示(点線)はされない。
TImageはTControlから派生しているから持ってない。
ということが言いたいの。
>>646
TWinControlから派生していないからウィンドウハンドルは持ってない。
0649デフォルトの名無しさん
NGNG643自身もTControlとTWinCotrolの違いが全然理解できていない。
どのコンポが何から派生してるのか、覚えれ。
0650デフォルトの名無しさん
NGNG数日前にBuilderをはじめた大厨房をお助け下さい。
API関数なるものを使おうと考えているのですが、
これを使う前にしなければならない手順等(include他)をご教示頂きたく
書き込み致しました。
Builderのヘルプから検索しようとしても、有効なキーワードさえわからず、
途方に暮れております。
昨日買った本も、「API関数が使えることが前提」で書かれており、
肝心のそこに至るまでの手順が書いておりません。(ToT)
レベルの低い質問かもしれませんが、どうか一つ、よろしくお願い致します。
0651デフォルトの名無しさん
NGNG0652デフォルトの名無しさん
NGNG>>650
始めたばかりであれば当面includeとかのことは考えなくてもAPIは使用できるので
安心していいと思う。もっと知りたければgoogleで「Win32API」で検索すれば色々と
出てくるし。
それよりも、その本の「API関数が使えることが前提」というのは、コンパイラの
問題じゃなくて読者がAPI関数を理解していることが前提という意味だと思うから
頑張ってくださいまし。
0653デフォルトの名無しさん
NGNG何も要りません。
SetForegroundWindow(hWndDetect);
を呼びたかったら、
SetForegroundWindow(hWndDetect);
って書けばいいだけの話し。
0654650
NGNGこんなこと書いたら、罵倒されると思っていたので
こんなに暖かい助言がいただけるとは、
2ちゃんねるもいいところですね。
早速試したいと思います。ありがとうございました。
0655デフォルトの名無しさん
NGNG650のような「努力はしてるな」と思えるようなのは罵倒されないよ。
ところで一つ聞きたいのだが、その本には完結した短いプログラムのリストとかは
ないのかい? もしあれば入力して実行させてみれば、質問しなくて済んだかもとは
思ったけどね。
0656学習中
NGNG構文エラー : 識別子 'CFrameWind' がシンタックスエラーを起こしました。
これの対処法を教えて下さい。
0657デフォルトの名無しさん
NGNGう〜ん…状況はもう少し詳しく頼む。罵倒されるぞ(w
そのdraw.cppが参考書とかのソースコピペでなければ、「CFrameWind」が
「CFrameWnd」の書き間違いかもしれない。
0658学習中
NGNGやっぱり「WND」を勝手に「WIND」に変えてはいけませんか。
それでやってみます。
0659デフォルトの名無しさん
NGNGTPanel* p;
p = new TPanel (Panel1);
p->Left = 0;
p->Show ();
で やっても表示されません.どうか教えてください
0660650
NGNGおはずかしながら、その本を見る限り、どれがAPI関数でどれがBuilderの関数かも
判別つかず、またサンプルリストを読んでもあまり理解できなかったために実行しません
でした…。
リストを理解せずに打ち込んで実行するだけなんて、ゲームのやりたさに
ベーマガのリストを機械的に打ち込むみたいで、なんか嫌だったのです。
0661デフォルトの名無しさん
NGNG打ち込んだら知りたい関数にカーソルを合わせてF1を押せばヘルプが引けるじゃん。
動作を確認しながらわからない関数を調べていくってのも学習方法の一つかなと。
ベーマガ・・・懐かしいね。
DATA文で機械語バリバリ書いてあって、やっと入力し終わってRUN! 暴走。
セーブするの忘れてた。
というのを思い出した(w
0662学習中
NGNG{
public:
DrawWnd();
void OnPaint();
Declare_message_map();
private:
void OnLButtonDown( UINT nFlags, CPoint point );
void OnLButtonUp( UINT nFlags, CPoint point );
void OnMouseMove( UINT nFlags, CPoint point );
Draw aDraw;
};
class DrawApp : public CWinApp
{
public:
virtual BOOL InitInstance();
};
Begin_message_map( DrawWnd, CFrameWnd );
ON_WM_Paint()
ON_WM_LButtonDown()
ON_WM_LButtonUp()
On_WM_MouseMove()
End_message_map()
とリストが続いているのですが、ビルドをかけたら「ON_WM_LButtonDown()」
の前に;がない、とはねられました。どこがマズイんですか?
0663
NGNG普通の人だったらWinAPIは
::TextOut(...);
と、APIの先頭に::をつけるんだよ。
もし、その本が::つけてないなら、その本もレベルが知れてるって事です。
わからなくても>>660は、恥ずかしく思う必要はないよ。
慣れてくると感覚でわかってくるけどね。
0664デフォルトの名無しさん
NGNG>>662
下5行。
ON_WM_Paint()を含む以下の行全ての行末に「;」付けてくださいな
0665661
NGNGそうか、そうだったのか。初めて知った。
俺もレベルが知れてるらしい(w
0666デフォルトの名無しさん
NGNGうひー。俺もつけてない(w
別に本職じゃないけど、全然そういうの知らなかった…
0669デフォルトの名無しさん
NGNGParentプロパティの設定が抜けてない?
0670Delフサギコ
NGNGShowしても仕方ないです
Parentをthis(表示されているForm)
指定してください
 ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄
∧,,∧ オチャー
ミ,, ゚Д゚彡
〃つ旦O
〜ミ,,[ ̄ ̄ ̄.]
 ̄ ̄ ̄
0671デフォルトの名無しさん
NGNGあ〜言われてみれば、Borlandは親切な(又は、変な)
オーバーライドしているから、
確かに意識的に::ってつけたほうがいいかも。
0672学習中
NGNGsss.exe - エラー 0、警告 0
と出ているのに「プログラムが実行できません」と出るんですが
どのような理由がありますか?
0673デフォルトの名無しさん
NGNG下のようなソースプログラムがコンパイルできないのです。
void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString AS_Section;
AnsiString AS_Key;
AnsiString AS_ReturnedString;
TIniFile *ini; ← ココで「[C++ エラー](省略)未定義のシンボルTIniFile」とかいわれます。
・・・・・
TIniFileはヘルプを見た感じ、特に改めてヘッダファイルをインクルードする
必要は無いと思うのですが、何度やってもコンパイラはつれない応えを返します。
日頃、TIniFileを使用している方、いらっしゃいましたら、何卒、教えて下さい。
0674デフォルトの名無しさん
NGNGバグは自分の不注意から。
0675デフォルトの名無しさん
NGNGじゃあincludeしてみればいいじゃん。
0676673
NGNGIniFiles.hpp要りますね。鬱だ・・・。
0677学習中
NGNGコンパイルは終了しているのに出てきました。教えて下さい、どうやったら解消できますか?
0678デフォルトの名無しさん
NGNGParentが必要なんですね.解決しました
0679デフォルトの名無しさん
NGNG風呂入って寝ろ!!
lib か bin の .csm ファイルが壊れている可能性が高いから手で削除。
かな?
0680639
NGNGが、Panel と Image を重ねると、Panel の方が上に来てしまうようです。
BCBの開発環境中で、Panelを選択し、「背面に移動する」と、
下に行っているように見えるのですが、実行させると表に来てしまい,
Imageが塗りつぶされてます。Panelの visible プロパティをfalseに
すると、Image は見えるようになりますが、SetFocusできません。
どこをいじればいいのでしょう?
Panelを透明にすれば良いのかな?(←やり方わからないけど)
>>643-649はよくわかりませんでした。
0681デフォルトの名無しさん
NGNGPanel がウィンドウコントロールで Image が非ウィンドウコントロールだからです。
違いを理解しましょう。
TWinControl のヘルプに書いてあることに加えて、
・親が同じ場合、ウィンドウコントロールは非ウィンドウコントロールよりも手前に来る
という特徴があります。これは覆せません。
0682680
NGNG>>643-649 を理解しないとダメなのかな?
いま自宅で、プログラムをいじれないんだけど、
(1)ボタンが押された。その処理をする
(2)Panelのvisibleをtrueにしたあと、Panel->SetFosus()する。
(3)Panelのvisibleをfalseにして、Imageを表示させる
という風にすればいいのかな?
0683デフォルトの名無しさん
NGNG理解しても結論が681になるだけ。
別解を提案してみる。
別のフォームを作ってそこにTImageを乗せる。
TImageのサイズにあわせてフォームをリサイズ。
フォームのBorderStyleをbsNoneにする。
本来TImageを置きたいフォームが表示されたら、今作ったフォームを表示する。
元フォームが移動したらそれに合わせて新フォームも移動させる。
こんなんどうよ?
0684Delフサギコ
NGNG∧,,∧ /まさか
ミ.,,゚Д゚彡< ButtonをSpeedButtonに変えたら
ミ つ目(ミ . \解決とかじゃないっすよね。
〜ミ,,O,,,,,,つ  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
フォーカス ハ イドウ シナクナルガ
Panelの上にImageを貼り付けるとか??
0685デフォルトの名無しさん
NGNGこら、フサギコ! せめて>>680くらいは読んでくれよ。
それから元々は>>639だ。
0686Delフサギコ
NGNG∧,,∧ / ̄ ̄ ̄ ̄ ̄ ̄
ミ ゚Д゚ミっ < 読んだつもりなんだけど、
|''U ̄| \______
| ̄ ̄|
/ ゙ヽ
( ゚Д゚ )
人____ノ
だから、Panelを二枚用意して
片方にalClientでTImageはっつけて
前にもってくりゃいいくない?
そもそも、Buttonをクリークして
Focusが移動しないSpeedBtn使ってはダメなん?
0687デフォルトの名無しさん
NGNGBCB4ってTPanelの上にTImage載せられるんだっけ?
D6では何も考えずに載るんだけど、>>680を読むと・・・。
0688Delフサギコ
NGNG〜′,,,,,,,,,,ミ,,゚Д゚彡 < >>680の状態は
UU"""" U U \Image1もPanel1もParentがForm1なんじゃない?
セツメイ メンドイ
Panel2を作ってその上にImage1をのせて(ParentをPanel2にして)
Panel1とPanel2とで重ね合わせりゃいいじゃん。
>>687
その辺りの仕様がVer4とVer6で変わるわけなっす
0689デフォルトの名無しさん
NGNGそういうことか。どうりで・・・。
>>640の言ってるのは「PanelにImageを載せる」であって「PanelとImageを重ねる」ではないぞ。
FormにPanelを置いてから、その上にImageを置くのだ。
煽ってすまん>フサギコ
でも、昔Panelの上に何かが置けなくてBevelに変更した覚えがあるのだが・・・。
0690680
NGNGとりあえず
>>682-683 の案と、SppedBottun を使うっていうのを試してみます。
>>683のは、具体的にどうプログラムを書けば良いのは
いまいちピンときませんが。ようは、
(1)大本のフォームと、(2)Image専用のフォームを作って、
状況に応じて(1)(2)の表示を切り替えるってことかな?
なんかややこしそうだ。
0691デフォルトの名無しさん
NGNGちょっと待って。
689の
>>>640の言ってるのは「PanelにImageを載せる」であって「PanelとImageを重ねる」ではないぞ。
>FormにPanelを置いてから、その上にImageを置くのだ。
を理解するのが先。これが理解できたら683はいらないはず。
0692Delフサギコ
NGNG∧,,∧,,,,,,,,,,,,,,, / とりあえず〜♪
ミ゚Д゚,,彡,,,,,,,,,,,,ヾ〜 < もそっとBCB使ってえ♪
U U """"UU \ 慣れましょ♪
0693639
NGNGえっと、今の状況は、MDIChildのウィンドウの上に
Panelを載せて、さらにその上にImageを載せています。
これと >>689 が言っているのは違うことなのかな?
SpeedBottunについて、ちょっと調べたのですが、
今やりたいことにはちょっと適さないみたいです。
0694デフォルトの名無しさん
NGNGそれでいいんだけど、
>が、Panel と Image を重ねると、Panel の方が上に来てしまうようです。
はどうなりました? ちゃんと載せていればこういう状況にはならないはず。
その話が690には書いてないので、「683を使うのはちょっと待って」と。
0696デフォルトの名無しさん
NGNG0697デフォルトの名無しさん
NGNG載せる==新規のコンポを子として登録する
重ねる==既存のコンポを同じ場所に配置する
きみは重ねてるだけじゃないの?
試しに、新規のTImageを既存のPanelの上に作成してごらん
0698デフォルトの名無しさん
NGNGパネルをマウス左クリック CTRL+V
これだけです
0699デフォルトの名無しさん
NGNGテキストでフォームを見ておきましょう
Imageがどこにどういうふうに入るかね
0700639
NGNG新規コンポをPanelの子として登録するには、
(1) まず、Panelをおく。
(2)次に新規ImageをPanelの上にDrag&Dropする
ので、いいのでしょうか?
あと、今までは、
Image1->Parent = Panel1
のような文を書いていたのですが、これでは、ImageをPanelの
子に設定したことにはならないのでしょうか?
上記3つを全部試してみましたが、どれもImageがPanelに隠されて
しまいました。何か根本的に間違っているのかな?
ちょっと出かけないといけないので、もうしばらくしたら落ちます。
0701デフォルトの名無しさん
NGNG×(2)次に新規ImageをPanelの上にDrag&Dropする
○(2)次にパレットからImageをクリック、(1)のPanel1の上でクリックする
Image1->Parent = Panel1 は自分で作成した場合
0702デフォルトの名無しさん
NGNG正しくは
object Panel1: TPanel
・・略・・
object Image1: TImage
・・略・・
end
end
のようにTImageがTPanelの入れ子になってないといけない
object Panel1: TPanel
・・略・・
end
object Image1: TImage
・・略・・
end
こういうふうになってるなら 上のように入れ子になるように直接編集すればいい
0703デフォルトの名無しさん
NGNG> のような文を書いていたのですが、これでは、ImageをPanelの
> 子に設定したことにはならないのでしょうか?
足りないよ!
C++ Builder の IDE(統合開発環境)は、
コンポーネントをForm上に登録するときに、
フォーム(ユニット)のcppファイル以外にも
自動的にいろいろ書いてくれています。
>>699 が言ってるものも、その一例。
> (2)次に新規ImageをPanelの上にDrag&Dropする
> ので、いいのでしょうか?
だ〜か〜ら〜
せっかく教えてくれている人の言うことを
ちゃんと聞いあげてよね…。
D&D だと失敗することがあるんだよ。
「新規コンポ」を何か(この場合は Panel )に GUI上で重ねて
あげる際に、Panel をアクティブにしておかないといけないわけ。
(そうしないと、偶然アクティブになっている他のものが
Parent になっちゃうからね。)
そういう作業をするとき、IDE の画面上だと、
(他の部品「新規コンポ」などのドラッグ中は)
どの部品がアクティブなのかを明示的に指定(クリック等)しておいた
効果が失せることがあるわけ。
(対象の部品の種類などによる)
>>698 が言うように、
1. Image をクリップボードにコピー。(マウス左クリック CTRL+X )
2. IDE 上の GUI で Panel をアクティブにする。(マウス左クリック )
3. Panel に クリップボードの内容をペーストする。(CTRL+V )
こうすればうまくいきますよ。
0704デフォルトの名無しさん
NGNG実行中にコンポーネントの前後(前面・背面)の順番を変えるには
どのようにすればよいでしょうか?
お願いします
0705Delフサギコ
NGNG(;;::; (::;; ( ;;::;; )
(::: (;;:: ;;;) :::::)
(;;: (::: (::;;; ;;;;)::;;;゙゙);;)
(,,゙:゙:;;;;;,,,(::;;;;;;;;);;;;;;:::):::;;;;)
ヾ(,,;;;;ノゝ::;;iii //;;;;)
ヾヽi:;;;iii|//
ヾ;;;iiiii/
|::;;;iii|
|::;;;iii|
|:;;;;iii| ∧ /よくまあ、そこまで
|;;;;iiii|Д゚ミ ∬ < 懇切丁寧に
|;;;iiii;| つ━┛ \教えられるなあ。。
|;;;iiii;|., ミ〜. フサ ニハ ムリ
.jrjjrj从wjwj从j
jwjjrj从jrjrj从jwjwjjr
0706Delフサギコ
NGNG_____
/:\._____\ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
|: ̄\ ミ,,゚Д゚ミ < BringToFrontとSendToBack
|: :|: ̄UU ̄:| \_________
0707デフォルトの名無しさん
NGNG0708デフォルトの名無しさん
NGNG抽象的なのは回答する気がなくなるけど、具体的な話ならね。
あと「助けてください」と書いてあると嫌。なぜだろう?
俺は毎回AAを貼るフサギコに感心するよ。
0709学習中
NGNGどうやって組み込んだらいいかわかりません。
--------------------------------------------------------------------------------
0710デフォルトの名無しさん
NGNG同情を引くための言い回しが形式化して
どうでもいい質問をすることの免罪符として使われるからじゃないかね。
個人的には 「助けて」 ってプログラムの質問に使うほど軽い言葉ではない。
初心者、至急、助けて と続けれられると 「チチキトクスグカエレ」 ほどの大事かと思ってしまう。
0711デフォルトの名無しさん
NGNG例えばボタンを押すとウインドウを最小化させるようにしたいのですが
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Form1->WindowState = wsMinimized;
〜
とすると画面の左下に小さいウインドウが出たままで
普通に最小化ボタンを押した状態になりません
ちなみにフォームのBorderStyleはbsNoneにしています
ご教授よろしくお願いします…
0712デフォルトの名無しさん
NGNG0713712
NGNG0714デフォルトの名無しさん
NGNGもしかして、MDI だったりして?
0715デフォルトの名無しさん
NGNGヘルプに例が出ているので、真似をしてみるとよいです。
「習うより慣れよ」とぞいひけるなり。
0717デフォルトの名無しさん
NGNGアプリケーションに対して Application->Minimize();
0719デフォルトの名無しさん
NGNG右上の「×」ボタンがクリックされたら終了確認のダイアログを出して
キャンセルされたら終了しないようにしたいのですが、
どうやったらいいんでしょうか?
0720デフォルトの名無しさん
NGNGOnCloseQuery
0721デフォルトの名無しさん
NGNGプロジェクトオプション→パッケージ→パッケージ再構築、の欄で
実行時パッケージを使って構築のチェックをハズスと、下記2関数が外部シンボル未解決、になります。
・SelectDirectory()
・DirectoryExists()
どうしたらいいんでしょうか。(どっちともFileCtrlっすよね...)
0722デフォルトの名無しさん
NGNG(´-`).。oO(ライブラリを参照できるようにすればいいのでは?)
0723デフォルトの名無しさん
NGNG#include <Filectrl.hpp>
ってやれば通るはずって思ってるんですが、バグっすかこれ。
ライブラリ参照の仕方ってどれをどうすればいいのでしょうか?
0724デフォルトの名無しさん
NGNG.h のほかの includeが並んでる所に追加してみたら?
0725724
NGNG0726723
NGNGできました!
CPPに追加していたのをHに入れたらOKでした。
んで、もいちどCPPに移してみたら両方通る...まいっか笑。
では。
0727デフォルトの名無しさん
NGNG(´-`).。oO(オブジェクトかライブラリのファイルがどこかのディレクトリに作成されたんだろ?)
0728726
NGNG0729ながいです。
NGNG「SendBuffer」および「ReadBuffer」について質問があります。
この2つのメソッドは、ヘルプや使用例では変数が2つしかないのに
実際にコンパイルすると「呼び出し時のパラメータがたりないぞぉゴルァ!」と
叱られてしまいます。そこでテキトーな整数を加えて変数を3つにすれば
コンパイルできるのですが、この3番目の変数にはいったいどのような数を
入れていいのかさっぱりわかりません。
コンパイルは出来てもわからないまま使うのは非常に不安なので、
教えていただける方は居ますでしょうか?
詳しくは下記の通りです。
===詳細===
この2つのメソッドはヘルプではそれぞれ
> procedure ReadBuffer(var Buff: array of char; var length: integer);
> Buff パラメータは,データの読み込み先のバッファを指定します。
> length パラメータは,読み取るデータのサイズを指定します。
とか、
> procedure SendBuffer(Buff: array of char; length: integer);
> Buff パラメータは,リモートホストに送信される文字の配列を指定します。
> length パラメータは,Buff パラメータのデータの長さを指定します。
と2つだけしかパラメータが要らないかのように紹介されており、
また、使用例の部分では
> NMUDP1.SendBuffer(C, 3);
やら
> NMUDP1.ReadBuffer(C, I);
見たいな書き方をしているので変数が2つなのかなって思ってました。
しかしこの書式でコンパイルすると
“[C++ エラー] Unit1_SendProgram.cpp(24): E2193 呼び出し時のパラメータが足りない:
_fastcall TNMUDP::SendBuffer(const char *,const int,int)”
と、怒られてしまいます。
なにやらコンパイラは3つのパラメータを要求しているみたいなのです。
しかし、3つめのパラメータに何を入れればいいのかを、
せめてヘルプに書いて欲しいのです。
この、3つめの変数にはどんな値をいれればいいのでしょうか?
ご存知の方、何卒、ご教示下さい。
0730デフォルトの名無しさん
NGNG0731デフォルトの名無しさん
NGNG別のノードの下の階層にコピーするなんていう事がしたいんですが
便利なメソッドとか知ってる方教えてください。
0732デフォルトの名無しさん
NGNGは、いつになったら追いつくのでしょうか?
0733719
NGNGできました。ありがとうございます。
ていうか、こんな探せば見つかるような質問しちゃってすんまそん。
0734729
NGNGヘッダーファイルは見ましたが、型くらい有効な情報がありません…。
なんだか2つ目の変数と3つ目の変数って、同じ意味のような気が。
■ このスレッドは過去ログ倉庫に格納されています