トップページtech
984コメント343KB

新C++Builder相談室

■ このスレッドは過去ログ倉庫に格納されています
0001新人NGNG
C++Builder相談室が後少しで1000になりますので、新しいスレを...
よろしくお願いします!
0712デフォルトの名無しさんNGNG
ダウソロードするところが見つからないぞ!
0713712NGNG
誤爆です。すいません
0714デフォルトの名無しさんNGNG
>>711
もしかして、MDI だったりして?
0715デフォルトの名無しさんNGNG
>>709
ヘルプに例が出ているので、真似をしてみるとよいです。
「習うより慣れよ」とぞいひけるなり。
0716711NGNG
>>714
違います
フォームは一つだけですし、FormStyleはFsNormalです
0717デフォルトの名無しさんNGNG
>>711 それはフォームを最小化してるだけです

アプリケーションに対して Application->Minimize();
0718711NGNG
>>717
ありがとうございます!!出来ました!
0719デフォルトの名無しさんNGNG
BCB4です。
右上の「×」ボタンがクリックされたら終了確認のダイアログを出して
キャンセルされたら終了しないようにしたいのですが、
どうやったらいいんでしょうか?
0720デフォルトの名無しさんNGNG
>>719
OnCloseQuery
0721デフォルトの名無しさんNGNG
BCB5Proです。
プロジェクトオプション→パッケージ→パッケージ再構築、の欄で
実行時パッケージを使って構築のチェックをハズスと、下記2関数が外部シンボル未解決、になります。
・SelectDirectory()
・DirectoryExists()
どうしたらいいんでしょうか。(どっちともFileCtrlっすよね...)
0722デフォルトの名無しさんNGNG
>>721
(´-`).。oO(ライブラリを参照できるようにすればいいのでは?)
0723デフォルトの名無しさんNGNG
>>721 です。

#include <Filectrl.hpp>
ってやれば通るはずって思ってるんですが、バグっすかこれ。

ライブラリ参照の仕方ってどれをどうすればいいのでしょうか?
0724デフォルトの名無しさんNGNG
>>723 なんとなくだけど そのinclude を CPPの方に追加したとか?
.h のほかの includeが並んでる所に追加してみたら?
0725724NGNG
いやその・・・  .CPP に追加してもいいけど、FileCtrlを他のincludeの後に書いたんじゃないかと
0726723NGNG
>>725
できました!
CPPに追加していたのをHに入れたらOKでした。

んで、もいちどCPPに移してみたら両方通る...まいっか笑。
では。
0727デフォルトの名無しさんNGNG
>>726
(´-`).。oO(オブジェクトかライブラリのファイルがどこかのディレクトリに作成されたんだろ?)
0728726NGNG
そんなもんなんすか...把握したほうがいいっすか?>>727
0729ながいです。NGNG
 BuilderのコンポーネントTNMUDPのメソッドである
