くだすれC++Builder(超初心者用)
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2005/05/28(土) 05:24:24もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
C++Builder使いが優しくコメントを返しますが、
お礼はC++Builderの布教と初心者の救済をお願いします。
Borland Home Page
http://www.borland.co.jp/
兄弟すれ
くだすれDelphi(超初心者用)その24
http://pc8.2ch.net/test/read.cgi/tech/1115581376/l50
0237デフォルトの名無しさん
2005/09/29(木) 18:10:59これがしたかったんです!
ありがとうございました。
…っていっても、文見てもどんな動作してるのか分からないので、
もうちょっと検索してみます。
0238デフォルトの名無しさん
2005/09/30(金) 00:05:230239デフォルトの名無しさん
2005/09/30(金) 00:16:32DLLにすれば?
0240デフォルトの名無しさん
2005/09/30(金) 00:30:53アホ
>>237
まずユニットのヘッダのClass{ }の外側に
extern "C" void a(int b);
みたいに宣言する。
でその関数の実体をユニットのソースに
void a(int b){
・・・
}
みたいに書く。これでOK。
0241デフォルトの名無しさん
2005/09/30(金) 00:55:32素直にヘッダファイル使え
0242240
2005/09/30(金) 00:56:30その関数を呼び出すフォームで #includ "Unit〜.h" みたいにインクルードしてから呼ぶべし。
0243デフォルトの名無しさん
2005/09/30(金) 01:17:580244デフォルトの名無しさん
2005/09/30(金) 01:44:37#ifndef HOGE_H
#define HOGE_H
#pragma link "hoge"
int hoge( void ); //関数の宣言
#endif
//ソースファイル hoge.cpp
int hoge( void ) //関数の定義
{
return 0;
}
そしてhoge()を使用したいフォームのソースに #include "hoge.h"を追加
…回答するやつにも超初心者がちらほらするこのスレ。
0245デフォルトの名無しさん
2005/09/30(金) 05:57:210246デフォルトの名無しさん
2005/09/30(金) 07:08:14一体そのヘッダでどんな関数が書けるのかな、1+1とかかな。ネタだよな。
0247デフォルトの名無しさん
2005/09/30(金) 08:17:10ただしhoge.cppをプロジェクトに追加するか、
事前にhoge.cppのみコンパイルしておくか。
後者の場合プロジェクトに追加する必要はないが
リンカにパスが通ってる必要はある。
pragma指令にパスを含めるのでもヲケ。
0248デフォルトの名無しさん
2005/09/30(金) 09:45:43どうもうまくいきません、この手の参考書も少なく困っています
何か良い参考書またはプログラムの見本の様な物が掲載されている
サイトがありましたらご教授御願いします。
0249デフォルトの名無しさん
2005/09/30(金) 09:54:06http://www.tt.rim.or.jp/~rudyard/torii009.html
こことかどうよ?
0250デフォルトの名無しさん
2005/09/30(金) 09:58:39プロジェクトの追加はあまりよろしくない。
この場合だとhoge.cppが絶対パスでプロジェクトに追加されるっぽい。
もしエディタ等で作成したソースをプロジェクトに組み込みたい場合は
ユニットの新規作成をして、ファイル名を追加したいものと同じにする。
んで、ファイルを上書きすればおk。
0251デフォルトの名無しさん
2005/09/30(金) 10:13:17間違いを指摘するのはいいことだ。
だがここは”くだすれ”だから回答もしようジャマイカ
>>248
ttp://www.moriq.com/delphi/CommX106.lzh
これでも使っとけ
0252デフォルトの名無しさん
2005/09/30(金) 22:28:24ご「教授」ありがとう御座います
何とか出来間に合いそうです感謝しています
0253デフォルトの名無しさん
2005/10/02(日) 07:58:37ServerSocketなどでマルチスレッドを使う場合、
グローバル変数の競合が発生するらしく、
TThreadListを使うと書いてあったのですが、これはあるスレッドで、
TList *pList = MyThreadList->LockList();
とすると、他のスレッドでは、
MyThreadList->UnlockList();
としない限り、
TList *pList = MyThreadList->LockList();
の*pListは無効ということですか?
0254デフォルトの名無しさん
2005/10/02(日) 11:02:59そのようなことがないようにロックされているときは、アンロックされるまで待つんでしょ。
他のスレッドで変更して良いのか?ロックしたスレッドがアンロックしなければ意味がないと思うが?
セマフォとかも勉強したら良いんじゃね?
0255デフォルトの名無しさん
2005/10/02(日) 12:00:13ミューテックス
デッドロック
0256デフォルトの名無しさん
2005/10/02(日) 17:32:51ありがとうございます。
TThreadListは初めて使うので、使い方を確認したかったのです。
スレッド1でロックしてあると、
スレッド2で TList *pList = MyThreadList->LockList(); としても、
正しいポインタは帰ってこないのかなと。
0257デフォルトの名無しさん
2005/10/03(月) 06:50:380258デフォルトの名無しさん
2005/10/03(月) 07:29:160259デフォルトの名無しさん
2005/10/03(月) 11:40:14それともTOpenDialog以外を使わなければいけないのですか?
0260デフォルトの名無しさん
2005/10/03(月) 11:43:38SelectDirectory ちゅう関数でフォルダ選択ダイアログだせるよ
0261デフォルトの名無しさん
2005/10/03(月) 11:57:17ありがとうございます。できました。
0262デフォルトの名無しさん
2005/10/03(月) 15:21:070263デフォルトの名無しさん
2005/10/04(火) 17:00:330264デフォルトの名無しさん
2005/10/04(火) 17:04:200265デフォルトの名無しさん
2005/10/04(火) 17:14:15�dクス
sparみたいなのってないのか?
0266デフォルトの名無しさん
2005/10/04(火) 19:29:22∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( ^∀^)< spar
( つ ⊂ ) \_________
.) ) )
(__)_) (^∀^)ゲラゲラ superダロ
0267デフォルトの名無しさん
2005/10/05(水) 10:39:55こんな感じでどうよ?
http://2ch2.net/.l?=3wel
0268デフォルトの名無しさん
2005/10/05(水) 20:50:02http://www.hawaiians.co.jp/
こんなのは?
0269デフォルトの名無しさん
2005/10/06(木) 14:34:05reg->WriteBool( "aaaa", true );
で書き込んだキーをDeleteKeyするとエラーになって消せません
reg->DeleteKey( "aaaa" );
どうすれば消せるようになりますか?
0270デフォルトの名無しさん
2005/10/06(木) 14:44:26それDeleteKeyじゃなくてDeleteValueじゃね?
0271デフォルトの名無しさん
2005/10/06(木) 15:51:57あ、そっちでしたか。試してみます
0272デフォルトの名無しさん
2005/10/07(金) 00:16:04確実に解放するEnd関数みたいなのは無いんでしょうか。
0273デフォルトの名無しさん
2005/10/07(金) 00:26:400274デフォルトの名無しさん
2005/10/11(火) 01:42:100275デフォルトの名無しさん
2005/10/11(火) 02:08:440276デフォルトの名無しさん
2005/10/11(火) 16:46:17任意ですとデータ系列の追加を手動ではなく
プログラム上で行う必要があるようなのですがその手法が分かりません。
どなたか教えていただけますでしょうか?
例えばhoge[100][30]とかだったらグラフを1〜100までの間で任意の数表示できるようにしたい。
ということです。
0277デフォルトの名無しさん
2005/10/11(火) 17:20:35グラフは自分で描いてるならどうにでもなるんじゃないの
0278デフォルトの名無しさん
2005/10/11(火) 17:21:42GroupBox2にPanelを貼り付けた時にPanelの最上位のParentがTabSheet1だと簡単に取得する方法はありますか?
0279デフォルトの名無しさん
2005/10/11(火) 17:36:34TabSheet1 も子ウィンドウで TPageControl が親、さらにその親がフォームなわけだが
0280デフォルトの名無しさん
2005/10/11(火) 18:47:52フォームはOwnerにあるからいい
0281デフォルトの名無しさん
2005/10/11(火) 19:39:130282デフォルトの名無しさん
2005/10/11(火) 19:53:22>Panelの最上位のParentがTabSheet1だと簡単に取得する方法
1.PanelがTabsheet1以下のコントロール群の一員であることを確認する。
2.Panelの所属しているコントロールの上位にあるはずのTTabSheet型コントロールのポインタを取得する。
どっちの意味?
0283デフォルトの名無しさん
2005/10/11(火) 20:10:530284デフォルトの名無しさん
2005/10/11(火) 20:41:012.つ[dynamic_cast]
0285デフォルトの名無しさん
2005/10/11(火) 21:20:12Delphi だとこれでうまくいく
function FindParentTabSheet(ctl: TControl): TTabSheet;
var
oya: TWinControl;
flag: Boolean;
begin
flag := false;
repeat
oya := ctl.Parent;
flag := (oya is TTabSheet) or (oya = nil);
ctl := oya;
until flag;
result := TTabSheet(oya);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
ts: TTabSheet;
begin
ts := FindParentTabSheet(Panel1);
if Assigned(ts) then
Label1.Caption := ts.Name
else
Label1.Caption := 'not found';
end;
0286デフォルトの名無しさん
2005/10/11(火) 21:24:210287デフォルトの名無しさん
2005/10/11(火) 21:55:59それをC++に読み替えできるようなやつがここで質問するか?
0288デフォルトの名無しさん
2005/10/11(火) 22:00:00回答できる人は翻訳ぐらいできるだろ。文句あるなら回答しめせよ。
0289デフォルトの名無しさん
2005/10/11(火) 22:13:21そもそも、DelphiをC++に翻訳できる人間が
その程度のコード自力で書けないと思ってるわけ?
0290デフォルトの名無しさん
2005/10/11(火) 22:22:180291デフォルトの名無しさん
2005/10/11(火) 22:23:480292デフォルトの名無しさん
2005/10/11(火) 22:30:25先にこんな話題が出るわけないじゃん。
あとから言うのは当然。
それを後付の屁理屈みたいに貶めようとしても無駄。
0293デフォルトの名無しさん
2005/10/11(火) 23:11:52念のために言っておくと、>>285のコードをC++に翻訳しようとすると、
実は詰まってしまう個所がある。その答え(の1つ)が>>284にあるわけで、
それが見抜けないで>>290って言ってる様じゃ寒い罠。
0294デフォルトの名無しさん
2005/10/11(火) 23:15:070295デフォルトの名無しさん
2005/10/11(火) 23:15:460296デフォルトの名無しさん
2005/10/11(火) 23:52:260297デフォルトの名無しさん
2005/10/11(火) 23:56:510298デフォルトの名無しさん
2005/10/11(火) 23:57:35かつDelphiで書かれてるOpenJaneとかはオープンソースだから
Delphi読めるようになると結構勉強になる。
0299デフォルトの名無しさん
2005/10/12(水) 00:00:41C++はその百倍は資産があるよ。
0300デフォルトの名無しさん
2005/10/12(水) 00:03:150301デフォルトの名無しさん
2005/10/12(水) 00:06:09Delphiで書けと言われると厳しいが。
BCB使ってるとVCLのソースを読む必要に駆られることが多いから
読むだけならそのうち自然に覚えちゃう。
0302デフォルトの名無しさん
2005/10/12(水) 00:13:22Delphiの上に成り立ってるんだから当然と言えば当然だけど。
0303デフォルトの名無しさん
2005/10/12(水) 00:30:480304デフォルトの名無しさん
2005/10/12(水) 01:19:09ttp://pc8.2ch.net/test/read.cgi/tech/1091066805/853
0305デフォルトの名無しさん
2005/10/12(水) 11:38:130306デフォルトの名無しさん
2005/10/12(水) 13:19:250307デフォルトの名無しさん
2005/10/12(水) 13:46:38jar教えて
0308デフォルトの名無しさん
2005/10/12(水) 13:52:190309デフォルトの名無しさん
2005/10/12(水) 16:33:440310デフォルトの名無しさん
2005/10/13(木) 14:32:240311デフォルトの名無しさん
2005/10/14(金) 00:09:090312デフォルトの名無しさん
2005/10/14(金) 10:41:530313デフォルトの名無しさん
2005/10/14(金) 12:01:06if( SubItem == 4 ) Sender->Canvas->Brush->Color = clRed;
とかすると、SubItem4以降もすべてその色になってしまうんですよ
0314デフォルトの名無しさん
2005/10/14(金) 13:04:190315デフォルトの名無しさん
2005/10/14(金) 14:06:25if( SubItem == 4 ) Sender->Canvas->Brush->Color = clRed;
else Sender->Canvas->Brush->Color = clWindow;
ってやっとりますた
0316デフォルトの名無しさん
2005/10/14(金) 22:25:50else if( SubItem == 5 ) Sender->Canvas->Brush->Color = clBlue;
else if( SubItem == 6 ) Sender->Canvas->Brush->Color = clYellow;
else if( SubItem == 7 ) Sender->Canvas->Brush->Color = clYattaro;
else Sender->Canvas->Brush->Color = clWindow;
0317デフォルトの名無しさん
2005/10/16(日) 11:53:31http://pc8.2ch.net/test/read.cgi/tech/1117225464/l50
0318VIPから失礼します
2005/10/16(日) 12:00:19これもVIPクォリティ?
小学6年生の男女が裸体うp祭り中!!!
VIPになら小学6年生ぐらいは来てるだろ?
http://ex11.2ch.net/test/read.cgi/news4vip/1129427490/
0319デフォルトの名無しさん
2005/10/17(月) 10:57:33お願いします。
0320デフォルトの名無しさん
2005/10/17(月) 11:32:27誘導されてきたようだが、残念ながらスレ違いだ。
画像処理スレあたりに逝け。
相手してもらえるかどうか判らんが。
0321デフォルトの名無しさん
2005/10/17(月) 11:49:07サイトのコンテンツ一つできそうだな
0322デフォルトの名無しさん
2005/10/18(火) 12:46:53BCB6 Personalなんですが、
TToolBarのMenuプロパティに
ファイル(&F)->終了(&X)となっているメニューを指定し、
フォームにはTStringGridを置いています。
実行し、StringGridの上でFキーをおすと
フォーカスがメニューのファイル(&F)に移動してしまいます。
OnKeyPressで処理したいのですが、FとXともにイベントが発生しません。
これをフォーカス移動しないようにできないでしょうか。
よろしくお願いします。
0323デフォルトの名無しさん
2005/10/18(火) 17:18:18..\Borland\CBuilder5\Examples\Internet\Chat
にあるサンプルプログラムで、
1台のPCで、自身のIPに接続し文字入力すると、
ローカルエコーのように入力文字を表示します。
これを別PC(IP)に接続し、2台のPCでチャット
させることは可能なのでしょうか?
0324デフォルトの名無しさん
2005/10/18(火) 17:40:350325デフォルトの名無しさん
2005/10/18(火) 17:44:41たらいまわしで済まないけど、正しい質問先はこちら。
画像処理スレッドその5
http://pc8.2ch.net/test/read.cgi/tech/1127705848/l50
過去ログを読むと、情報はあるかも。以前のログへのリンクもある。
0326323
2005/10/18(火) 17:53:41Address Name に別PCのIP(例:192.168.0.10)を設定して実験してみましたが、
Error connecting to:192.168.0.10
と表示されてしまいます。
ちなみに別PCのIPに対してpingするとtimeoutになります。
192.168.0.10のPCが見えていないようなんですが、なぜなんでしょうか・・・
ご教授ください。よろしくお願いします。
0327323
2005/10/18(火) 17:56:23>>322 Editモードにすればよろしいかと。
0328デフォルトの名無しさん
2005/10/18(火) 18:20:09http://www.tt.rim.or.jp/~rudyard/torii009.html
ここ参考にしてみて
0329323
2005/10/18(火) 18:40:15なんですね。初めて知りました。ご指摘ありがとうございます。
0330322
2005/10/18(火) 18:52:54どもです、これなら大丈夫ですね
ただgoEditingは無効(InplaceEditorが完全に出ないよう)にしたいので
今InplaceEditorを弄ってどうにかできないかとやっています
goEditingがtrueの時にどういうことをしているか分かれば楽なんですが…
0331322
2005/10/18(火) 19:19:49GetEditTextをオーバーライドしてEditorMode = false
でそれっぽく動くみたいです。
助かりました、ありがとうございます。
0332322
2005/10/18(火) 20:03:29orz
どうにもならなかったらメニューをToolBarに置かないようにします
スレ汚しすみませんでした。
0333323
2005/10/18(火) 20:48:08ALT+Fのキー操作で行くものではないのですか。知らなかった。
それとBCB5ではTToolBarにMenuプロパティがなかったりします^^
FormのOnKeyPressを使ったりするのは、スマートな方法では無いですね。
と書きながら思ったのですが、StringGridは本当にフォーカスされたんですよねぇ。
BCB5とBCB6ではえらい違ってるのかしら・・・。
0334322
2005/10/18(火) 23:14:39>>323
通常はそうですよね。
同じフォームにあるTreeViewだと大丈夫なんですが、
StringGridにフォーカスがあるときだけ、単一キーで
OnKeyDownが呼ばれた後にメニューにフォーカスが移動します。
(FormでKeyPreview=trueにしてもFormも同じ)
それっぽい情報が見つからないので 謎です。
こういうときにソース見られるといいんですが
なかなか手がでないです…ううむ
0335デフォルトの名無しさん
2005/10/19(水) 00:09:31コンポーネントパレットに表示されなくなったんだけど、
またパレットに表示させて使うにはどうすればいいですか?
0336デフォルトの名無しさん
2005/10/19(水) 00:12:54■ このスレッドは過去ログ倉庫に格納されています