トップページ⇒tech
1001コメント319KB

C++Builder相談室 Part4

レス数が900を超えています。1000を超えると表示できなくなるよ。
0001デフォルトの名無しさんNGNG
C++Builderに関する質問・回答や議論等を行う相談室スレッド。
過去スレ・関連サイトは>>2-4あたり。
0845デフォルトの名無しさんNGNG
>>841-844
解決しました!感謝です。
0846デフォルトの名無しさんNGNG
うーん 実行速度は
1 >>841(malloc)
2 >>842(Vector)
3 >>843-844(StringList.Commatext)
だろうな。
慣れの順はこの逆だろうな。
慣れれば3つとも書く時間は同じ程度か、
0847843NGNG
>>845
感謝の言葉はいらないから、どの実装を使ったのか教えてくれ。
そのほうが教えたほうも嬉しい。
0848デフォルトの名無しさんNGNG
>>846
なれなくても、ライブラリ使う分にはコードを書くコストは無い。
慣れてきても、ライブラリを使わない場合にはコードを書かねばならない。
手持ちのライブラリを使う。ってのはライブラリを使うってことだ。

速度は、データコピーが律則段階となるから大差ないと思うよ。
0849デフォルトの名無しさんNGNG
>>848
 データコピーは
  mallocで必要メモリ以上を確保する方式は1回
  Vectorを使った場合は、データ数の対数に比例
  StringListを使った場合は、書き出しデータの分は1回だが文字列の方を2度スキャンしてしまう
  上、1回目のスキャンでコピーも発生する

0850デフォルトの名無しさんNGNG
>>849
>mallocで必要メモリ以上を確保する方式は1回
ほんとか?
0851デフォルトの名無しさんNGNG
>>849
838 さんの、元のお題があいまいだからなんともいえないけど。

841 のアイデア、いまいち理解できないんだけど。
たとえば4番目の文字列を欲しい。ってとき、まさか要求されるたびに最初からスキャンするの?
0852デフォルトの名無しさんNGNG
まぁ、俺ならvector使うだろうなぁ。
0853デフォルトの名無しさんNGNG
誰か簡単なソケットサーバのサンプル作ってくれー

ServerSocket使って
一応接続クライアント接続->メッセージ送信

までできたんだけど
「たまにメッセージが届かない」
かったり
「サーバから一度メッセージを送信すると二回目以降メッセージが届かない」

等

クライアントはFLASHのXMLソケットで作ってます。
0854デフォルトの名無しさんNGNG
UDP 使っているからとか?
0855デフォルトの名無しさんNGNG
サーバーの MTU の問題では?

CBulder のみユーザーには分からんかもしれん。すまん。
0856デフォルトの名無しさんNGNG
Form1 と Form2 を用意しておき、
Form1のボタンをクリックすると、
Form2のEdit1文字列を変更する。
という動作をさせたいのですが、

Form1から、Form2へアクセスするときの記述方法が
どうしてもわかりません。

TForm2::Edit1->Text="hoge";
と言う記述は、Form1内では、通らないんです。

プログラミングを始めたばかりの初心者ですが、
どなたか、アドバイスお願いします。
0857 NGNG
Form2->Edit1->Text="boke"; は?
0858名無しさんNGNG
>>856
Form2(Unit2)のヘッダファイルをインクルードすれ。

Form1をアクティブにしておいて,ファイルメニューの「ユニットファイルの...」を選択。
後はわかるはず。
0859856NGNG
>>857-858
できました!!
ありがとうございます!!!

0860853NGNG
ソケットについて質問したものです

なんとか、安定したメッセージ送受信ができたのですが、
接続/切断を連打するとサーバ側で非同期ソケットエラーが出てしまいます

ここらへんの改善する良い方法はないでしょうか?
0861デフォルトの名無しさんNGNG
あなたのコードに依存するから誰もコメントつけられないよ。
0862デフォルトの名無しさんNGNG
エクスプローラもどきを作ろうとおもっているのですが
エクスプローラのツリービューのアイコンはどこにありますか?
0863デフォルトの名無しさんNGNG
ちょっと質問ですが、エクスプローラなどから自作ソフトにD&Dはできるのですが
逆に自作ソフトからエクスプローラ等にD&Dするほうほうは
どうやってやるのでしょうか?
よろしくお願いします。
0864デフォルト肉マンNGNG
>856
????????????

