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

C++Builder相談室 Part12

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
C++Builderに関する質問・回答や議論等を行う相談室スレッド。

過去スレ・関連サイトは>>2-6あたり。
0334デフォルトの名無しさんNGNG
>>329
ノシ

WinCVSほどではないけど、意外と使いやすいよ。
そのままだと日本語が通らないから、
フォームのフォントを変えて、再ビルドすればOK
0335278NGNG
>>333
NULLでいけましたっ!
どうもありがとうございます。
0336デフォルトの名無しさんNGNG
恥であることを自覚しながらお聞きします

telnetでの操作をGUIかぶせるようなアプリを
作ろうとしてるんですが

送受信部分はTClientSocket、ブロッキングモードでやるべきでしょうか?
ノンブロッキングモードでの送受信はとりあえず動きますが
大量の送受信する時に問題になるのかな、と思いまして
0337デフォルトの名無しさんNGNG
このへんかな。
http://www.kt.rim.or.jp/~ksk/wskfaq-ja/articles/io-strategies.html
http://www.kt.rim.or.jp/~ksk/sock-faq/unix-socket-faq-ja-2.html#ss2.11
0338336NGNG
>>337

とてもためになりました
といっても全部理解しきったわけではないですが

これを頭に入れつつ、もう一度ゆっくり考えてみます

とりあえずは、ありがとう、ということだけ
0339デフォルトの名無しさんNGNG
ここを参考にしてIndy9をインストールしました。
http://inagi.himitsukichi.com/~aozora/cgi-bin/pukiwiki/pukiwiki.php?Indy9%A4%CE%A5%A4%A5%F3%A5%B9%A5%C8%A1%BC%A5%EB

しかしIdHTTPを使おうと思うと
[リンカ エラー] 外部シンボル '__fastcall Idhttp::TIdHTTP::Get(System::AnsiString)' が未解決(D:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\UNIT1.OBJ が参照)
とリンカエラーがでます。
何かまずい点があるのでしょうか
0340デフォルトの名無しさんNGNG
確か古いバージョンのヘッダを参照してる時のエラー。
古いのはBCBインストール時に、Indyを選択してもしてなくても勝手に入ってたりする。

古いヘッダを探して削除するか、Indy9のインクルードパスの優先順位を上げればいいはず。
0341デフォルトの名無しさんNGNG
すみませんおしえてください
ActiveFormにて
Form1->Show()とかでダイアログを出したいの
例外で落ちてしまいます
ActiveFormはダイアログが作成できないのでしょうか?
0342デフォルトの名無しさんNGNG
うひょう
インクルードパスの最初にIndyディレクトリを追加したらうまくいきました
ありがとうございました
0343デフォルトの名無しさんNGNG
>>341
mainform->Hide();
0344デフォルトの名無しさんNGNG
フォーム・動的に作成・廃棄
http://www.geocities.co.jp/SiliconValley/4805/bcbtips/bcbtips020.htm
0345デフォルトの名無しさんNGNG
組み込み済みダイアログ
http://homepage3.nifty.com/flare/pc/bcb/data/074.html
0346デフォルトの名無しさんNGNG
Close メソッドは,フォームを閉じます。
注意アプリケーションのメインフォームが閉じると,アプリケーションは終了します。
0347デフォルトの名無しさんNGNG
Hide メソッドは,フォームを非表示にします。
0348デフォルトの名無しさんNGNG
http://www.borland.co.jp/newsgroups/
0349BCB6PNGNG
教えてください

for(int i = 0; i < ListBox1->Count; i++)
{
AnsiString temp = ListBox1->Items->Strings[i];
TIdAttachment(IdMessage1->MessageParts, temp);
}
IdSMTP1->Send(IdMessage1);

受信した添付ファイル名が文字化けしてしまいます。
どうすればよいのでしょうか?
0350デフォルトの名無しさんNGNG
>>349
ここにあるように、添付ファイル名をエンコードしなくてはいけないのでは
http://oto.chu.jp/kujira/text/delphi/mail/sendmail.htm
0351デフォルトの名無しさんNGNG
RFCを読め。メールクライアントを作るときはそれが義務。
0352デフォルトの名無しさんNGNG
TThreadのExecute内で自分自身をResumeして
メインフォームから何かアクションがあったらSuspend

