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

C++Builder相談室 Part4

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
C++Builderに関する質問・回答や議論等を行う相談室スレッド。
過去スレ・関連サイトは>>2-4あたり。
0554デフォルトの名無しさんNGNG
>>553
再帰か。良いテクニック持ってるな。
0555デフォルトの名無しさんNGNG
>>553
よくわかりませんが、何が起こってるんですか?
0556デフォルトの名無しさんNGNG
>>555
再帰と言って自分自身を呼び出すことによりディレクトリ走査などを簡単に行える技だ。
0557553NGNG
ああゴメン。
ようするに横に大きい文字を描きたいのでしょ?
LogFont 構造体 を設定して CreateFontIndirect でフォントハンドルを作って、

そのハンドルをCanvas->Handleに 対して SelectObject すればいい

後で解放して元に戻すのを忘れないようにね

0558デフォルトの名無しさんNGNG
>>557
ありがとうございます。少し調べてみます。
0559デフォルトの名無しさんNGNG
はじめから調べろよクズ。
0560デフォルトの名無しさんNGNG
>>559
検索キーワードがないとググれないだろw
0561デフォルトの名無しさんNGNG
age
0562デフォルトの名無しさんNGNG
まぁアレだな。
キタ━━━━(゚∀゚)━━━━━!!!
0563デフォルトの名無しさんNGNG
ていうか前からIPを取ってたんでしょ
0564デフォルトの名無しさんNGNG
テスト
0565デフォルトの名無しさんNGNG
これで嫌韓厨が駆除されるといいね
0566デフォルトの名無しさんNGNG
>>352
友人から借りた?おいおい。MXで落とせば?
0567デフォルトの名無しさんNGNG
あ、いい機会だからひろゆきに聞いとこう

