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

モナーの *やさしい* Delphi質問スレ Ver.8

■ このスレッドは過去ログ倉庫に格納されています
0001DelモナーNGNG
  ∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ( ´∀`)<. Delモナーがどんな厨房疑問でもやさしく答えます。
 (    ) .| Delモナーは時に私であり、時には別の人。
 | | |  | 他のスレに書き込んで罵倒される前に、まずここで質問しよう。
 (__)_)  \_________________________

前スレ モナーの *やさしい* Delphi質問スレ Ver.7
http://pc.2ch.net/tech/kako/1021/10212/1021262086.html
0685デフォルトの名無しさんNGNG
>>684
ファイラの話はしてねーよ
0686デフォルトの名無しさんNGNG
> とんでもないデザインなのは何とかしてほしい。

使わなきゃいいだろ。
Delphi となんの関係があるの。 Delphi 製とか?
0687デフォルトの名無しさんNGNG
>Delphi と関係があるの
うるさいなぁ。ML の下らん規則を持ってくるな。ぼけ。
0688デフォルトの名無しさんNGNG
>>686
使ってないよ。
"Designed for Windows XP/2000/ME/98/NT"の話が出てきたから、
UIにも気を使ったソフトを作らないとね、っていう話をしたかった。
0689669NGNG
>>680
何も問題ではありませんが?「調べりゃわかる」と言われたんで、調べる気もないと返した
だけです。

「Visual Studio&Office」というソフト名らしき物を上げて「お手本です」と書かれたので、文章
化(書籍化やWeb上にまとめられているか)を知りたかっただけです。

>>681
ありがとうございます、やはり「MSのソフトに合わせろ」という感じなのでしょうか。それはど
う考えても「デザインガイド」ではないですね。ただのお手本という感じにしかなりませんね。

それならば私が出した本は「一応デザインガイド」となっているので、これに従うのが一番妥
当なような気がします。ちょっと古くさいUIですが、別に動かないというものでもないし。
0690デフォルトの名無しさんNGNG
>>689
>それならば私が出した本は
(((((((( ;゚Д゚))))))))))))ガクガクブルブル
0691デフォルトの名無しさんNGNG
>>690
後3分くらい考えると本当の意味がわかるよ。
逆にそれくらい考えないと意味がわからない文章だよ。
0692Delフサギコ ◆VzDeLphI NGNG
おれもいっすんガクブルですた。 ミ゚Д゚,,彡
スレの流れも意味わからないけどな。
0693デフォルトの名無しさんNGNG
>ちょっと古くさいUIですが、別に動かないというものでもないし。
それを許せるのなら、どんな UI を使ってもいいんじゃないの?
それとも、自分で考えるのがいやとかかな?
ガイドラインがないと何もできないとか?
0694デフォルトの名無しさんNGNG
PC98システムデザインガイド マイクロソフト公式解説書
これか
0695デフォルトの名無しさんNGNG
それはハードの仕様だろう。
>PC 98は、ハードウェア設計者を対象に作成され、その目的は、以下の通りです。
って書いてあるやん。
0696デフォルトの名無しさんNGNG
appleみたいにちゃんとしたガイドラインだしてほしいよ
0697デフォルトの名無しさんNGNG
ガイドライン厨
0698669NGNG
>>690-692
分かりにくくなってすみませんでした。「私の挙げた本は」とすべきでした。

>>693
確かにどんなUIでも良いのですが、一応「標準(デザインガイド)」があるなら
それに従った方が使いやすくなると思っています。自分しか使わないソフト
なら全く考えずに作るのですが、一応フリーソフトとして公開するやつはデザ
インガイドから外れていないかチェックするようにしています。

「ちょっとしたツール」程度のものですから、複雑なUIを使わなくても何とか
なります。

マイクロソフトのソフトはほとんど使っていないので、「ソフトを見ながらUIを
チェックする」ということが出来ないんです。
0699デフォルトの名無しさんNGNG
設定を入れる場所に悩む
macなら編集できまりなのだが
winだと編集だったりツールだったり
0700 NGNG
[編集|設定]や[表示|設定]はヘタレなアプリが多い。
ツールにしとけ
0701デフォルトの名無しさんNGNG
>>698

>マイクロソフトのソフトはほとんど使っていないので
メモ帳、ワードパッド、マインスイーパー、エクスプローラーあたりを使ってみてはどうか。
0702デフォルトの名無しさんNGNG
質問です。
TShapeの図形をクリックすると、新しく図形がそこに作成され、
マウスで動かせるようにしたいのですが、
マウスをムーブした時のイベントが、元の図形のままになっているようで、
うまくいきません。

新しく作成したTShapeのイベントにするような方法ってありますでしょうか?
0703デフォルトの名無しさんNGNG
「元の図形」はマウスで動かせるの?
もしそうなら、新しい TShape のイベントをそれに関連づけたら
0704デフォルトの名無しさんNGNG
クリックイベントを受けるのは古いオブジェクト。
それが新しいオブジェクトを生成したとしても、何もしなければ古いオブジェクトの
イベントのまま。だってイベントの元の Windwos メッセージは古いオブジェクトの
WIndow ハンドルに送られてきたんだから。

アクロバット的な解決方法もあるかもしれないが、定石としてはコンポーネントを
乗せているオブジェクト(TForm など)に細工をするのがおすすめ。

0705デフォルトの名無しさんNGNG
>>702
 作成したイベントが重なっていないなら動かせるけど、重なっていると
 どっちにしてもどれか一つしか受け取れない

こんなの参考にして複数のイメージを含んだコンポ作ったら?
矢印や直線も描ける、しかも設計時にCADみたいにイメージを動かせるコンポ
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1004530597&rm=100
0706702 ヽ(´∀` )ノNGNG
>>703,704,705
たいへんありがとうございます!!!
試行錯誤して色々やってみます!!!
0707デフォルトの名無しさんNGNG
こんなのもあるよ。
ttp://home1.infonia.ne.jp/~delphian/delphi/compo/text/mi0027.txt
結構古い(D3時代)から、手直しが必要かも。
0708お約束。NGNG
FAQ です、良くありそうな話題は、過去ログを検索するか
FDelphi の FAQ を探してみましょう。
0709702NGNG
>>707,708
どうもありがとうございます!!