という処理を考えて組んでみたのですが
Suspendしてもスレッドが復帰してないみたいです
こういう使い方って間違ってるのでしょうか?
それとも、本当は復帰できるのに
俺がタコなコードを組んじゃったんでしょうか?
0353デフォルトの名無しさんNGNG
ResumeとSuspend逆じゃないか
0354352NGNG
逆ですね
スレッド側でSuspendして、メインフォームでResumeです
ここに書くのに間違えただけです
0355デフォルトの名無しさんNGNG
ちゃんと復帰するよ。
0356352NGNG
すいません、ありがとうございます
タコなソースを見直します
0357デフォルトの名無しさんNGNG
var
Res : TStringStream;
Source : TStringList;
begin
IndyをつかってHttpクライアントを作っています
このページhttp://monazilla.org/document/indytips.htmlを参照にしたのですが、
Builderでの書き方がわかりません。

 Res := TStringStream.Create('');
 Source := TStringList.Create;
 Source.Text := '送信内容';
 FIdHttp.Post('http://hogehoge/write.cgi', Source, Res);
 FContent := Res.DataString; //もどってきたHTML

これをC++のコードに書き直すとどうなりますか?
0358デフォルトの名無しさんNGNG
上はまちがいです。

IndyをつかってHttpクライアントを作っています
このページ http://monazilla.org/document/indytips.html を参照にしたのですが、
Builderでの書き方がわかりません。


var
Res : TStringStream;
Source : TStringList;
begin
 Res := TStringStream.Create('');
 Source := TStringList.Create;
 Source.Text := '送信内容';
 FIdHttp.Post('http://hogehoge/write.cgi', Source, Res);
 FContent := Res.DataString; //もどってきたHTML

これをC++のコードに書き直すとどうなりますか?
たとえば、
TStringStream Res = new TSgringStream();
とやってもエラーがでますし。
0359デフォルトの名無しさんNGNG
ポインタにするのじゃ
0360デフォルトの名無しさんNGNG
>>358
そのエラーのところは、以下のように書き直すべし。

TStringStream *Res;

Res = new TStringStream;

たぶん同じ理由で

Source = new TStringList();

とやっているでしょうから、これも

TStringList *Source;

Source = new TStringList;

と書き直します。

これで何でエラーになるか分かってないって事は、
どうも、ポインタとオブジェクトがごっちゃになっているようだから、
その辺を少し勉強し直してみては如何でしょうか。

長文スマソ
0361デフォルトの名無しさんNGNG
C++なら素直に
 TStringStream* Res = new TStringStream;
 TStringList* Source = new TStringList;
と書いてくれ
0362デフォルトの名無しさんNGNG
void __fastcall TForm1::Save1Click(TObject* Sender)
{
if(!SaveDialog1->Execute()) return;

TFileStream* fs = new TFileStream(SaveDialog1->FileName, fmCreate);
TStringStream* ss = new TStringStream("");
try{
SaveData(ss);
ss->Position = 0;
fs->CopyFrom(ss, ss->Size);
} __finally{
delete ss;
delete fs;
}
}