AA板のひろゆき関連のスレ(グロゆき、キモゆき等)覗いてますか?
0568デフォルトの名無しさんNGNG

  ∠゙⌒"フ
  / ‘(・・)
  / (,,゚Д゚)  < テス�d
  i (ノ   !つ
〜゙:、..,__,.,ノ
   ∪∪
0569デフォルトの名無しさんNGNG
>>121
匿名で書き込む事を過大解釈してきた香具師らのことを
俺は言ってるわけだが?
あなたの意見には大体賛成ですがね?
0570デフォルトの名無しさんNGNG
ListViewに保持してある複数の文字列を別のフォームのListViewに渡したいのですが、
どのようにすればいいのでしょうか?

__publishedで宣言されたものは他のクラスからは参照できないですよね?
C++始めたばかりなのでこの辺りがいまいちよく分かってません…
0571デフォルトの名無しさんNGNG
1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。
0572デフォルトの名無しさんNGNG
>>570
見れます。
_publishedは、publicと可視性は変わらないよ。
ちなみに_publishedは、C++標準じゃなくて、Builder固有のキーワードです。
0573デフォルトの名無しさんNGNG
あ、テンプレ書いてたら先こされた
0574デフォルトの名無しさんNGNG
age 
0575デフォルトの名無しさんNGNG
======2==C==H======================================================

         2ちゃんねるのお勧めな話題と
     ネットでの面白い出来事を配送したいと思ってます。。。

===============================読者数: 138720人 発行日:2003/1/9

年末年始ボケがそろそろ収まり始めた今日このごろのひろゆきです。

そんなわけで、年末に予告したIP記録ですが実験を開始しています。

「2ちゃんねる20030107」
こんな感じで各掲示板の最下部に日付が入ってるんですが、
20030107以降になってるところはログ記録実験中ですー。

んじゃ!

────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
0576デフォルトの名無しさんNGNG
とりあえず、>>557さんの方法で横倍角の文字をTMemoコンポーネント上に表示させ、
ScrollDCでスクロールさせるところまではできましたが、あまりに長い文字を書くと、
はみ出してしまい、そこから先の文字はスクロールされずに、消えてしまいます。

テキストエリア内に収まりきらなかった文字をスクロールさせる方法をご存知の方はいらっしゃいますか?
以下スクロールのイベントです。タイマーオブジェクトを使い一定の感覚で呼んでいます。

引数
LRBit = -1
UDBit = 0

void TForm1::TextScroll(int LRBit,int UDBit)
{
int *a,*b;
RECT cltRect;
HDC hDC= GetDC(Memo1->Handle);
a = &LRBit;
b = &UDBit;

cltRect = GetClientRect();

ScrollDC(hDC,(*a),(*b),&cltRect,&cltRect,NULL,&cltRect);
SetScrollPos(Memo1->Handle,SB_HORZ,*a,TRUE);
}

よろしくお願いします。
0577デフォルトの名無しさんNGNG
上げときます。
0578572NGNG
>>572
×_published
○__published
0579デフォルトの名無しさんNGNG
_published にしとけ
0580570NGNG
>>572
ありがとうございます。
代入式を書く箇所を間違えていただけでした…
こういったものはpriveteにされてるものだという先入観もあったもので。
0581デフォルトの名無しさんNGNG
>>284
そうだよね。
勘違いしてる奴おおいし、

現実世界と同程度の責任を求められる事が当たり前になるように
なるといいね。

0582デフォルトの名無しさんNGNG
今まで悪ふざけで出来たものがあったような気がするけど、そういうのが出来なくなるような?
0583デフォルトの名無しさんNGNG
>>70
わかった。何度説明しても駄目だな。こりゃ。
0584デフォルトの名無しさんNGNG
>>70
わかった。何度説明しても駄目だな。こりゃ。
0585デフォルトの名無しさんNGNG
マンドクセーから某氏が>>13の文章を正しく書き直してくれや。
それでいいじゃないの。
0586デフォルトの名無しさんNGNG
とりあえず●をウェブマネーで買える様にしてくれ
0587デフォルトの名無しさんNGNG
DHCの判決ってまだなの?
待ち遠しいね。
0588デフォルトの名無しさんNGNG
要するに、管理人がアフォということと、
一部の信者はキチってことの二言に尽きますな
法律を少しでも勉強した者、
もっと言えば人並みの常識を備えた人ならば、
今回の敗訴は目に見えていたもんね
ネットなら何書いてもいいなんて暴論が罷り通るほど、
社会は冷徹でもバカでもないってことですな
やっぱ権利は濫用しちゃいけませんな
0589デフォルトの名無しさんNGNG
>http://kaba.2ch.net/test/read.cgi/accuse/1016804065/
>281 名前:ひろゆ子 ◆HRUNYAXA 投稿日:02/04/15 17:35 ID:aDTehURl
>なおしたよー。

>282 名前:心得をよく読みましょう 投稿日:02/04/15 17:38 ID:ByieE7H/
>ヽ(`Д´)ノボッキアゲ

>283 名前:心得をよく読みましょう 投稿日:02/04/15 17:39 ID:HY6eiTCY
> 何を直したの??

>284 名前:ひろゆ子 ◆HRUNYAXA 投稿日:02/04/15 17:40 ID:aDTehURl
>おいらの性根。

>285 名前:心得をよく読みましょう 投稿日:02/04/15 17:41 ID:NuFrgojX
>ヽ( ´ー`)ノ

>286 名前:心得をよく読みましょう 投稿日:02/04/15 17:42 ID:EWICcjjW
>なおってません

とりあえずこれで、うまい某3点。
0590デフォルトの名無しさんNGNG
ひろゆきを殺害しよう、チャンスは裁判所入廷時。後頭部を撃ち抜こう
0591デフォルトの名無しさんNGNG
C++Builder4でDLL作成のプロジェクトでプロジェクトにユニットをいくつか追加して
再構築したら
モジュール %s が参照する外部シンボル '%s' が未解決のエラーが洪水のごとく出ました
真っ先に思いつくアフォなポイントってどこでしょうか?
0592デフォルトの名無しさんNGNG
>>393
お前空気嫁よ
0593デフォルトの名無しさんNGNG
>>722
あまりマンコマンコ言ってるとマンコから訴えられますよ。
0594デフォルトの名無しさんNGNG
削除依頼があったら削除しなさいっていってるだけだろw
0595デフォルトの名無しさんNGNG
がんがれー
0596デフォルトの名無しさんNGNG
その為のIPでしょう?
0597デフォルトの名無しさんNGNG
とある情報によると、美咲タンの個人HPがあるそうですね。
おしえてくらはい。
0598デフォルトの名無しさんNGNG
IP記録?
例えば、ライブドアや無料アカウントを作れるプロバイダー
からなら、IPを記録されても大丈夫じゃないかな?
まぁ犯罪予告するわけじゃないけど、ムカつく会社とかの
書き込みなら、無料プロバイダとか。全くダメになるとは限らないよ
アメリカの無料プロバイダから 2ch.netにアクセスしたってOKだし
(フュージョンコムなら1分15円 YAHOOBBなら3分7.5円
ダイヤルアップはできるかな〜?)
灰色の公衆電話からノートパソコンで電話線使ってやる方法も
あるしね。
0599デフォルトの名無しさんNGNG
ひろゆきツマンネー!!
0600デフォルトの名無しさんNGNG
最後の記念カキコ
0601デフォルトの名無しさんNGNG
こんにちは。
TEditのみにD&Dするにはどうすればいいのでしょうか?
よろしくお願いします。
0602デフォルトの名無しさんNGNG
IBXはSQLDialect3に対応していますか?
BCB5のEntなんですが。
0603デフォルトの名無しさんNGNG
>>601
TEditにOnDragDropイベントハンドラを書く。

例えばフォーム内のLabelからEditにD&Dするには

void __fastcall TForm1::Edit1DragOver(TObject *Sender, TObject *Source,
int X, int Y, TDragState State, bool &Accept)
{
Accept = Source->ClassNameIs("TLabel");
}

void __fastcall TForm1::Edit1DragDrop(TObject *Sender, TObject *Source,
int X, int Y)
{
if (Sender->ClassNameIs("TEdit") && Source->ClassNameIs("TLabel"))
{
TEdit *DestList = (TEdit *)Sender;
DestList->Text = ((TLabel *)Source)->Caption;
}
}
0604デフォルトの名無しさんNGNG
>>601
http://pc3.2ch.net/test/read.cgi/tech/969458279/142-
0605デフォルトの名無しさんNGNG
>>604
DAT落ち&倉庫に無い。
0606デフォルトの名無しさんNGNG
私も知りたいので、どの方法が一番良いのか教えてください…


142 名前:名無しさん@お腹いっぱい。[] 投稿日:2000/11/04(土) 06:38
エクスプローラからDrag&Dropでファイル名を渡したいのですが
以下の点でハマってます。

1.特定のコンポーネント(例:TListView)のみにD&Dを許可するには?

Form全体にD&Dする方法や、Drop時のマウスカーソル座標によって
D&D可能なコンポーネントを判別する方法は出来たのですが…
無関係のコンポーネント上で、マウスカーソルを
「Dropできますよ形状」に変化させたくないのです <誤操作の元だし…

145 名前:ぴか虫[] 投稿日:2000/11/05(日) 01:44
    ☆ぴかっ
 /)_/)  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (,’ー’) < コンポーネントを継承してメッセージをマップ! でできるかも?(試してない)>>142(1)☆
