C++Builder相談室 Part10

このエントリーをはてなブックマークに追加
>>702
Delphiのは、Javaのモデルに加えて、interfaceのメソッド(一部でも全部でも)を、
プロパティとして持ってるメンバに任せることができる。
メンバ(ポインタ)が指す先を取り替えたら
interfaceのディスパッチ先も変わるというプロトタイプベース言語もびっくりの柔軟仕様
>>700
お前みたいにsageで書く奴もいるけどね。
>>704
ワロティングwwwwwwwwwwwwwwwwwwwwwwwwwww
706デフォルトの名無しさん:04/08/17 10:32
詳しく書いて下さい。サンプルコード希望。>>703
知らないからいつもインターフェースのスーパークラスわざわざツクテタヨ!
>interfaceのディスパッチ先も変わるというプロトタイプベース言語もびっくりの柔軟仕様

これが本当ならクラスベースOnlyのC#はゴミってことかよ!
709デフォルトの名無しさん:04/08/17 10:50
InterBaseを使用したwindowsアプリを作成したんだけど、InterBaseをインストールしていない
PCで動作させるにはどうすればよいの?
>>709
Firebirdのembedded版を使う
C++BuilderでC++を始めたいと思っている者ですがお金があまりありません。
安くでC++Builderを入手できる方法があれば教えて頂けないでしょうか。
コードの質問でなくてすいませんが何卒よろしくお願いします。
ありがとうございます
英語苦手ですが読んでみます
714デフォルトの名無しさん:04/08/17 13:56
自作でAnsiStringの機能を持つクラスを作りたいのですが、
いまいちよくわかりません。
コンストラクタをcharやintで分けて作るというところまでは分かるのですが…
肝心のコンストラクタの中身をどうしていいかわからず(−−;
ちなみに、コンストラクタはAnsiStringと同じものをすべて、
オペレーターは = と + のみでよいという設定です。
2チャンネルの皆様ならば!と思い書き込みをさせていただきました。
何卒よろしくおねがいします。
>>714
っ[ Cの標準ライブラリ ]
716デフォルトの名無しさん:04/08/17 14:09
>>715
っ[ Cの標準ライブラリ ]??
それはどういうことでしょうか?
717デフォルトの名無しさん:04/08/17 15:02
質問です。
Pascalで記述したクラスのメンバ関数で、引数にHWND型を取る物を利用しようと思ったのですが、リンクの段階でエラーが発生してしまいます。
試行錯誤というか力技で、解決したように思うのですが、何か邪道な感じというか、もっとスマートな方法があるんじゃないかと考えています。
Pascalソースは、プロジェクトに追加>ユニットのコンパイルという手順を踏んで、生成された.hppファイルを、メインフォームcpp(という呼称でいいのかは不明です。TMainForm::FormCreateとかが自動生成される先)からIncludeし、メンバ関数を利用しようとしました。
インスタンスの生成や、呼び出し位置のスコープ等は間違ってないように思います。
エラー内容としては、関数(void *)の実体が定義されていない〜という物です。
BCBでのHWNDの型定義がvoid *で、本来のPascalソースからのオーバーロード関数として解釈されてんじゃないかと踏んで、本来のPascalソースで引数の型(HWND)をLogWord(windows.pasから)で定義しなおしたところ、コンパイルも動作も、確認できました。
動作してるならいいじゃねーかって感じですが、すごくFAQな感じがします。
いちおう検索してみたのですが、2chのBCBスレで「Pascalソースの関数内でAPIを呼んでる香具師は使えない」とかそんな感じの書き込みくらいしか、情報を得られませんでした。
よろしくお願いします。

最初、Delスレ書き込んだのですが、スレ違いくさかったので、こちらに移民してきました
なんですかその長いレスは
>>717
Delphi側のソースをTHandleにしとけば、BCB側を(unsigned int)キャストでとりあえずリンクできる。

>何か邪道な感じというか、もっとスマートな方法
普通はTFormなどのコンポーネント単位でやり取り。
ウィンドウハンドルを扱うのは邪道なんだろうね。
>>714
class NullpoString {
private:
  AnsiString Str;
public:
  __fastcall NullpoString(int Value){
    Str=AnsiString(Value);
  }
};

とか

class NullpoString:public AnsiString{
(略)
};

とか

typedef AnsiString NullpoString;

とか
721デフォルトの名無しさん:04/08/17 15:37
>>719
なるほど、THandleですか
ありがとうございます。そちらの方が、抽象度が高い感じがして、よさげな印象ですね
HWNDがそのまま通ってくれればなー..
ありがとうございました
Delphiのis演算子はC++Builderはどのようにかけばよいのでしょう?

if E is EThread then〜〜
>>722
dynamic_castで。
724本田:04/08/17 21:42
>VCLオブジェクト(TObjectから派生してるオブジェクト)をXMLでシリアライズ/デシリアライズ
したいんだけど、どうすればいいの?

ttp://www.simdesign.nl/xml.html?googleadwords
725デフォルトの名無しさん:04/08/17 23:07
Xerces
超おすすめ
726デフォルトの名無しさん:04/08/18 00:28
buffer = new Byte (length);
lengthバイトのバッファを確保してるつもり!
ヘッダ,ソースで230ファイル程度のプロジェクトだったため
見つけるのに丸い一日掛かった・・・
buffer = new Byte (length);

「どうせ警告を無視してるんだろ」と思ったが
もし、lengthがByte型なら警告出ないな。
>>726
一日が丸いのか!?
丸いに決まってるだろ!
それともお前は時動説を信じてるのか?
じどうせつ(←何故か変換できない)
そんなこと、どーでもいいじゃん、ね☆
次回作は?(´∀`)
ミッションインポッシブル3
〜はじめてのおつかい〜
734本田:04/08/18 13:46
>VCLオブジェクト(TObjectから派生してるオブジェクト)をXMLで
>シリアライズ/デシリアライズしたいんだけど、どうすればいいの?

ttp://codecentral.borland.com/codecentral/ccweb.exe/listing?id=18939
735デフォルトの名無しさん:04/08/18 18:00
C++Builder初心者です。
質問なのですが、C++Builderのエディタが頻繁に、数秒固まってしまいます。
サンプルコードでも、自分で書いたコードでも、違いは無いようなのですが、仕様なのでしょうか。
何か、回避策等あれば、教えてください。
よろしくお願いします。
支援機能を全部無効にする
737735:04/08/18 18:14
>>736
厨房なんで、インテレセンスは切れません。。
でもありがとうございます
738735:04/08/18 18:15
>メモ: 自動機能が使用不可能になっている場合でも,〔Ctrl〕+〔Space〕を押すといつでもコード補完を起動できます。
゜ ゜=3 ( o )
>>735
インクルードパスの中に接続が切れたネットワークパスとかが含まれてない?
740735:04/08/18 20:02
>>739
含まれては無いと思います。
CD挿入しっぱなしなので、読みにいってる可能性ありますね。
CD取り出して、様子見てみます。
ありがとうございます
>メモ: 自動機能が使用不可能になっている場合でも,〔Ctrl〕+〔Space〕を押すといつでもコード補完を起動できます。
゜ ゜=3 ( o )

ヘェー それじゃ俺切っておこう
CPU450MHz じゃきつい。そうでなくてもそれなり煩いみたいだけど
742デフォルトの名無しさん:04/08/19 06:50
自作ソフトについて、こんな事言われちゃったよ

> インターフェイスからBCコンポーネント臭さを一掃してほしい。
> コンポーネント使っている=低級
> というパブリックイメージがあるように思うから。

なんか悔しい〜(。><)
743デフォルトの名無しさん:04/08/19 07:17
パブリックイメージ( ´,_ゝ`)
テメエのイメージがパブリックだと思うなとでも言っとけ
自分はVC++6やOffice2000なんかのソフトが立ち上がると、
うわ、MFC系の凡庸モッサリMDI嫌い、サイズ固定ダイアログワールドダサい、
長々ウィザードしんどい、と拒否反応なんだが。
746デフォルトの名無しさん:04/08/19 10:54
VC使って喜んでる奴は自己満足房なんだろうな
747デフォルトの名無しさん:04/08/19 11:38
どこか初心者でも分かるようなC++Builderのサイトない?
とくにクラス系について書いてあるサイト希望
>>747
コンポーネント集の本買え
749デフォルトの名無しさん:04/08/19 12:02
>>748
サイト教えれつってんだって史ねよクズが
はははは、こやつめ
751デフォルトの名無しさん:04/08/19 12:05
>>734
落とせねーじゃんよ、史ねよクズが
>>751
   ∧_∧    / ̄ ̄ ̄ ̄ ̄
    (ω・ )ゝ < なんだって?
.  ノ/  /     \_____
  ノ ̄ゝ
753デフォルトの名無しさん:04/08/19 12:21
IQが80以下だと落とせないらしいよ。
754デフォルトの名無しさん:04/08/19 12:26
IQが20程度しかないけど、やっぱ無理?
LAME.dllを使ってmp3エンコできる簡単なツール作りたいんですが資料が見つかりません。
なにかいいものありませんか?
gogo.dllイクナイ
758デフォルトの名無しさん:04/08/19 12:48
>>754
その質問が>>753のあとに出るということは、
20が80より多いか少ないかもわからないということですよね?

当然無理です、そんなんじゃ。
759デフォルトの名無しさん:04/08/19 13:37
おまいらだからVC使ってる厨房に馬鹿にされんだよ
760デフォルトの名無しさん:04/08/19 14:18
tu-ka、VCからみたらBCBなんて糞以下だよね
761デフォルトの名無しさん:04/08/19 15:36
ほら馬鹿なVC信者が釣れただろ?
>>716
「っ」を、手に見立てて、Cの標準ライブラリをどうぞ、という意味だと思われます
要するにstd::string見ろと
763デフォルトの名無しさん:04/08/19 16:12
( ´∀`)っI
764735:04/08/19 16:22
>>735
IDEが固まる〜解決報告です。自動支援機能を全OFFにしたところ、以前のように固まることは無くなりました。
支援機能自体は、キーを明示的に打つことで、自動支援がOFFでも利用できるようです。
キーのバインドは、
>代入文を入力し〔Ctrl〕+〔Space〕を押す。変数に対して有効な引数のリストが表示される。コードに入力する引数を選択する
>〔Shift〕+〔Ctrl〕+〔Space〕を押すといつでも宣言表示を起動できます。
ありがとうございました。

>>741
煩わしいということは、なくなりました。
Celeron1.4なんで、比較になるかは分かりませんが、、、
コンパイルのほうも、BCBMLでプリコンパイル一連の投稿を見て、それなりの速度になったと思います
教えてください。
JavaでいうClass.forname(String classname)みたいなことは
C++でできますか?

String型の配列にクラス名を入れて、for文をまわして
配列に格納されているクラス名のクラスのインスタンスを
作成したいのですが、どうすればいいかわかりません。
できません。
767765:04/08/19 17:17
そうですかーありがとうございます。

fooにクラス名を入れて
hoge = new foo()
ってやりたかったんですけどね

なにか代替案があればアドバイスください。
PrintDialogを使わずに印刷する方法を教えて下さい。
>>767
hoge = new foo(class_name);
とか、やりたいのかい・・・
770本田:04/08/20 00:01
>PrintDialogを使わずに印刷する方法を教えて下さい。

Delphi用だけど参考になるかな?
http://www2.big.or.jp/~osamu/Delphi/Tips/key.cgi?key=31
DBGrid のバグ(?)報告するんでちょっと聞いてくれよ。

1.グリッドに表示されている一番下のアイテムをクリック。
2.カーソルキーの↓を押す。  ---> [*]と表示される。
3. 1.で選択されてたアイテムを再度クリック。
---> するとクリックしたアイテムの1個うえのアイテムが選択される。

レコードの挿入をキャンセルした際、座標計算が狂うんだと
思うんですけど、解決策知ってるひと居たら教えてくれよ♥

環境は、BCB6 Pro SP4、WINXP Pro SP1 です。
>>771
仕様です。
773デフォルトの名無しさん:04/08/20 09:34
TLabel* をstd::vectorに入れて
std::sortできないんだけ、どうすればいいのかしらん?
sort()に、比較関数か比較関数オブジェクトを渡す。
こんな感じ(試してないけど)

struct compare {
 bool operator()(const TLabel *lhs, const TLabel *rhs) const {
  return lhs->Caption < rhs->Caption;
 }
};

std::sort(v.begin(), v.end(), compare);
BCB6で、GDライブラリを動的リンクして使おうと思ったんですが、

#include "gd.h"
#include <stdio.h>

typedef gdImagePtr __stdcall (*Proc1)(int,int);


{
HINSTANCE handleDLL = LoadLibrary("bgd.dll");
Proc1 gdImageCreate = (Proc1)GetProcAddress(handleDLL,"gdImageCreate");


gdImagePtr im;
FILE *jpegout;
int black white;

im = gdImageCreate(64, 64);
black = gdImageColorAllocate(im, 0, 0, 0);
white = gdImageColorAllocate(im, 255, 255, 255);
gdImageLine(im, 0, 0, 63, 63, white);
jpegout = fopen("test.jpg", "wb");
gdImageJpeg(im, jpegout, -1);
fclose(jpegout);
gdImageDestroy(im);

FreeLibrary( handleDLL );
}

実行すると、アドレス0〜でアドレス0〜に対する読み込み違反が起きました、と出て実行できません。
GDライブラリを使ってる人はどうやって実装したんでしょうか。教えて下さい。
776デフォルトの名無しさん:04/08/20 15:52
おまいら早くBCB9を出してください
っ[BCB9]
778デフォルトの名無しさん:04/08/20 16:59
そんなんじゃ満足しません
っ[BCB10]
つ[BCBX]
>>774
LoadLibraryとGetProcAddreessの戻り値ちゃんとチェックしてるか?
>>775だった・・
783本田:04/08/20 22:30
>DBGrid のバグ(?)報告するんでちょっと聞いてくれよ。
>
>レコードの挿入をキャンセルした際、座標計算が狂うんだと
>思うんですけど、解決策知ってるひと居たら教えてくれよ♥
>
>環境は、BCB6 Pro SP4、WINXP Pro SP1 です。

ラッキーなことにVCLのソースコードをお持ちなので、
ご自分でパッチを作って、
ボーランドや必要としている人に送ることができます。

またはDrawGridコンポーネントを継承して、
貴方好みのGridコンポーネントを創ることができます。
>>776
バージョンいくつでも良いからバグのないBCB出せや!
せめてBCB5SP1から移行可能なBCB出せ!
質問があるのですが。トランプゲーム(ブラックジャックやポーカー)レベルの作品を作るのに適した
参考書はありますでしょうか?
やはり「C++Builder 6コンポーネント活用ガイド&実践プログラミング Vol.2 実践テクニック編」
を参考書に買うのがベストですか?
>>785
ベストです。
ゲーム限定ならこんなのもある。古本屋で見つけたらどうぞ。
『C++BuilderでWindowsゲームを作ろう!』
788765:04/08/20 23:44
>>769
というか、fooにはクラス名を表す文字列を入れたいのですよ。
769さん風に書くとhoge=new class_name()という感じです。
789785:04/08/20 23:48
>>786
>>787
返答ありがとうございます。取り合えず、実践テクニック編を買ってみます。

大学の講義で、仕方なくやらなきゃならないんですが、本でもみながら頑張る事にします。
また、何かあったらここに相談させて貰いますので、よろしくお願いします。
790デフォルトの名無しさん:04/08/21 00:27
>>784
自分でパッチ作るなり、導出して別のクラスつくるなりすれば
問題なくね?
791本田:04/08/21 00:40
>自作ソフトについて、こんな事言われちゃったよ
>
>> インターフェイスからBCコンポーネント臭さを一掃してほしい。
>> コンポーネント使っている=低級
>> というパブリックイメージがあるように思うから。
>
>なんか悔しい〜(。><)

自作コンポーネントでアプリケーションを構築すればいいのでは?
BCBはコンポーネントを使うのは天国で、創るのは地獄だから。
792デフォルトの名無しさん:04/08/21 00:45
そう?
コンポーネント作るの簡単じゃん
なんかパッケージにインスコとかしなきゃなんなくて面倒じゃん
794デフォルトの名無しさん:04/08/21 04:54
別にパッケージにインスコしなければいけないこともないんですが・・・
>>775

gdImageJpeg関数にFILE*渡してるけどこのDLLってBuilder用なの?
以前ogg関係のスレでFILE構造体に起因する問題の書き込み見た記憶が
たしかBuilderとVCではFILE構造体に互換性がないんじゃなかったかな

違ったらスマソ
BCB6personal初心者ユーザーです。
RichEdit形式のテキストをCanvasオブジェクトの任意の位置に貼り付ける方法
を教えていただきたけませんでしょうか?

やりたいことは、プリンターにbitmap形式の画像とRichEdit形式で作成された
文章を同時に印刷したいのです(画像上半分で、RichEdit形式のキャプションが
つく感じ)。

よろしくおねがいします。
797デフォルトの名無しさん:04/08/21 11:42
RichEdit形式のテキストってなに?
>>797
金色の文字も表現できるもの。
Canvas->FontでRichEditと同じになるようにテキストの属性を設定して
Canvas->TextOutするというのは?
800775:04/08/21 13:29
>>781
GetProcAddreessの戻り値がNULLでしたorz
その前のLoadLibraryの方はNULLではなかったので、ここまではうまく行っているようです
「bgd.dllは見つかったけど、関数gdImageCreateが見つからない」ってことでいいんですよね?

……どうやったらちゃんと見つかるんだ(泣)

>>795
すいません。FILE構造体以前の問題でした。
このDLLはbuilder用ではないです。これです。→http://www.boutell.com/gd/
最近GIFのライセンスが切れたとかでGIFを使えるようになったので、GIFをアプリで作成したいなと。
ここのWindows DLL .zip (NOT CURRENTLY FOR PHP)をDLして、その中のbgd.dllを使いました。

どなたか、これ使ってことある人、います?
>>800
実際には関数名に装飾付いてるとか。

ちなみにWin32APIの場合はソース上でMessageBox呼び出しても実際に呼ばれるのはMessageBoxAだったりする。
(ANSIのMessageBoxAとUnicodeのMessageBoxWの2種類があるため)
802801:04/08/21 13:41
とりあえずbgd.dllの持ってるエクスポート関数をDependencyWalkerあたりで見てみると吉
803801:04/08/21 14:28
>>802
DependencyWalkerはVCに付属するツールだろうが、ばかかおめー
このスレはC++Builderじゃんよ。
スレタイ嫁
804801:04/08/21 14:33
>>803
単体でも配布されてるしPlatformSDKにも入ってるわけですが。
自作自演なスレッディングはここですか?
806795:04/08/21 16:12
>>800
exescopeでDLLのぞいてみた

「gdImageCreate@8」

・・・見事に修飾されてるな
defファイルくらい作ればいいのに


ソースも公開されてるようだしそっちを組み込んだほうが正解か?
807775:04/08/21 17:21
ありがとうございました。
そーか、修飾されてるから読めなかったんですね。

>>801-805
ワロタ。
フォーム上にWebページへのリンクを貼り付けるのはどうやりますか?
809デフォルトの名無しさん:04/08/21 18:20
できません
URLを表示するラベルを貼る
CursorをcrHandPointにする
Font->StyleをfsUnderlineにする
OnClickでShellExecuteにURLを渡す
>>810
できました、ありがとう。
次回作は?
813デフォルトの名無しさん:04/08/21 20:44
新作を期待してる人ってワレザ?
仕事で使用してると、開発環境がヴァージョンアップするのは
非常に胡散臭いですけどね。
ワレザにきまってんじゃん
815本田:04/08/22 00:12
>やりたいことは、プリンターにbitmap形式の画像とRichEdit形式で作成された文章を同時に印刷したいのです
>(画像上半分で、RichEdit形式のキャプションがつく感じ)。

こんなコンポーネントを使えばできるかも。
http://www.trichview.com/?FromGoogleAd
816デフォルトの名無しさん:04/08/22 03:53
MLでも閑古鳥、2chで閑古鳥

終わってるなBCB
817デフォルトの名無しさん:04/08/22 06:53
*.~cppや*.~h
が勝手にできますよね?
止めさせることは出来ないのですか?

ソースファイルが倍になるからウザイんですけど・・・
メニューの「オプション」とか「エディタ」とかの項目を眺めてれば
ここで回答を待つより早く解決法が得られるような気がするけど
819775:04/08/22 14:09
もう一度すいません。
関数名が修飾されていた件については、DependencyWalkerを使って
全て割り出すことができました。

ただ、実行すると、
gdImageJpeg(im, jpegout, -1);
のところで「○○を参照しているうんぬん」のエラーになります。
795さんの言う通り、FILE構造体の問題のようなのですが、なにかいい解決方法はないでしょうか?
(ogg関係のスレについては、ぐぐったら出てきました。対応策までは書いていなかったようです)
GDでオープンソースじゃなかったっけ?
DLLからコンパイルし直したら?
TCheckListBoxってTCustomListBoxから派生してるのにSetItemData() GetItemData()を使えないのね。
なんでだろ
822デフォルトの名無しさん:04/08/22 18:26
>>820
ありがとう、コンパイルしなして無事
GD使えるようになりました。
823775:04/08/22 21:23
誰だぁぁぁぁぁぁぁぁ!!!!!?????

>>820
BCB用にコンパイルしなおす、ってことでしょうか?
824デフォルトの名無しさん:04/08/22 21:26
もういい加減自作自演止めろよ
うぜーんだよ
825デフォルトの名無しさん:04/08/22 22:39
外注が提出してきたソースに

void (*((**Comp)[10]))(int*,int*,int);

なんて表現があるのですが、なんですか、これ?
うはwwwwwwwwwwwwwwwwwwおkwwwwwwwwwwwwwwwwwww
関数テーブルへのポインタへのポインタ・・・かな?

なにしてるプログラムなの?それ。

Comp という名前からして、Compute か Compare だと思うので、
比較関数か、計算用の関数を切り替えて使うって感じだとは
思うけど。

ってか、それ BCB のソースなの?
C++ だったら、そういう書き方しないような気がするんだけど。
(C++ でも C としてしか使えないプログラマは一杯いるけどさ)
828デフォルトの名無しさん:04/08/22 23:22
void (*[10])(int *,int *,int)へのポインタへのポインタだから827で正解だな。
.exe ファイルを ボタン(クリック)一発で
実行できるようにしたいのですが、何か方法ありますか?
エクスプローラのメニューからツール→フォルダオプション→全般→クリック方法

ここで質問するということは、こういう事では無いかw
マジレスするとCreateProcessとかShellExecuteとかを聞きたいのではないかと。
>>831
解決できました。ありがとうございました。
833デフォルトの名無しさん:04/08/23 21:29
Vol.4 インターネット編(1)
http://www.amazon.co.jp/exec/obidos/ASIN/4877831061
Vol.5 インターネット編2
http://www.amazon.co.jp/exec/obidos/ASIN/4877831088

上記の本の内容は、C++BuilderのPersonal+Indyで実行できるのでしょうか?
それともProfessionalでないと無理でしょうか?
>>833
レビュー読む限りBCB proから標準でついてくるTNMFTPやらTNMHTTPとかの解説らしいので
Indyはまた別に勉強しなくちゃいけないみたい。
835833:04/08/23 21:55
>>834
APIやI、ndy以外の他のコンポーネントがメインみたいですね。
という事は、Personalでもコンポーネント以外のところは実行できるかも。
>>835
APIはパーソナルでも大丈夫でしょう、たぶん。
おそらくProfessionalについてくるコンポーネントを中心にソフトウェアを構築していくような解説みたいですので
パーソナルじゃちょっと辛いかな。
BCBの標準コンポーネントに慣れてるのなら最初からIndyを独学でいけそうな気もしないでもないですが。
Printer->Canvasでピクセル単位で四角とか丸とか描画した場合、
プリンタの機種によって大きさが変わったりしますか?
PCのシリアルナンバーを取得するのはどうやりますか?
本体底面か背面に書いてあることがほとんどなのでそこを見る。

>>839
簡潔で的確。感動した。
841デフォルトの名無しさん:04/08/25 13:34
C++ Builder からの mdb利用について教えて下さい

Database Explorer で、MSACCESSで作成して
DATABASE NAMEに、フルパスで mdb ファイルを設定して
開こうとすると
「BDEのエラー:8458 IDAPIサービスライブラリをロードできません
 ファイル:MSJT3032.DLL」
というのが発生します

また、BDEアドミニストレータで
DLL32 を IDDAO32.DLL から IDDA3532.DLL に変更して
同じことをやってみると
「BDEのエラー:13059 一般SQLエラーです -2147221164」が発生してやはり駄目です

何をどうすればいいのかわかりません
ご教示よろしくお願いします
842デフォルトの名無しさん:04/08/25 16:36
>>841
質問です。
なぜ、そんなマジな質問を2chでするのですか?
まともな回答が欲しければMLのほうがいいと思うのですが・・・
MLだとメールアドレスとか名前晒さなければならないから嫌なのです。
ネチネチしたのもいるし。
2chだと質問する方にネチネチしたのが多いけどな。
845841:04/08/25 22:57
>>842
迷ったんです。。。MLにマルチポストしていいっすか?(;_;)

ちなみに
IDDAO32.DLLはAccess97
IDDA3552.DLLはAccess2000
みたいですね

んで、2000なんでもDAO3.5が必要とかいう
英語情報があったりして。。。
ネイティブアクセスじゃないんすか?>Borlandさん

DAO3.5の配布条件とか利用条件とかダウンロード先とか
まだまだ調べる事がありそうです
846デフォルトの名無しさん:04/08/25 23:08
>>845
そのほうがいいんじゃない?
ここは煽るのだけはいっちょうまえで、低レベルな人たちばっかですから!

ざんねん!
847デフォルトの名無しさん:04/08/25 23:54
*.tdsファイルってなに?
さくせいされないような設定って出来るの?
ヘルプによると、デバッグ情報ファイル
DLLにして出力するにはどうすれば良いですか?
ライブラリのリンクについて質問させてください。

設計時・実行時両方使用可能なパッケージを使う場合、
プロジェクトオプションで、「実行時パッケージを使う」をチェックして、
そのパッケージ名を書いているにも拘わらず、そのパッケージが
静的にリンクされてしまいます。

BPRファイルのLIBRARIESやSPARELIBSにそのライブラリの
記述があるので、外部のエディタで消去してみたのですが、
プロジェクトを再構築すると記述が復活してしまい、
やっぱり静的にライブラリをリンクしてしまうのですが、
どういう原因が考えられるでしょうか?

なお、当該パッケージについては、テスト用の小さなプロジェクトでは、
ちゃんとプロジェクトオプションの実行時パッケージの設定で
静的にリンクすることも動的にリンクすることも可能である
ことを確認しています。

長文で申し訳ありませんが、よろしくお願いします。
>>849
えっと新規作成からDLL?
852デフォルトの名無しさん:04/08/26 23:30
メインフォームのコンストラクタでTFrameをnewしているのですが、メインフォームが
完全に表示されるまえに(FormCreateが終わる前に)、Frameの描画処理をするとおちてしまうようです。
formcreateがおわってから、2秒間ぐらいFrameに処理をさせるといった方法にしましたが、
ほかによい方法はないでしょうか?
>>852
OnIdleでフラグ立てるとか
854本田:04/08/27 00:24
>Printer->Canvasでピクセル単位で四角とか丸とか描画した場合、
>プリンタの機種によって大きさが変わったりしますか?

プリンタの解像度が違えば変化するはず。

855本田:04/08/27 03:36
>ネイティブアクセスじゃないんすか?>Borlandさん

そんなことは無い。
http://www.borland.co.jp/cppbuilder/cb5/cb5boxes.html

>DAO3.5の配布条件とか利用条件とかダウンロード先とか
>まだまだ調べる事がありそうです

VBで創ったソフトウエアはDAOと供に配布できるみたい。
856本田:04/08/27 04:41
-----------------------------------------
>C++ Builder からの mdb利用について教えて下さい

Delphi用だけど理解できるかな?
98番。
http://pc3.2ch.net/tech/kako/1028/10284/1028436692.html
857デフォルトの名無しさん:04/08/27 13:16
>>844
お前がな
二日も経ってからわざわざ反応するような代物じゃないよなぁ。
心当たりのある人間以外にとっては。
859デフォルトの名無しさん:04/08/27 14:26
C++BuilderでNetscapeの機能を使ったブラウザーの作り方の
参考ホームページをお願いします。
860デフォルトの名無しさん:04/08/27 17:42
もまいら早くBCB9を!!
っ[BCB9]
ゃったぁ、BCBQげっとしたぁ
863本田:04/08/27 21:59
>C++BuilderでNetscapeの機能を使ったブラウザーの作り方の
>参考ホームページをお願いします。

これもDelphi用の話題だけど参考になるかな?
http://www.iol.ie/~locka/mozilla/control.htm
質問者の言いたいことが良くわからないな
Geckoのレンダリングをしたいのか、メニュー等のGUIを使いたいのか
>>864
両方に回答してあげてください。
お前に回答ができれば、の話ですが。
866デフォルトの名無しさん:04/08/28 01:43
XML使いてー
868本田:04/08/28 06:25
>XML使いてー

http://www.borland.co.jp/cppbuilder/cb6/features.html
BCB6PRO,BCB6ENTにアップグレードするか。

これはMSXMLをつかっているそうなので、自分でコンポーネントを作るか。
http://msdn.microsoft.com/xml/

>C++Builder で XML パーサ Xerces-C++ を使う
http://www.kcat.zaq.ne.jp/takao/documents/bcb/10_xerces-c.html

約2年前のlibxml2はBCB5でコンパイルできました。
現在のものはスクリプトが替わって失敗しました。
http://www.xmlsoft.org/
>>868
libxml2はbcb6でビルドできるよ。(ただし、要iconvのWin32バイナリ)

1. ttp://www.kaoriya.net/からiconvのWin32バイナリをダウン&展開。
2. iconvを展開したフォルダでコマンドプロンプトを開いて
  "implib -a iconvomf.lib iconv.dll"を実行。
3. libxmlのソースを展開したフォルダの下のwin32でコマンドプロンプトを開いて
  "cscript configure.js compiler=bcb include=$iconv lib=$iconv"を実行。
  $iconvはiconvを展開したフォルダ。
4. make

ビルドが面倒ならばttp://www.zlatkovic.com/libxml.en.htmlから
libxml2のWin32のバイナリをダウンしてimplib使ってインポートライブラリを作ってもOK。
仮想リストビューを使って画像のサムネイルを表示したい時、
OnDataでImageListを生成し直すしか無いのですか?
全部のサムネイル画像をImageListに入れると、画像データが増えてくると
なぜか表示できなくなってしまうみたいですし。
FAQっぽい気がしますが、質問です。
TScrollBoxのスクロールバーで、TMemoのスクロールバーみたく
バーのドラッグと同期してスクロールボックス内もスクロールさせる方法を教えてください。
うへ、Trackingをtrueにするだけだった・・・
20個あるチェックボックスのうち9個以上がtrueになっていたら
8個になるようにチェックをいくつかはずしたいのですが、

X=trueになっているCheckBoxの数

if(X>8){
 for(int i=0;i<20;i++){
   TCheckBox *chk=(TCheckBox*)CheckList->Items[i];
   if(chk->Checked==true){
    chk->Checked=false;
    X--;
   }
   if(X<=8)break;
 }
}

の式だと全部チェックがはずれてしまいます。なんでですか?
チェックボックスのCheckedを変更すると、OnClickイベントが発生するわけだけど、
それと関係あるかな?
ブレークポイントとか設定してX<=8のときにちゃんとbreakされてるのかチェックしたのか?
>>874
ああ、この場合もイベントが発生しちゃうんですか!
そりゃ気付かなかった・・・
というわけで原因がわかりました。どうもです。
878デフォルトの名無しさん:04/08/29 13:44
>>863 :本田さん、ありがとう。
項目を読んだだけですが広範囲に渡っていてよさげです。
特に「Porting from IE to Mozilla」に興味があります。
IE用はネットにいくらでもあるのでそれを試しにMozillaに変更して
理解しようと思います。
879デフォルトの名無しさん:04/08/29 14:00
>>864さん、やりたいのは
- 2chリーダーみたいなを作りたい
- Javascriptの処理をしたい
です。
880878 :04/08/29 17:04
本田さんのURLからDelphy用ですが
http://www.paranoia.clara.net/articles/taming_the_lizard_with_delphi.html
を見つけました。
MFCは全く知らないので、と言ってもDelphyもよく知りませんがBCBに移植できる
かと思ってDelphy用の手順でがんばってみます。
まぁDelphiだがな。
BCBのプリコパイル済みヘッダについて、うまくまとまっているページを知りませんか?
BCBMLの〜関連はいちおう読んだと思うのですが、普遍的に正しい使い方というか...
初心者なもんで、正しく使えてるのか、使えてないのか、それが心配です。
情報ありましたら、よろしくお願いします。
>>882
http://www.bcbdev.com/articles/pch.htm
英語だけどうまくまとまってます。
884882:04/08/30 11:51
>>883
ありがとうございます。
>Why C++ Compilers are Slow
あぁ・・・ 不思議と、魅力的な響きです・・・
885デフォルトの名無しさん:04/08/30 13:15
http://clootie.narod.ru/index.html

DirectX 9.0 SDK Summer 2004対応キタ━━━━━━(゚∀゚)━━━━━━ !!
886デフォルトの名無しさん:04/08/30 17:49
下記のコードでTPanelの移動はできたのですが、これをTShapeでやると移動してくれません。
void __fastcall TForm1::Panel1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y)
{
  ReleaseCapture();
  ((TPanel *)Sender)->Perform( WM_SYSCOMMAND, 0xF012, 0 );
}
TShapeをマウスでD&Dするにはどうしたらいいですか?
>>886
↓こういうクラスを作って、
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=209&fi=no

↓みたいにShapeのOnStartDragでそのインスタンスを渡してやれば、そんな感じのことは出来るよ
void __fastcall TForm1::Shape1StartDrag(TObject *Sender, TDragObject *&DragObject)
{
DragObject = new TMyDragObject(Shape1);
}
メッセージを無視するにはどうしたら良いでしょう?

フォームの WindowProc に下記のような関数を

void __fastcall TForm1::MyWndProc(Messages::TMessage & Message)
{
if(Message.Msg == WM_WINDOWPOSCHANGING){
// なにもしない
}else{
WndProc(Message);
}
}

書いてみたのですが、フォームは移動してしまいます。
特定のメッセージを無視する方法で、SetWindowsHookEx を
使わない方法がありましたら、教えてください。



>>888
それは単に、WM_WINDOWPOSCHANGINGを無視したところで、
ウィンドウの移動を抑制できるわけじゃないって事でそ。無視は出来てると思うよ。

移動を禁止するとしたらこうかな
if (m.Msg == WM_WINDOWPOSCHANGING) {
  ((WINDOWPOS*)m.LParam)->flags |= SWP_NOMOVE;
} else〜
>>887
ありがとうございます。さっそくやってみます。
891デフォルトの名無しさん:04/08/31 22:45
マウスの左ボタンがクリックされたことWM_のウィンドウメッセージからではなく
知りたいのですが、可能でしょうか?
オブジェクトインスペクタのイベントタブになんかあんだろ
893デフォルトの名無しさん:04/09/01 01:20
だからウィンドウメッセージからじゃなくて・・・
本当頭悪いんだから・・・
イベントではなくて、物理的な状態を知りたいんだね?
あったかもしれないけど、頭が悪いから忘れちゃったよ!
>>893
可能に決まってるだろ
でなきゃそのウィンドウメッセージが発生するわきゃねぇ
少しはその悪い頭デバッグしてからこいや
896デフォルトの名無しさん:04/09/01 01:33
だったら、どうやんだよ
答えれねーんじゃねーのw
897デフォルトの名無しさん:04/09/01 01:45
やっぱり、答えらんねーかow
答えられないよ。ばいばい。
899デフォルトの名無しさん:04/09/01 01:50
やっぱりね、2は屑ばっかだねMLで聞くよ
もういないかな?
>>899
MLで聞くって、あんた、ここでさんざん厨ぶり
さらしておいて、今さらどのツラ下げてMLに
顔出すのよ?

同じ人間だと分からないような質問にしとけよw
まぁまぁ、礼儀も知らないリアル厨房は答えもらえなくて当然ですよ。
いいじゃん。このスレの人間はわからないから答えられない、ってことでさ。
さ、次の質門どーぞ。
>>893
お前の説明が足りないんだけどな・・・。

○○○○使って△△△△呼ぶ方法があるけど。

お前態度悪いから教えてやらない。

態度改めるなら話は別ですが。

>>904
もう、話をぶり返すなよ。
ぶり返すというか、蒸し返すだな。
907905:04/09/01 11:46
>>906
ごめん。日本語が不自由だった。
ぶり返すって風邪の話ですか?(w
909908:04/09/01 11:47
ごめん、死体に鞭打つようなマネをしてしまった。
む、むしろ私にムチをおねがいします
>>910
お前は放置プレイだ。
912けろたん:04/09/01 12:53
ン、じょ、女王さま・・・ハァハァ
913デフォルトの名無しさん:04/09/01 13:29
>>912
放置されている恥ずかしい姿をみんなに見てもらうんだよ!age
classの定義で、public:指定子より前に、private:指定子を盛ってきたらダメですか?
class a
{
private:
int b;
public
a(){};
};
とか。
>>914
平気だけど、そのコードはpublicに : がついていないよ。
>>914
細かいことだけど、a(){}の後のセミコロン要らないよ。
>>914
privateとかprotectedとかpublicはclass宣言内で何回使っても許される。
もちろん順番は関係ない。
>>915
きっと public 型を返す a という関数なんだよ。
とか言ってみる。(コンパイルエラーになりますが)

ついでに、a(){}; の ; もいらない。
まぁ、あってもいいんだが。
919918:04/09/01 13:52
かぶった記念に age
も、もうイってもいいですか?ハァハァ
921914:04/09/01 15:15
>>915-918
問題無しということで、ありがとうございました。
実は、独習用にアプリを組んでいるのですが、終了時にEAccessViolation吐いて困っていました。
IDEでは、listのclearメソッドでエラーが出ているようなのですが・・・
原因不明でした。
力技というか、いろいろいじっている間に、
1.hogeにコンストラクタがあるとヤバイ
2.hogeのコンストラクタの本体は、ヘッダに記述すればOK
3.private部を消すと平気
4.private部がpublic部より先に来てるとヤバイ
という感じで、対処療法的に修正していきました。
....で、public等の位置は関係ないとのことで、再度、privateを前に持ってきて見ると、今度は問題無く.... orz
同じコードから完全に同じバイナリが生成されるかはわかりませんが、エラーが出たり出なかったりというのは、致命的な気がします。
コンパイル時、Boostライブラリのコンパイルでこける時もあります。
BCBは、こういう事がよくあるのでしょうか。
また、FAQ的な何かがあるのでしょうか。

よろしくお願いします。
>>921
BCBのバグかもしれないけど、90%の確率で君のコードがおかしいんだと思うよ。
boostについては、boostのページに対応表があるから見てみたらどうでしょうか?
923914:04/09/01 15:31
>>922
漏れもそう思います。boostの方は、boostの本で、件のライブラリ(ptime周り)のBCBへの対応を確認しました。
うーん・・・・
pascalユニットを使っているからでしょうか.......
>>891
DirectInput使えば可能なことくらい簡単に思いつくような気がするが・・・
Win32APIがいいならGetAsyncKeyState( VK_LBUTTON )使え

夏休みも終わったな(´−`)
>>921
BCB6でboostを使う場合はもっと簡単なプログラムを書いてコケないかどうか
確かめておいた方がいいよ。相当boostへの準拠度が低いから。

boost::lambdaとかboost::spirit、boost::phytonなどは絶望的だから。boostの
本ってあれだろ?秀○の。ちゃんと公式のドキュメント読んだ方がいいよ。
↓こことか。
ttp://www.meta-comm.com/engineering/boost-regression/developer/summary.html
926914:04/09/01 17:32
>>925
そうなんですか・・・
VC6よりは、準拠してるって話を聞いていたので、安心していました。
てっか、lambda使えないんですか・・・orz
使いこなせるかは別として、おもしろいなーと思ってただけに、残念で(r
>>あれ
そうです、禿和のです。
>>924
話をブリ返すなYO!!
>>924
空気読め!
いるんだよね〜、空気読めないヤツ。
まぁ、学校でも職場でも嫌われて、
最後は孤独の中、自殺ってことに
なるんだろうね。
930本田:04/09/02 05:34
>コンパイル時、Boostライブラリのコンパイルでこける時もあります。
>BCBは、こういう事がよくあるのでしょうか。
>また、FAQ的な何かがあるのでしょうか。

http://www.boost.org/more/getting_started.html#Tools
http://www.boost.org/tools/build/v1/borland-tools.html
931デフォルトの名無しさん:04/09/02 13:08
hogeクラスをアレする方法を教えろ
932924:04/09/02 13:14
>>928-929
まだ夏は終わっていなかったのか(´−`)
うん。お前みたいのはまだ消えそうにない。
うん。お前みたいなのもまだ消えそうにない。
>>933-934
うん。お前らみたいなのもまだ消えそうにない。
大学は今月いっぱい夏休みなのか?
それとも年中休みの人か?
と、こういう粘着は夏に限ったことではないと。
937本田:04/09/02 20:47
>ilink32 Version 5.66 Update for C++ Customers - by Troy Kitch

http://bdn.borland.com/article/0,1410,32448,00.html
938デフォルトの名無しさん:04/09/03 09:11
ハードディスクを検索しても、BORLANDMM.DLLが無いのですが、これはBCB6では無くなったんでしょうか?

BCB5の頃は別マシンでBORLANDMM.DLLが無いと良く怒られてウザかったんですが。
borlndmm.dll のこと?
そうです。>>939
BCB6では廃止になったんですか?
あるよ?
ハイ!ハイ!ハイハイハイ!
あるある探検隊!!
一応
×borlandmm.dll
○borlndmm.dll
サンクス>>943
ありました。でも、プロジェクトのオプションのコンパイラタブから、
メモリマネージャを使うのオンオフが無くなってる様な。。。
>>944
お前は騒ぐ前によく調べろ。マジで。
次回作は?
ボツになりました。
948デフォルトの名無しさん:04/09/05 15:28
つか、BCBばっかやってっとバカになるぞ
VCやってた奴がBCBはなんとなく使えるが
BCBやってた奴はまずVC使えない

そんなやつは会社ではまずつかえないからね
949本田:04/09/05 19:15
>VCやってた奴がBCBはなんとなく使えるが
>BCBやってた奴はまずVC使えない

できあいのVCLコンポーネントを使うのはMFCプログラミングと比べてはるかに簡単だけど、
VCL用コンポーネントを書くのとMFCプログラミングは大差ないよ。
BCB/Delphi は幅広い層のユーザが利用できるってことだな。
NO_WIN32_LEAN_AND_MEANを定義されたプロジェクトで、Indyを使うと
winsoc.hとwinsock2.hの両方が読み込まれるらしく定義が重複してエラーになってしまうのですが、
なにか回避する方法はないでしょうか?
外部プログラムを起動するにはどうしたらいいですか?
>>951
条件定義に_WINSOCKAPI_ (winsock.hのインクルードガード)を入れるとか。
winsock2.hもそうやってwinsock.hがインクルードされるのを防いでるから、いいんでないかな。

>>952
ShellExecute とか CreateProcess とか system
ありがとうございます。ShellExecuteでうまくいきました
ヘッダファイルで宣言して、
コンストラクタでnewで作成したTListのオブジェクトを、
同じクラスのメソッドで使用したいのですが使えません。

何か方法ありますか?
956デフォルトの名無しさん:04/09/06 15:15
リッチテキストに300kB2000行程度のTStringsのTextを貼りたいのですが、AssignでもTextをそのまま渡しても一行ずつ書き込んでも同じくらい遅いのですが
早くできる方法はありませんか
>>955

hoge.h

class hoge
{
TList *hogeList;
hoge OnCreate();
hoge myfunc();
}

hoge::OnCreate
{hogeList = new.......}

hoge::hogefunc
{hogeList->hogehogefunction}

こんな感じでいいのかな?
>>956
1行ずつ書くのと同じくらい遅いってことは、
RichEdit->Lines->Text = strings->Text;
こういう書き方?

RichEdit->Text = strings->Text
こうは?
959デフォルトの名無しさん:04/09/07 00:46
質問です

自動生成をしない設定の TDataModule のコンストラクタに
const int の引数を 1 つ加えると、new した時に
コンストラクタが再帰呼び出しになってスタック・オーバーフローにならない?

BCB5 Pro と BCB6 Pro で確認したんだが、どちらでも発生する模様。

探してみたんだが、それらしいものが見当たらないのだけど、
上記の件に関してどこかに情報ない?
960デフォルトの名無しさん:04/09/07 00:48
TServerSocketでServerTypeをstThreadBlockingにする理由ってなんですか?
どう考えてもstNonBlockingにほうが簡単なのに・・・

使い分ける指標を教えてください
>>959
親クラスにもTComponent*とintを受け取るコンストラクタがあるから、
そっち呼ばないとそうなるみたいね。
>959,>961
確かFormにも引数int一つのコンストラクタがあったはず。
以前それではまった。

いろいろ眺めてみたら、
DelphiのCreateとCreateNewに対応させるために
コンストラクタがもう一つ生成されるみたい。
963956:04/09/07 11:01
>>958
それでビンゴでした
ありがとうございました
StringGridでTextOutを使って文字の色を変えたいんですけど、
DrawCellイベントでしか実行することは出来ませんか?
別のメソッドでやりたいんですけど、色が変わらず困ってます。
965デフォルトの名無しさん:04/09/07 20:13
FAQだったらごめんなさい。

BCB6で、VC6から普通に呼び出せるDLL(普通にリンクできるLIBでもいいけど)を作れるんでしょうか?
もしできるなら、作り方を教えてください。
普通に呼び出せないDLLなんか作れないから、普通に作ればいいんだよ
967959:04/09/07 23:16
>>961-962

そうだったですか。int 付きのコンストラクタは知りませんでした。
ありがとうございます。これから確認してみます。
>>964
無理
DrawCellから別の関数を呼び出すという意味なら可能だけど。
>>966
ありがとうございました。VCで作られたDLLをBCBで使おうとすると面倒くさいので、
逆もやっぱり面倒くさいのかと思ってました。
今手元にVC6が無いので試せなかったんですが、考えてみたら7.1なら手元にあるので、
とりあえず普通にやってみます。どうもありがとうございました。
970デフォルトの名無しさん:04/09/08 14:37
TStringGridでセルが編集中かどうかを調べる方法を教えてください
>>970
EditorModeがtrueなら編集中だね。