「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デフォルトの名無しさんNGNG
C++Builder なんだからヘッダーファイル読めばぁ?
0731デフォルトの名無しさんNGNG
TreeViewコンポーネントで、あるノードの下の階層を含めたツリー構造を
別のノードの下の階層にコピーするなんていう事がしたいんですが
便利なメソッドとか知ってる方教えてください。
0732デフォルトの名無しさんNGNG
OracleのバージョンアップにBDEのバージョンアップ
は、いつになったら追いつくのでしょうか?
0733719NGNG
>720
できました。ありがとうございます。
ていうか、こんな探せば見つかるような質問しちゃってすんまそん。
0734729NGNG
>730
ヘッダーファイルは見ましたが、型くらい有効な情報がありません…。
なんだか2つ目の変数と3つ目の変数って、同じ意味のような気が。
0735デフォルトの名無しさんNGNG
>>734
(´-`).。oO( >>729 は何のファイルの何処を見たんだろ? )
小一時間、(略)
0736デフォルトの名無しさんNGNG
TNM〜系は使えないからIndyを使えって言うのがよく言われてたりする。
Builderは使ってないけど、delphiのarray of charはポインタと長さの
両方を渡すからdelphi→c++の際に余計なパラメータがついたのかもしれない。
0737デフォルトの名無しさんNGNG
>>729
http://www.google.com/search?q=SendBuffer&hl=ja&lr=lang_ja
…の結果、一番上に
http://www.borland.co.jp/qanda/cbuilder/c0005144.html

質問の前にgoogleでの検索と、せめてBorlandのFAQくらいは目を通しておいた
ほうがいいと思うよ。嫌味じゃなくて、効率悪いでしょ。いちいち回答待ってちゃ。
0738729NGNG
>>735
"nmudp.hpp"というファイルの、137行目にSendBuffer()が、
139行目にReadBuffer()がTNMUDPクラスのメンバとして定義されて
おります。参照にしたのはそこです。
で、どちらかというとそのメソッドの内容がみたいのですが、
それはどこにあるのかわからないのです・・・。
"nmudp.hpp"にincludeされてるファイルはみんな見たのですが
SendBuffer()もReadBuffer()も、ありませんでした。
0739デフォルトの名無しさんNGNG
CBuiler Ver5 だけど、ヘッダーファイルはこうなっている。

SendBuffer(const char * Buff, const int Buff_Size, int length);

バッファへのポインタと、バッファの大きさ(最大長)と、実際に送信したい
データの長さ。
ってところでしょう。
0740729NGNG
>>739
そ、そんな感じみたいです!助かりました!ありがとうございます!
ていうか、私もヘンに言葉で説明せずヘッダファイルの記述を書き込めば
よかったですね。
次質問する時は、もっと上手な質問の仕方ってやつを気をつけたいと思います。
0741737NGNG
(-_-) ムシ サレチャッタ…
(∩∩)
     
0742デフォルトの名無しさんNGNG
>>741
そのうちヘッダよみますね...FileCtrlの件の質問者っす。
0743デフォルトの名無しさんNGNG
>741は>729へ回答したんだと思われるが。
0744729NGNG
>741
 ごめんなさーい!仕事中、隠れながら2chやってたので、
IEの大きさをすごく小さくしてたら見逃してしまいました!
 私も書き込む前に検索はかけたんですけど、そのものズバリな
こんなページは一番上ではなかったので、さっさと諦めて
書き込んでしまったわけです・・・。
0745デフォルトの名無しさんNGNG
http://www.infoworld.com/articles/hn/xml/02/01/24/020124hnborland.xml
ぐあああああ。来月6発表かよ
今月5買っちまったよー。俺のために日本でのリリースは1年後をめどに進めてくれ
 んじゃ
0746デフォルトの名無しさんNGNG
>>745 安心しろ。製品発売はベータ期間の始りに過ぎない。
BCB/Delphiは Update1 が出てからが真の実用フェーズだ。
オレもBCB3からBCB5に移行したのは去年の秋からだ。
0747デフォルトの名無しさんNGNG
C++BuilderのLinux版って出るの?
0748デフォルトの名無しさんNGNG
出るらしいよ。
0749デフォルトの名無しさんNGNG
ゎ-ぃ!      ゎ-ぃ!ゎ-ぃ!    ゎ-ぃ!
    ゎ-ぃ!            ゎ-ぃ!
 ゎ-ぃ!          ゎ-ぃ!         ゎ-ぃ!
ゎ-ぃ!ゎ-ぃ! ゎ-ぃ!    ゎ-ぃ!   ゎ-ぃ!  ゎ-ぃ!
       ゎ-ぃ!
ゎ-ぃ!         ゎ-ぃ!        ゎ-ぃ!
    ゎ-ぃ!         ゎ-ぃ!       ゎ-ぃ!
ゎ-ぃ!ゎ-ぃ!    ゎ-ぃ!      ゎ-ぃ!  ゎ-ぃ!
               ゎ-ぃ!ゎ-ぃ!  ゎ-ぃ!
        ゎ-ぃ!
ゎ-ぃ!ゎ-ぃ!          ゎ-ぃ!      ぅゎ-ぃ!

犯罪者も読んでるらしいぞコレ。
http://www.puchiwara.com/hacking/
どうなんだろうか。
0750デフォルトの名無しさんNGNG
C++BuilderのLinux版っていつ出るの?
0751デフォルトの名無しさんNGNG
ここすいてますね。
実際C++Builderのシェアってどれくらい?
0752はじめましてこNGNG
こんにちは。はじめまして。
gethostnameについて教えて下さい。
gethostnameでホスト名をGetしたいのですが
#include <winsock.h>
char szHostName[256];
int rs;
//ローカルホスト名取得
rs = gethostname(szHostName,255);
※ライブラリパスは$(BCB)\Lib\PSDKを指定しています。
上手くいけば戻り値は0らしいのですが
-1が返って来てしまいます。(T_T)
0753デフォルトの名無しさんNGNG
wsock32.libは追加してる?
0754デフォルトの名無しさんNGNG
>>752
WSAGetLastErrorを調べてみるといいことあるかも?
0755デフォルトの名無しさんNGNG
>752
WinSockは初期化しないとダメ。WSAStartupだっけ?
0756はじめましてこNGNG
>>753
wsock32.libはE:\Borland\bcc55\Lib\PSDKの中に入っていましたので
$(BCB)\Lib\PSDKで良いかと思いますが・・・・・
WSAGetLastErrorですか?わかりました。
調べてみます。
0757はじめましてこNGNG
>>755
初期化したら上手くいきました!
wVersionRequested = MAKEWORD(1,1);
nErr = WSAStartup( wVersionRequested, &wsaData );
ありがとうございました。m(_ _)m
0758デフォルトの名無しさんNGNG
>757
おめでとう。分かってると思うけど、終了時には WSACleanup も忘れずに。
0759デフォルトの名無しさんNGNG
あげ
0760はじめましてこNGNG
こんにちは。
TNMUDPのOnDataAvailable イベントについて教えて下さい。
受信側サーバのプログラムを作成しているのですが
相手側からデータを受信した時の処理を下記の様に記述したいのですが
OnDataAvailableをどの様に記述したら良いのかわかりません。
TNMUDPのイベントには出てこないし
どなたか解る方教えて下さい。m(_ _)m
Private Sub udpServer_DataArrival(ByVal bytesTotal As Long)
'データが届きました
Dim strBuf As String

'相手アプリケーションの送信データを取得します
udpServer.GetData strBuf
lstRecv.AddItem udpServer.RemoteHostIP & ":" & strBuf
lstRecv.ListIndex = lstRecv.ListCount - 1
End Sub
0761デフォルトの名無しさんNGNG
こんなんでましたけど。
http://www.watch.impress.co.jp/internet/www/article/2002/0129/borland.htm
http://www.borland.com/about/press/2002/cpp_appstrategy.html
0762デフォルトの名無しさんNGNG
>>761
いよいよですね。
早くほしいなぁ。
無料ダウンロードもあるといいね。
0763デフォルトの名無しさんNGNG
>761
とりあえず、動作軽く&エディタもうちょっと
まともに使える物にしてくれsage...
0764デフォルトの名無しさんNGNG
>763
エディタはDelを見ると期待薄
0765デフォルトの名無しさんNGNG
>764
確かにそうかも・・・。
まあ、せめて軽くしてほしい。
0766DelフサギコNGNG
|,,∧   コンパイルソクド ハトモカク
|Д゚彡  コードホカン モオソイ BCB...(Del比)
| U    
| ミ    
| U     D6デ コードホカン コウソクカ サレタケド(D5比)
      BCB6ハ ハヤクナッテイルノカナ

>>794 ハテ?
エヂタ ジタイガ オソイカ?
0767764NGNG
>766
「エディタもうちょっとまともに使える物」は期待薄って話。
たぶんフリーカーソルとかTAB表示とか、そういうことじゃないかな?
0768763NGNG
あー。説明不足すまんっす。
軽く=コード補完
エディタ=「結構使いやすい」って言える程度のもの期待〜
ってことです。

>766
D5はコード補完遅かったんですか?
D6ちょっとさわったことあるだけなんで違いわからず。
D6は早いっすね・・・。
0769デフォルトの名無しさんNGNG
コード補完って、あれ、一度コンパイルしてない・・・?
コンパイルするくらいの時間はかかってるよ、あれ。
0770DelフサギコNGNG
      ∧,,∧___   / ̄ ̄ ̄ ̄ ̄
    /ミ*゚Д゚ミ/\<  間違っってたのね
  /| ̄∪∪ ̄|\/  \_____
    |____|/
     ,,,,∪∪,,, ,,

 コード補完
 速:遅=D:BCBなので
 D5→高速化→D6 の実績で
 BCB5→高速化がどれほど?→BCB6
 に期待age。

 エディタはG-エキスパ&フリカソルアドインで
 改善できないです?

 入れてないなら、入れてみてください。

0771デフォルトの名無しさんNGNG
漏れのBCBは、起動→コンポーネント貼り付け→終了。
別のエディタでコード書き書き→BCB再起動→ビルド。
…効率悪い。
0772デフォルトの名無しさんNGNG
>>771
別に途中BCB終了させなくていいんでわ・・・
0773デフォルトの名無しさんNGNG
リソース足りんのよ(w
0774デフォルトの名無しさんNGNG
>770
フリカソルアドインは入れてるけど、G-エキスパ入れてないです。
http://www.gexperts.org/
これですよね?
早速いれてみます。

フサギコさん、密かにファンっす(w
0775デフォルトの名無しさんNGNG
>>771
BCBを再起動せずにコマンドラインからコンパイルすれば?
0776デフォルトの名無しさんNGNG
BDEを使用して、MSSQLServerに繋ごうとしたら、
「アプリケーションはこのドライバを使用する事が出来ません。」
というエラーメッセージが出て接続できません。
BDEAdministratorからは接続出来ています。エリアスの設定は正しいと思います。
何が悪いのかさっぱりわかりません・・・
環境は
Win2000Server
MSSQL2000
BDE5.2
C++Builder5 SP1
です。
0777デフォルトの名無しさんNGNG
>>776
もっとたくさんエラー情報を拾えるようなコードを書くべし。
0778776NGNG
>777

エラー情報も何も、
TDatabase *db;
db = new TDatabase(this);
db->AliasName = "test";
db->DatabaseName = "test";
db = true;
のようなシンプルなコードでエラーになってしまいます。
エラー情報はどこから拾えばいいですか?
それと、データベースエクスプローラーや、
テーブルコンポーネントでテーブルを指定しても失敗します。
0779デフォルトの名無しさんNGNG
>>778 DataBaseExprolerからはどうなの?
0780777NGNG
お、777 ゲット!

>>778
db = true;
じゃなくて
db->Connected = true;
なのでは?

あと、例外を捕まえたらすぐにエラー情報を獲得しないとダメよ。
0781デフォルトの名無しさんNGNG
あげ
0782ゆっちんNGNG
個人情報(名前、住所など)の検索、ソートなどができるメニュー画面を作ってほしいな!
0783 ◆ARTZBSDI NGNG
ところで皆様C++でnewしたオブジェクトであるかどうかチェック
する方法ありますか?

int *pt1 = new int[10];
int buf[10], *pt2 = buf;
//pt1をオブジェクトへのポインタであることを見分ける。

0784デフォルトの名無しさんNGNG
>>782
Microsoft Access のサンプルがいいよ。
あれのマネしてみ。
0785デフォルトの名無しさんNGNG
age
0786デフォルトの名無しさんNGNG
あげ
0787デフォルトの名無しさんNGNG
http://www.borland.com/bcppbuilder/
0788デフォルトの名無しさんNGNG
Oh! Thanks
0789デフォルトの名無しさんNGNG
2つ以上のアクションに同じショートカットを割り当てて、状況によって実行するアク
ションを切り替えるにはどうすればいいでしょうか?
たとえば、Ctrl+Cをしたときに、あるフラグが立っていたらAction1Executeハンドラを
呼び、落ちていたらAction2Executeハンドラが呼ぶようにしたいのです。
0790デフォルトの名無しさんNGNG
>789
Action3にCtrl+Cを割り当てて、そこからAction1やAction2を
呼び出すってのはダメ?
if(Flag == true)
Action1->Execute();
else
Action2->Execute();
0791DelフサギコNGNG
   _____
 /:\._____\  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 |: ̄\ ミ,,゚Д゚ミ  < ActionのShortCutプロパを変えれ
 |:   :|: ̄UU ̄:|  \_________
0792デフォルトの名無しさんNGNG
http://biztech.nikkeibp.co.jp/wcs/show/leaf?CID=onair/biztech/comp/168305

あれ、Personal版は無償ではない?
0793デフォルトの名無しさんNGNG
>>792
CBuilder は有償。BCC コマンドラインコンパイラは引き続き無償。
0794デフォルトの名無しさんNGNG
>>793
Delphi6とは同期しないのね・・・
0795デフォルトの名無しさんNGNG
>>794
まだBCB6が出てないし。
0796デフォルトの名無しさんNGNG
>>795
週末に出荷だが?
0797デフォルトの名無しさんNGNG
日本語版はまた別なんだよね?
0798デフォルトの名無しさんNGNG
>>797
来月。
0799デフォルトの名無しさんNGNG
フォームのドッキングについて、
詳しく教えてるサイトってありませんか?
VisualCみたいなのが作りたいのです。
0800DelフサギコNGNG
          _______________
   ∧.,,∧   /
  ミ.,,゚Д゚彡< D6パウソナル無料って日本だけだっけ?
  ミ つ目(ミ . \
〜ミ,,O,,,,,,つ   ワスレタ

>>799サイトどころか書籍でもほとんど無いくらい。

D4パワーガイドでセツメイがあったかな。
0801デフォルトの名無しさんNGNG
StringGridにCheckBoxを表示したいんですが
どうしたらよいでしょうか?

よくあるテキストを右揃えとかセンタリングとか
セルに色を付けるとかはOnDrawCellのところで
APIのDrawTextを使うのが常套手段のようですが、
DrawCheckBoxというAPIは見つけられませんでした。
0802DelフサギコNGNG
http://itpro.nikkeibp.co.jp/free/ITPro/USNEWS/20020206/9/
米ボーランドが「Borland C++Builder 6」を発表,Windows/Linuxアプリ開発を可能に

  ∧,,∧     / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ミ ゚Д゚ミ  < で、Maniacsは見捨てたわけですか
 (ミ  ミつ)ビシッ\_________
〜ミ  ミ
  ∪ ∪ MOStringGrid使うか
     そのソース嫁

CheckBoxを描画するAPIなんてあったかにゃー
0803デフォルトの名無しさんNGNG
DrawFrameControl?
0804 ◆xDd9P2XM NGNG
あれは Marlette フォントで「書く」のだ。
0805 NGNG
>>783
亀レスで申し訳ないけど、それってヒープ領域か否かだよね。
アドレスの位置を見ればわかるけど、処理系依存なのでおすすめできない。
たぶん「More Effective C++」にもその問題出てたけど、判別はできなかったと
思う(記憶が曖昧です)
0806 ◆xDd9P2XM NGNG
>>803
DrawFrameControl

正解っす。ウツダシノウ
0807DelフサギコNGNG
  ,,,,,,,,,,,,,,,,∧,,∧      / ̄
〜′,,,,,,,,,,ミ;゚Д゚ミつ ))) < サンプル欲しいな。
  UU"""" U[クレクレ]      \_
0808デフォルトの名無しさんNGNG
>>807
VCL ソースコードを DrawFrameControl で検索すればいくらでもでてくるが?
0809デフォルトの名無しさんNGNG
キーコンフィグ機能入れるんだけど、ショートカットが複数被ってもちゃんと
全部実行するようにはどうすればいいだろ?
すべてのハンドラの最初に、同じショートカットのやつを検索してそれを呼ぶ
コード入れればできそうだけど、どうも綺麗じゃないし。
なにかを継承してカスタマイズするとかでスマートに解決できないでしょか?
0810デフォルトの名無しさんNGNG
>809
ショートカットが重なったら全部実行、というのはあまり一般的な
インタフェースではないと思われ。実行する順番とかタイミングの
とりかたとか、色々問題ありそうだし。
最初から重複した登録ができないように制限するか、黙って最初に
見つかったやつだけ実行するかでいいんじゃないかな。
0811DelフサギコNGNG
   ∧,,∧   / ̄
\,,,,ミ,,゚Д゚彡 < TActionを継承してTActionのポインタ(?)
⊂,,,,,,,,,つつ.   \を所有させて
ショートカット重複しているものを代入しておく

で、Actionが呼び出されたら
TActionポインタがNULLか
どうか調べて自処理が終わったあと
呼び出したらいい

とは一瞬思ったが
>>810さんのいうとおりなので
実装するのが無駄っぽいです。

どうせなら、二つのアクションを選択して
2機能を合わせた機能を持つ
新アクションを生成できるような仕組みを
作るのがいいんじゃないでしょうか。
■ このスレッドは過去ログ倉庫に格納されています