くだすれC++Builder( ..
522:デフォルトの名無しさん
08/05/17 22:06:01
動的にフォームを出したいのですが、
TfmOption *fmOption = new TfmOption(this);
fmOption->ShowModal();
delete fmOption;
どうもうごきません。
それとモーダルもしたくないのですが、
普通にメインウィンドウと同等のウィンドウとしたいのです。
オプションで初期にはロードしたくありません
523:デフォルトの名無しさん
08/05/18 07:43:32
>>522
TForm::Visibleをチェック。
新規作成したフォームはデフォルト値がfalseになってる。
524:デフォルトの名無しさん
08/05/18 10:04:48
ShowModal();すると、自動的にVisible=trueに設定されるから
Visible=trueは必要ないハズ。
>>522は基本的にOKだと思う。
動かないとは、表示されないという意味なのだろうか。
モーダルにしたくないなら、
fmOption->Show();
525:デフォルトの名無しさん
08/05/18 14:42:51
//---------------------------------------------------------------------------
void __fastcall Tform1::Button1Click(TObject *Sender)
{
*fmOption = new TfmOption(this);
fmOption->Show();
}
//---------------------------------------------------------------------------
void __fastcall Tform1::Button2Click(TObject *Sender)
{
delete fmOption;
}
//---------------------------------------------------------------------------
//ヘッダ
private: // ユーザー宣言
TfmOption *fmOption ;
まず、*fmOptionの*すらわからずやってます。
やりたいことは、オプションのコンポーネントがおおすきるので、
fmOptionの起動に時間がかかります。
それで、exe起動時に起動画面をだし、その間にオプションを出すよていです。
自動生成フォームとして提供したら起動画面がオプションがロードされた後
出てきて意味がないのです。
で、メインフォームのprivate変数にオプション保持用の変数をもって、
ロードしたいのですが、簡単そうでむずかしくて・・・。
526:デフォルトの名無しさん
08/05/18 14:43:57
ネット見てもShowModalしか出てこなくて。
527:デフォルトの名無しさん
08/05/18 19:21:12
で?
528:デフォルトの名無しさん
08/05/19 01:06:04
つかC/C++の基本だけでも勉強しないとにっちもさっちもいかなんじゃないかな。
その気がないならDelphiのほうがまだましだと思う。
529:デフォルトの名無しさん
08/05/19 17:06:13
>>525も低脳だが、
>>528の方がもっと低脳
の件について
530:デフォルトの名無しさん
08/05/19 19:49:26
なんでー?
531:デフォルトの名無しさん
08/05/19 19:58:38
>525
ヒント:ヘルプ
532:デフォルトの名無しさん
08/05/20 17:59:51
>>529
× の件
○ な件
533:デフォルトの名無しさん
08/05/20 18:07:55
ものすごく素朴な質問なんですがエディットボックスがあるとして
buf[0]の値が255であるとき
Edit->Text.printf("%02X",buf[0]);
ヘキサの[FF]と表示されるようにしたいのですが、やはり
AnsiString ss.printf("%02X",buf[0]);
Edit->Text = ss;
のように代入するしか方法はないのでしょうか?先人の方教えて
頂けませんか?
534:デフォルトの名無しさん
08/05/20 18:25:01
Edit->Text = AnsiString().sprintf("%02X", buf[0]);
535:533
08/05/20 18:45:00
>>534
教えて頂きありがとうございます。長い間のモヤモヤがとれて
すっきりしました。
536:デフォルトの名無しさん
08/05/20 19:39:56
char[100]とかで配列持ってて、
AnsiStringで受け取った入力を、char[80]から入れたいんだけど、どすればいいんすか?
537:536
08/05/20 19:41:10
連投すんません
入力されるブツは、日本語ダス
538:デフォルトの名無しさん
08/05/20 19:58:30
>>536
strcpy
539:デフォルトの名無しさん
08/05/20 20:22:05
エディトボックス入力(日本語を想定)のAnsiStringの文字列長ってどうやって調べるの?
540:デフォルトの名無しさん
08/05/22 21:03:52
すいませんが教えてください。
BDS2006にて
VCLフォームアプリケーションを新規作成する。
TExcelApplicationをフォームに貼り付ける。
コンパイルすると
[リンカ エラー] Error: 未解決の外部参照 '__fastcall System::Variant::operator =(wchar_t *)' が
C:\PROGRAM FILES\BORLAND\BDS\4.0\LIB\BCBOFFICEXP.LIB|Excel_XP_srvr.cpp から参照されました
というエラーが出ます。
このエラーの解決方法がわかりません。
なにかをincludeしなければならないのでしょうか。
541:デフォルトの名無しさん
08/05/22 21:09:34
ちなみに、BCB5で同じことをすると、
Excel_XP・・・となっている部分が
Excel_2K・・・となり
問題なくコンパイルは通ります。
542:デフォルトの名無しさん
08/05/22 21:12:15
>>540
ヘッダじゃなくてライブラリファイルが抜けてるっぽいね。リンカエラーだから。
543:デフォルトの名無しさん
08/05/26 22:29:09
imageコンポーネントでTColor型で絵を描いていきたいんだが、
BMP形式で保存すると32bitになりますよね?
そこで、PixcelFormat で pf24bitを指定すると、なぜか書けないんです。
そこで、あえて32bitを指定してもなぜか書けずに特に指定せずに
image->picture->〜 = (TColor)0xffffff
だと書ける。
ただ、保存するのは24bitのBMPにしたいんだが、ググると
ColorToRGBという関数があるみたいなんですが、
これの使い方教えて貰えませんか?ヘルプ見ても、いまいちわからなくて。
また、この関数使うのより簡単に24bitBMPへ保存できる良い方法が有れば伝授してください
544:543
08/05/26 23:01:57
すいません。
環境は、Builder 2006です。
545:543
08/05/27 19:08:00
自己レス
Canvasに書いてから、pf24bitを指定する事で書けました。
どうやら順番があったようです
546:デフォルトの名無しさん
08/06/08 14:40:21
bcb2007を使っています。
dll内にフォームを用意したいのですが
うまくいきません
Form1=new TForm1(this);Form1->ShowModal();delete Form1;
うまく呼び出す方法はあるのでしょうか?
547:デフォルトの名無しさん
08/06/09 23:17:59
C++Builder6.0でマルチスレッドのプログラムを作っています。
フォームにボタンとラベルを各1個配置し、ボタンをクリックする度に
ラベルに表示される数字が+1されるようにしてあります。
以下のコードで普通に実行するぶんには動くのですが、(※)の箇所で
ブレークを掛けてステップ実行を2回くらいやって再実行すると
フリーズ(と思うほど長時間固まる)してしまいます。
なぜなのか教えて頂けないでしょうか。
void __fastcall TAppThread::Execute(void)
{
int cnt;
cnt = 0;
count = 0;
while ( 1 ) {
cnt++; //(※)
cnt--;
cnt++;
Synchronize( Update );
Suspend();
}
}
void __fastcall TAppThread::Update()
{
Form1->Label1->Caption = IntToStr( ++count );
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if ( appThread )
appThread->Resume();
}
548:デフォルトの名無しさん
08/06/17 03:43:57
builder6.0を使っている初心者です。
恐縮ですが質問させてください。
プログラム上で動的にコンポーネント(TPanel)を配置しています。
そのコンポーネントにOnDragDropとOnDragOverイベントを取得させて
動作させたいのですがやり方がよく分からずうまくいきません。
初歩的な質問で申し訳ありませんが教えて頂けないでしょうか。
よろしくお願いします。
549:デフォルトの名無しさん
08/06/17 08:15:26
抽象的すぎて意味わからんがな(´・ω・`)
550:デフォルトの名無しさん
08/06/17 10:23:37
C++Builder6 をつかっています。
だんだんプロジェクトが大きくなってくると、デバッガのインスペクトとかで表示される値が
むちゃくちゃになってきます。回避方法ってないものでしょうか?
551:デフォルトの名無しさん
08/06/17 10:26:58
>デバッガのインスペクトとかで表示される値が むちゃくちゃになってきます。
それは無い。
552:デフォルトの名無しさん
08/06/17 11:24:59
そんな変数無ぇって言われる事はあるな
553:デフォルトの名無しさん
08/06/17 11:26:56
それはプロジェクトの大小じゃなくて、
コンパイラの最適化の結果。
554:デフォルトの名無しさん
08/06/17 11:32:53
そこは置いといて、変になることがあるってことよ
555:デフォルトの名無しさん
08/06/17 11:52:05
BCB6では変にならないお。
プロジェクトにファイルを追加した直後は、ブレークポイントで止まらなくなるけど。
ブレークポイントで止まった後は変数が変になることはない。
556:デフォルトの名無しさん
08/06/17 12:13:29
全然関係ないけど、うちのBCB6は
struct Hoge : vector<int> {};
Hoge hoge;
try
{
string a;
if (a.empty())
throw exception();
Test test;
}
catch (...)
{
}
これのTest(何のクラスでもいい)のデストラクタがなぜか呼ばれるんだけど、
再現する人いるかな。
557:550
08/06/17 12:37:45
ごめん、うちのバージョンは5だった・・・。
コンパイラの最適化OFFで、
if(Instance != NULL)
{
Instance->Data = 3;
}
とかやって、Instance->Data にブレークポイントを設定したとする。
それで、Instance の値を見ると NULL になってることがある。
プログラム自体はちゃんと動くんだけど、デバッガが、グダグダになることがある。
ダイレクトXアプリってのもあるのかなぁ?
あと、これは仕様だと思うんだけど、いつのまにか、TOpenDialog で
マイコンピュータを開くと、なにも表示されなくなった。
558:デフォルトの名無しさん
08/06/17 12:39:14
>>557
多分、6にうpするとそんなことない。
559:デフォルトの名無しさん
08/06/17 12:49:03
>>558
6ってもう買えないよね?
560:デフォルトの名無しさん
08/06/17 12:53:02
あー、新規なら買えるのか。スレ汚しスマヌ。
561:デフォルトの名無しさん
08/06/17 16:40:40
コードガードにバグがある6を今更買うの?
562:デフォルトの名無しさん
08/06/17 16:42:46
5ならコードガード無いんじゃね?
ま、5と6使った自分なら、間違いなく6を選ぶ。
563:デフォルトの名無しさん
08/06/17 17:07:53
5にもコードガードついてるよ。5のコードガードのバグは気づかなかった。
BDS2006 はもってるんだけど、なんかこれもバギーらしいな。
思い切って、2008 がでるまで待とうかとも思ってるんだけどね。
9月ぐらい?
printf デバッグとかもう嫌だよ・・・。
564:デフォルトの名無しさん
08/06/17 18:40:32
デバッガで変数が正しく表示されなくなったら
パソコンを再起動
これ常識。
これで回復する。
自分のプログラムで、どっかぶち壊しまくってるんだよ。
565:デフォルトの名無しさん
08/06/17 18:45:00
9xじゃあるまいし
566:デフォルトの名無しさん
08/06/17 18:52:20
9xなら暴走して落ちるんだよ。
自分で自分のDSをぶちこわしているから変数がヘンになる。
567:デフォルトの名無しさん
08/06/17 19:11:35
今時アプリがどんだけメモリ空間壊したって、PCの再起動なんて必要ないだろw
DSとか言ってるから古い人ぽいけど。
568:デフォルトの名無しさん
08/06/17 19:47:06
じゃあFSとか言えば納得するのか
569:デフォルトの名無しさん
08/06/17 22:13:34
メモリ空間を壊すって事は、Builder の場合、
デバッガ、コードガード、OS、の3つをすり抜けないと無理なんだけど、
そう言う事って出来るの?セキュリティホールみたいな物か?
570:548
08/06/18 02:27:24
すみません。説明不足でした。
void __fastcall TForm1::N1Click(TObject *Sender)
{
TTabSheet* tb;
TScrollBox* sbox;
TPanel* panel;
TButton* bt;
tb = new TTabSheet(PageControl1);
tb->PageControl = PageControl1;
sbox = new TScrollBox(tb);
sbox->Parent = tb;
...
panel = new TPanel(sbox);
panel->Parent = sbox;
...
bt = new TButton(panel);
bt->Parent = panel;
...
bt->DragMode = dmAutomatic;
}
こんな感じでPageControlに新しいタブを作成し、その中にTScrollBox、
更にその中にTPanel、更にその中にTButtonを配置させています。
やりたいことは、この新しく配置したTPanel上のTButtonをマウスドラッグで
移動できるようにしたいのですがその方法がよく分からないということです。
回りくどい説明で申し訳ありません。
571:デフォルトの名無しさん
08/06/18 07:39:03
ボタンをドラッグってどんな操作を想定してるの?ボタンはクリックするものなのに。
572:548
08/06/18 12:05:40
>>571
マウスの操作でボタンの座標位置を変更できるようにしたいです。
「自分で追加したボタンを自分の配置したい位置につまんで移動できる」
と言った方がわかりやすいかもです・・・。
OnDragDropイベントではなくOnMouseMoveイベントを使えばもっときれいにできるのかもしれないんですが、
ここではとりあえず「ドラッグで移動して配置する」という操作だけを目的としていたので
イベントとして使いやすいと感じたDragDropを使用しています。
573:デフォルトの名無しさん
08/06/18 22:48:51
いや、だから、ボタンをつまもうとしたらクリックになっちゃうでしょ。
でクリックしようとしたときにちょっとした操作ミスでドラッグで移動になる、と。
そんな自己満足なUIは考え直せって。
574:デフォルトの名無しさん
08/06/18 23:07:01
そんなのレイアウトモード←→通常モードみたいな感じで切り替えれば済む問題でないの
575:デフォルトの名無しさん
08/06/18 23:39:38
もちろんそれでもOKだと思うが。
で所望の動作はWM_NCHITTESTでHT_CAPTIONってのがお手軽。
576:548
08/06/20 02:47:20
>>573-575
ボタンクリックとドラッグ混同の操作ミス等、言われてみたらその通りだと感じました。
アドバイス含め、対処できるように組み直したいと思います。
移動についてはさせることができました。
アドバイス、ご指摘ありがとうございました。
577:デフォルトの名無しさん
08/06/20 15:57:40
>>576
うちも VCL 以外で近いことを以前やったことあるけど、
そのときの実装は何ピクセル以上ドラッグするとドラッグ開始、
っていうふうにしてた。
578:デフォルトの名無しさん
08/06/24 04:30:23
古いプロジェクトをコンパイルすると
-Hr スイッチにより vcl4.h を vcl.h の代わりにインクルードします
っていうメッセージが出るんだけど、このスイッチって何処に記載されてるの?
古いプロジェクトの移行って面倒だね・・・。
579:デフォルトの名無しさん
08/06/30 16:46:20
Vi$taにBCB6をインスコできますか?
580:デフォルトの名無しさん
08/07/01 04:50:20
V$sta捨てれ
581:デフォルトの名無しさん
08/07/01 09:39:37
正直、そうしたいんですが、出来上がったexeのVi$ta検証に必要。
ところで、Vi$taってなぜかXPとマルチブートできませんよね?
582:デフォルトの名無しさん
08/07/01 09:50:06
っリムーバブルフレーム
583:デフォルトの名無しさん
08/07/01 19:26:51
>>579
Vistaの動作検証だけなら開発は2000かXPで。
視覚スタイルは.manifest同梱で対応可。
Vistaアイコン(PNG圧縮256px)はIcoFxで可能。
res作成はVista対応SDKのrc.exeで可能。
584:デフォルトの名無しさん
08/07/01 19:49:26
2000だとVistaなSDKがインスコできない罠が(;゙゚'ω゚'):
585:デフォルトの名無しさん
08/07/01 22:49:40
>>583
そうなのか・・・XPに入れてexeとdllだけ2000にコピーしたから気付かなかったわ。
586:デフォルトの名無しさん
08/07/02 08:57:02
>>583
ビジュアルスタイル対応は、Theme Manager 使った方がいいのでは。
587:デフォルトの名無しさん
08/07/04 22:52:10
Windows XPでTurbo C++を使っているのですが、
TButtonのCaptionの色を変えるのに、次のようなコードでは変わりませんでした。
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if (Button1->Caption == "blue") {
Button1->Caption = "red";
Button1->Font->Color = clRed;
} else {
Button1->Caption = "blue";
Button1->Font->Color = clBlue;
}
}
どうしたらいいんでしょうか? アドバイスよろしくお願いします。
588:デフォルトの名無しさん
08/07/04 22:56:41
TButtonのキャプションの文字色は変更できません。これはWindowsの仕様です。
もし文字色をシステムに従わないようにしたいのであれば、オーナドローでどうぞ。
589:587
08/07/04 23:06:41
>>588 迅速な回答ありがとうございます
590:デフォルトの名無しさん
08/07/06 01:08:29
void __fastcall TfrmMain::Button1Click(TObject *Sender)
{
char *aaa;
aaa = "jpg";
if(aaa == "jpg")Button1->Caption = "jpg";
}
C言語の基本的なことだとはわかっているのですが・・・
これがtrueにならない理由って何でしょう?
基本的すぎるのか、文字列でググっても出てこないのはなぜー
591:デフォルトの名無しさん
08/07/06 01:18:27
>>590
void __fastcall TForm1::Button1Click(TObject *Sender)
{
char* aaa;
char* bbb;
aaa = "jpg";
bbb = "jpg";
ShowMessage(AnsiString().sprintf("aaa=%08X bbb=%08X", aaa, bbb));
}
592:デフォルトの名無しさん
08/07/06 03:08:06
メモリ壊しまくりんぐ
593:デフォルトの名無しさん
08/07/06 04:34:54
リリースビルドならtrueになりそう
594:デフォルトの名無しさん
08/07/06 05:21:36
char* の大きさは4byteだから、 3文字突っ込むとちょうど4byte使用するから
メモリは壊れないのではないのか。
595:デフォルトの名無しさん
08/07/06 05:24:50
operator ==(const char*, const char*) {}
ができないのを今初めて知った(´・ω・`)
596:デフォルトの名無しさん
08/07/08 13:57:48
>>590
if ( strcmp( aaa,"jpg" )==0 ) とすればええんでないの?
"jpg"ってすると、メモリのどっかに確保された4バイト('j','p','g',0)のアドレスを示す。
aaaに格納された"jpg"のアドレスと、ifで比較している"jpg"のアドレスが違うからfalseになる。
597:デフォルトの名無しさん
08/07/08 18:27:30
>>590
char* でやらないで AnsiString でやれば動く。
598:デフォルトの名無しさん
08/07/09 23:36:09
イベントハンドラを呼び出すとき、
Button1Click(Button1); Button1Click(Button2); Button1Click(Form1);
のどれでも動くみたいですが、Senderには普通何を与えるのが正しいの?
Senderの役割を教えてください。
//Form1上にButton1とButton2
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Button1Click(Button2);
}
599:デフォルトの名無しさん
08/07/09 23:54:20
Senderはイベント呼び出し元のTagやデータ読むのに使うから、そのイベントに関連づけたいオブジェクトを指定。
たとえば拡大ボタンと縮小ボタンがあって、それぞれにイベントハンドラ書くのはアホ臭いから
void __fastcall TForm1::Button2Click(TObject *Sender)
{
int zoom;
TButton* button = dynamic_cast<TButton*>(Sender);
zoom = button->Tag;
if (zoon == 1) 拡大();
else 縮小();
}
こんな感じで使ったりする。
ハンドラ内でSender使わないならthisで十分。
600:デフォルトの名無しさん
08/07/10 00:14:17
>>599 ありがとうございます。
601:デフォルトの名無しさん
08/07/22 14:35:51
WindowsXPでBCB6.0を使っています。
URLリンク(homepage2.nifty.com)
上記のサンプルプログラムを自分の環境で実行してみたのですが、以下のエラーが出てしまいます。
[リンカ エラー] 外部シンボル 'GetIfTable' が未解決(D:\ADDRESGET\UNIT1.OBJ が参照)
ソースファイルをダウンロードして実行してみたところ、正常に動作したことから環境は間違って無いと思うのですが・・・。
インクルードファイルも同じにして、オプションのリンカやディレクトリ/条件も揃えてみましたがダメでした。
この場合、何を見たらよろしいのでしょうか?
よろしくお願いします。
602:デフォルトの名無しさん
08/07/22 14:54:57
iphlpapi.libリンクしてないだろ。
bcb/lib/psdkにあるのプロジェクトに追加しる
603:デフォルトの名無しさん
08/07/22 15:01:37
>>602
・・・その通りでした。
インクルードで指定して、エラーも出ていないから必要無いと思い込んでました。
本当にありがとうございました。
604:D
08/07/22 15:12:34
☆ チン ハラヘッタ〜
ハラヘッタ〜
☆ チン 〃 ∧_∧
ヽ___\(\・∀・)
\_/ ⊂ ⊂_)
/ ̄ ̄ ̄ ̄ ̄ /|
| ̄ ̄ ̄ ̄ ̄ ̄| |
|淡路たまねぎ|/
 ̄ ̄ ̄ ̄ ̄ ̄