0363デフォルトの名無しさんNGNG
('A`)?
0364デフォルトの名無しさんNGNG
一晩Pacal眺め続ければ読めるようになる
0365358NGNG
>>359
>>360
>>361
>>362
>>364
ありがとうございました。
ポインタ事態は理解しているつもりですが、newでつくられるのがポインタだということをすっかり
忘れていました
0366デフォルトの名無しさんNGNG
0367デフォルトの名無しさんNGNG
それもそうだな
0368デフォルトの名無しさんNGNG
      
0369デフォルトの名無しさんNGNG
           
0370デフォルトの名無しさんNGNG
質問します。

Menuがあるメインフォーム、その他のサブフォーム
といった具合にフォームが複数あるアプリケーションを作成中です。
サブフォームを選択してアクティブにした場合、
メインフォームのMenu部分の文字が薄字になってしまいます。

例えばBCB本体のように、他フォームをアクティブにしても、
メインフォームのメニュー文字が濃い状態を保つ方法はあるんでしょうか?
0371デフォルトの名無しさんNGNG
ActionMainMenuBarでメニューを作るとそうなるね
0372デフォルトの名無しさんNGNG
>>371
おー、期待通りになりました。
ありがとうございました。
0373デフォルトの名無しさんNGNG
今、BCB6を買うのがいいのか、それとも新しいのが出て買うのがいいのか。
どっちがいいと思う?
0374デフォルトの名無しさんNGNG
Enterprise Trial 174Mb
http://www.borland.com/products/downloads/download_cbuilder.html
0375デフォルトの名無しさんNGNG
俺その体験版起動できなかったなー。今は日本語版持ってるからいいけど。
0376デフォルトの名無しさんNGNG
私は体験版使用できました。
0377デフォルトの名無しさんNGNG
今日、Xデーだけど。
0378デフォルトの名無しさんNGNG
開発継続きたー
http://bdn.borland.com/article/0,1410,32845,00.html

> The next version of C++Builder will be part of the Delphi IDE family
0379デフォルトの名無しさんNGNG
継続決定記念カキコ

キ…(-_-)キ(_- )キ!(-  )キッ!(   )キタ(.  ゚)キタ!( ゚∀)キタ!!( ゚∀゚ )キタ━━━
キタ━━━( ゚∀゚ )━( ゚∀)━(  ゚)━(  )━(゚  )━(∀゚ )━( ゚∀゚ )━━━!!!!
キタ━━━━(Д゚(○=(゚∀゚)=○)Д゚)━━━━━!!
キタ Y⌒Y⌒Y⌒Y⌒Y⌒Y⌒(。A。)!!!
0380デフォルトの名無しさんNGNG
おまいらおめでとう
0381デフォルトの名無しさんNGNG
来たね。

でも次期のDelphiと同時期(って書いてあるよね?英語苦手……)ってことは、早くても一年後か……。
0382デフォルトの名無しさんNGNG
私達はコミュニティに対して、BorlandがVCLをベースとしたC++を開発し
続けることを喜んでお約束します。C++Builderの次バージョンは、
Delphi IDEファミリーの一部となるでしょう。(中略)私達は、
次のDelphiまたはそれ以前に、C++Builderのパーソナリティを用意する
つもりです。

雑訳スマソ
http://onigiri.s3.xrea.com:8080/delphi/index.php?%5B%5BC%2B%2BBuilder%A5%B3%A5%DF%A5%E5%A5%CB%A5%C6%A5%A3%A4%D8%A4%CE%B8%F8%B3%AB%BD%F1%B4%CA%5D%5D
0383デフォルトの名無しさんNGNG
訳してみた。めでたいこんな時だからミスは許してくれ。
0384その1NGNG
要約:全BCB利用者はこのボーランド発表文書をお見逃しないよう!

非常に長い間ボーランドとBCBシリーズを支えてくれたユーザの皆様方に、
まずボーランドは感謝の意を伝えたいと思います。

我社は、VCLベースのBCBを利用している多数の開発者や、
その技術によって開発された多くのエンドユーザソリューションを
高く評価しております。
そして、BCBと皆様の既存の資産の両方を前進させることは、
大きな意味を持つことだと考えております。
0385その2NGNG
そういったわけで、VCLベースのC++の開発をボーランドが継続すことを、
我社は皆様に感謝の意をもってお約束いたします。
BCBの次期バージョンはDelphiのIDEファミリーの一つとなり、
最新のDelphiのVCLやIDEフレームワーク、
そして皆様がご希望されているC++の多くの新しい機能を
自由にご利用することが可能となります。
ボーランドではこれらの機能を、
Delphiの次期メジャーリリースと同時かそれ以前に
盛り込みたいと考えております。
詳細な内容やスケジュールにつきましては、
可能になり次第発表していきます。
0386その3NGNG
我社は皆様のボーランド、とりわけBCBファミリーへのご愛顧を感謝しております。
皆様との対話を通じ、皆様の成果に関して我社は非常に多くのことを学びました。
今後も我社とのコミュニケーションが開かれた状態で活発に継続していくことを
願っております。

BCBへのフィードバックにつきましては、 [email protected]
までメールしていただくか、QualityCentralにてご意見を登録ください。

皆様のソフトウェア開発に幸多きことを心より願っております。

敬具
0387デフォルトの名無しさんNGNG
ワーイヽ(゚∀゚)メ(゚∀゚)メ(゚∀゚)ノワーイ
0388デフォルトの名無しさんNGNG
じゃあ、これからC++Builder6を買っても大丈夫なんですね!
0389デフォルトの名無しさんNGNG
C++Builder6 Proが店頭にないんですけど。。。。
0390デフォルトの名無しさんNGNG
ワーイワーイ、めでたいなー
うひょー
0391デフォルトの名無しさんNGNG
 
0392デフォルトの名無しさんNGNG


0393デフォルトの名無しさんNGNG
たとえば、openjaneなどで
「設定」メニューを選ぶと
設定ウィンドウが出てきますよね?
あれは子フォームを作っているのですか?
0394393NGNG
C++Builder 6コンポーネント活用ガイド&実践プログラミング
Vol1 と Vol2は読みました
0395デフォルトの名無しさんNGNG
設定用フォームをShowModal()している
0396デフォルトの名無しさんNGNG
親フォームTForm1にMemoコンポーネントを貼り付けました。
で、子フォームからこれに適当な文字を表示させようと次のようなコードを書きました。

TForm1* theForm1 = new theForm1(this);
theForm1->Memo1->Lines->Add("はにゃ〜ん");
delete theForm1;

が、うまく表示されません。
どこが間違っているのでしょうか
0397デフォルトの名無しさんNGNG
間違ってるね
0398デフォルトの名無しさんNGNG
どうまちがっていますか?
0399デフォルトの名無しさんNGNG
新しくnewしてるところ
0400デフォルトの名無しさんNGNG
どうすればいいですか?
0401デフォルトの名無しさんNGNG
ヒントだけでもお願いします
0402デフォルトの名無しさんNGNG
incude "Unit1.h"

Form1->Memo1->Lines->Add("はにゃ〜ん");
0403デフォルトの名無しさんNGNG
うまくいきました!
ありがとうございます
0404デフォルトの名無しさんNGNG
How can I send keys to another application?
1.
Start a new project using File | New Application.

2.
Add a Button and edit the OnClick event:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
// Get the handle of the window
HANDLE notepad = FindWindow("Notepad", 0);
if(notepad != NULL)
{
// Activate Notepad
BringWindowToTop(notepad);
// Send key
keybd_event('A', 0, 0, 0);
keybd_event('A', 0, KEYEVENTF_KEYUP, 0);
}
else
{
ShowMessage("Notepad not opened!");
}
}