>857
ウンコ同然のクソグラマーの分際で純朴な少年をバカにする輩、市ね
0865委員長 ◆/DABoneCRY NGNG
>864
>857 のレスで合ってませんか?
0866デフォルトの名無しさんNGNG
C言語実行環境はどうやったら整えられるのですか?藁
0867デフォルトの名無しさんNGNG
>>866
C++Builderを購入しなさい。
0868デフォルトの名無しさんNGNG
TreeViewで子ノードからルートまでキャプションを連結するのに簡単な方法はありますか?
C:
+-aaa
+-bbb
これでbbbが選択されている時に「c:aaa\bbb」って具合に連結したいのですが
0869デフォルトの名無しさんNGNG
普通に1個1個足していっても十分簡単でない?
String text = TreeView1->Selected->Text;

for (TTreeNode* node = TreeView1->Selected->Parent; node != NULL; node = node->Parent)
    text = node->Text + "\\" + text;

モット?
0870866NGNG
>>867
反応してもらったのでマジに質問します(藁)
C++Builderをインストールする事はできたのですが、Cファイルをどこで翻訳・実行すればいいのかわかりません。教えて下さいm(_ _)m
0871デフォルトの名無しさんNGNG
>>870
Builderをインストールしたのならbinにパスが通っているはず。
.cや.hのあるディレクトリでbcc32を使えば良い。
0872870NGNG
>>871
すみません、ディレクトリってなんですか?(苦笑)
一応調べたのですが、言葉の意味が載ってないので。
Binという名のファイルフォルダはあります
0873デフォルトの名無しさんNGNG
>>872
ディレクトリ == フォルダと思っとけ
0874Delフサギコ ◆A6VzDeLphI NGNG

  ∧,,∧   >>863さん
 ミ,,゚Д゚彡
 ミつ日(ミ
D&D専用コンポーネントを使うと楽でいいです。
海外の物が一番西濃がいいと思われ
海外ものと、恐れずに使うのが吉
0875デフォルトの名無しさんNGNG
>>872
やい、おまえ。何 (苦笑) とかしてんだよ。
苦笑したいのはこっちなんだよ。
えらそーに、(苦笑) とか使ってンなよ。

つーか、ネタにマジレスしてる俺って(゚Д゚)カコイイ?
0876名無しさんNGNG
>>875
y=ー( ゚д゚)・∵. ターン
(・A。)イクナ・・ァベルヒャ!!
0877デフォルトの名無しさんNGNG
>>875
うむ。確かにこの文脈で (苦笑) はめっちゃ腹立つね。
ナイフで顔をザクザクと刺したくなる。

上手い煽りであったと認めざるをえない。
0878デフォルトの名無しさんNGNG
まぁ、それまでにも質問形式をとりながら (藁 とかつけてるしね。
0879ナイフで顔を刺された872NGNG
bcc32を実行すると一瞬だけ文字が流れてすぐに終了してしまうのですが…
0880デフォルトの名無しさんNGNG
>>879
エクスプローラから実行してどうする
コマンドラインで実行汁!

>bcc32 test.c
ってな具合に打て
0881デフォルトの名無しさんNGNG
コマンドライン??
0882880NGNG
頼む!!誰か代わってくれ〜〜〜〜
0883880NGNG
だいたい、Builderのスレなのに何故にこの内容?
bcb.exe使え イジョ
0884デフォルトの名無しさんNGNG
>>881
あのねー、、、、
スタートメニューから「名前を指定して実行」ってあるだろ。
そこに "format c:" って打てってこと。
0885880NGNG
>>884
ダイアログが出てダメだろ。
何かもっといい手は無い?
delete c:\windows\*.*もダメっぽいし。
0886デフォルトの名無しさんNGNG
delte c:\boot.ini
0887デフォルトの名無しさんNGNG
>>886
それ、NT系にしか通じないだろ
0888デフォルトの名無しさんNGNG

やあ、みんな 元気かーい!
さわやかにいこうぜ、さわやかに
0889デフォルトの名無しさんNGNG
コマンドラインすら理解せずにプログラムを作るのは止めた方が良い。
ファイル操作もろくにできなさそうだ。
0890デフォルトの名無しさんNGNG
学校でCプログラミングをやってるんですが、コンピュータ自体については全くといっていいほど教えてもらってません。がんばって自分で調べます…
0891名無しさんNGNG
ヽ(゚∀゚)ノアヒャヒャヽ(∀゚ )人(゚∀゚)人( ゚∀)人(∀゚ )人(゚∀゚)人( ゚∀)ノ
0892デフォルトの名無しさんNGNG
>>890
それでも2ちゃんねるは知っていると・・・
(゜∀。)ワヒャヒャヒャヒャヒャヒャ
0893デフォルトの名無しさんNGNG
Cだってんならこんなとこで聞かないで、他の相応しいスレで聞いたら?

タダで使えるBorland C++ part2
http://pc2.2ch.net/test/read.cgi/tech/1030493157/
↑で聞いたら・・・袋叩きかな
0894デフォルトの名無しさんNGNG
ありがとうございます、そこの過去ログに書いてありました。とりあえずパソが再度ネットにつながるようになってからダウンロードしてきます
0895デフォルトの名無しさんNGNG
>>894
>パソが再度ネットにつながるようになってから
???
つながってるだろ。
0896デフォルトの名無しさんNGNG
今携帯から来てます。
0897デフォルトの名無しさんNGNG
ちょっと質問ですが、エクスプローラなどから自作ソフトにD&Dはできるのですが
逆に自作ソフトからエクスプローラ等にD&Dするほうほうは
どうやってやるのでしょうか?
よろしくお願いします。
0898デフォルトの名無しさんNGNG
エクスプローラと同じフォルダのアイコンをTreeViewに表示したら
何かエクスプローラと違う感じ(色数が少ないっぽい)になるのですが
同じ感じにする方法を教えてください。
0899(´・ω・`)もうだめぽ教(´・ω・`)NGNG
(´・ω・`)もうだめぽ イェァ!(´・ω・`)
0900880NGNG
>>894
ダウンロードしてきますって・・・ BCB入れてるならBCCはインスト済みだべ・・・
0901デフォルトの名無しさんNGNG
CanvasでMoveToとLineTo使って線引いたら、
最後の1ピクセルが描画されないんでつ…
仕様でつか?回避方法ないのでつか?
0902デフォルトの名無しさんNGNG
最後の1pixelまで描画されるように引数を指定すれば?
0903デフォルトの名無しさんNGNG
傾きがずれまつ…
0904デフォルトの名無しさんNGNG
>>901
仕様でつ。
例えば、座標(0, 0)から(30, 30)まで線を引いたとすると、
(30, 30)の左上が線の終端になるから、
線は(29, 29)が終端となる。
0905デフォルトの名無しさんNGNG
(30,30)から(30,30)までLineToして回避できんの?
0906デフォルトの名無しさんNGNG
>>904
やはり仕様ですか、なんてこったい!

>>905
なるほど、うまくいきました。
五万本ぐらい引くんですが、激しくオーバーヘッドが(以下略
自前の関数作らないと駄目なような気がしてきました(鬱
0907デフォルトの名無しさんNGNG
>>906
void LineToEx(int X, int Y){
  Canvas->LineTo(X+1,Y+1);
}

これでいいだろ。
0908デフォルトの名無しさんNGNG
なわけない
0909デフォルトの名無しさんNGNG
日本語版アップデートまだですか。
0910デフォルトの名無しさんNGNG
いつからMLはあんなバカな質問が増えたんだ?
0911デフォルトの名無しさんNGNG
>>908
おまえがアフォ
0912908NGNG
なんでアフォ?
0913デフォルトの名無しさんNGNG
マイナス方向に線を引いてみるとわかりやすい
0914デフォルトの名無しさんNGNG
便乗質問で申し訳ないけど、
Canvasオブジェクトで一般的な四角形ってどうかくの??

Rectangle使ったら長方形しか描けないんですけど・・・
菱形みたいなのを描きたいんで・・・
0915デフォルトの名無しさんNGNG
Polygon メソッド。
0916デフォルトの名無しさんNGNG
>>915
thx!
やはりそれしかないんですね(鬱
0917デフォルトの名無しさんNGNG
リージョン使うとか。
0918デフォルトの名無しさんNGNG
>>917
リージョンって何でしょう・・・??
0919デフォルトの名無しさんNGNG
>>918
リージョンと言っても、図形を描くのではなくて穴を開けるだけだけどな。
http://www.yuzuriha.sakura.ne.jp/~way/computer/win_tech5.htm
0920デフォルトの名無しさんNGNG
>>909
BCB6 Update4 が今週出るのでその後に。
0921デフォルトの名無しさんNGNG
ストリーム型と言うかMS-DOSのテキスト画面のイメージで、
テキストの文字属性(表示色)を指定して表示する
方法ってありませんか?
(logの表示専用なので編集機能は不要)

MemoやRichEditに変わるコンポーネントを
Delphian Worldを探したけど見つからなかったし。

SelStartとかで範囲選択する方法は知っていますが、
表示後に巻き戻して色を変えるのが面倒なので。

カラー指定用関数を用意して、SelLengthをカウントさせる
とかでしのぐしかないのかなぁ
0922デフォルトの名無しさんNGNG
RichEdit1->SelAttributes->Color = clBlue;
RichEdit1->SelText = "こうしやがれ\n";
0923デフォルトの名無しさんNGNG
コンソールアプリケーションで、

[C++ 致命的エラー] STDCOMP.H(5): F1003 error 指令: Must use C++ for STDCOMP.H

というエラーが出ます。どうしたらよいのでしょう。
0924デフォルトの名無しさんNGNG
再インストール
0925デフォルトの名無しさんNGNG
>>924
いや、STDCOMP.Hはあるんだけど。

#include <STDCOMP.H>すると、STDCOMP.H自体の以下の部分でエラーがおきる。

#ifndef __cplusplus
#error Must use C++ for STDCOMP.H
#endif
0926デフォルトの名無しさんNGNG
拡張子が .c だと出るらしいが。
0927デフォルトの名無しさんNGNG
>>926
あ、拡張子が.ccだ!
0928921NGNG
>>922
やれますた
tnxでつ
0929デフォルトの名無しさんNGNG
>>920
なんと!期待期待!!詳しい情報求む!!
0930デフォルトの名無しさんNGNG
update3自体べーただったのでは。
0931デフォルトの名無しさんNGNG
ftp://ftpd.borland.com/devsupport/cbuilder/cb6/
をチェックしる。
0932 NGNG
それは使えません。英語版しかないです。
0933デフォルトの名無しさんNGNG
画像を編集するプログラムを作っているのですが、
楕円を表示しようとしたところ、TCanvasのメソッドにEllipse()というのが
あることが分かったのですが、このメソッドでは長方形に内接する
楕円しか描けないようです・・・

私が作りたいのは、平行四辺形に内接する楕円を描きたいのですが
何か良い方法はないでしょうか?
座標(X1,Y1)〜(X4,Y4)を与えて描画するようなものです。
どうかよろしくお願いします。
0934デフォルトの名無しさんNGNG
>>933

中を塗り潰さないなら ベジェを使って描く
http://www.nifty.ne.jp/forum/fdelphi/samples/00593.html
が一番軽い方法かな

塗り潰すなら 楕円リージョンを作って 回転させるんだけど
これは古いパソコンでは動かない
0935デフォルトの名無しさんNGNG
おお!ありがとうございます!
本当は塗り潰したかったですけど(TД⊂)

その方法を使ってから再帰で塗り潰す・・・って方法もアリなんですかね。
ペイントみたいな手法ですけど・・・
0936デフォルトの名無しさんNGNG
>>935
塗り潰しが必要なら 楕円リージョンを回転させたら?
 
汎用性にこだわるなら多角形に分解して塗り潰したら?
その方が 画像編集? なら扱い易いでしょう
0937デフォルトの名無しさんNGNG
>>936
残念ながらリージョンというものがよく分からないんです・・
ヘルプ見ても書いてないし・・・
0938デフォルトの名無しさんNGNG
>>937
↓を読め
ttp://www.ne.jp/asahi/nagoya/ahomaro/builder/cpb-054.html
0939デフォルトの名無しさんNGNG
>>937
リージョン使うとこんなのもできる↓
ttp://www.geocities.co.jp/SiliconValley-Bay/8862/files/marburg.lzh
0940デフォルトの名無しさんNGNG
>>937
そう。 じゃ多角形にする事だね。 楕円リージョンを回転させるのは微妙に汚いかもしれんし
0941デフォルトの名無しさんNGNG
>>938-940
ありがとうございます。
>>938を読んでみましたがどうも難しくて何だか・・・

>>939
ウィルースみたいなのもできるってことですか?

>>940
うーむ・・・回転をあきらめるか塗りつぶしをあきらめるかという
選択になってしまいました・・・
0942デフォルトの名無しさんNGNG
少しサンプルを見ながら考えてみたんですが
楕円リージョンを回転させるとはこういうことですか?

1.TCanvas::Ellipse()を用いて楕円を描画
2.その楕円をTBitmapにぶちこんでBMP画像を作成
3.回転
4.表示
5.(゚д゚)ウマー

ってことでしょうか?
どうもイメージがつかめないんで間違ってると思いますが・・・
0943デフォルトの名無しさんNGNG
>>942
まあそれでもいいけど、ちゃんと CreateEllipticRgn て API もあるよ。

でもさ、多角形に分解ったって、楕円なら、 sin cos が判れば難しくないだろうと思うのだが?
どこが判らんの? 
0944デフォルトの名無しさんNGNG
>>943
分解って、中心から複数の三角形として描画するっていうことでしょうか??
多角形に分割したら塗りつぶせない点が出てこないんでしょうか・・・

レス数が900を超えています。1000を超えると表示できなくなるよ。