605:デフォルトの名無しさん
08/07/22 15:38:51
>>603
コンパイルとリンクに違いについてもうちょっと勉強した方がいい
606:デフォルトの名無しさん
08/07/25 03:16:38
文字列の加工方法について質問です。
char chrBuf[1024];
AnsiString asBuf;
strcpy(chrBuf,"123456");
strcpy(asBuf.c_str(),chrBuf);
asBuf.Delete(3,3);
Label1->Caption = asBuf.c_str();
これで、「126」と表示させたいのですが、実際には「123456」となってしまうのは何故でしょうか・・・?
よろしくお願いします。
607:デフォルトの名無しさん
08/07/25 04:39:22
char chrBuf[1024];
AnsiString asBuf;
strcpy(chrBuf,"123456");
asBuf = chrBuf;
asBuf.Delete(3,3);
Label1->Caption = asBuf;
とやりたいの?
Caption は AnsiString だから、AnsiString → char * → AnsiString っていう
キャストが行われると思うんだけど、これはわざと?
c_str() で確保されたメモリ空間の寿命は未確定。
コピー先として使うべきではない。
608:デフォルトの名無しさん
08/07/25 10:30:26
>>607
AnsiStringを加工に使いたいのですが、挙動を理解しきれてないので・・・。
「URLリンク(homepage1.nifty.com)」で、
>char* c_str( )
>文字列をC言語の char* 文字列で返す。返すのはあくまでも char* 型のポインタであり、
>文字列のコピーが作られるわけではない。従って、受け取った char* 文字列を安全に操作したい場合は strcpy( ) などでコピーすると良い。
と、あるのでコピーしたのですが・・・解釈が違ったのかな?
ポインタとして渡せば動作するのですね。
ありがとうございます。
609:デフォルトの名無しさん
08/07/25 10:35:12
>c_str( )
は、無理して使う必要は無い。
どうしても使わないといけないときは、AnsiStringとstd::stringの渡しくらい。
例えば、
AnsiString SBuf;
string sBuf;
のとき、
sBuf = SBuf.c_str();
SBuf = sBuf.c_str();
と書く。
それ以外は、「.c_str()」を書かなくても、多分演算子がオーバーロードされてて、簡単に代入できる。
610:デフォルトの名無しさん
08/07/25 13:51:01
>>608
解釈が違うと思う。
c_str() で得られたポインタから strcpy 等で
「自分で確保したメモリにコピーする」っていう意味。
そうすれば、自分で確保したメモリの寿命は自分で決められるから。
URLリンク(www.ne.jp)
↑も参照してみて。
611:デフォルトの名無しさん
08/07/25 15:16:04
>>609-610
詳しい解説ありがとうございます。
入門書を見ると、「初心者はAnsiStringを使えば簡単」って書いてあるけど、実は取り扱いには注意しないといけないんですね。
暑くて頭があまり回っていませんが、がんばってみます。
612:デフォルトの名無しさん
08/07/25 15:20:45
>>611
基本的には常に AnsiString を使って、
API とのやりとりや、標準ライブラリの呼び出しだけに c_str() を使う、
って考え方が良いと思う。
613:デフォルトの名無しさん
08/07/25 15:48:01
>実は取り扱いには注意しないといけないんですね。
なことない。簡単。
614:デフォルトの名無しさん
08/07/25 18:05:18
今年買ったPCでTurboC++ Builder, WinXPでOpenGLに挑戦中なんですが,
テクスチャについて質問があります。
今, 「C++ Builder 6 コンポーネント活用ガイド&実践プログラミング Vol.8
OopenGL プログラミング編」
の「53-2 Bitmap形式のファイルを利用する」のソースコードex19を試しています。
このex19で1枚のテクスチャにbmpファイルを貼り付けているんですが, サイズが
64*64, 128*128, 256*256ならうまくいくんですが, 512*512や1024*1024のbmpを利用しようとすると
スタックオーバフローを検出して止まります。
これは, 256が4枚で512を表現したりするしかないのでしょうか?
512*512やそれ以上のサイズが使える解決方法をお願いします。
615:デフォルトの名無しさん
08/07/25 18:15:00
>>614
よくわからないけど、ファイル自体をスタックに積んでるのかねぇ?
そんなコード見たことがないが。
その辺り調べてみた?
616:デフォルトの名無しさん
08/07/25 18:37:34
一様乱数を生成する関数のソースについて質問があります。y=1/sqrt(2)*exp(-1/2*x*x)の計算で
In function `GaussRandom':: undefined reference to 'sqrt’と In function `GaussRandom':: undefined reference to `exp'というエラーがでて実行できません。もちろん<math.h>は定義しました。
レポート課題なのでマジで困ってます。是非教えてください。ソースを下に載せておきます。ちなみにxが一様乱数で、yが正規乱数です。
double GaussRandom()
{
double x;
double y;
x=UniformRandom();
y=1/sqrt(2)*exp(-1/2*x*x);
return y;
}
double UniformRandom()
{
double x;
int r=1;
r=1229*r+351750;
x=r/1664501;
return x;
}
}
617:デフォルトの名無しさん
08/07/25 18:48:29
GaussRandom()の前にUniformRandom()が定義されてないからじゃないの
618:デフォルトの名無しさん
08/07/25 18:54:34
>>617 今入れ換えて実行してみたのですが駄目でした。
619:デフォルトの名無しさん
08/07/25 20:02:44
おかしいね、うちはそれコピペしただけの通るよ
math.hのincludeがうまくできてないのかね
620:デフォルトの名無しさん
08/07/25 21:11:48
マルチポストしまくりで解決済みなんでスルーでいいよ
621:デフォルトの名無しさん
08/07/26 21:04:15
>>615 スタックのサイズを大きくしたらいけました。ありがとうございます。
622:デフォルトの名無しさん
08/07/26 21:09:55
>>621
とりあえず載ってるコードがダメダメな気がするから自分で書き直すことをお奨めする
623:デフォルトの名無しさん
08/07/26 22:36:46
コンパイルするとError: 外部シンボル 'WinMain' が未解決(C:\BORLAND\BCC55\LIB\C0W32.OBJ が参照
とでるのですが、理由がわかりません・・・。
どなたかわかる方お願いします。
624:デフォルトの名無しさん
08/07/27 14:51:31
フォームに配置したTButtonのOnClickイベントを、
実際にボタンを押してではなく、あるメソッド内から呼び出したいのですが
そういうことは可能ですか?
625:デフォルトの名無しさん
08/07/27 15:12:14
TButton::Click()があるじゃない
626:デフォルトの名無しさん
08/07/27 15:43:56
>>625
おかげさまで解決しました。
ありがとうございました。
627:デフォルトの名無しさん
08/07/27 22:16:52
おすすめのエディタ教えてください!
今までC言語を始めよう!というフリーソフトを使ってきました
628:デフォルトの名無しさん
08/07/27 22:17:48
>>627
スレ違い
629:デフォルトの名無しさん
08/07/27 23:24:30
>>627
エディタ部分だけなら2006以降のエディタの方がいいかな
ウィンドウ構成とかは6までのIDEのほうが好きだけど
630:デフォルトの名無しさん
08/08/05 15:25:09
C++Builder6からmecabを使いたいのですが、一週間以上格闘しても光が見えません(涙)
mecabの初期化すら出来ない状態なので何かアドバイス頂ければ嬉しいです。
よろしくお願いします。
631:デフォルトの名無しさん
08/08/08 15:12:29
OpenProcessで使うPROCESS_ALLACCESSマクロだが、定義間違ってね?
VCその他では
#define PROCESS_ALL_ACCESS 0x001f0fff
BCCでは
#define PROCESS_ALL_ACCESS 0x001fffff
になってる。
たぶん>>427の問題もそのせい
こういうバグってどこに報告すればいいん?
632:デフォルトの名無しさん
08/08/08 15:31:13
普通に0x1F0FFFになってるが。
検証コードはprintf("%08X", PROCESS_ALL_ACCESS);
環境は6pro update4
633:デフォルトの名無しさん
08/08/08 15:37:38
winnt.h
#define PROCESS_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | \
0xFFF)
#define STANDARD_RIGHTS_REQUIRED (0x000F0000L)
#define SYNCHRONIZE (0x00100000L)
どう見ても 001f0fff だわな
634:デフォルトの名無しさん
08/08/08 15:38:59
おっと、手元のが古いだけか
駄レスすまそ
635:デフォルトの名無しさん
08/08/09 11:28:57
そういうところまで疑わなきゃいけないんだな、面倒な
636:デフォルトの名無しさん
08/08/09 21:33:14
TEditにある数値を入力して、OnExitイベントで入力された数値を
チェックしてますが、入力値が異常でも、フォーカスが次のTEdit
にうつってしまいます。
よく考えれば当然といえば当然の結果なのですが、どうしても正常値
を入力するまでフォーカスを保持させたいのですが、行き詰ってしまい
ました。
よい解決方法がないでしょうか。よろしくお願いします。
637:デフォルトの名無しさん
08/08/09 22:19:30
できるじゃん
void __fastcall TForm1::Edit1Exit(TObject *Sender)
{
TEdit* edit = dynamic_cast<TEdit*>(Sender);
if (edit->Text != AnsiString("aaa")) {
edit->SetFocus();
}
}
638:デフォルトの名無しさん
08/08/11 15:43:16
ScanLineとRGBTRIPLEについて質問です。
ネットで調べると、ScanLineで取り込んだ配列はBGRの順番に入っているのでRGBTRIPLEに入れればよいとなっていたのですが、
実際に使ってみるとずれており、4番目の数値(中身は0)があるような感じでした。
BYTEが4つある配列に入れることで動作させましたが、以下の書き方は間違っているのでしょうか?
int i,j;
int RoopMax=100; // ループ回数
DynamicArray<RGBTRIPLE*> slbuf;
slbuf.Length=RoopMax;
for (i=0 ; i<RoopMax ; i++){
slbuf[i] = (RGBTRIPLE*)ColPos[Num]->Picture->Bitmap->ScanLine[i];
}
for(i=0;i<RoopMax;i++){
for(j=0;j<RoopMax;j++){
Ra[i][j] = slbuf[i][j].rgbtRed;
Ga[i][j] = slbuf[i][j].rgbtGreen;
Ba[i][j] = slbuf[i][j].rgbtBlue;
}
}
639:デフォルトの名無しさん
08/08/11 15:56:51
>>638
ビットマップが24bitならBGRの3bytes、32bitならBGRAの4bytes。
640:デフォルトの名無しさん
08/08/11 15:58:52
あと、今のPCだと32bitのほうが一般に処理速度早くなるから注意。
24bitだとワード+バイト転送なのに対し、32bitはダブルワード1回ですむ
641:デフォルトの名無しさん
08/08/11 16:07:26
>>639-640
なるほど、ビットマップの形式によって変わるので処理としては間違ってはいないんですね。
BGRAがあることに気づきませんでした。
ありがとうございます。
642:デフォルトの名無しさん
08/08/13 17:02:27
サブのスレッド(TThread)でTNotifyEventを発生させて、そのイベントによりメイン側の関数が実行されたとき
メイン側のメンバ変数の内容が見えないのですが、どうすればいいのでしょうか。
エラーが出るのではなく、関係ない数値が入っているので、別の部分を参照しているみたいです
具体的には
メイン側クラス(MainClass)、サブのスレッド(SubThread)
MainClass内で
AnsiString a;
SubThread->hogeEvent = (TNotifyEvent)&hogeFunc;
さらに
void hogeFunc(TObject* Sender)
{
MessageBox(Handle , a.c_str() , "",MB_OK);
}
として、hogeEventを発生させたとき、メイン側で既に代入したaの内容が読み取れていない
といった感じです。
よろしくお願いします。
643:デフォルトの名無しさん
08/08/13 23:46:54
実行コンテキストを無視しちゃだめ。メインスレッドに属するコード部分はメインスレッドのコンテキストで
実行する。PostMessageとかSynchronizeとかを使う。
644:デフォルトの名無しさん
08/08/14 03:13:49
>>643
ありがとうございます。
TNotifyEvent fOnHoge;
__property TNotifyEvent hogeEvent = {read=fOnHoge,write=fOnHoge};
void __fastcall TSubThread::evHoge(TObject* Sender)
{
if(hogeEvent){
hogeEvent(this);
}
として、サブスレッド内で
Synchronize((TThreadMethod)&evHoge);
を呼び出しても、解決しません。
このような書き方ではメインスレッドのコンテキストで実行されないのでしょうか。
2度も申し訳ありませんが、よろしくお願いします。
645:デフォルトの名無しさん
08/08/14 18:47:21
アホな質問をお許し下さい。
Unit1.cppにくっついてるフォームForm1(Unit1.dfm)のMemo1に
Unit2.cppの処理から文字を入れたいときはどうすればよいでしょうか…
VBっぽくForm1->Memo1->Lines->Add(a);みたいにしたら出来るかなーと思ったけど駄目でした
Turbo C++を使っています。
646:デフォルトの名無しさん
08/08/14 18:48:37
Unit2.hppに#include "Unit1.hpp"
647:デフォルトの名無しさん
08/08/14 18:50:14
ファイル→ユニットヘッダーファイルの追加の方が楽か
648:645
08/08/14 19:10:20
おおお
出来ました。ありがとうございます!
649:デフォルトの名無しさん
08/08/17 03:27:01
NI社のUSB-6008という製品を使ったことのある方はいますか?
これを使用してみたいのですが、最初にどこから手をつけていいのかわからなくって・・・。
とりあえず、DLLのインポートライブラリを作成してみようと、nidaq32.dllを使用してみたのですが、
Error nidaq32.dll: unknown file type
と、なってしまいます。
NI-DAQのバージョンは7.2
XPでBuilder6.0を使用しています。
650:デフォルトの名無しさん
08/08/18 00:43:53
それインポートライブラリが悪いか、nidaq32.dll にパスが通ってない、とか。
651:デフォルトの名無しさん
08/08/18 01:24:22
nidaq32.dllがあるフォルダで、コマンドプロンプトから実行したのですが・・・
これってIMPLIBの使い方間違ってます?
652:デフォルトの名無しさん
08/08/18 20:02:18
#include <stdio.h>
#include <System.hpp>
#pragma link "vcl.lib"
#pragma link "rtl.lib"
int main()
{
wchar_t col_caption[256];
int width;
int r0 = swscanf(L"知名性 (20)", L"%s (%d)", col_caption, &width);
printf("> %s : %d (%d)", AnsiString(col_caption).c_str(), width, r0);
}
上のコードの実行結果が期待する結果の
> 知名性 : 20 (2)
にならずに
> 知 : 4 (1)
となるのですがRTLのバグのほかになにか原因はありますでしょうか
環境はBCB6Pro#4、Win2kです。
653:デフォルトの名無しさん
08/08/19 09:01:04
setlocale
654:デフォルトの名無しさん
08/08/19 09:09:17
>setlocale
これって何のライブラリになるんでしょ?C++標準?VCL?
それを知らないと、#includeできないので。
あと、getlocaleってのもあるんでしょうか?
655:デフォルトの名無しさん
08/08/19 09:18:02
ついでですが、
localelist
みたいな1式も取れるんでしょうか?
656:デフォルトの名無しさん
08/08/19 09:35:41
setlocaleはswscanfには関係ないと思うんですの。VC2005だとちゃんと動くし。
BCBでも他の文字列ではちゃんと動いてるし。
657:デフォルトの名無しさん
08/08/19 09:50:06
確かにBCBヘルプに
>Standard C++ Library: Class Reference
>locale
ってのがありますね。
これはクラスだからいろいろメソッド使えるかも。
でも、これで切り替えても、
AnsiToUtf8/Utf8ToAnsiのロケールとは無関係なんかなぁ。
あ〜、テストプログラム作れば良いんだが、通勤時の暑さのせいでしんどい。
658:デフォルトの名無しさん
08/08/19 23:14:53
>>650
インポートライブラリが悪いって、どのような現象があるのでしょうか?
BuilderのバージョンはBuild10.166ですが・・・
659: ◆jButlJVlzY
08/08/19 23:16:05
#include <iostream>
using namespace std;
int op;
char a,b,c,d,f;
int main(){
cout>>"物語の始まり">>endl;
/*
char a ="起";
char b ="承";
char c ="転";
char d ="結";
char f ="おまけ";
*/
cout << "1目次1ページ目 目次2ページ 目次3ページ 目次4ページ 目次5ペーじ おまけ" << flush;
cin >> op;
{
660:デフォルトの名無しさん
08/08/21 02:12:21
すいません、どなたか>>658についてわからないでしょうか。
正解でなくても、何か参考になるようなことでもいいので意見を下さい。
よろしくお願いします。
661:デフォルトの名無しさん
08/08/21 07:47:42
implib nidaq32.dll nidaq32.lib と引数の順番を間違って実行して、nidaq32.dllが壊れて、その後
implib nidaq32.lib nidaq32.dll と順番を直したけどnidaq32.dllは壊れてるからエラー、とか?
一応本家にbcc用のインポートライブラリがあるみたいだけど。 ↓の一番下のzip
URLリンク(digital.ni.com)
662:デフォルトの名無しさん
08/08/21 20:09:54
>>649
NIDAQmxのDLLはnicaiu.dll見たいだよ?
NIDAQmxをインストールするとc:\WINDOWS\system32あたりにnicaiu.dllがあるはずだから
>implib nicaiu nicaiu.dll
でnicaiu.libを作ってリンクしてみたら?
663:デフォルトの名無しさん
08/08/22 02:33:44
>>661
すいません、一度壊してました・・・orz
>>662
NIDAQではなく、NIDAQmxを使うのですか!!
ありがとうございます、やってみます。
664:デフォルトの名無しさん
08/08/27 17:23:50
メインフォームのForm1と、 処理中ダイアログ用のForm2があって、 次のように使っています。
void __fastcall TForm1::ShowDialog()
{
Form2->Show();
for (i=0;i<100;i++) {... ;ProgressBar1->Position=i; ...}
Form2->Hide();
}
このForm2が前面に表示されている最中は、 Form1上にあるボタンをクリックしても
OnClickイベントが発生しないようにしたい(無視したい)のですが、 どうしたらいいのでしょうか?
Form2表示中にForm1上のボタンをクリックしたことによる処理が、 Form2が隠れた後に
実行されて困っています。
よろしくお願いします。
665:デフォルトの名無しさん
08/08/27 19:58:48
ShowModalでもしておけば?
666:664
08/08/27 20:39:55
>>665
ありがとうございます
667:デフォルトの名無しさん
08/08/28 03:05:24
8点ほど計測して、下の脳波測定のように境目をボカしたいのですが、何か良い方法はありますでしょうか?
URLリンク(www.speedreading.co.jp)
8つの円を描き、全体をぼかすように前後左右の平均を取るように処理してみたところ、何度もやるとものすごく時間がかかるので・・・。
ぼかし処理は下のものを使用しました。
URLリンク(gimite.net)
668:デフォルトの名無しさん
08/08/29 22:15:29
全然ダウンロードできないのですが、今日だけの現象ですか?
URLリンク(update.codegear.com)
ここに何度登録したことか。。。。
669:デフォルトの名無しさん
08/08/29 22:34:00
URLリンク(now.eloqua.com)
サーバーが見つかりません
670:デフォルトの名無しさん
08/08/31 00:08:20
そうだね
671:デフォルトの名無しさん
08/09/06 08:25:00
TurboC++ Professionalは、もうどこにも売ってないのですか?
672:デフォルトの名無しさん
08/09/06 10:46:04
初心者質問すいません
英単語の文字数を数えるにはどうすればいいですか?
673:デフォルトの名無しさん
08/09/06 10:52:49
AnsiString::Length()
674:デフォルトの名無しさん
08/09/06 10:57:35
C++とC#は別物ですか?
675:デフォルトの名無しさん
08/09/06 11:04:33
別物
676:デフォルトの名無しさん
08/09/06 11:15:14
>>675
ありがとうございました。ここではC++という文字をよくみるのに本屋ではC#をよくみたので一緒かなと思いました
ありがとうございました
677:デフォルトの名無しさん
08/09/06 17:27:47
実は # は
++
++
だったんだよ!
678:デフォルトの名無しさん
08/09/07 01:24:48
>>677
C++が一つ増えるなら、
C#は半分だけ増えるっていうイメージなんだけど。
それだと、2つも増えてるな。
679:デフォルトの名無しさん
08/09/07 02:35:29
>>677
その発想は無かったわ
680:デフォルトの名無しさん
08/09/07 17:30:34
エクスプローラの「表示」→「縮小版」みたいに、複数の画像を
サムネイル表示したいと思っています。
URLリンク(www2.ttcn.ne.jp)
を参考にDrawGridを使って実現しようかと思っていたのですが、
DrawGridコンポーネント1個に対して, 1つの画像しか表示できないんでしょうか?
681:デフォルトの名無しさん
08/09/07 23:31:12
サムネイルはListView使っとけ
682:デフォルトの名無しさん
08/09/08 21:57:33
Buliderっていう名前が明らかにマッチョ男性専用ソフトですっていってるようで怖い。
アメリカ人は本当にマッチョが好きだよな。サンフランシスコ。
683:デフォルトの名無しさん
08/09/09 04:41:14
>>681
そうします。ありがとうございます
684:680
08/09/09 07:34:14
追加の質問ですみません。
ListViewでサムネイル表示を試してみようと、
下の(1)〜(6)の手順でやってみたのですが、ビルド中に固まります。
アイコン画像サイズ256×256を越えているせいみたいなのですが,
表示されるサムネイルの画像サイズを320×240で表示するには、どうしたらいいんでしょうか?
アドバイスよろしくお願いします。
-----
(1)Form1にImageList1を貼り付ける
(2)オブジェクトインスペクタからImageList1のプロパティをWidth=320;Heiht=240;に変更
(3)ImageList1ダブルクリックして, 「追加」押して320×240の画像1枚を選択して「OK」押す
(4)Form1にListView1を貼り付ける
(5)オブジェクトインスペクタからListView1のLargeImagesプロパティでImageList1を指定
(6)オブジェクトインスペクタからListView1のItemsプロパティで「新規作成」押して「キャプション」にテストと入力して「OK」押す
685:デフォルトの名無しさん
08/09/22 10:04:17
メニュー項目を設定する
TMenuItemのCaptionにて
開く(&O)...
と設定されますけど、
このピリオド3個の意味を教えてください。
686:デフォルトの名無しさん
08/09/22 12:43:51
押すと他のウィンドウが開くって意味がほとんどじゃ?
687:デフォルトの名無しさん
08/09/22 20:03:06
>>685
ピリオドがないのは、処理がすぐ終わるけど
ピリオドがあるのは、ダイアログが出るでしょ。
それだよ。
688:デフォルトの名無しさん
08/09/22 23:25:23
>>686 >>687
れすありがとうございます。
確かに...なのは、ダイアログが開く系ですね。
(& みたいな特別な機能がある訳ではなく
WindowsのUIの作法みたいなものなのですね。
とても参考になりすた。
689:デフォルトの名無しさん
08/09/28 23:08:48
質問です。
TFontのStyleがSet という特別な型だったのですが
設定は、Font->Style << fsBold のようにすれば良いのはヘルプに記載があったのですが
FontにfsBoldが設定されているかを調べる方法がわかりません。
どうすればいいのでしょうか。
690:デフォルトの名無しさん
08/09/28 23:34:45
if ( Font->Style.Contains(fsBold) )
691:デフォルトの名無しさん
08/09/28 23:45:56
>>690
できましたーーー。超ありがとうございます。
692:デフォルトの名無しさん
08/09/29 23:49:18
いろんなほかのプログラムのボタンを押すプログラムを作るにはどうすればいいのでしょう?
具体的には mplayerの再生ボタンや巻き戻しボタンを押したり、mediaplayerの再生ボタンを押したり
その他新しいプログラムの再生ボタンを簡単に登録して押せるようなそんなプログラムを
くみたいのですが。
693:デフォルトの名無しさん
08/09/30 00:17:51
ウィンドウハンドル持ってるコントロールならBN_CLICKEDをPostすればいいじゃない。
メニューバーから操作できる機能なら、コマンドIDをメニューリソース見るか、SPY++やWinspectorでコマンドID調べてWM_COMMANDでPostすればいい。
どっちもだめならSendInputでがんばるしかない。
694:デフォルトの名無しさん
08/09/30 00:18:33
簡単に説明すると、ウインドウを列挙して、中の再生ボタンのハンドルを取る。
ハンドルが取れれば、APIでごにょごにょできるでしょ。
あとはがんばれ。
695:デフォルトの名無しさん
08/09/30 10:50:39
あぁ!そっか、難しく考えすぎてた。
ありがとうございます。
696:デフォルトの名無しさん
08/09/30 20:54:22
質問です。
リストボックスにD&Dでリストボックスにファイルパスを表示する
プログラムをどうすれば言いか教えていただけないでしょうか?
697:デフォルトの名無しさん
08/09/30 22:04:17
をぃ、日本語が不自由な奴よ。
マルチポストはルール違反だぜよ。
698:デフォルトの名無しさん
08/09/30 22:44:16
>696
"C++Builder" ファイル ドラッグアンドドロップ
でぐぐれ
699:デフォルトの名無しさん
08/10/02 00:15:22
test
700:デフォルトの名無しさん
08/10/02 00:19:19
ごめんなさい、プロバイダが規制くらってたのでtest書き込みしてしまいました。
質問なんですが、フォームを使ってアプリを作っており、
デバッグで配列の中身や変数を見たく、printfなんかでコンソールに表示させたいのですが
何か方法はありますか?
インスペクタ?みたいなのはどうも使いにくくて・・・
ちなみに、C++Builder6を使ってます
701:デフォルトの名無しさん
08/10/02 00:32:28
これでどうでしょ?
URLリンク(msdn.microsoft.com)
でもIDEのデバッガ機能をちゃんと勉強して使ったほうが楽だと思うけどね。
702:デフォルトの名無しさん
08/10/02 01:08:53
>>700
AllocConsole()でコンソールが開きます。コンソールのハンドルをGetStdHandle( STD_OUTPUT_HANDLE )で取得したら
SetConsoleTextAttribute()とWriteConsole()で好きな文章を色つきで出力できます。
printf() っぽく使うならこんな感じ
#include <stdio.h>
int __stdcall con_printf( const CHAR* Format, ... )
{
const int nLengthMax = 1024;
int nLength = 0;
HANDLE hConsole = ::GetStdHandle( STD_OUTPUT_HANDLE );
if( hConsole != INVALID_HANDLE_VALUE ){
CHAR Message[ nLengthMax ];
va_list List;
va_start( List, Format );
nLength = vsnprintf( Message, nLengthMax - 1, Format, List );
va_end( List );
DWORD dwLengthWritten;
::WriteConsole( hConsole, Message, (DWORD)nLength, &dwLengthWritten, NULL );
}
return( nLength );
}
IDEが入ってない環境とかで使えるよ。
703:デフォルトの名無しさん
08/10/02 02:04:16
_open_osfhandle()とかdup2()とかを組み合わせれば
普通にそのままのprintfが使えるようになるんじゃないかね。
知らないけど。
704:デフォルトの名無しさん
08/10/02 02:44:28
IDEでデバッグしてるならOutputDebugString使えばイベントウィンドウに出力されるぞ
705:デフォルトの名無しさん
08/10/02 10:34:03
複数のフォームを持ったアプリを作っています。
メインフォームの初期化ルーチン(FormCreateとか)から他のフォームの初期化ルーチンを呼び出したいが、
それがまだ生成されていないのでエラーになるというケースが多くて困っています。
全てのフォームが生成された後で一括して初期化を行いたいという時にはどうすればよいのでしょうか?
どなたか教えて下さい。
706:デフォルトの名無しさん
08/10/02 12:02:22
メインフォームのコンストラクタで他のフォームnewすれば?
707:デフォルトの名無しさん
08/10/02 12:46:22
>>700
解決したかも知れないけど、
TMemo 貼って Add で俺はやってる。
708:デフォルトの名無しさん
08/10/02 17:46:19
コンパイルした時に作成される実行ファイルの名前を、プログラム側で変更することってできます?
#ifdefで二種類作るので、間違えないようにしたいのですが・・・
709:700
08/10/02 18:59:26
なるほど、色んなやり方があるんですね。
しかしこのスレ非常にやさしいw
ありがとうございました〜、色々とやってみて合うもの見つけてみます
710:デフォルトの名無しさん
08/10/02 19:43:14
>>708
#pragma optionでできないものリストに「-efilename」が書かれてるから無理
objファイルならできるけど。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4373日前に更新/254 KB
担当:undef