_( U U)  \____________________

147 名前:名無しさん@優しい人[sage] 投稿日:2000/11/05(日) 01:57
>>142
そのコンポーネントやらに対して、
::DragAcceptFiles(h, FALSE);
じゃだめなの?

0607つづきNGNG
149 名前:142[] 投稿日:2000/11/05(日) 04:11
レスありがとうございます。

>145
実はまだ、継承とか派生とかそのへん勉強中なので
よくわかってませんが、頑張ってみます。

>147
実はそれを呼ぶタイミング(?)がわかりませんで… (T▽T)
Formの時はOnCreateイベントで呼んでるんですが…
そのコンポーネントのコンストラクタ関数(?)とやらで
呼んでしまってもいいものなのでしょうか。
っていうか、実験してみたほうが早そうですね。やってみます。


150 名前:名無しさん@お腹いっぱい。[] 投稿日:2000/11/05(日) 07:14
>149
使いやすさと安全を期待するなら
TListViewを継承してドラッグの受けつけの禁止許可の
メソッドをつくってしまいましょう。
プロパティにしてしまえば設計時にも設定できて便利かも‥
0608デフォルトの名無しさんNGNG
C++Builder6を使っています。

今までexeファイルを右クリックするとコンテキストメニューに「デバッグ」という
項目があったのですが、今回全部入れ直してみたら、「デバッグ」と表示され
ず、デバッガを起動できません。

どうやればデバッガ起動ができるようになりますか?
0609デフォルトの名無しさんNGNG
>類似発言を連呼すればグレーゾーンに入りますね。
で、何でそれをお前が決めるんだ??
0610デフォルトの名無しさんNGNG
288 :ひろゆき ◆3SHRUNYAXA :03/01/08 17:56 ID:rLfxQ17l
>厨房板は本当に閉鎖なのか?
初耳。
0611デフォルトの名無しさんNGNG
>ID:A+3kp3mQ