3.
Make sure that Notepad is opened.

The Win32 API function keybd_event sends keystrokes to another application.
0405デフォルトの名無しさんNGNG
How can I send keys to another application?
http://thunder.prohosting.com/~cbdn/k009.htm
0406デフォルトの名無しさんNGNG
TApplication::OnActivate
http://thunder.prohosting.com/~cbdn/anactiva.htm
0407デフォルトの名無しさんNGNG
http://thunder.prohosting.com/~cbdn/html.htm

Keyboard
How can I change the state of Caps Lock?
How can I check the state of Num, Caps, and Scoll Lock?
How can I detect character key presses?
How can I detect key combinations?
How can I detect special key presses?
How can I disable Ctrl + Alt + Del or Alt + Tab?
How can I disable key presses?
How can I get the key text name?
How can I send keys to another application?
0408デフォルトの名無しさんNGNG
http://www.functionx.com/bcb/index.htm
http://www.functionx.com/bcb/index.htm
http://www.functionx.com/bcb/index.htm
0409デフォルトの名無しさんNGNG
http://www.visualcomponentlibrary.com/win32/
http://www.visualcomponentlibrary.com/win32/
http://www.visualcomponentlibrary.com/win32/
0410デフォルトの名無しさんNGNG
次のBCBはDelphiのおまけらしいけど.NETも付いてて随分重いIDEになりそうだな
0411デフォルトの名無しさんNGNG
オープンソースのinterbace6で扱えるデータ型が載ってるサイトとか有ったら教えてください。
MEMOやGRAPHICを使いたいんだけど、嫌がられるョ
0412デフォルトの名無しさんNGNG
TIniFileコンポーネントが見つからないんですが、どこにありますか?
0413デフォルトの名無しさんNGNG
パレットにはないよ。IniFiles.hppをインクルードしてnewして使うんだよ。
0414デフォルトの名無しさんNGNG
事故解決しました
#include<IniFiles.hpp>
するみたいです
0415デフォルトの名無しさんNGNG
>>413
ありがとうございます
0416デフォルトの名無しさんNGNG
>>411