また質問なのですが、ShapeのParentを変更すると、
マウスを早く動かしたときに図形がマウスについてこなくなってしまうのです。
再びマウスを乗せるとついてきます。
FAQっぽい感じもするのですが、見当たらないです・・・。
0710デフォルトの名無しさんNGNG
Parent はこの際あまり関係ないと思う。
SetCaptureControl やってみそ
0711702NGNG
>>710
即答どうもありがとうございます!!
やってみます!!
0712708NGNG
冗談なのに...
0713デフォルトの名無しさんNGNG
> だってイベントの元の Windwos メッセージは古いオブジェクトの
> WIndow ハンドルに送られてきたんだから。

TShape はウィンドウをつくらないはず。ハンドルなんかないよ。
D&Dで動かせるようなイベントハンドラが Sender だけを参照して
特定のインスタンスを参照しないようにコーディングされていれば
新しいインスタンスのイベントに関連づけするだけでは?
0714702NGNG
たびたびすみません。どうもうまくいきません。
TShapeを配列でたくさん作って、それぞれに共通の関数で処理しているのですが、
根本的にやり方がタブーなんでしょうか?

★最初にTShapeを配列でとって
Var
MyShape : array[1..10] of TShape;

★Form1のクリエイト時に
procedure Form1.FormCreate(Sender: TObject);
begin
for i := 1 to 10 do
begin
MyShape[i] := MyShape.Create(Form1);
MyShape[i].Parent := Form1;
MyShape[i].OnMouseDown := MyShapeMousedown;
MyShape[i].OnMouseMove := MyShapeMouseMove;
MyShape[i].OnMouseUp := MyShapeMouseUp;
end;
end;

★クリックされた時の関数は
procedure Form1.MyShapeMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
SetCaptureControl(TControl(Sender)); ←☆
for i:=1 to 10 do
if Shape[i] = Sender then ここで配列の中のどのコンポーネントか判断している。
begin