判ったからネレw
0612デフォルトの名無しさんNGNG
>あめぞうより2ちゃんのほうが質が良かった時代
 そんな時代はありませんでしたが、何か?
0613デフォルトの名無しさんNGNG
( ´,_ゝ`)プッ
糞荒らしなんとか言ってみろや(藁
0614デフォルトの名無しさんNGNG
ループコピペ厨は年越しは一人ぼっちの筆記
0615デフォルトの名無しさんNGNG
>>608
C++Builderは標準ではデバッグをコンテキストメニューには追加しないぞ。
レジストリエディタで
HKEY_CLASSES_ROOT\exefile\shell\debug
というキーを作り、自分でコンテキストメニューを定義しろ。
0616デフォルトの名無しさんNGNG
>>615
ありがとうございます!!
HKEY_CLASSES_ROOT\exefile\shell\debugに
デバッグ(&P)
HKEY_CLASSES_ROOT\exefile\shell\debug\commandに
"c:\program files\borland\cbuilder6\bin\bcb.exe" "-d" "%1"
という文字列を入れてみました。
これで、EXEファイルを右クリックしたらデバッグ(P)と表示
されるようになりました。
今までC++Builderにデバッグというコンテキストメニューがあった
というのは私の思い違いで、Borland-C++5.0の時にはあったのですが、
それをC++Builderに乗り換えた時に自分で追加したのかもしれません。
0617デフォルトの名無しさんNGNG
さよなら2ch、、
0618デフォルトの名無しさんNGNG
同じような書き込みが削除されずにいたら、今後も同じような訴訟になると思うぞ。
0619デフォルトの名無しさんNGNG
次は数ヶ月後とか?
0620デフォルトの名無しさんNGNG
BCB6を使用しているのですが、
ボタンなどのインターフェースをWindowsXPっぽくすることはできるのでしょうか?
0621デフォルトの名無しさんNGNG
フリーウェア作ろうと思ったら
BCBのパーソナルとプロのアカデミックどっちがいい??
アカデミックはフリーウェアも駄目かな??
0622デフォルトの名無しさんNGNG
>>620
http://www.namakoworld.com/lowtech/download/xpctrls.htm
http://www.shagrouni.com/english/software/xpmenu.html
0623620NGNG
>>622
ありがとうございます。
manifestというのを作るのが簡単そうですね。
試してみます。

>>621
アカデミックは配布駄目みたいです。
ttp://homepage2.nifty.com/feather/nikki/200207.html#20020718
具体的には、
http://www.borland.co.jp/products/cbuilder6_license_jp.pdf
の4.5節にありました。
0624デフォルトの名無しさんNGNG
フォームが閉じるのを抑止したいのですが、どうやれば良いのでしょうか?

右上の閉じるボタンを無効にしてもAlt+F4で閉じてしまいます…
0625デフォルトの名無しさんNGNG
>>624
フォームのOnCloseQueryイベントで
CanCloseにfalse入れればいいのではないかと。
0626601NGNG
>>603
あっ、いえ、
エクスプローラからTEditのみにD&Dしたいのですが・・
フォームにはできたのですが、TEditのみというのができなくて
よろしくお願いします。
0627デフォルトの名無しさんNGNG
DragAcceptFilesにEditのハンドル渡せばできるよ。
0628601NGNG
>>627
お答えありがとうございます。
指定した、EditのみにD&Dするとカーソルが受け取る状態になったのですが、
実際にイベントが発生しません。
protected:
void __fastcall WMDropFiles( TWMDropFiles &Msg )
{
  char buff[MAX_PATH+2];
  ::DragQueryFile( (HDROP)Msg.Drop, 0, buff, MAX_PATH );
  Edit1->Text = buff;
  ::DragFinish( (HDROP)Msg.Drop );
}
BEGIN_MESSAGE_MAP
  MESSAGE_HANDLER( WM_DROPFILES, TWMDropFiles, WMDropFiles )
END_MESSAGE_MAP(TControl)

これがソースなのですが、どこがいけないのでしょうか?
よろしくお願いします。
0629TECHNGNG
>>628
それはどこに書いたの?
Editのハンドルを渡したら、それを書くのは TEditを継承したコンポに書く必要があるよ。
それをしたくないなら、 TEditをサブクラス(メッセージフックするとか)
0630デフォルトの名無しさんNGNG
>>629
TForm1のヘッダファイル内に書いたんじゃない?protected:とか
書いてあるし。
0631山崎渉NGNG
(^^)
0632デフォルトの名無しさんNGNG
Σ(゚Д゚)
0633デフォルトの名無しさんNGNG
>>628

>>606-607
0634債務不履行の名無しさんNGNG
>>628
なんかちょっと違う気がする・・・
0635デフォルトの名無しさんNGNG
前スレを踏襲しただけじゃないの?

と、マジレスしてみry
0636621NGNG
>>620
どもありがとうございました
結局VCになっちゃいました
0637601NGNG
>>629
えと>>630さんの言うとおり、Formのヘッダに書きました。
すみません、サブクラスを行う場合のコードを教えて下さい。
よろしくおねがいします。
0638デフォルトの名無しさんNGNG
>>637
サブクラス化を行ってTEditにWM_DROPFILESメッセージを受け取らせる方法です。

--unit1.h
private:// ユーザー宣言
HWND wnd;
TWndMethod OldEditWndProc;
void __fastcall NewEditWindowProc(TMessage& Msg);

--unit1.cpp
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{
OldEditWndProc = Edit1->WindowProc;
Edit1->WindowProc = NewEditWindowProc;
wnd = Edit1->Handle;
DragAcceptFiles(wnd, TRUE);
}
void __fastcall TForm1::NewEditWindowProc(TMessage& Msg)
{
char buff[MAX_PATH + 1];

if (Msg.Msg == WM_DROPFILES) {
DragQueryFile((HDROP)Msg.WParam, 0, buff, MAX_PATH);
Edit1->Text = buff;
DragFinish((HDROP)Msg.WParam);
}
OldEditWndProc(Msg);
}
0639デフォルトの名無しさんNGNG
コンパイル時の引数はどこで設定するのでしょうか?
% gcc hoge.c -DDEBUG
みたいなのをやりたいのですが。
0640デフォルトの名無しさんNGNG
>>638
だから、その技法だと TEdit のプロパティを実行時に代えるとクラッシュするんだってば。
0641デフォルトの名無しさんNGNG
>>639
プロジェクトの設定のディレクトリ/条件とかいうとこで設定してます
0642デフォルトの名無しさんNGNG
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{
    OldEditWndProc = Edit1->WindowProc;
    Edit1->WindowProc = NewEditWndProc;
    DragAcceptFiles(Edit1->Handle, TRUE);
}
void __fastcall TForm1::NewEditWndProc(TMessage& message)
{
    if (message.Msg == WM_DROPFILES)
    {
        char buffer[MAX_PATH];
        DragQueryFile((HDROP)message.WParam, 0, buffer, MAX_PATH);
        DragFinish((HDROP)message.WParam);
        Edit1->Text = buffer;
    }

    if (message.Msg == CM_RECREATEWND)
        DragAcceptFiles(Edit1->Handle, FALSE);

    OldEditWndProc(message);

    if (message.Msg == CM_RECREATEWND)
        DragAcceptFiles(Edit1->Handle, TRUE);
}
0643601NGNG
>>638、>>640、>>642さん、ありがとうございます。
さっそくやってみます。
0644601NGNG
さっそく>>642さんのコードで試してみました。
私の希望通りの動作ができたのですが、
Edit1->Textにファイル名が表示された瞬間にOSごと落ちてしまいます。
これは何が原因なのでしょうか?
よろしくおねがいします。
0645デフォルトの名無しさんNGNG
OldEditWndProc はどうしてる?
0646601NGNG
>>645
えと>>642さんのコードそのまんまでやっております。
0647デフォルトの名無しさんNGNG
という事は WM_DROPFILES の時はDefWindowProcが動いてしまうのでは?
0648601NGNG
>>647
DefWindowProcとは>>642で言うところのOldEditWndProcですよね?
それでしたら、動くと思いますが。WM_DROPFILES の時は
動かさない方がいいのでしょうか?
0649601NGNG
うおおおおおおおおおおおおおおおおおおおおおおおおおおお!!
>>647さん、ありがとうございます。
WM_DROPFILESのelseでOldEditWndProcを動かすようにすれば
正常に動作しました!ありがとうございました。
0650645NGNG
だから、 OldEditWndProc という変数はどこで定義したの?
0651601NGNG
>>650
定義は>>638さんのように、ヘッダのprivateに定義しました。
0652645NGNG
あそう。じゃごめん  >>649で解決だと思う
0653601NGNG
>>652
あああ、やっぱり>>649で解決でいかったですか!
ありがとうございます。
■ このスレッドは過去ログ倉庫に格納されています