こっちで代用汁
http://nekomimi.s41.xrea.com/x/firebird/pukiwiki/?FrontPage
0417デフォルトの名無しさんNGNG
BLOBなのね  官舎
0418デフォルトの名無しさんNGNG
ええいくそ。Indy9をインストールして使っててしばらく不都合がなかったのに、
しばらくして"Indy.bpiが見つかりません"とか何かダイアログが出るようになっ
て、しかもコンパイルするとリンカエラーが出るようになった。

勘弁してよママン。

default.bprからIndy.bpiを削除する事でようやく解決した。
0419ageNGNG
>>418
メインメニューから、デフォルトのプロジェクトオプションの実行時パッケージの欄から
Indyを消せばよいだけでは?
0420デフォルトの名無しさんNGNG
ファイルのフルパスを利用してアプリを起動するにはどうすんの?
きっと簡単なんだろうな〜
0421デフォルトの名無しさんNGNG
しぇる
0422デフォルトの名無しさんNGNG
>>419
サンクス。うぁーありました。このセミコロンで区切られた一行の長い文字列
ですね。これでは見落としても仕方ないよ・・・・
0423デフォルトの名無しさんNGNG
>>420
Win32APIのShellExecute
0424デフォルトの名無しさんNGNG
C++Builder1なんですけど、
try{
}
__finally{
}
これでコンパイルエラーになっちゃうんだけどどう記述すればエラーでませんかね
0425デフォルトの名無しさんNGNG
C++Builder 3になって新しい拡張語として__finallyが追加されました
0426デフォルトの名無しさんNGNG
>>421
>>423
ShellExecuteで検索してやっと出来ました。
ありがとうございますた。
0427デフォルトの名無しさんNGNG
>>425
ヘルプで__finallyがちゃんと出てきてなんか書いてるんですよお
0428デフォルトの名無しさんNGNG
BCB3なんてほとんど使わなかったから覚えてないけど、
__finallyなら対になるのは__tryってことはないの?
0429デフォルトの名無しさんNGNG
__tryはヘルプに書いてますがそれはもうなぜかコンパイルエラーになるんですよお
BCB5ではtry〜__finallyでOKなんですけどねえ〜
なんn
0430デフォルトの名無しさんNGNG
>>428
__try、__catchはC用だったはず
0431デフォルトの名無しさんNGNG
>>430
というわけでもない。
SEH 例外は C++ でも使うときは使う。
0432デフォルトの名無しさんNGNG
すごいゲームを作ろうとなんでもできるプログラムをさがしています。
将来も使えそうなプログラムが良いです。

キャラが一つの画面に大勢いて
それぞれが違う動きをして個々の能力が違って
ファルコムのゲームのように一つの画面で小さいキャラが
戦って遠距離の敵に雷を落とせたりする。
それでファイアーエンブレムのように成長すると変形して。
2Dでアンチエイリアスも綺麗なPNGで透明、半透明を
扱えるプログラムが良いです。

ちなみに私は、C言語で「ハローワールド」を表示させることに
成功しています。
あとは、本に載っているソースをひたすら書き写すという方法で
「ブロック崩し」をHSPとジャバスクリプトでそれぞれ作ったことがあります。
RPGツクールXPも持っています。
0433デフォルトの名無しさんNGNG
釣りですか?
■ このスレッドは過去ログ倉庫に格納されています