マウスを早く動かすと、移動中のShapeがおいてけぼりになってしまいます。
SetCaptureControlをマウスクリック時に設定しても、マウスを動かしたときにMyShapeMouseMove()に処理が来ないです。
0715デフォルトの名無しさんNGNG
Del5proです。
onKeyDownイベントで[CTRL]+[SHIFT]+[0}が入力された時のみ
特定の処理をしようと思っているんですが・・・。

[SHIFT]→[CTRL]→[0]と押す  Key値:16
[CTRL]→[SHIFT]→[0]と押す  Key値:17

となってしまいます。
因みに何も押さない時のKeyは96。

きちんと[SHIFT][CTRL][0]を検知するにはどうしたら・・・?
0716Delフサギコ ◆VzDeLphI NGNG
                __________
    ,,,,,,,,,,,,,,,∧,,∧   /Ctrll+Shift+0
  〜′,,,,,,,,,,ミ,,゚Д゚彡<  Actionのショートカットキーに
   UU"""" U  ⊃  \割り当てるのがよし
                 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
0717デフォルトの名無しさんNGNG
> if Shape[i] = Sender then ここで配列の中のどのコンポーネントか判断している。

ふつう Sender を TMyShape にキャストするだけでは?
0718デフォルトの名無しさんNGNG
>>714
コンポを配列にするというVBみたいな発想はやめたほうがいいよ
0719Delフサギコ ◆VzDeLphI NGNG
                __________
    ,,,,,,,,,,,,,,,∧,,∧   />>718
  〜′,,,,,,,,,,ミ,,゚Д゚彡<  時と場合によると思うよ
   UU"""" U  ⊃  \
                 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
0720デフォルトの名無しさんNGNG
>>719
同意。

ボタンを押すと100個のチェックボックスが一斉に(略
0721デフォルトの名無しさんNGNG
てゆうか、Controlsプロパティで同じことが出来るよね?
0722デフォルトの名無しさんNGNG
>>721
彼のようになんとしてもキャストを使いたくないときには有効だと思われ。
0723デフォルトの名無しさんNGNG
>>719
>>714 のコードは配列をループで回すところが無駄なんだよ。
0724714NGNG
どうもありがとうございます。
配列をループで回さない場合、どうやるのでしょうか?
Controlsでしょうか?勉強します。

Shape.parent := で親を変更すると、マウスの動きが速いとき図形がついてこなくて、
Windows.SetParent(Shape.Handle,Form1.Handle); だと、きちんとついてくることが判りました。
しかし、この場合、Shape.top:= Shape.Left := で、図形の位置をセットできません。
Shape.parent := の場合は、図形の位置をセットできます。うーん。
0725Delフサギコ ◆VzDeLphI NGNG
                __________
    ,,,,,,,,,,,,,,,∧,,∧   /
  〜′,,,,,,,,,,ミ,,゚Д゚彡<  ClientToScreenとかその逆で
   UU"""" U  ⊃  \ Top/Leftを計算してみては?
                 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
0726デフォルトの名無しさんNGNG
Tagにでも自分のインデックスを入れておけば、わざわざforで検索しなくてもいいかと
0727714NGNG
>>725 どうもありがとうございます。
Shape.parent:=で親を変更した場合は、ClintToScreenなどでtop,Leftを
計算してうまくいくのですが、
Windows.SetParent( で親を変更した場合には、Top,Leftに何を入れても
反映されないのです・・・
0728714NGNG
>>726
どうもありがとうございます。
tag・・知らなかったです。^^;
0729デフォルトの名無しさんNGNG
はーい、先生、ドラグするためにどうして配列の番号を知る必要が
あるんですか?
0730デフォルトの名無しさんNGNG
>Shape.parent:=で親を変更した場合は、ClintToScreenなどでtop,Leftを
>計算してうまくいくのですが、
>Windows.SetParent( で親を変更した場合には、Top,Leftに何を入れても

TShape ってウィンドウを作らない VCL コントロールなんだから
Windows.SetParent() で親を設定できるはずないだろ
0731715NGNG
>>716
遅レススマソ
そっか。そういう方法を忘れてた。
後でやってみるです。
ありがとうございます。
0732デフォルトの名無しさんNGNG
>>726
他のみんなはコントロールをすべてなめる時の話をしてるんだけどね。
0733デフォルトの名無しさんNGNG
>>732
はあ? スレの流れ読めてないね。
発端の >>714 のコードが何やりたいかわからないのか。
ループで回す必要ないんだよ。Sender に目的のオブジェクトが入ってるんだから。
0734733NGNG
もちろんこの場合は Tag なんて論外。
0735ななしへたぐらま ◆B18Bks.Y NGNG
>>709
Shepeコンポのドラッグによる移動はこんな感じでしょうか.
>>710さんが意図したのとは違うかも知れませんが
SetCaptureControlでShapeの親がマウスイベントを捕捉するようにしています.

//TForm1のフィールド変数に以下を追加
FDraggingControl: TControl; // ドラッグしているコントロール
FDragOffset: TPoint; // ドラッグしているコントロールの左上座標からドラッグした位置までのオフセット

// 各ShapeコンポのOnMouseDownイベントハンドラ
procedure TForm1.Shape1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
// ドラッグしているコントロールを保管
FDraggingControl := Sender as TControl;
// ドラッグしているコントロールの左上からマウスカーソルまでのオフセットを保管
FDragOffset.x := X;
FDragOffset.y := Y;
// マウス処理をこのコントロールの親で捕捉するようにする
// (つまり,以後にマウスを動かしたりボタンを離しても
// ShapeコンポのOnMouseMove,OnMouseUpイベントは発生せず,
// 代わりに親の同イベントが発生する)
SetCaptureControl(FDraggingControl.Parent);
end;

(つづく)
0736ななしへたぐらま ◆B18Bks.Y NGNG
(つづき)

// Shapeの親のOnMouseMoveイベントハンドラ
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
// ドラッグしているコントロールがあるならそれを移動する.
if (FDraggingControl <> nil) then
begin
FDraggingControl.Left := X - FDragOffset.x;
FDraggingControl.Top := Y - FDragOffset.y;
end;
end;

// Shapeの親のOnMouseUpイベントハンドラ
procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
// マウス処理の捕捉を終了
// (以後,通常通りにマウスイベントが発生する)
ReleaseCapture;
// ドラッグしているコントロールがなくなったことを記憶.
FDraggingControl := nil;
end;
0737709NGNG
どうもありがとうございます。ヽ(´∀` )ノ
初心者&独学で、なんとも変なコードを当たり前の様に
書きつらねてしまっているので、大変勉強になります!!!
0738デフォルトの名無しさんNGNG
教えてくだちい
Shelllistviewで選択したファイル名って、なんていうプロパティで受け取る
ですか????
HELPにもありません
(^o^)丿
0739デフォルトの名無しさんNGNG
ShellListView を使った時点でDQN
0740デフォルトの名無しさんNGNG
>>738
ItemIndex とか Selected とかかな? 使ったことないけど。

>>739
理由教えて。
0741727NGNG
>>730
すみません。その通りでした。
ShapeじゃなくてPanelでした。呆けてました。
ネットで検索したら、parentはcreateした直後に設定し、その後にその他の
プロパティを設定しなくてはならないみたいです。
・・・とすると、一度parentを設定したら、変更してはいけないのかな?という感じがします。
0742デフォルトの名無しさんNGNG
> 一度parentを設定したら、変更してはいけないのかな?という感じがします。

親を変更してはいけない、ということはありませんが
変更しなくてもよいプログラムが書けるならそのほうが
よいと思います
0743デフォルトの名無しさんNGNG
>>738
Pathだったような違ったような。
0744デフォルトの名無しさんNGNG
>>738
FAQです。過去ログを参照しましょう。
ってMLじゃたたかれますな。
>>739
多分Delphi6もってないんじゃないの?
注意書きと、些細なバグさえ修正すればそこらの汎用プログラマが作成するより幾分堅牢なコンポーネントのような気はするけど。
些細なバグは過去ログあたってね
0745デフォルトの名無しさんNGNG
> 多分Delphi6もってないんじゃないの?

当たり!
0746デフォルトの名無しさんNGNG
Delphi6でQuadruple Dを使っている人、誰かいませんか〜?
0747デフォルトの名無しさんNGNG
>>746
使ってる。つっても、インストールしてサンプルで適当に遊んで
DDSDでoggファイル再生する実験してみたくらいだけど。
0748738NGNG
教えてくだちい
教えてくだちい へこへこ
0749デフォルトの名無しさんNGNG
>>746
使ってますよ。
0750709NGNG
すみません。再び教えてください。

>>735さんに教えていただいて、次の書き込みのソースを書きました。

Form1の左側にScrollBox2,右側にScrollBox1があります。
左側のScrollBox1をparentとするPanel1をマウスでドラッグ&ドロップで、
右側のScrollBox2に移動させたいと考えています。

Panel1をマウスクリックした時にparentをForm1に変更し、
マウスボタンを離したときにparentをScrollBox2に変更しています。

ところが、マウスのボタンを離してもScrollBox2にpanelが移動しないのです。

念のため、
タイマーを使って、Panel1のparentを左右のScrollBoxを交互に変更させたらうまくいきました。
0751709NGNG
Private
____FDragOffset:Tpoint; //オフセット
____FDraggingControl : TControl;//ドラッグしているコントロール

implementation
//マウスを移動
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
____FDraggingControl.Left := X-FDragOffset.X;
____FDraggingControl.top := Y-FDragOffset.Y;
end;

//マウスボタンを離したら
procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
____ReleaseCapture;
____FDraggingControl.Parent := Scrollbox1; //マウス離したら親をscrollbox1に変更
____FDraggingControl:=nil;
end;

//マウスボタンを押したら
procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
____FDraggingControl := Sender as TControl;
____FDragOffset :=point(x,y);
____SetCaptureControl(Form1);
____FDraggingControl.Parent := Form1; //マウス押したら親をForm1に変更
end;
end.
0752746NGNG
Del6でもDDDDで「asm fint; end;」をいちいち入れないといけないのでしょうか?
DirectX7SDKヘルプの「ボーランド浮動小数点の初期化」というのを見ると、
もっとスマートな方法があるような気もするのですが。
Quadruple Dのヘルプを見ても、入れなければならない条件というのがあいまいで
よくわからないのですが。。。
0753デフォルトの名無しさんNGNG
>>751
KeyUpだし
ScrollBox2出てこないし
0754デフォルトの名無しさんNGNG
>>746
Del6でインスコしていじってたことあるよ
0755751NGNG
>>753
たいへんありがとうございます!!!!
ScrollBox2が出てこないのは書き込み用のタイプミスでしたが、
まさしくKeyUpが原因のようです。
・・・・3日間の悩みが解決しましたヽ(´Д`;)ノ
0756デフォルトの名無しさんNGNG
デュアルCPU対応のアプリを作るにはどうしたら良いのでしょう
0757 NGNG
マルチスレッドにすりゃできるよ
TThread使え
0758デフォルトの名無しさんNGNG
ありがとうです。やってみます。
0759デフォルトの名無しさんNGNG
デルファイのプロフェッショナルで5,6万、エンプラで2,3十万
これらを買うとどんな得点があるのでしょうか。
visualStdio.netを買うとSQLサーバーやOS、その他いろいろ提供してもらえます。
デルファイはなにがもらえるのでしょうか。教えてください。お願いします。
0760デフォルトの名無しさんNGNG
>>759
愛とか夢とかロマンとか…。
0761デフォルトの名無しさんNGNG
すいません、教えて下さい。

動的配列を2つ作って片方にデータを入れたあと、
もう片方にそのデータをコピーして使いたいのですが、
↓みたいなやり方で大丈夫でしょうか?

var
Array1,Array2 : Array of String;
begin
____SetLength(Array1,1);
____Array1[0] := 'aaa';

____Array2 := Array1;

____//メモリ再割り当て
____SetLength(Array2,Length(Array2));
____Array2[0] := 'bbb';

____……
end;
0762デフォルトの名無しさんNGNG
>>761
本題と関係ないけど
_
のかわりに
&nbsp;
を使うほうがいいかと。
0763デフォルトの名無しさんNGNG
>>762
全角スペースでもよいかと
0764デフォルトの名無しさんNGNG
&nbsp;と打つのかな?
0765デフォルトの名無しさんNGNG
 って打ってみる
0766デフォルトの名無しさんNGNG
         なるほど!
0767デフォルトの名無しさんNGNG
SetLength(Array2,Length(Array2));

?
0768デフォルトの名無しさんNGNG
>>761
Array of string なら Tstringlist 使ってしまえば?
Assignできるし。
0769デルファイの名無しさんNGNG
Copyってのも手ですね。
0770ななしへたぐらま ◆B18Bks.Y NGNG
>>767
ご存じかも知れませんが
動的配列変数同士の代入では内容のコピーは行われない仕様のようです.
(しかも文字列と違い,コピー後に片方を改変してもコピーは行われない)

しかしSetLength手続きで再割り当てすると
2つの変数は別な配列を指すようになるようです.
ただしヘルプにはこれに関する記述はがありませんでした.

>>768
私も文字列リストですね.動的配列はたまにしか使いません.

>>769
なるほど! Copy関数だと動的配列を1行で複写できますね.
0771761NGNG
>>770
フォローありがとうございますm(__)m
そうなんですよね。ヘルプみても詳しい使用例
みたいのがなかったもので・・・
>>769さんのCopyの方がすっきりした形で出来そうなので、
そちらの方法でやることにします。

>>768
実は、今実際に修正かけてるのがRecord型の動的配列の
要素の一つにRecord型の動的配列が入っているという
構造でして、TStringList使えなかったんです。
TListにおきかえようとも思ったのですがもう時間がなくて。
紛らわしい例出してすいません。

とにかく助かりました、ありがとうございます!!
0772デフォルトの名無しさんNGNG
>>771
(*実は、今実際に修正かけてるのがRecord型の動的配列の
要素の一つにRecord型の動的配列が入っているという
構造でして、TStringList使えなかったんです。 *)

TList使えそうな予感。
0773てすたNGNG
     ____
    /∵∴∵∴\
   /∵∴∵∴∵∴\
  /∵∴∴,(・)(・)∴|
  |∵∵/   ○ \|
  |∵ /  三 | 三 |  / ̄ ̄ ̄ ̄
  |∵ |   __|__  | < うるせー馬鹿!
   \|   \_/ /  \____
    \____/
0774デフォルトの名無しさんNGNG
CSVファイルを読み込んで、その項目にアクセスしたいんです。

Readlnで読み込んで、区切りを探して…、くらいしか思いつかないんですが、
もっと楽な方法ってありますか?
0775デフォルトの名無しさんNGNG
バージョン家
0776デフォルトの名無しさんNGNG
>>774
TStringList を使ってみ、、、
0777デフォルトの名無しさんNGNG
>>774
TStringList.CommaText
0778774NGNG
>>776
あ!TStringListのヘルプ見てみました!
CommaTextやDelimitedTextを使うんですよね?
これでOKです!ありがとう!
0779774NGNG
>>777さんもありがとう!
0780てすたNGNG
     ____
    /∵∴∵∴\
   /∵∴∵∴∵∴\
  /∵∴∴,(・)(・)∴|
  |∵∵/   ○ \|
  |∵ /  三 | 三 |  / ̄ ̄ ̄ ̄
  |∵ |   __|__  | < うるせー馬鹿!
   \|   \_/ /  \____
    \____/
0781デフォルトの名無しさんNGNG
>>780
なにをテストしてるの?
0782デフォルトの名無しさんNGNG
粗しテスト。
0783どすたNGNG
     ____
    /∵∴∵∴\
   /∵∴∵∴∵∴\
  /∵∴∴,(・)(・)∴|
  |∵∵/   ○ \|
  |∵ /  三 | 三 |  / ̄ ̄ ̄ ̄
  |∵ |   __|__  | < どんな質問にも答えてやろう
   \|   \_/ /  \____
    \____/
0784デフォルトの名無しさんNGNG
>>783
> どんな質問にも答えてやろう

AA がいかにも頭悪そうに見えるのはなぜですか?
■ このスレッドは過去ログ倉庫に格納されています