では質問をどうぞ。
OPENARRAYマクロ使いにくいな
カッコを二重にしないといけない
ネイティブアプリ作成では一番使いやすいと思うが、なぜにこんなにマイナーなの?
VC++のほうが人気がある理由がわからん
5 :
デフォルトの名無しさん:2012/04/23(月) 00:34:22.12
VCのほうがつかいやすくね?
MFCはソース見れば大体わかるからな
パスカレなんて嘔吐
>>4 VCLの設計が古いからだよ
FMも怪しいし
C#のためにヘジタンをM$に引きぬかれてからちっとも進歩してない
7 :
デフォルトの名無しさん:2012/04/23(月) 10:26:00.01
XE3出たか?
∧ . -‐. : . : . : . : .  ̄`丶/>ヘ',ー.、
. __ //: . : . : . : . : . : . : . : . : . : \: . }i: : :\
}l>/: . : . : . : . : . : . : . : . : . : . : . : :.\}i: . : . :\__
/}レ': : . : . : . : . : . : . : . : . : .\: . ヽ: . : . :.ヽ: . : . : . ヽ`
/: :/: . : . : . : . :l: :八: . : . : : \: : : : : '. : . : . :l: . : . : l: : l
. /: :/: . : . : . : . :/l: :| \: :\: : : \: : . :l: . : :...:|: . : . : l: . l
/: ://: : . : . :.|: / .j: :| \: ヽ\:ヽ\: :|: . : |: :|: : |: . :l: : |
//://|: : :l: : . i斗'^ ,ィf弌ぅ 、ヽ|: . : l: :|: : |: . :|\|
//:ノ /|: :/}: : : |: l ,ィf゚う ト::)゚ィリヽ|: . : |:/: : :|: . :|
}: : /|:|:/: |: : ∧:i/ん:::ハ 弋c少' |: . : |}: : :.|: . :
|: / .|:|': : |: :/: :i 弋cソ 、、、、、. |: . :八: . :八: .|
|/ l: : : :|V: : ハ 、、、、 ′ l: ./:∧: ./ ヽ
八: :.∧: |: :人 r 、_ 、 ィ .ノ:/:/ }:./||
∨ V}: : |: /i>}/ ,へ、 イ j:V/:/ / C++Builderなんて、
八: :|/__ ! / ハ _.斗‐{ 使ってる人いるのかなぁ…?
∧! _| ' /´ 》──--、
_/ |:::_} .|ー─--< |
/___ i }∧ ノ:::::::::::::::::::/ / |
V / }. イ l\::::::::::::/ / :|
rヘ xヘ ∨ | |:| \/_/ 人
/_/ '、 _ヽ | |:| ./ - ─ - 〉
. / ヽ/// j/ 〈 / -‐ /
C#に比べると起動が速いだけで他はあまりメリットないな
>>10 あとEXEのサイズが全然違う
開発環境が入っていればDLLは必要ないけど配布版はライブラリリンクしないと
C#は全てダイナミックリンクだから
プッ
>>12 ねえ悔しい?
MSILは64bit環境では64bitにコンパイルされて動くんだよ
くやしすぎるよぉ
XE2 から clang の改変版に切り替わったから、XE3 で LLVM コードを出せるようになって問題解決
Delphi 本体は FPC に切り替わるしな。
おもしろいですね(棒)
18 :
デフォルトの名無しさん:2012/05/08(火) 09:13:40.03
TServiceを使用してサービスを作ったのですが、
exeをリネームして複数サービスを登録したい場合どうすればよいのでしょうか?
TServiceのNameをファイルなどで動的に変えればインストールは成功したのですが、
肝心のサービスが使用できません。Nameを固定にすると複数のサービスをインストールできません・・・
よろしくお願いいたします。
XE3出たか?
20 :
デフォルトの名無しさん:2012/05/15(火) 10:20:38.10
さて、まもなくC++Builderも64bit版になりますよぉ〜
>C++Builderも64bit版
10年遅れて、自社技術で対応できなくて...
clang 自分でビルドするのとなにが違う?
22 :
デフォルトの名無しさん:2012/05/15(火) 23:06:25.57
win用で軽くてサイズも小さいcのコンパイラって何がありますか?
23 :
デフォルトの名無しさん:2012/05/16(水) 00:03:23.16
lsisishokuban
win用という条件がある以上、ない。
Digital Mars Compiler Version 8.42n
dm852c.zip 3,009KB
LSIC試食版(MS-DOS)
lsic330c.lzh 401KB
Borland C++ 5.5.1 for Win32
freecommandlinetools2.exe 8672KB
26 :
デフォルトの名無しさん:2012/05/17(木) 13:49:19.56
TPopupMenuのMenuItemを動的に作成しているのですが
PopupMenu->Items->Clear( );
for( int i = 0; i < Cnt; i ++ ){
TMenuItem *mi = new TMenuItem(this);
mi->Caption = buff[i];
mi->OnClick = MenuItemClick;
PopupMenu->Items->Add( mi );
}
毎回Clearして作り直しているのにメニューが最後に表示したCaptionの最大幅になってしまいます
これそのときに作成したCaptionの幅にするにはどうしたらいいですか?
void __fastcall TForm1::MenuItemClick(TObject *Sender)
{
TControl* control;
TMenuItem* mi = dynamic_cast<TMenuItem*>(Sender);
control = dynamic_cast<TControl*>(FindComponent(Components[mi->Tag]->Name));
control->Enabled = !control->Enabled;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int Cnt = PopupMenu1->Items->Count;
char *buff[] = {"Test1", "Test2", "Test3"};
PopupMenu1->Items->Clear();
for (int i = 0; i < Cnt; i++) {
TMenuItem* mi = new TMenuItem(this);
mi->Caption = buff[i];
mi->OnClick = MenuItemClick;
PopupMenu1->Items->Add(mi);
こんな感じでしょ
ちゃんと切り詰められて表示されるよ
}
}
28 :
デフォルトの名無しさん:2012/05/17(木) 16:35:49.79
>>27 char *buff[] = {"Test1", "Test2", "Test3"};
これ固定になってますが、ここの長さが可変なんですよ
たとえば
char *buff[] = {"Test1ああああああああああああああああああああ", "Test2", "Test3"};
というメニューを作成して次に
char *buff[] = {"Test1", "Test2", "Test3"};
これを作ると最初に作ったメニューの幅になりません?
ちなみにC++Builder2010を使ってます
>>28 こういう事ですか?Button1を押してからButton2を押すとちゃんと切り詰められます
XE2です
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int Cnt = PopupMenu1->Items->Count;
char *buff[] = {"Test1111111111111111111", "Test2", "Test3"};
PopupMenu1->Items->Clear();
for (int i = 0; i < Cnt; i++) {
TMenuItem* mi = new TMenuItem(this);
mi->Caption = buff[i];
mi->OnClick = MenuItemClick;
PopupMenu1->Items->Add(mi);
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
int Cnt = PopupMenu1->Items->Count;
char *buff[] = {"Test1", "Test2", "Test3"};
PopupMenu1->Items->Clear();
for (int i = 0; i < Cnt; i++) {
TMenuItem* mi = new TMenuItem(this);
mi->Caption = buff[i];
mi->OnClick = MenuItemClick;
PopupMenu1->Items->Add(mi);
}
}
30 :
デフォルトの名無しさん:2012/05/17(木) 18:44:37.23
>>29 ありがとうございます、。
まさにそういうことなのですが・・・
2010が悪いのか自分のコードが悪いのかがわからないので
ちょっとこっちも同じコードで試してみます。
31 :
デフォルトの名無しさん:2012/05/17(木) 18:53:11.52
>>29 まったく同じコードを試してみたした。
やはりダメでした。
まずButton2を押すとメニュー幅は普通
次にButton1を押すと"Test1111111111111111111"の文だけメニューが広がる(これも普通)
次にButton2を押すとButton1で作成されたメニュー幅のままになっています・・・
うーん、2010のバグなのかなあ・・・
5と2009で試したけどちゃんと切り詰められます
34 :
26:2012/05/18(金) 09:54:57.15
アップデートしてます。
5でも2009でも大丈夫なら2010でも大丈夫なはず・・・
おかしいな
>>29と同じコードやってみたのになあ
2010のQCにPopupMenuのWidthのバグとか出とらん?
もうdepricatedだから自分でソースいじくって直すしかないけど直し方のヒント位は
出てるだろうと思う
>>35 これどう?メインメニューにサブメニューを追加するんだけどサブメニューも幅がおかしい?
void __fastcall TForm1::Button2Click(TObject *Sender)
{
int Cnt = PopupMenu1->Items->Count;
char *buff[] = {"Test1", "Test2", "Test3"};
char *buff2[] = {"Sub11", "Sub22", "Sub33"};
PopupMenu1->Items->Clear();
for (int i = 0; i < Cnt; i++) {
TMenuItem* mi = new TMenuItem(this);
mi->Caption = buff[i];
// mi->OnClick = MenuItemClick;
PopupMenu1->Items->Add(mi);
// サブメニューを動的に配置する
for (int j = 0; j < 2; j++) {
TMenuItem* ms = new TMenuItem(mi);
ms->Caption = buff2[j];
mi->Add(ms);
}
}
}
37 :
26:2012/05/18(金) 12:08:59.27
こんなしょーもない質問にマジレスしてくれてありがとう
>>36 やってみます
38 :
26:2012/05/18(金) 13:14:36.51
>>36 やってみました。
結果はサブメニューの幅はちゃんと文字列の幅になっていました。
>>38 という事は一番上のメニューだけのバグか・・・不可解だな
40 :
26:2012/05/18(金) 13:50:20.95
そうですね、一番上のメニューの幅が何故か表示した最大の幅で記憶されている感じです
ちなみに、メニューを表示していたフォームを閉じて再度開いて表示させると
初回表示時みたいに最初だけちゃんと表示されます
そんなわけで、これMenuItemをClearじゃなくて
TPopupMenuごと削除して作り直せばいいかもしれませんが・・・
TPopupMenuコンポーネントにバグがあるんじゃね
clear()じゃなくてTPopupMenuそのものを初めから動的に配置したらどうですか?
42 :
26:2012/05/18(金) 14:06:46.63
>>41 フォームを開くたびに幅が初期化されているので
TPopupMenuを動的に作成したら多分うまくいくとおいますが・・
とりあえず現状ではそれしか回避策は無いですよね。
皆さん色々ありがとう
今回はTPopupMenuを動的に作って逃げてみます
いえいえ
お礼は結構ですよ
45 :
26:2012/05/21(月) 10:44:21.93
>>44 マジですか!
ちょっとそれやってみます、ありがとう
46 :
デフォルトの名無しさん:2012/05/22(火) 20:00:42.86
(Image1 はTImageコンポ。)
Image1のStretchをtrueにする。
(Image1のWidthとHeightは200とする)
Image1の大きさよりも大きい画像(400*400のビットマップ)を
Image1->Picture->LoadFromFileで表示させる。
これで表示は出来るんだけど
Image1->Canvas->Pixels[i][j]で縦200横200のドットの色を取得すると
元の400*400の画像の左上から縦200横200の取得になってしまう。
ストレッチされた画像の縦200横200を参照するにはどうしたらいい?
教えてくれ。
わかりにくくてごめんね。
>>46 TImageの中に保持しているTBitmapはあくまでも元のイメージそのままで、表示の時に
Stretchしているに過ぎない
だからストレッチされた値がどうしても欲しければ他のコントロールにStretchDrawして(非表示でよい)
そこから読み取る必要がある
下のプログラムはちゃんと異なる値を表示する
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Image1->Picture->LoadFromFile("1.bmp");
Image2->Canvas->StretchDraw(Rect(0, 0, 200, 200), Image1->Picture->Graphic);
int x = Random(200), y = Random(200);
TColor tc1 = Image1->Picture->Bitmap->Canvas->Pixels[x][y];
TColor tc2 = Image2->Picture->Bitmap->Canvas->Pixels[x][y];
Label1->Caption = "x = " + IntToHex(tc1, 8);
Label2->Caption = "y = " + IntToHex(tc2, 8);
}
48 :
デフォルトの名無しさん:2012/05/23(水) 09:37:17.52
TToolBarのButtonWidthを変更してもToolButtonの幅が変わらない
どうしたら変わるんですか?
ToolButtonのはチェックにしてます
>>48 やってみたけど変わるけど
バージョンは何かな
>>49 あれ?こっちじゃオブジェクトインスペクタで設定しても値がもどっちゃいます
2010です。
>>49 あー、わかりました。
ShowCaptions=Trueならダメなんですねこれ・・・
キャプションを表示しつつToolButtonの幅は変えられないですかね?
Captionを表示するとWidthが固定されちゃいますね
ですよね・・・
でしょうね・・・
TDictionaryをC++Builderで使うにはどのように書けばいいのでしょうか
さっぱりコンパイルが通りません
char s;
Memo1->Clear();
dic = new TDictionary__2<unsigned short, char>;
for (w = 0; (unsigned int)w < 0x10000; w++) {
s = char(w);
dic->Add(w, s);
}
C++で記述された実定義がないので、
template class を新たな型で new することはできません。
ガ━━(;゚Д゚)━━ン!!
Delphiを使えという事か・・・・
そう言えばC++ではTDictionaryではなくstd::mapを使えと書いてあったような
ありがとうございました
std::mapがあまりにも遅いのでstd::hash_mapを使ってみたら2倍ほどになったけど
TDirectoryよりまだまだ遅い・・・・
boost::mapの方が速いのかなあ?
59 :
デフォルトの名無しさん:2012/05/25(金) 14:07:31.08
Builder2007で質問ですが
Form1からForm2を呼ぶときにForm2のFormStyleをfsStayOnTopにしているのに
Form1をクリックするとForm2がForm1の後ろに行っていまいます
Builder5じゃそんな事はなかったのですが
2007辺りから↓
SetApplicationMainFormOnTaskBar(Application, true);
こいつが悪さしてるって以前に聞いたことあるのですが
これはランタイムテーマ有効?のだとおもうんですが
それがONの状態でもfsStayOnTopで背後に行かないようにする方法を教えてください
>>60 5も大丈夫だったので2007だけかもしれません。
とりあえずWMWindowPosChangingメッセージでTOPにして常に最上位に表示するようにしてますが・・・
2007ってバグ多いからなあ
>>61 Form2ってForm1から動的に生成してる?それともUnit2として後からShow()してる?
>>62 Form1のコンストラクタで動的に作成してます
んで、Form2を表示させる場合にShowして必要なくなったらHideしてます。
Form2はフリーせずにずっと非表示で存在してます
>>63 んーモーダルにしてもモードレスにしてもやっぱりForm2はForm1の背後に行かないです
>>64 ランタイムテーマは有効になってますよね?
やっぱり2007だけのバグかなあ・・
>>65 XE2ではランタイムテーマはデフォルトで有効です
>>66 そうですよね、2007もデフォで有効になってますし
色々ありがとうございます。
とりあえずメッセージで回避できるのでそうしておきます・・
>>66 何かメッセージで処理するのを止めても背後に行かなくなった
んで、色々ためしててちょっとわかったのですが
どうもForm1をアイコン化したらForm2が背後にいっちゃうみたいです
そんなわけで、以下の手順で試してもらっていいですか?
1.Form1を表示してForm2をfsStayOnTopで表示
2.Form1をアイコン化(この時にForm2も消える)
3.Form1を元に戻す(Form2はどこかに行ってしまてtみえなくなる)
4.Form2を再度fsStayOnTopで表示(見た目上はForm1の上に表示される)
5.Form1をクリックしてみる、そうするとForm1の上に表示されているはずのForm2が裏に行ってしまう
>>68 XE2だとForm1をアイコン化するとForm2も同時にアイコン化するのは同じです
しかしその後Form1を戻すとForm2もちゃんと前面に表示された状態で再表示されました
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Form2 = new TForm2(Application); // 生成
Form2->Show();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Application->Minimize();
}
//---------------------------------------------------------------------------
こんな感じです
あっちょっと違ってました
アイコン化するのはForm1だけで、Form2は消えてしまいアイコンになりません
しかしタスクバーをクリックするとForm2がForm1の上に重ねられて再表示されます
71 :
デフォルトの名無しさん:2012/05/25(金) 20:48:18.31
FormにTLabelを貼り付けたら
TLabel *Label1;
と宣言挿入されたのですが
実際に、newはどこに書かれているのですか?
Project1.cpp(デフォルト名)じゃないの?
今見たらApplication->CreateForm()って専用のメソッド呼び出してますね
74 :
デフォルトの名無しさん:2012/05/25(金) 21:52:36.57
>>73 質問の仕方が悪かったです。申し訳ありません。
Label1 = new TLabel();
というのが、とこに書いてあるのかが知りたいです。
>>74 それVCLの中に書いてあるんじゃない?
CreateForm()がフォームに貼り付けてあるコンポーネントを全部初期化するんでしょうね
>>74 IDEによって管理されているから、そういう記述はどこにも書かれていない。
VCL内部でフォームの情報を読んでそれぞれのコンポーネントを生成、初期化している。
>>69-70 ありがとうございます。
XE2ではちゃんと表示されるのですね・・・
やっぱり2007だけの現象なんですね
78 :
デフォルトの名無しさん:2012/05/29(火) 10:20:37.46
誰かさピクセル関数の使い方教えてくれる人いない?
課題で黒い線の上を車の画像走らせるアプリ作ってるんだけどその車の左右には触覚?みたいなものがついていてその触覚の色を取得したいんだが・・・
>>78 Pixel()は遅いからScanLine()で一行取得してからそれを調べるのが定石
80 :
デフォルトの名無しさん:2012/05/29(火) 20:32:10.95
学校の課題レベルで問題になるほど、でPixel()が遅い訳ねえじゃん。
81 :
デフォルトの名無しさん:2012/05/29(火) 22:56:23.22
マウスホイールイベントをMESSAGE_HANDLERで捕まえて、処理する関数
ttp://www.gesource.jp/programming/bcb/43.html がBCB6では動いていたんですが、
XE2にしたらイベントを捕まえられなくなりました。
単純に以下のソースをForm1にコピーして、
ホイールを回したら、MessageBoxが出るように改良しているだけです。
なぜでしょうか。理由がわからなくて困っています。
また、その理由に基づいてどうしたらよいですか?
※Win7 32bit
82 :
デフォルトの名無しさん:2012/05/29(火) 22:57:39.22
× 単純に以下のソースをForm1にコピーして、
○ 単純に上のソースをForm1にコピーして、
^^
^^
85 :
デフォルトの名無しさん:2012/05/30(水) 10:19:22.99
とりあえずマウスダウンでピクセル使って色を取得するプログラム作ったんだけどフォームの色しか取得出来ないんだが
イメージ画像とかコンポーネントの色が取得出来ないのは何でだ?
基本的にCanvasの色しか取得出来ないだろ
それかBitmapか
87 :
デフォルトの名無しさん:2012/05/30(水) 10:30:24.03
いまからはじめても大丈夫?
会社つぶれない?
つぶれない。でもあと3ヶ月待て。C++BuilderはXE3で本気出す予定()だから。
89 :
デフォルトの名無しさん:2012/05/30(水) 10:48:40.13
>>86 コンポーネントの色を取得出来ないのはしかたがないとしてビットマップ画像の色は取得したい
カーソル直下に存在するコンポーネントのCanvasでPixels()を使え
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Image1->Picture->LoadFromFile("1.bmp");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
int x = Random(Image1->Width);
int y = Random(Image1->Height);
Label1->Caption = UnicodeString().IntToHex(Image1->Canvas->Pixels[x][y], 8);
}
//---------------------------------------------------------------------------
こんなのでしょ
今まで何回も出てきてるけど
Button1で画像をロードしてButton2でランダムな点のTColorをゲットする
92 :
名無しさん@お腹いっぱい:2012/05/30(水) 18:30:22.70
裁判所の力
93 :
デフォルトの名無しさん:2012/05/30(水) 20:11:44.34
StringGirdのセルに、IMEで漢字入力したくて、以下のソースをググってつくてみました。
入力セルの内にIMEの変換候補が表示されるプログラムです。
(XE2を使っています)
入力直後だけ変換候補が表示されません。
例:あるセルで、IMEをONにして文字列を打ち込んでいくと、
東京都[スペース] ←この段階では、変換候補が表示されない。
[改行] ←確定で「東京都」の文字が表示される。
港区[スペース] ←これ以降の続き入力では、変換候補も表示される。
最初から表示したい。どうすべ?
94 :
デフォルトの名無しさん:2012/05/30(水) 20:12:43.44
void __fastcall TStringGrid1::IMEStart(TMessage& Message)
{
// IMEの位置をキャレットのポジションに設定
COMPOSITIONFORM CompForm;
POINT pt;
LOGFONT lf;
HIMC hImc=ImmGetContext(Handle);
//キャンバスのフォントと同じに設定する
GetObject(this->Canvas->Font->Handle,sizeof(LOGFONT),&lf);
ImmSetCompositionFont(hImc,&lf);
//キャレットのポジションに設定する
ImmGetCompositionWindow(hImc,&CompForm);
CompForm.dwStyle=CFS_POINT;
GetCaretPos(&pt);
pt.x = this->CellRect(this->Col, this->Row).left+2;
pt.y = this->CellRect(this->Col, this->Row).top+2;
CompForm.ptCurrentPos=pt;
ImmSetCompositionWindow(hImc,&CompForm);
ImmReleaseContext(Handle, hImc);
//編集モード用カーソルの表示
this->Options << goEditing; //編集モードをON
this->EditorMode = true; //選択セルのカーソルを表示。これがないと、かな漢字変換の初期段階で選択枠が表示されたままになる。
}
95 :
デフォルトの名無しさん:2012/05/31(木) 10:50:26.77
StringGirdが持つ、TInplaceEditのIME設定(SetImeCompositionWindow)を
以下のように変更しようとしていますが、
SetImeCompositionWindowがprotectメンバのためアクセスできません。
どう解決したらよいですか?
StringGirdのメンバー関数内での記述:
TInplaceEdit* editor= dynamic_cast<TInplaceEdit*>(this->Components[0]);
editor->SetImeCompositionWindow(this->Canvas->Font, 100, 50);
>>93 IME何使ってるの?
GoogleIMEだとちゃんと表示されるけど
ちなみにMSIME2010でやってもちゃんと表示されました
98 :
デフォルトの名無しさん:2012/05/31(木) 11:50:12.26
MSIME2010 です。
同じIMEですねえ
ちゃんと変換候補も出ます
ちなみに
>>94みたいな事はしていません
100 :
デフォルトの名無しさん:2012/05/31(木) 12:04:12.49
もしかと思い、OS変えて調べてみました。
手元にある、Win7では×ですが、XPでは○でした。
OSなんですか?
XPですね
OSの問題かな?
WOW64のバグかはたまたIMEの64bit版のバグか
103 :
デフォルトの名無しさん:2012/05/31(木) 12:21:44.69
>>94で書いたような、IME位置の移動処理をしなくても、
this->Options << goEditing; //編集モードをON
this->EditorMode = true; //選択セルのカーソルを表示。
として、編集モードにさえすれば、その場所に変換文字が表示されるんですね。
XP限定ですが。
win7だと、
>>95で書いた方法でIMEを移動できても、無理かもしれませんね。
WOW64の非互換の問題でしょう
こればかりは仕方がない
MSに文句付け方が早い
105 :
デフォルトの名無しさん:2012/05/31(木) 12:36:04.75
私が使ているのは、Win7-32bitなんですが、
WOW64は、32bitOSでも関係あるものでしょうか?
なんだ、じゃWin7-32bitのバグじゃないか
109 :
デフォルトの名無しさん:2012/06/04(月) 19:15:32.73
プログラミングの前に、高校数学をやり直したほうがいいぞ
C++Builderユーザー各位
いつもお世話になっております。エンバカデロ 営業の深町です。本日は、先週
発表致しましたC++Builder次期バージョンへのパスについて、改めてご案内致し
ます。今回の発表は、C++BuilderがiOSやAndroidを含むモバイルプラットフォー
ムにも拡張されるという大きな一歩を表明しています。
これに対し、現在のC++Builderから将来バージョンまでを入手いただけるパスと
して、「Future Ticket」版の提供開始を発表させていただきました。すでに、
多くのお客様から反響をいただいております。
6月29日までにサポートと併せてご購入いただくことで、C++Builder XE2を20% OFF
でさらに次期バージョンへのプライオリティプレビューアクセスと、今後1年間に
提供される新バージョンを入手することができます。64-bitサポートをはじめ、
C++Builderの今後のバージョンへ円滑に移行するには、現在最新バージョンから
の作業が重要です。ぜひ、この機会をご活用いただき、今後1年間にわたって最新
環境をご用意いただければと存じます。
「Future Ticket」版 詳細ページはこちらになります。
⇒
http://www.embarcadero.com/jp/landing-pages/cbuilder-bundle
112 :
デフォルトの名無しさん:2012/06/06(水) 00:13:16.43
今時、超優秀なコンパイラがフリーで手に入る時代に、超強気な価格ですねw
113 :
デフォルトの名無しさん:2012/06/06(水) 15:04:09.16
Builder2010ですがProgressBarでStepBy( 1 )してるのですが
ProgressBarの進みが遅く、処理が終了しても70%くらいまでしか進んでいません。
これ以前のようにちゃんと現在位置を表示させる方法を教えてください
Maxの計算が間違っているんじゃないの?
>>113 Application->ProcessMessages()でも挟んでみたら?
116 :
デフォルトの名無しさん:2012/06/06(水) 17:24:08.87
>>114 間違ってないです。
>>115 いや、挟んでる。
非常に単純です。
ProgressBar->Min = 0;
ProgressBar->Max= 100;
ProgressBar->Step = 1;
ProgressBar->Position = 0;
for( int i = 0; i < 100; i ++ ){
ProgressBar->StepBy( 1 );
Application->ProcessMessages( );
}
ProgressBar->Position = 0;
回す回数にもよりますがこれでバーが7割くらいのとこで0になってしまします。
ちなみに最後のProgressBar->Position = 0;を取ると
処理が終わってやや暫くしてからバーがMAXになります。。
そんなわけで、ProgressBar自体が遅延処理を行ってるみたいなので。
同じコードをBuilder5でやるとちゃんと最後まで表示されます。
これまた例によって2010だけのバグかもしれませんが。
>>116 ProgressBar->Min = 0;
ProgressBar->Max= 100;
ProgressBar->Step = 1;
ProgressBar->Position = 0;
for( int i = 0; i < 100; i ++ ){
ProgressBar->StepBy( 1 );
Application->ProcessMessages( );
}
ProgressBar->Position = 0;
Application->ProcessMessages( );
最後に Application->ProcessMessages( );
重い処理をした後あとだと処理が終わってもCGIが再描画されないときもあった気がする。
また2010のバグかよ(-_-;)
XE2でやるとうまく行くが
次のようなコードはどう?
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
ProgressBar1->Min = 0;
ProgressBar1->Max= 100;
ProgressBar1->Step = 1;
ProgressBar1->Position = 0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
ProgressBar1->StepBy(1);
}
//---------------------------------------------------------------------------
119 :
デフォルトの名無しさん:2012/06/06(水) 17:51:58.01
>>117 それやってみましたがダメでした
>>118 すんません、コードの性質上タイマーでアレするのはちょっとやりにくいのです。
ProgressBarが内部で遅延描画をしてるのは疑いないのですが
それをプロパティ等で設定できないものかとおもいまして
ちなみにSmooth = falseにしても、バーが滑らかなアレのままで断片表示になってくれません。
完全にProgressBarのバグですが、ちゃんと描画させる方法はないですかね?
更にちなみに、UpdateやInvalidateなどをやってもダメでした・・・
>>119 そうじゃなくて
>>118ならちゃんと表示されるか聞きたい
だめならSleep()でもいいからさ
これでも表示がおかしいかい?
void __fastcall TForm1::Button1Click(TObject *Sender)
{
ProgressBar1->Position = 0;
for (int i = 0; i < ProgressBar1->Max; i++) {
Sleep(100);
Step();
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Step()
{
ProgressBar1->StepBy(1);
}
122 :
デフォルトの名無しさん:2012/06/06(水) 18:59:01.97
>>120 あー、なるほど。
確かにそうですよね、やってみます。
>>121 それもやってみましたがダメでした
123 :
デフォルトの名無しさん:2012/06/07(木) 18:26:38.63
BCB6をXPで使用しています。
メインファームである処理をしている時にフォームを掴むとその処理が停止してしまいますが、
これを回避する方法はありますか?
離せばまた元通り動き出すので、今は「掴むな!!」という事にしています。
別スレッドで処理を行わせるくらいしか回避方法はない。
Focus当てられないようにするとか
FormのEnabledプロパティをfalseにするとフォーカスが当てられなくなるな
しかもオーナードローでなければボタンは反応するので途中で計算を止めたい時も行ける
127 :
123:2012/06/07(木) 22:59:14.92
アドバイス有り難うございます。
FormのEnabledをflaseにして見ましたが、そもそも移動したい時にも移動できなくなるので
ちょっと難しいそうです。
別スレッドでという方法を試して見ます。
スレッドは使った事が無いので基本的な事を教えて下さい。
「異なるスレッドが保有するVCLにアクセスする時に排他制御の問題があるので、
Synchronizeメゾッドを使用して同期しろ」と書かれていますが、
例えばメインフォームのLabel1にアクセスするコードが新しく生成したスレッドの中にしか無い場合には、
排他制御の問題はそもそも無いのでSynchronizeメゾッドは使用する必要がないという理解で良いでしょうか?
移動は出来るけど処理は止めたくないのかあ
SynchronizeメソッドはVCLがマルチスレッドに対応してないので
Label1を新しく生成したスレッドからしかいじらないとしても調べる必要がある
129 :
123:2012/06/07(木) 23:31:32.58
>>128 「調べる必要がある」とはどういう意味でしょうか?
Synchronizeメソッドの説明を読むと、
一度メインフォームに処理を戻してVCLの更新を実行するという事が書かれています。
でもフォームが掴まれている状態でSynchronizeメソッドを呼ぶとそこで止まってしまうのではないかと・・・?
結局止まってしまうのではないかと。
130 :
123:2012/06/07(木) 23:45:49.94
>>Synchronizeメソッドを呼ぶとそこで止まってしまうのではないかと・・・?
実験してみたら上記は問題ありませんでした。
スレッド別なんだから止まるわけないじゃん
それよりメインフォームでVCLをいじってるとSynchronize()の結果が変わる
その時にいじると競合が発生して不審な挙動になる
C++Builder発売15周年記念キャンペーン
なんてやってたんだね
proで50000円は新規の人に魅力的だろうか?
133 :
バカでごめんね:2012/06/09(土) 13:06:35.97
>>133 画像は分かりやすいけど…
dotupじゃすぐに消えちゃうぞ。一発ネタならちょうどいいけどね。
とりあえず、imgurにでもアップしなおして。
あと、ユーザー名は画像加工した方がいいんでないかい?
136 :
バカでごめんね:2012/06/09(土) 14:38:35.85
ユーザー名ぐらいはいいかなあと
いいんならいいけど。
てか、よく見たらこれBuilderじゃなくて、Borland C++ Compiler 5.5.1か〜。
>>132 魅力でしょ、
50000円ならシェアウェアを公開して
1ライセンス2000円もとれば、あっという間に元は取れるんだし。
ソフト作る労力も勘定に入れてくれ
a) bcc32.exe の引数に -I オプションでインクルードディレクトリを指定する。
例: -Ic:\bcc55\include
bcc32.exe のあるフォルダに、bcc32.cfg というテキストファイルを用意して、
-I<インストールディレクトリ>\include
などと書く。または、すでにある bcc32.cfg が
正しいディレクトリを指しているか調べて書き換える。
bcc なら解るが、cpad は使わないのでわからん。
とにかく、
エラー F2209 a.cpp 1: インクルードファイル 'stdio.h' をオープンできない
を解決しろ。
コンパイルでエラーがでてるのでリンクしていないから a.exe は作成されていない。
でも、cpad が、どこかにある古い a.exe を実行して、64ビット云々のダイアログがでているだけ。
143 :
142:2012/06/09(土) 21:22:31.31
あ、cpad が実行しているわけではないのか。
RAD2010を使用しているのですがエディタでコメントを日本語入力しているときに、マウスカーソルがコードにかかっていると定義の検索が作動した時に文字化けしたり落ちたりしてしまいます。
IMEでマウスカーソルオフ以外の方法でこれを回避する方法はないでしょうか?再インスコや別PCでも治りません。誰か助けて…。
QC に入れなさい。>144
ということはあまり問題になっていないということでしょうか?強制電源オフしなくてはならないので困ってます。
BDS2006から発生していてバージョンアップをやめていたのですがWin7で安心して使用できるようにバージョンアップしたらまた同じでした。
もしかしてうちだけですか?
QC に入れなさい。>146
捨てアカで BDN アカウントをとって
公式フォーラムに口汚く罵った書き込みを入れてみたら?
アカウントは持っているんですが登録したあたりから英文スパムが来るようになって怖いんですよね。あきらめます。ありがとう!
>英文スパム
David I って人からとか?
>あきらめます。ありがとう!
おめでとう。 VisualStudio ならそんなことないから、良い機会だから切り替えよう
David Iとかエンバカとかもスパム扱いになりますがそれ以外で毎週100以上orz
VSへの乗り換えも考えたんですがBuilderに慣れてると使いづらくてねぇ。DirectXは楽になるんだけど。
XE3が出る頃までなんとかガンバりますわ。
152 :
142:2012/06/10(日) 18:49:57.27
うちにはこないので、たぶん、他の原因かと。
IDEFixPackとか…これはさすがに効きそうにないか。まぁQCに入れても2010じゃ放置だろうし。
強制電源オフが必要なのってどういう状況?
なんか2010の不具合報告が最近多いなぁ
それとXE2をWindows7にインストールした時の挙動がXPと違うとか
>>153 日本語入力中にマウスカーソルがコードにのっていると文字入力したとたんに割り込みっぽく定義検索が発動。
すると同時に2バイト文字が1バイト文字として数えられてしまうのか半分くらいの位置以降で文字化けが発生。そのままさらに定義検索が発動?して無限ループ。(文字化けだけですむこともある)
で、タスクマネージャーでBuilderを落とそうとしてもダイアログは出るんだけど落とすこともできずWindowsにも戻れないのでリセットするしかなくなります。
2006以降の方なりませんか?
標準のタスクマネージャとかぬるいの使わないでProcessExplorerとかまともなもの使えば
たたき落とすことくらいはできるんじゃね?
あとはツール→オプション→エディタ設定→支援機能でシンボルインサイトあたりを無効化とか。
Process Explorerとかは使ったことがないんだけど、タスクマネージャーの起動すらできずにExplorer自体も落ちて再起動かかるも何もできなかったりします。
今、シンボルインサイトをオフって見ました。対策にはなるのですが、現在ユニットを多目に使用しているのでちょっと厳しいです。
CPUを100%とられてるのかも。まさかのシングルコアCPUだったりする?
だったらProcessExplorerでCPU使用率が高いプロセスの優先順位をNormalから下げることで
他の操作が可能になる(右クリック→Set Priority→Below Normal)。Process Explorerは事前に
起動しておくと吉。
すみません。環境書いてませんでしたね。i7 875K定格でメモリ16GB Win7 ULT 64bitです。
その方法も試してみたいと思います。いろいろありがとうございます。
連投申し訳ありません。早速試してみましたがBDSのCPU使用率は0.01%
Process Explorerで落とせたり落とせなかったりです。数分待つとProcess Explorerがやっとでてきたり不安定です。
IDE Fix Packは?
登録ユーザーダウンロードを見ているのですがどれなのかわかりません。HF2まで当てていますが。
見つけました。が、インストールしても治らず。
というかインストールすると普通に文字化けが…。
それをインストールしましたが治りませんでした。
166 :
デフォルトの名無しさん:2012/06/15(金) 16:21:48.56
エクスプローラが落ちたときに、タスクトレイに表示されているアイコンが消えてしまいます。
これを防ぐにはどうしたら良いのでしょうか?
一定時間間隔で登録する(MSの推奨)。
タスクバーごと消えた場合タスクバーが再作成されるときに
UINT WM_TASKBERCREATED = RegisterWindowMessage( "TaskbarCreated" );
ってメッセージが飛んでくるので、そのとき再登録するとか。
そう言えばエクスプローラが落ちた時にアイコンが出るソフトと出ないソフトがあるな
出ないソフトはそこら辺をさぼっているわけか
XE2でPageコントロールに複数のフォームを
ドッキングさせるアプリを作っているのですが
あるタブだけ、もしくは全てのタブのドッキングアウトを
抑制することはできるのでしょうか?
EndDockだったかのAllowにfalseを突っ込んでも
駄目でした
171 :
デフォルトの名無しさん:2012/06/22(金) 12:34:36.28
>>139 シェアウェア―って簡単に売れないのでは?
1本も売れないってよく聞くけど、本当はそんなことないの?
それは、金を払う価値がないソフトウェアだからでは?
例えば、秀丸やEmEditorなんて一企業が成立するくらい使ってもらってるじゃん
どっちもエディタだぬ
他のジャンルでは?
FileVisor
175 :
デフォルトの名無しさん:2012/06/22(金) 13:17:09.31
そういや秀丸って名前がかっこ悪いバグまだ直ってないのか?
使ったときねーから知らん
177 :
デフォルトの名無しさん:2012/06/22(金) 17:40:12.96
>>172 そんなレアなケース出されても....
>>139の言っていることは、
その気になればすぐに元を取れるって感じだから、
そうなの?ていう質問では?
実際マネタイズ大変だよな昔よりさらに
Google様が無料は当たり前の世の中にしてくれたからなぁ
179 :
デフォルトの名無しさん:2012/07/03(火) 15:19:38.09
C++Builder2010で質問
Indyを使ったメール受信ですが
色々サイトをみると以下のように件名を表示しているのですが
TIdMessage *msg = new TIdMessage(this);
IdPOP3->Retrieve( 1, msg );
Memo->Lines->Add( msg->Subject );
delete msg;
文字化けします。
どのサイトをみてもこんなやりかたをしててSubjectは文字化けしないみたいなんですが
どうしたら文字化けしなくできますか?
エンコードが違うのとちゃうん
181 :
デフォルトの名無しさん:2012/07/03(火) 15:51:13.40
どのサイトみてもこんな感じなんですよね。
msg->SubjectをいきなりMemoにぶち込んでるだけで
これC++Builder2010のIndy10で普通に表示されます??
Indyって文字コード変換までしてくれるの?
してくれないならメールヘッダのContent-Typeとか見て変換しないとダメなんじゃないの?
183 :
デフォルトの名無しさん:2012/07/03(火) 18:29:32.01
どのサイトもSubjectは変換してなかった
本文は変換してたけどね。
なんかヘッダーの日本語エンコードに対応してないらしい
Indy以外探したほうがいいかもね
185 :
デフォルトの名無しさん:2012/07/04(水) 09:26:28.71
('д`)えー
186 :
デフォルトの名無しさん:2012/07/04(水) 11:46:27.66
サイトでのソースは全部delphiなんだけど
C++Builderの方はバグってるのかなあ
何かそんなことかいてるサイトもあったし
だれか
>>179を試してほしい・・
フリーじゃないのこれ
どっち
189 :
デフォルトの名無しさん:2012/07/04(水) 14:21:51.41
んじゃさ、受信したSubjectとか=?ISO-2022-JP?形式なんだけど
これを変換する方法を教えて><
191 :
デフォルトの名無しさん:2012/07/04(水) 14:43:09.12
最初jconvert使ってたんだけど・・・
どうもC++Builder2010じゃうまくいかなくて
同じコードをC++Builder5でやるとちゃんと変換されたんだけど
2010ってデフォでUnicodeになってるから?
多分そうだろうね
AnsiStringでやってUNICODEに後から変換するとか力技で一回やってみれば?w
193 :
デフォルトの名無しさん:2012/07/04(水) 14:49:36.76
やってみたぽ・・・
とりあえずAnsiStringにぶち込んでから
Memo->Lines->Add( ConvertJCode( DecodeHeaderString( subject ), SJIS_OUT ) );
194 :
デフォルトの名無しさん:2012/07/04(水) 14:50:28.10
その辺は鬼のように試したんだけど全くうまくいかない。
C++Builder5じゃちゃんと変換されるんだけどなあ
jconvert.pas自体がStringでビルドされてたら意味ないと思う多分
196 :
デフォルトの名無しさん:2012/07/04(水) 14:57:38.42
そうなんだよね、それ気づくの遅かったアホだし俺とか
んで、諦めて、アレしたんだけど
しかし何故delphiの方はSubjectそのままぶち込んでもちゃんと表示されてんだろ
別物だからさ
198 :
デフォルトの名無しさん:2012/07/04(水) 15:28:45.56
どうしたものか
とりあえず
>>189教えてくらさ><
とりあえずjconvert.pasのStringをAnsiStringに置換してビルドしてみれば?
200 :
デフォルトの名無しさん:2012/07/04(水) 15:33:11.48
やってみる・・・
やっぱりやめた・・・
202 :
デフォルトの名無しさん:2012/07/04(水) 15:52:43.51
いや、根性でやったんだけどさw
まあダメだったわ、とりあえず無理やりキャストしてコンパイルが通っただけって感じだし
どうしたらいいの俺とか
ちょっと調べてみた
MecsUtils.pasっていうEmbarcadero Developer Networkにある文字列関係の処理用コード使ったらタイトル文字化け直ったよ
http://cc.embarcadero.com/item/26061 Yahoo Mailの1メールでしか試してないけど
この中のMecsShrinkElementっていう関数にTIdMessageのSubjectを渡すと正常に変換された
>>203 あああああああああああああああああああああああああ!!
ありがとうありがとう><
できましたできました!!!
自分もヤホーメール1件でしかまだ試してないですが
今までずっと試してたのが出来たのでこれでISO-2022-JPはばっちりです!!
ありがとうございました^^
違ったあああああああ!
=?ISO-2022-JP?B?って形式で入ってるのはダメだった〜
理由はよくわからないけどSubjectに入ってる形式で
何かわけのわからん形式ならMecsShrinkElementでOKでしたが
=?ISO-2022-JP?B?形式で入ってると変換されなかったので
これは別の関数呼べばいいんですかね??
何を呼べばいいかソースみてもわかりませんが・・・
ヤホーから来たメールはOKだったけど
ニフティーから来たメールはダメだったぽ・・
これプロバによってアレかあ死にたい
BCB6で、boost.polygon、は使えまつか?
コモンコントロールってWM_NOTIFYを親に送りますよね
親がコントロールだったら、そのコントロールをサブクラス化するしか
WM_NOTIFYを捕捉する術はないのでしょうか?
ない
210 :
デフォルトの名無しさん:2012/07/06(金) 10:02:51.17
この前からIdPOP3がバグるって騒いでる基地外ですが
>>203氏のおかげで結構変換することができた
で、色々受信してたらMecsShrinkElementを通しても化けるのがあって
よくよくみてみると、MecsShrinkElementで化けるのは
最初から既にちゃんと変換されてたってのがわかったんだけど
2010のIndyのバグのせいか、ちゃんと変換されてるのと無変換で
MecsShrinkElementを通すとOKってのがあったんだけど
これを判別する方法としてCharSetがISO-2022-JPならMecsShrinkElementを使う
って事にしたら大抵OKになったけど、たまにCharSetに何も入ってないのに
MecsShrinkElementを使わないとダメなのがあって
これどうやって判別したらいいのですか・・・
7bit か 8bit かで区別するといいお
XE2なら問題ないみたいだな
2010はバグ多いな
要するにXE2は2010、XEのバグ取りとFileMonkeyを入れたってことか
XE3でclang+llvmになるらいけどまたしばらくバグに苦しむんだろうな・・・
213 :
デフォルトの名無しさん:2012/07/06(金) 10:25:51.56
>>211 それダメですた、それ入ってないのがあって識別できません><
>>212 XE2迷ったけど64ビット作れないみたいだし次まで待つ事に
だよ
XE2はDelphiのみ64bit対応
だまされたー
215 :
デフォルトの名無しさん:2012/07/06(金) 11:38:13.20
とりあえず、判断は
AttachmentEncoding、CharSet、ContentTransferEncodingでなんとかなりそうです。
で、最後に・・・
=?shift_jis?B? この形式で来るのが現在変換できなくて困ってます。
これを変換する方法を教えてください・・・
皇子山って新羅の末裔らしいけどな
LoadLibrary
GDI+を使う理由がわからん
激遅なのに。
しかも、今時BCB56って
割れ?
>>219 遅延読み込みしないとダメだったんでした?
やってみます。
>>220 いや、正規だけど、エンバカには御布施したことないです。
何もかも今更なんだけど、GDI+もDirextX(DXライブラリ)も
触ったことなかったもので...
再描画の遅さは我慢できる使い方なんです
222 :
デフォルトの名無しさん:2012/07/09(月) 11:38:57.60
=?shift_jis?B? この形式変換する方法教えてください><
それと、"=?Shift_JIS?を
とりあえずこの2つ変換できたら思い残すことはないかもしれないぽ
馬鹿には無理
224 :
デフォルトの名無しさん:2012/07/11(水) 17:21:14.33
TListViewにExchangeメソッド無い??
行入れ替えどうやったらいいのかおしえてくらだ
>>222 XE2ではタイトルがそうならないみたいな気がするので分からないけど
Base64のデコードに失敗してるんだと思うので自分でデコードすればもしかしたらうまくいくのかもしれない
227 :
デフォルトの名無しさん:2012/07/12(木) 13:30:35.57
C++Builder2010でTImageを使って画像の回転をしたくて
TImageのヘルプをみるとRotateFlipらしきメソッドがあるんだけど
コンパイルするとこんなメソッド無いってエラーでるんだけど・・・
どうしたらコンパイルできます?
RotateFlipはGDI+の関数だな
DDBとDIBSection(普通のGDI)なら自分で計算して回転してやらないといかんよ
231 :
デフォルトの名無しさん:2012/07/12(木) 14:00:07.35
232 :
デフォルトの名無しさん:2012/07/12(木) 14:06:38.17
何かこれ呼ぶだけで回転はOKみたいなソースどっかに転がってないかな?
>>233 ありがとうございます。
その2つのサイト参考にアレしてみます。
ありがとうございました。
>>235 あ、これVCLライクなコンポーネント?
XE2に入るかやってみる
>>235 それのRotateBitmap使ったらできましたー!!!
C++Builder2010
しかしこれパラメータ多くてとりあえず適当に入れてやってみたんだけど
回転角に90って入れても90度になってくれないなあ
たぶん他のパラメータの指定が悪いんだとおもうけど
>>235 ああ、すんませんできました。
パラ少ない方でやったらあっさりできました^^
239 :
デフォルトの名無しさん:2012/07/12(木) 18:15:09.13
ソフトを起動した時に既に起動していたら、既に起動してるソフトに引数をわたして
後から起動されたソフトの方を終了するにはどうしたらいいですか?
よくブラウザとかそんな感じになってますが
mutex
パイプまたはメールスロットとミューテックスを組み合わせるな普通
>を組み合わせるな
組み合わせてはいけないのですね。わかりました
>>242 こらこら
具体的なソースを誰か貼ってやれ
自演ツマンネ
245 :
デフォルトの名無しさん:2012/07/13(金) 12:57:29.09
プロジェクトソースのとこで自分のハンドルを取得してメッセージ送るのってダメ?
Win32の本を読むと、あるプロセスから他のプロセスにメッセージを送る方法は
大きく分けて3つあり、共有メモリを使った通信、メールスロット、名前付きパイプ
がある。前者ほど易しいが欠点も多い。後者ほど難易度が増すが、より堅牢に
なる。前者はメッセージを受け取る努力がより要求され、後者はメッセージを
より強引に送りつけるようになるとある。
ケースに応じて使い分けろと書いてある。
相手のハンドルが判ってれば
PostMassage
SendMassage
で桶
>>247 引数ってその場合
UINT Msg, // message to post
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
これだけしか送れなくない?
コマンドラインみたいのを渡す時は使えない
massage
252 :
デフォルトの名無しさん:2012/07/13(金) 16:24:34.59
でけた^^
253 :
デフォルトの名無しさん:2012/07/18(水) 11:00:07.77
=?shift_jis?B? と "=?Shift_JIS? この形式変換する方法教えてくださあああああああ><
254 :
デフォルトの名無しさん:2012/07/18(水) 11:01:49.18
あ、まちごうた
=?ISO-2022-JP?B? と =?Shift_JIS?B? ですた^^
教えてくださ
知ってるがお前には教えない
test
257 :
デフォルトの名無しさん:2012/07/26(木) 14:42:59.26
C++Builder2010でjconvert.pasをコンパイルしたら
jconvert.hpp内の各関数の引数が全てAnsiStringからUnicodeStringに変わってしまって
正常に実行できなくなるのですが
これちゃんとhpp内の引数がAnsiStringのままになるようにコンパイルするにはどうしたらいいですか?
jconvertは2009以降に対応していないらしい
>>258 あ、なるほど、ありがとう。
じゃあやっぱ他の方法考えないとダメなんですね・・
260 :
デフォルトの名無しさん:2012/07/27(金) 10:51:24.33
教えてください
例えば
ListView->Items->Item[i]->Data = new char[256];
↑みたいにnewした場合に
ListView->Items->Clear( );するとnewしたのも自動的にdeleteされるんですか?
それともClearする前にforで回して1つづつdeleteする必要ありますか?
>>259 Delphi側でString/PCharをAnsiString/PAnsiCharに書き換えるという手もあり
>>260 勝手にdeleteされることはないので、OnDeletionイベントで処理するのがお勧め
>>261 ありがとう
Delphi側でString/PCharをAnsiString/PAnsiCharに書き換えるというのは
jconvert.pasを自分で書き換えるって事ですよね?
そう
jconvert.pasのライセンス条件に注意してね(調べてないけど)
>>263 ありがとうやってみます。
ちなみに、個人で使うだけなので大丈夫です
>>263 何かうまくいかないのですが、
Charでキャストしてるのがエラーになりますが
これは何にしたらいいですかね?
具体的に
これが実際のソース
Result[k] := Char( (dbuf[0] shl 2) or (dbuf[1] shr 4) );
CharをAnsiCharでキャストしたらとりあえずコンパイルエラーは出なくなったけど
動作させても文字が化けて以前と変わらずなもので。
ちなみに、ConvertJCode関連の関数は全てAnsiStrigに変更しました
UnicodeStringとAnsiStringの多バイト文字列の内部表現が違うからじゃないか?
黙ってコンパイルするとUnicodeStringになっちゃいますが
それをAnsiStringに変更しました
Result, dbufの型は?
dbuf: array[0..3] of BYTE;
ResultはAnsiString にしました。
なら単に
Result[k] := AnsiChar( (dbuf[0] shl 2) or (dbuf[1] shr 4) );
でいいと思うが。
>>272 たしかにそれでコンパイルは通りますが
ちゃんと変換できないのはやっぱり別の箇所に原因があるんですねこれ
どこなんだろう
コンパイラに1バイトパッチあてるとデフォルトを ANSI に戻せるよ
タスクバーをクリックしてアプリケーションに戻った時に,
最後にフォーカスがあったフォームしか表示されなく
なってしまった。
ちょっと前まで,全部のフォームが表示されたのに。
何を変えちゃったのか全然分からん。
つ git
IdPOP3->Retrieveって添付ファイルまで受信しちゃってるみたいですが
これ添付ファイルは受信しない方法を教えてください
278 :
デフォルトの名無しさん:2012/07/30(月) 18:18:33.29
スクロールボックスの縦、横のスクロールバーが出てるかどうかを判断する方法を教えてほしい
>>277 できないんじゃないかなぁ
>>278 VertScrollBar.Visibleじゃだめ?
>>279 Visibleはダメなんですよね。
アレオブジェクトインスペクタでtrueにしてても
スクロールボックスにスクロールバーが出てない状態でもtrueのままなんです
じゃあGetScrollBarInfoでSCROLLBARINFOのBarInfo.rgstate[0]に
STATE_SYSTEM_INVISIBLEが立ってるかどうかとか?
>>281 IsScrollBarVisible でできました
C++Builder2010でマウスカーソルをリソースマネージャに追加したのですが
これどうやってScreen->Cursorsにぶち込むのですか?
でけた。
2010多いな
XEとかXE2の質問がほとんどねえ
という事はXEが2010のバグ取りバージョンで、XE2がDelのみを64bit化したわけか
XE3出たら買うよ
それまで2010で我慢しろく
XE3 がでればよいね
289 :
デフォルトの名無しさん:2012/08/02(木) 10:26:06.26
MouseDownイベントでマウスボタンが押されている間マウスカーソルを変更したいのですが変更されません
マウスボタンを離したら変更されるのですが
これボタンを押してる状態でカーソルを変更させる方法を教えてください
でけた。
291 :
デフォルトの名無しさん:2012/08/06(月) 22:26:49.96
Stringgridの罫線?の色ってどやってかえるの?BuilderXE使用中です
292 :
デフォルトの名無しさん:2012/08/08(水) 16:05:43.47
jconvert.pasを2010でコード変えずにコンパイルする方法を教えて・・・
お前には無理だからあきらめろ
1.テキストファイルを読み込む
2.構造体を宣言しデータごとに格納
3.格納されたデータを表示
というプログラムを作りたいです。
1.をOpendialogを用いてできましたが2,3をどうしたら良いかさっぱりです。
詳しく解説している書籍やWebサイトなどがあれば教えてください。
C言語で書いているものはいくつかあったのですが
C++で解説しているのは見つからなくて・・・
テキストファイルの中身は
1 佐藤 175cm 70kg
2 鈴木 170cm 65kg
3 田中 165cm 60kg
のような学籍番号や氏名、身長体重が記載されているものです。
取得したテキストファイルを1行ごとの文字列として処理して、
(Lines->Strings[i]とか)
その文字列を学籍番号や氏名の区切り文字でわけて
構造体(の配列?)に順に格納していく。
それを最終行まで繰り返す。
表示は表示先しだい。
>>295 ありがとうございます。
早速LinesやStringsなどで調べてみます。
>>296 OpenDialogでテキストを何に読み込んでるかわからんけど、
TStringListやTMemoでテキストを読み込んでいろいろと処理する
サンプルなら検索すればいくらでもあるかと。
「のような事」じゃなくて、自分の言葉で書けよ。
せめてリンク先のどこまで理解できてどこが理解できないのか、
自分がやりたいこととここが違うからこうしたいとか。
何がやりたくて何がわからないのかさっぱりわからない。
300 :
デフォルトの名無しさん:2012/08/10(金) 14:12:19.46
テキストはcsv(カンマテキスト)にしてTStringListで嫁
んで、もう1つTStringListを使ってCommaTextにぶちこんでアレしろ
>>299 すみません。
OpenDialogを使用してテキストデータのパスを取得
それをTStringListオブジェクトに読み込み
1 175 60
2 180 70
のような数字のテキストデータを
それぞれ身長 体重 学籍番号 などに分類したいんです。
構造体を宣言し、格納したいのですが
どういうプログラムを書けば格納できるのかサッパリなんです。
C++Builder 2007で作成していたソフトウェアを、C++Builder XE2で開発しよう
と環境を移し変えているのですが、コンパイル時によく分からないエラーが出て
困っています。
[BCC32 エラー] Winapi.Windows.hpp(2102): E2257 , が必要
[BCC32 エラー] Winapi.Windows.hpp(2750): E2257 , が必要
[BCC32 エラー] Winapi.Windows.hpp(2752): E2257 , が必要
[BCC32 エラー] Winapi.Windows.hpp(2754): E2257 , が必要
失敗
経過時間: 00:00:01.1
これ、自分が書いたCPPファイルの最初の方や、ヘッダファイルの書き方に妙な
ところがある。
ということでいいんでしょうか?
C++Builder 2007から、C++Builder XE2への移行なんで、UNICODEへの対処に
ついては理解しているつもりですが、このエラーメッセージでは、何が何だか
分からず、とても凹んでいます。
(というか、UNICODE絡みで変なとこがあれば、デバッグで自分のソースを指摘
してくれそうなもんですが、このメッセージだと何がなんやらで・・・)
何かヒントになりそうな事でもいいので、教えてください。
よろしくお願いします。
WINVER が小さいとみた
プロジェクトそのものは新しく作ったほうがいい
306 :
デフォルトの名無しさん:2012/08/15(水) 10:36:55.85
めんどくせぇ
307 :
デフォルトの名無しさん:2012/09/25(火) 18:57:45.79
最近人気ねえなage
XE3パスする事にしたしなあ
こっちはくだすれだから。統合本スレに移動しておきましょ。
だって事実上質問はこのスレにしか来ないじゃん
本スレは荒れ放題だし
あっちは被害担当艦だろ
C++Builderをバリバリ使ってる人、手挙げて−
まず俺
∧_∧
( ゚ω゚ ) C++Builderは任せろー
バリバリC□l丶l丶
/ ( ) やめて!
(ノ ̄と、 i
しーJ
なぜ止める!
バリバリはまずいだろ。
そのまんま「バリバリ AA」でggr
312だけど、バリバリって何かと思ったら、あのバリバリか
誕生日に奥さんにポーターのバリバリ貰った俺は…
ま、場を考えて使え。って点ではおなじだな。
Boost や C++99 の話をしているところに C++BUilder 使ってま〜す。って入って行ったら
あのバリバリと同じ思いをすることになるしな。
320 :
デフォルトの名無しさん:2012/10/05(金) 07:23:14.72
C++Builder XE3 を試しに使ってみたんだけど
SDIアプリを作成して
vectorを使おうと
#include <vector>
して
vector<int> abc;
と書くとエラーになる
何がいけないんだろ
321 :
片山博文MZボット ◆0lBZNi.Q7evd :2012/10/05(金) 12:41:44.65
using namespace std;
または
std::vector<int> abc;
323 :
デフォルトの名無しさん:2012/10/18(木) 01:58:27.76
全角スペースあたりかねぇ。あとは冒頭に UTF8 BOM が入っているか。
.cfg はテキストファイルだから、からのテキストファイルでエラーが出ないことを確認したうえで
一行ずつ追加しては動作確認すれば、どの行に問題があるか見つけられるでしょう
BOMの可能性が高い。
試してに.cfgに-myoptionの行を入れてbcc32を実行すると
オプションの間違い: -myoption
と表示されるが、その部分が化けている。
テレビ番組「つまらなくなった」が71.2% 「昔は良かった」の声
投稿日: 2012年10月17日 15:00
この秋の新番組を、読者の皆さんはご覧になっているだろうか?
10月10日にスタートした『相棒 Season11』の初回2時間スペシャルの平均視聴率は19.9%
(ビデオリサーチ調べ・関東地区)となり、『相棒』シリーズの初回としては過去最高のスタートを見せた。
この他にもNHKの朝ドラ「純と愛」も初回視聴率19.9%(ビデオリサーチ調べ 関東地区)と、
前回の「梅ちゃん先生」を初回視聴率で上回る好発進を見せている。
視聴率においては好調なものも複数あれど、「最近、テレビがつまらない」と嘆く声は
メディアやネットの意見でしばしば目にすることが多い。本当に「昔よりテレビはつまらなくなった」のだろうか?
双方向のデータ通信での視聴者参加型番組や、最新技術を駆使した映像など、
テレビで表現できることはますます広がってきているはずなのだが…。
「昔にくらべて、テレビ番組は全般的にどうなったと感じますか?」という調査では、結果は以下のようになっている。
・面白くなった:6.7%
・変わらない:15.8%
・つまらなくなった:71.2%
・わからない:6.3%
(リサーチパネル調べ、17万4805人が対象)
このように、実に7割以上の人が「テレビ番組がつまらなくなった」と回答。
年齢別では、10代が55.0%と最も低く、20代66.8%、30代69.7%とその数字は上昇。
40代以上の年代はすべて7割を越えた。
http://shunkan-news.com/archives/1557
すみません。誤爆しますた。
329 :
デフォルトの名無しさん:2013/01/16(水) 15:47:32.89
C++Builder5でWindows7の64bitでMySQLをODBC経由で接続したいのですがエラーになります。
32bitなら正常に接続できます。
64bit用のodbcドライバに対応するlibとdllありますか?
ちなみにWin7 64bitにODBC32bit用ドライバをインスコしてもMySQLが出現せずに選択できませんでした
具体的なアドバイスはできないけど、アプリケーションが32bitならODBCの設定もMySQLの
ライブラリも32bitのものを使うことになる。特にODBCの設定は64bitと32bitで別々なので要注意。
多分ODBCの設定で64bitのほうを見て
> MySQLが出現せずに選択できませんでした
っていってるだけなような気がするけど…。
Windows7の64bitの場合
ODBC接続マネージャーは普通にメニューから選ぶときと
.cplファイルを直接実行する場合とで
64bit用と32bit用で違うものが開かれる
332 :
デフォルトの名無しさん:2013/01/17(木) 10:25:25.77
32bit用のMySQLのODBCドライバをインスコしてから
ODBCデータソースアドミニストレーターで新規作成をしても
リストにMySQLが表示されないんですが
32bitのODBCデータソースアドミニストレータを起動してるか?
334 :
デフォルトの名無しさん:2013/01/17(木) 11:00:56.94
管理ツールの中の
ODBCデータソースアドミニストレーター
は64bit専用
C:\Windows\SysWOW64\odbcad32.exe
が32bit専用の
ODBCデータソースアドミニストレーター
335 :
デフォルトの名無しさん:2013/01/17(木) 12:14:35.20
>>333-334 ああ・・・
管理アレにあるのを起動してました。
これ64bitのですよね・・・
ありがとうございます。
32bitのを起動してみます
336 :
デフォルトの名無しさん:2013/01/17(木) 12:26:33.17
ありがとうございました。できました!
が・・・
これ一度作ったのって構成で修正や削除ができない・・・
337 :
デフォルトの名無しさん:2013/01/18(金) 13:10:41.80
ちょっとまた質問ですが
Win7の64bit版でODBC経由はうまくいったのですが
C++Builder5がインスコされていない別のPCでやると
データベースオープン時にエラーがでたので
InstallShield Express For C++Builder 5を使ってDB関係を含めてインストーラーを作ったのですが
これをWin7の64bit版で起動すると
このファイルのバージョンは、現在の実行中のWindowsのバージョンと互換性がありません
ってエラーが出てインストーラーが起動できません・・・
C++Builder5がインスコされてない64bit版でDBを扱うにはどうしたらいいのでしょうか・・・
C++Builder2009をWin7の64bitで動かしてますよーって人はいる?
>>337 ISXの作るインストーラは16bitアプリケーションなのでx64環境にはインストールできない
(x64環境では16ビットアプリケーションは動作しない)。
InstallShield買うなりInnoSetupのようなフリー/オープンのインストーラ使うなりご自由に。
340 :
デフォルトの名無しさん:2013/01/18(金) 17:00:24.08
>>339 そうですか、ありがとう・・・
うーん、どうしよう
他のインストールシールドとかでどうやってC++Builder5のDB関係をインスコさせるのかわからないしなあ
>>340 オレが開発委託者ならキミには頼まないわん。VBでも使ったほうが良くない??
342 :
デフォルトの名無しさん:2013/01/21(月) 11:18:03.34
>>341 知らないならレスしないで下さい。ウザイだけです
Delphi Pascal Compiler
コマンドラインコンパイラdcc32は、どういう場合につかいますか?
344 :
341:2013/01/21(月) 20:40:50.34
>>341 ここにはIDでないからな。知らないで開発委託者の立場でレスはしない。
そんなことも知らないでC++を使ってるような経験値の低い開発者には
頼まないってこと。
MSがこれを入れておくと動きますよと言ってくれるVBで、といったのは
そういうわけ。
C++Builderはexeをコピーするだけで動くスタンドアロンなプログラムが作
れるのが利点の1つ。
345 :
341:2013/01/21(月) 20:52:06.09
やれやれ、アンカみすってる。で、ここは超初心者スレだったのか。
プロジェクト→オプション
パッケージタブ 実行時パッケージを使って構築 のチェックをはずす。
リンカタブ リンクの共有RTL DLLを使う のチェックをはずす。
この2つで自前でLoadするDLL以外の依存は完全になくなる。実行ファイ
ルがでかくなるって嫌う人も多いが、そりゃ32Mバイトのメモリが広大だっ
たころの話。
これでデータベースのエラーがでるならそれはどこかがバグってる。
346 :
デフォルトの名無しさん:2013/01/21(月) 21:43:56.42
347 :
デフォルトの名無しさん:2013/01/30(水) 16:46:48.89
TChartで質問ですが
Series1->YValue[n] = 123;
みたいに既に作成されているグラフのn番目に値を後から変更できますが
Series1->Add( 0, "gggg", clTeeColor );
のようにAddした際にテキストとしてAddしているのですが
このテキストを↓
Series1->YValue[n] = 123;
これみたいに後からテキストの値を変更する方法を教えてください
348 :
デフォルトの名無しさん:2013/01/30(水) 16:55:03.70
あ、ごめんでけた^^
C++Builder2010を使用しています。
スレッド間の排他制御に関して教えて下さい。
A、Bの2個のスレッドがあります。
Aで計算するデータをBで参照するだけの場合でも排他制御はした方が良いのでしょうか?
具体的にはAはループ処理でずっと計算をしています。
Bは定期的(1秒に1回とか)に計算結果をGUIに表示するだけです。
どなたかアドバイスをお願い致します。
当たり前だろ
マルチコアで変数に代入中に値を参照したらどうなる
アトミックなOS APIを使おう
351 :
349:2013/02/22(金) 00:48:14.88
>>350 有り難うございます。
排他処理実装します。
「アトミックなOS API」の検索キーを教えて頂けませんか?
あちこち見て、クリティカルセクションというのを試して見ようと思っていました。
>>351 単純な排他制御はパフォーマンスに悪影響を及ぼす事がある
クリティカルセクションは主にデバイスドライバで使用する
一番多く使うのはMutex
インターロックAPI
セマフォ
イベント
などかな
いま、同一パソコン上で、2つのWindowsアプリケーションを動作させてて、そのプロセス間通信でメモリマップドファイルを利用してファイルデータの受け渡しを行ってるんですが、一方のWindowsアプリケーションを別のパソコンへ持っていきたいと考えてます。
この場合、イーサネットで接続するようになるのですが、名前つきパイプを利用すれば同等の機能が実現できますでしょうか?
それC++Builderに関係ない話だね
Win32スレで聞いたらいいかも
あ、今荒れてるか
出来るか出来ないかで言えば出来る
メールスロットでもいいんじゃねーの
プロセス間通信でしょ
357 :
片山博文MZパンク ◆0lBZNi.Q7evd :2013/03/22(金) 23:23:20.90
無料でC++Builderを使いたい。どこにあるの?
現在は14日間のTrialのみ
360 :
デフォルトの名無しさん:2013/03/23(土) 16:33:24.75
試用期間は300日ですぞ
361 :
デフォルトの名無しさん:2013/05/11(土) 16:43:38.72
か
362 :
デフォルトの名無しさん:2013/06/29(土) 13:23:11.65
2010からXE4にVUPしたのですがプロジェクトオプションのデフォルト設定の仕方が分かりません
またパッケージを未使用にして保存してもいくつかXE4を再起動するとオンになってしまいます
(プロジェクトを保存して開き直す場合は反映されているのにXE4を再起動するとダメです)
XE3をいれてみても同じです。どうしたらいいの?
デフォルトのプロジェクト設定はXE2辺りで無くなった
便利だったのにね
ファイルに保存できるオプションセットを使えだとさ
これ、正直仕様がよく分からん
ありがとう!やっぱりそれですよね
でもパッケージの使用可否はやはり設定できないようです
365 :
デフォルトの名無しさん:2013/07/01(月) NY:AN:NY.AN
俺も
>>362と同じく2010からXE4にした者なんだけど
Releaseでコンパイルする方法がわからない・・・
以前は構成マネージャでdebugとreleaseを切り替えてたのに無くなってるので
これ何処で設定するの??
366 :
デフォルトの名無しさん:2013/07/01(月) NY:AN:NY.AN
表示メニューに移動してた・・・
何でこんな糞みたいなことするんだろ
デフォのプロジェクト保存とか勝手に無くすし
プロジェクトオプションのダイアログの一番上にあるターゲットじゃないの?
368 :
デフォルトの名無しさん:2013/07/01(月) NY:AN:NY.AN
>>367 それってたぶん、プロジェクト設定のターゲットじゃないかな、かな。
まあとりあえず解決したんだけどさ
つーか、exeでかすぎwwwwwwwwwwwwwwwwwwwwwwwwwwwww
とりあえずフォームだけのをコンパイルしてみたらexeが4MBってwwww
大丈夫なのかこれwwwwwww
以前C++Builder5でexeが肥大するバグがあってするUpdateが出たけど
何で使いもしないのも無理やりexeに組み込むんだろ
自分の所でしか動かさないのなら動的RTLの使用にチェックを入れとけば?
370 :
デフォルトの名無しさん:2013/07/01(月) NY:AN:NY.AN
DebugとReleaseを切り替えるのって
プロジェクトマネージャで1ダブルクリックじゃん
XE4すげー便利じゃん
371 :
デフォルトの名無しさん:2013/07/01(月) NY:AN:NY.AN
>>369 XE4入ってない環境で動かすから
>>370 プロジェクトマネージャ邪魔で非表示にしてるから今まで使った事ないんだよね
372 :
デフォルトの名無しさん:2013/07/01(月) NY:AN:NY.AN
これツールバーカスタマイズでアクティブ構成のアレ追加できればいいのに
プロジェクトマネージャが邪魔なら
オブジェクトインスペクタとかと同じ場所にタブにして置けばいいじゃん
タブ1クリックで切り替えられるんだからさ
374 :
デフォルトの名無しさん:2013/07/01(月) NY:AN:NY.AN
なるほど、タブでアレしたらよさげな感じになりそうですね
っていうか・・・
64bitコンパイルできるっつーからゲットしたんだけど
これプロジェクトのターゲットに32bitしか表示されないんだけど・・・
どやったら64bitでコンパイルできるんですかね??
プロジェクトマネージャ
ターゲットプラットホーム
右クリック
プラットホームの追加
376 :
デフォルトの名無しさん:2013/07/01(月) NY:AN:NY.AN
>>375 ありがとうできました・・
これプロジェクトマネージャからでしか追加できないのかなあ
めっちゃ64bitをアピールしまくってたくせに何でデフォで選択できないんだろこれwwww
フォームだけのexeで4MBは多分Builderのリンカがアホなのが原因
sensorとか使ってないRTLがてんこ盛りにリンクされてる
DelphiでフォームだけだとXE3では2.2MBくらいだった
378 :
デフォルトの名無しさん:2013/07/01(月) NY:AN:NY.AN
>>377 マジですか
むしろDelphiでもXE4にしたら4MBくらいになったりとか?
ちなみに、C++Builder1、3、5、6、2007、2010、EX4と使ってきたけど
新しいのリリースする度にどんどんexeが肥大化してってるww
まあいろんな機能が実装されてるから仕方ないんだろうけど
フォームだけで4MBは無いよなあ・・・
今やってみたら、Delphi XE4でもフォームだけで2.2MBだった。
俺の所ではBuilder XE4では3.5MBだけど何が違うんだろう?
リンカのオプションでマップファイル出力を詳細にすると何がリンクされているか分かるよ
380 :
デフォルトの名無しさん:2013/07/02(火) NY:AN:NY.AN
動的RTLのチャック入れてるとか?
381 :
デフォルトの名無しさん:2013/07/02(火) NY:AN:NY.AN
チャックって!!
チェックって脳内変換してね^^
382 :
デフォルトの名無しさん:2013/07/04(木) NY:AN:NY.AN
XE4でさ、メモリをコピーだけするのを作ったのさ
んで、64bit OSで32bitと64bitでコンパイルして速度計ったら
64bitでコンパイルした方が倍時間がかかってたんだけど、何で?
ソースさらせ
単に対象メモリサイズまで倍になってるってことじゃないだろうな
384 :
デフォルトの名無しさん:2013/07/04(木) NY:AN:NY.AN
単純にメモリコピー速度を32bitと64bitで比較するためにアレしてみただが
#define DIBBUFFERSIZE (1920*2048*4)
DWORD *Dib1;
DWORD *Dib2;
Dib1 = (DWORD *)::VirtualAlloc( NULL, DIBBUFFERSIZE, MEM_COMMIT, PAGE_READWRITE );
Dib2 = (DWORD *)::VirtualAlloc( NULL, DIBBUFFERSIZE, MEM_COMMIT, PAGE_READWRITE );
int ms = ::GetTickCount( );
for( int i = 0; i < 100; i ++ ){
::CopyMemory( Dib1, Dib2, DIBBUFFERSIZE );
}
ms = ::GetTickCount( ) - ms;
Panel1->Caption = ms;
:: VirtualFree( Dib1, DIBBUFFERSIZE, MEM_DECOMMIT );
:: VirtualFree( Dib2, DIBBUFFERSIZE, MEM_DECOMMIT );
CopyMemory が原因みたいだな
*des++=*src++
で単純にコピーすると64bitの方が速いな
386 :
デフォルトの名無しさん:2013/07/05(金) NY:AN:NY.AN
>>385 やってみた。
64bitの方が早くはならなかったが同じくらいの速度にはなった。
System::Move()とかmemcpyだとどうかな?
388 :
デフォルトの名無しさん:2013/07/05(金) NY:AN:NY.AN
memcpyはCopyMemoryと同じだった
Moveは使ってないっぽ
389 :
デフォルトの名無しさん:2013/07/05(金) NY:AN:NY.AN
Moveやってみた
forで回すのと同じくらいの速度で32も64も同じくらいの速度だった
Moveはx86だとfastcodeのアセンブラで、x64はfastcodeのpascalコードなので、同じくらいというのは
まぁそんなもんかという気はする。
::CopyMemory って WinAPI 呼ぶんじゃないの?
>::CopyMemory って WinAPI 呼ぶんじゃないの?
CopyMemory自体がWin32API
>CopyMemory自体がWin32API
じゃ遅くても仕方ないな。Win64 API 使えないのかよ。
使えねーつーるだな
さてどうしようか
またmalloc()やプリコンパイルヘッダの時みたいにユーザーが提案してきた
ルーチンを組み込むつもりなのかな
64bitネタがでていたのでXE4にVUPしてから64bitでビルドしてなかったので試してみたら3倍速位になった
デジカメのRAW現像なのでshort変数ばかり使ってるんだけどなぜ速くなったのか全くわからん
398 :
デフォルトの名無しさん:2013/07/09(火) NY:AN:NY.AN
exeのサイズは何倍になった?
32bitで3.4Mが64bitは9.8Mになってた
ランタイム不要のReleaseビルドでの比較です
2010で作成したソースをClipboardで使われているNativeUIntの部分を条件分岐追加してコンパイルしただけ
XE4 での 32bit 版の大きさも知りたいところだな
何の大きさ?チンポ?
XE4 での 32bit 版のチンポも大きさも知りたいところだな
だから32bit版の何の大きさを知りたいのさ?チンポ?
399は両方XE4です
2010だと1.2Mだった
サイズはあまり気にしないがやっぱりでかくなってるんだな
チンポ?
406 :
デフォルトの名無しさん:2013/07/10(水) NY:AN:NY.AN
C++Builder XE4でandroidアプリって作成できますか?
出来ねーよ
408 :
デフォルトの名無しさん:2013/07/10(水) NY:AN:NY.AN
雑魚は黙ってろよ
409 :
デフォルトの名無しさん:2013/07/17(水) NY:AN:NY.AN
C++Builder5で質問なんだけど
最初はなんともなかったんだけど
フォーム数が増えてきてからコンパイルするとアイコンがデフォになってしまう
その状態になっても何度も再構築してたらちゃんと指定したアイコンになる時もあったんだけど
今はもう完全に何度再構築してもデフォアイコンのまま
しかもこの現象はXPだけでWin7だとちゃんとアイコンが表示されている。
このバグを回避してちゃんと指定したアイコンになる方法を教えてくださ・・・・
GDIオブジェクト数の制限が掛かってるんじゃね?
レジストリいじって再起動かも
411 :
デフォルトの名無しさん:2013/07/17(水) NY:AN:NY.AN
レジストリどこ弄くればいいですかね?
413 :
デフォルトの名無しさん:2013/07/17(水) NY:AN:NY.AN
>>412 ありがとう。
よく読んでアレしてみます
プロセス毎に10000だよ?
Formにそれだけのコンポーネント乗っけてないよね?
415 :
デフォルトの名無しさん:2013/07/17(水) NY:AN:NY.AN
1つのフォームに1万も乗せてないですが
フォーム数は100ちょいで合計してもコンポーネント数は1万も無いかもあるかもって感じですが
416 :
デフォルトの名無しさん:2013/07/17(水) NY:AN:NY.AN
dfmファイルは116ありました。
ちなみにちなみに、浅いフォルダでコンパイルすると正常にアイコンが表示されます
と言ってもダメな時のフォルダ階層って4つくらいなんですけどね・・
ルートにフォルダ作ってそこでやると何故か大丈夫
>>416 それじゃあ
>>412やっても変わらないだろうな・・・
俺の場合はJaneStyleで多量のJPGを一気に開くと画面が崩れるので設定を変えたんだが
他の原因だな
浅いフォルダだとおk?
もしかしてパスの長さがMAX_PATHを超えてないか?
419 :
デフォルトの名無しさん:2013/07/17(水) NY:AN:NY.AN
>>417 やっぱ変わらないですか
>>418 浅いフォルダ階層だとおkですがしかし
しかし、フォーム数が少ない時やもっと深い階層で他のフォームが少ないのは大丈夫
階層深くてもフォルダ名が短いのでMAX_PATH超えることはないです256ですよね?
せいぜいあって100バイトあるかないかですね
C++Builder2009で作成したプログラムをWindows7で実行したのですが
リストビューのカラム幅を変更しようとドラッグすると、ドラッグ途中では
再描画されずに縦棒で位置を示す表示がされるだけで、ドラッグ終了で
位置が確定してやっと新しいカラム位置で再描画されます。
これは2009はWindows7をサポートしていないことが原因でしょうか?。
また2009でもドラッグ中に再描画できるようなウラ技(?)とかありますか?。
スプリッターはResizeStykeをrsUpdateにしておけば旧OSと同様に
処理されていますが、カラムの変更も同じような感じにしたいのですが・・・。
C++Builder2009なんですが、
TTreeview の LoadFromFile と SaveToFile メソッド
内部的にはUnicode だと思うんだけど、 SaveToFile で Unicode で保存まではいいんだけど
LoadFromFile で Unicode で読み込んでくれず、どうやらS-JISで読んでいるみたいなんです。
LoadFromFile で Unicode で読み込む方法か、
もしくは SaveToFile で S-JISで保存する方法があったら教えてください。
TStringList だと TEncoding で指定できるのに・・・。
overloadされたLoadFromFileが存在してない?
ないです。
E2227 _fastcall TCustomTreeView::LoadFromFile(const UnicodeString) の呼び出しに余分なパラメータがある
といわれます。
どうにも方法がないなら、TStringList→TStream系→TTreeviewでなんとかなりませんかね。
もしくは、TStringList.Text→TStringStream→TTreeviewとか。
当方Delphiかつ現在環境を用意してないので試してはいない。適当でスマソ。
>>424 TStream系に変換してみましたが、TTreeview のLoadFromStream の段階でダメのようです。
当面は原始的に各ノードに対して .StringOfChar('\t',Node->Level)+Node->Text; をTStringListに追加していって、それを保存という感じで対応しようと思います。
この方法で保存したものなら TCustomTreeView::LoadFromFile(const UnicodeString) でちゃんと読み込めましたので。
ありがとうございました。
評価式についての質問なんですが。
int a=10,b=20;
if(a+=b && a==30) { }
こういう式があったとして、これって真になるということは保証されていましたっけ?
されてない?
if( (a+=b) && a==30) { }
こうすればOK?
変態コードだけど、いいんじゃね?
C++Builder6で作られたソフトのメンテやらされているんだけど
簡単な画像処理で
Image1->Canvas->Pixels[x][y]=color;
で512*512ぶん回してるところがやたら遅いんだけど
Canvasを実メモリ配列に吸い出して
なんか処理してから
元に戻したいんだけど、どうすればいいんでしょ?
サンプルコードでもあれば教えてください。
>>428 今日も面接いってきたよ 2012年の3月から147社正社員面接しているのに採用されないよ
正社員歴2年の高卒の27だよ 福岡市に一人で住んでるよ 身長174センチ体重55キロだよ
資格は 簿記3級 秘書検定3級 ITパスポート,運転免許 モスのエクセルとワードだよ
これはネタではないよ
事実だよ
コピペでもないよ
>>428 ScanLine()で一行分ゴッソリ取ってくるのが普通じゃないの?
>>430 ありがとうございます。
VC++ばかりやってたのでVCLのメソッドがよく判っていません。
明日やってみます。
ついでと言ってはなんですが、これ以外にcanvasのイメージを一気にxy配列で取り込む方法ってありますか?
>>431 CopyRect使えばTBitmapにコピー出来るけどそんな事したいのか?
配列に取り込むには一度TBitmapに変換してからじゃないと1ドット毎に
システムコールが起きるので遅くて仕方がない
だいたいWindowsのビットマップは丸っきり前後関係が逆なのでC言語の配列とは
相性が最悪なんだよな
C<=>FORTRANで行と列を交換するtranspose()位の手間がかかる
ここはくだすれ...
歴史的に Windows BitMap の内部フォーマットは千差万別。かつ、連続したメモリブロックになっていない場合もある(あった)
ので結構めんどくさい。ひとことで言うと例外が多い。
素性のはっきりしたデータを最新の OS で動かすのであればそんなに問題ないんだけど
どんな画像でも、ちょっとふるい OS でも、となるとね...
なので一ピクセル単位のアクセスってのが、とっても遅いんだけど、まぁ安全。ってこと。
もうちょい早く処理したいなら ScanLine を使えば水平一ラインごとに読み書きできるので
たいていこちらを使う。
千差万別って、DDBとDIB Sectionの2種類しかないじゃないか
フルカラーの24bit16万色が(+8bitα値がGDI+)当たり前の今は関係ないけど、
昔は少ないVRAMにパレットを割り当てる事によって原色に近い色を出してたろ
そういうのを全部VCLに吸収して表面から見えないようにしていたので、プログラム
によってはびっくりするような結果が出ていた
そこまで考慮するかどうかで対応策も違ってくる
無視していいと思うんだけどね
×16万色
○256^3≒1677万色
439 :
431:2013/08/22(木) NY:AN:NY.AN
皆様のご親切に感謝です。
全体の内容がわかってなくての質問でした。
よく見てみると今回の質問は
ネットワークからモノクロ8ビットの画像データをメモリ配列に取り込んで
このメモリ配列の画像データを小さいウインド画面でモニタするために
color=data*0x10000+data*0x100+data;
Image1->Canvas->Pixels[x][y]=color; // これをグルグル
とやっているのを高速化したいのですがお勧めの手法はなんでしょうか?
単純に画像メモリ配列データをウインドに画像として出力したいということで
古いOSと古いマシンの対応は不要です。
勉強不足長文すみません。
ああそうだ、初めて知ったんだけど、ImageコンポーネントのPictureプロパティの
HandleからHBITMAP構造体へのポインタを得て、BITMAP構造体を
GetTObject()で取得しても、bmBitsはNULLになっちゃうのな
これどうすればいいんだろ
442 :
431:2013/08/23(金) NY:AN:NY.AN
>>440 おかげさまで何とか理解出来ました。
初歩的な質問に付き合っていただきましてありがとうございました。
>>441 そっちには入っていない
MaskHandleの方に入っている
というかわざわざカプセル化されているVCLの中身を覗いてゴニョゴニョしたいのなら
初めからMFCで書けばいいだろ
444 :
デフォルトの名無しさん:2013/08/30(金) NY:AN:NY.AN
TBitmap(もしくは、TCanvas)の2つを透過コピーするサンプルコード下さいorz
>>441 TImage->Picture->BitmapのWidthかHeightを設定するタイミングでアサインされるんでわ?
ScanLineでマスク画像の白の部分以外を描けばいいだけじゃない?
マスク画像使わないんなら設定した色以外の場合だけ描けばいいんじゃない?
AlphaFormatの事だとVCLは事情が異なるからなあ
GDI+をサポートしていないので、描画時に考慮するだけで他の動作は違うし
447 :
444:2013/08/30(金) NY:AN:NY.AN
>設定した色以外の場合だけ描けば
調べても動作させても上手くいかなかったので、そうします。
ListViewでレポート表示させている場合に、ある行にフォーカスを設定すると
その行が画面に見えてない時には見える位置まで自動でスクロールしてしまうのですが
スクロールさせないようにすることは可能でしょうか?
スクロールしてしまった後に自力で戻すしかないでしょうか?
ある行にフォーカスを設定ってSelectedってこと?
だとしたらウチではそんなことにならないんだけど…
SelectedじゃなくてFocused
設定すると点線で囲まれる
ListView1->Items->Item[10]->Forcused=true;
にしても全然スクロールしないよ。XEだけど
その行が表示されていない状態でフォーカスを設定すると見える位置までスクロールしない?
ファイラーなんかでフォーカス行が見えていない時に↑↓キーでフォーカス行を変更すると
見える位置までスクロールするのと同じことなんだけど
ListView1->Invalidate();しても移動しないよ
UpdateやRefreshは?
あと移動しないということは見えない状態のままということだよね
それで↑↓キーをどっちか押すと見える位置まで移動する?
いろいろ試してみた結果 「Forcusedをtrueにしたから」 というわけでもなく
再描画されたタイミングでフォーカス行までスクロールされているみたい
あと仮想リストビューを使っているのでその辺も違いがあったかもしれない
リストのデータを更新してCountに件数をセットしたタイミングでスクロールされていた
(フォーカスを設定していたタイミングではなかったので、ここで勘違いしてた)
なのでCountに件数をセットする前に表示されている一番上の行番号を退避しておいて
件数をセットした後でまた元の一番上の行番号が見えるように戻してやることで解決したっぽいです
ここまでお付き合いして情報を寄せて頂きありがとうございました
C++Builder6のIDEについて質問です。
IDE使用中にパソコンがフリーズしたことがあり、それ以来エラーが出るようになりました。
エラーのメッセージは下記リンク先と全く同じです。
http://www.functiont.info/diary/200509.html 2005年9月18日(日) Delphiの本体でエラー?
--
モジュール 'vcl60.bpl' のアドレス 40110C48 でアドレス 00000018 に対する書き込み違反がおきました。
モジュール 'coreide60.bpl' のアドレス 0052700C でアドレス 000000B4 に対する読み込み違反がおきました。
私の場合は一応は使えるのですが、IDEのメニューで「開く」から別のプロジェクトを開くと
この上のエラーメッセージが出ます。そして検索やコンパイル結果が表示されるウィンドウが
ドッキングから外れて浮いた状態で小さく表示されます。この後このウィンドウを
ドッキングし直せば以降は普通に使えるのですが、また別のプロジェクトを開くと
同じ事象が発生します。
またこのウィンドウをドッキングから外したりして弄っていたら下のエラーメッセージが出ました。
リンク先では再インストールで直ったとあるので、修復インストールや、アンインストール後に
インストールし直してみたりしたのですが改善されませんでした。
ファイルが壊れたのなら上書きで直りそうですが、何かゴミデータでも残っているのでしょうか?。
そのウィンドウの位置やサイズ情報を読み込んで変な位置に表示しようとしてエラーが出ている
ようにも思えるのですが、何かお心当たりのある方いらっしゃいますか?。
レイアウトファイルぶっ壊れてるんじゃね
デスクトップレイアウトとデバッグレイアウトを上書き保存したらどうだろうか
レスありがとう。
「標準」という名称でデスクトップの配置を保存してみましたがやはり上のメッセージが出ますね。
また 表示→デスクトップの配置→標準 という感じで保存した名称「標準」を選択しようとしても
同じエラーメッセージが表示されて選択できず <未指定> にチェックが付いたままになります。
この配置の読み込みでエラーが出るということはその辺に問題点があるということなのでしょうけど
一体何を読み込んでしまっているのだろう・・・。
保存すると 標準.dst というファイルが作成されましたが、同じフォルダ内にある bcb.dsk と見比べて
みればいいのかな?。 dsk ファイルも散々書き換えて試したのですが、やはりこの辺を徹底的に
調べるしかないか。
C++Builder6なので同じような項目を探してみたところ以下のような箇所を見つけました。
[HKEY_CURRENT_USER\Software\Borland\C++Builder\6.0\Session]
"DesktopName"=""
"RuntimeDesktopName"=""
現状では空欄になってますけど、これに各々 Default Layout と Debug Layout って入れるということなのかな?。
古いパソコンにもC++Builderを入れてたので(こちらは問題なく動く、けどパソコンが非力)
レジストリを見てみましたがその2つの項目自体が無いですね。関係ないかもしれないです。
>>459 で「標準」という名前でデスクトップ レイアウトとデバッグ時のレイアウトを作ったので
その時に追加されたのかもしれない。そして症状が変わらなかったため削除したので
空欄になってるだけみたいです。
参考にならないかも知れないですがXE4ではこうなっています
[HKEY_CURRENT_USER\Software\Embarcadero\BDS\11.0\Session]
"RuntimeDesktopName"="Debug Layout"
"DesktopName"="Default Layout"
XE2で、エントリーポイント(WinMain)があるファイルの
USEFORMマクロの上に気が付いたら空行を
どんどん追加されてるんだけど、これどうにかならないの?
C++Builder2009Proを使っています。
.pas ファイルをコンパイルしようとしているんですが、Indy系のファイルが見つからないとしてエラーになってしまいます。
>[致命的エラー] F1026 ファイル 'IdBaseComponent.dcu' が見つかりません
cppのC++で書かれたフォームにIdHTTPを貼り付ける → コンパイルは通る。
pasのDelphiで書かれたフォームにdHTTPを貼り付ける → 上記のエラーが出る。
C++Builder2009に付属のdccコンパイラはお試し的なもので本格的にコンパイルできるようにするにはDelphi買えってことなんでしょうか?
それともなにか方法があるんでしょうか。
(まあC++BuilderだけでDelphiも利用できたら分ける意味が無いなとは思うのですが)
>>466 Delphiユーザーですが、IdBaseComponent.dcuが存在するならば
そこへのライブラリパスが適切に設定されていないのでは?
という気がします。
Delphi糞ユーザーは口をはさまないで下さい。うざいだけです。
>>468 お前どこでも荒らしてるな
DelphiもC++Builderも持ってない癖に
触らないほうが…
エンバカってバグ取り=アップデート(要お布施)ってこと?
XE6が出ても、新規では10万するのかな
リリースビルドの設定でパッケージを含んで動的リンクさせないような設定にしたいんだけど
毎回プロジェクト作るごとに設定するの面倒だからデフォルト設定にしたいんだけどそう言う設定ないの?
よくわからんけど。
「プロジェクト」->「オプション」メニューから設定してない?
「ツール」->「オプション」から設定すればデフォにならない?
ビルドの設定はわからなかったけど、フォーマッタって言うの見てたら
ソースの成形っていうメニューがあることを初めて知って設定して実行したらいい感じになった
VSだとある程度自動だけどこれいいな
>>472 どのバージョンを使ってるのか分からないけど
プロジェクトのデフォルト設定はXEまではあったが、XE2からは廃止された
XE2からはオプションセットにプロジェクト設定を保存して、それを適用しろという事らしい
476 :
デフォルトの名無しさん:2013/10/17(木) 11:29:53.79
Builder XE4でNMSMTPってみつからないんだけど?
なくなった?
Indy使えってこと?
NM*とはずいぶん古いな。とっくに作ってた会社もなくなってる。Indyでどうぞ。
入力補完でキャストすれば行けるのに出てこない候補とかあるんだけど
設定とかあるの?
あ、XEです
480 :
デフォルトの名無しさん:2013/10/23(水) 11:10:01.90
XE4ってデフォでAPIがWCHARになってるんだけど
WriteFileって引数はWCHARで通るのに書き出されたファイルみると
ちゃんとなってない・・・
アスキーの"123"ってかきたかったのに"1 2 3 "ってなっちゃうんだけど
これcharでやろうとしたら逆にエラーでるし
どうしたらWCHARでちゃんとWriteFileでファイル作れますかね?
481 :
デフォルトの名無しさん:2013/10/23(水) 11:21:58.49
あれ?
試しにサイズにsizeof(WCHAR)かけたらちゃんとかけた
lstrlenは文字数を返してるけどWriteFileのサイズってバイト数のままかこれ
でもサイズが半分しか指定してなくて何でWCHARの2バイトのままかかれるのかwからん
内部は全部ユニコードだから
483 :
デフォルトの名無しさん:2013/10/23(水) 16:46:48.23
XE4で質問
ソフトを起動してからボタンを押すとメインフォームのVisible=falseにしたらフォームが消えるんですが
コンストラクタでやっても消えてくれません。
Application->ShowMainForm = false;
これやっても消えてくれません。
起動時にどうやったらフォーム非表示で起動できますかね?
ApplicationEvents配置して、OnActiveイベントに記述
>>480-481 BOOL WriteFile(hFile, lpBuffer, nNumberOfBytesToWrite, lpNumberOfBytesWritten, lpOverlapped)
HANDLE hFile; /* 書き込み先のファイルのハンドル */
LPCVOID *lpBuffer; /* ファイルに書き込むデータのアドレス */
DWORD nNumberOfBytesToWrite; /* 書き込むバイト数 */
LPDWORD lpNumberOfBytesWritten; /* 書き込まれたバイト数のアドレス */
LPOVERLAPPED lpOverlapped; /* 重複I/Oに必要な構造体のアドレス */
これでしょ?
引数は
LPCVOID だからもとからバイト数だよ。
だよな
487 :
デフォルトの名無しさん:2013/10/24(木) 05:28:10.04
MainFormが表示されてから、表示を消さないといけない
MainFormが表示される前のタイミングで、表示を消しても無意味
ノーマルなやり方は
MainFormのOnActivate()イベントで、消すのが普通だろうな
どういうのを作りたいのかよくわからんがフォーム自体いるのかね
消えたまま起動して後からまた表示させることもあるんかな
トレイに入れておくとか、あるいはバックで動かしたいのか
フォーム使わないなら最初から無いまま作ればいいんだし
まあ、オプションの自動生成フォームから、MainFormを外せばいいんだけどね
>>489 それやると次は、「プログラムを起動しても何も起きません」ってなるんじゃね?
>>483 フォームの〜.cppじゃなくて、プロジェクト名.cppのRun()の前で
Application->ShowMainForm = false;
やるんじゃないの?
Application->ShowMainForm = false; はコンストラクタでおk
>>483で、
> ソフトを起動してからボタンを押すとメインフォームのVisible=falseにしたらフォームが消えるんですがコンストラクタでやっても消えてくれません。
> Application->ShowMainForm = false;
> これやっても消えてくれません。
って書いてあったから流れ的にコンストラクタで Application->ShowMainForm = false; やっても消えないという意味だと解釈してしまったが
質問者は コンストラクタで Visible=false しかやってないってことなのか。
>>493 自動生成のフォームのコンストラクタはもとからRun()の前だよ。
コンポーネント作ってるんだけど、ファイル名を格納するStringで
オブジェクトインスペクタにファイル選択ダイアログを表示させるボタンを表示させたいんだけど
どうやったらいいのでしょうか
プロパティを文字列型じゃなくてTFileName型に変えたらどう?
あら。ごめん。俺あんま経験なくてw
なんか、プロパティエディタ登録すればいいらしいんだが、
DesignIntf.pasやDesignEditors.pas,VCLEditors.pasのデフォルトや標準のエディタが
登録されてて、これで間に合わなければ自分で作るらしい。
登録にはRegisterPropertyEditorとかいう関数で。
って、俺じゃあれだから、プロの意見の待った方がいいな。
VCLEditors.pasにTMPFileNamePropertyというTMediaPlayer用の
File Open Dialogを表示するプロパティエディタがあるから、これを真似れば
いいんじゃないかと思う。
初歩的な質問ですみません。
for文やwhile文などでくりかえし処理をすると,繰り返しの回数が99回目までは問題ないのですが
必ず100回目で「sqrt domain error」が必ず出ます。
数値を色々変えてみても必ず起きます.
ssqrt domain errorはルートの中身が負のときでるエラーだと思うのですが
それ以外に出る原因はありますか?
そう言う場合はまず作ってるプログラムから離れて間違っているのか確認してから
そうでは無いなと確信してから自分のプログラムを疑う物ですよ
>>501 √に入れる変数にunsigned入れたらいいんじゃね?
何でもassert
デバッグすればいいだけじゃん
ループの100回目でブレークポントを張って
変数の値を確認すればよい
スタックでも壊してたりしてな
507 :
デフォルトの名無しさん:2013/11/05(火) 17:38:05.77
void __fastcall TForm2::ButtonWRClick(TObject *Sender)
{
char *tmp;
CamRegInfo ci;
ci.devaddr = 0xba; // dev addr
unsigned short val[3];
int addr = 0;
int data = 0;
tmp = strdup(EditAddr->Text.c_str());
sscanf(tmp,"%02x",&addr);
free(tmp);
tmp = strdup(EditData->Text.c_str());
sscanf(tmp,"%02x",&data);
free(tmp);
ci.devaddr = addr;
ci.data = data;
USBWriteData((unsigned char *)&ci,6,0x07); // to I2C Controller
}
2010年くらいにいただいたビルダーのサンプルプログラムを今,実行しようとしていますが
[BCC32 エラー] Unit2.cpp(204): E2034 'wchar_t *' 型は 'const char *' 型に変換できない
[BCC32 エラー] Unit2.cpp(204): E2342 パラメータ '__s' は const char * 型として定義されているので wchar_t * は渡せない
というエラーがtmp = strdup(EditAddr->Text.c_str());に出ます.
調べるとこうするとエラーが取れました.tmp = strdup(AnsiString(EditData->Text).c_str());
しかし,新たに[ILINK32 エラー] Fatal: ファイル 'K.OBJ' を開けません
というエラーが出て困っています.
それは困りましたね。
Unicodeの意識が無さ過ぎ
511 :
デフォルトの名無しさん:2013/11/06(水) 10:14:53.13
>>511 オマエのクソレスの方が何の役にもたってないことに気付けボケ
仮想デストラクタをcppに書くと必ず、
「ここには記憶クラス"virtual"は指定できない」ってエラーが出るんだけど
どうしたらよいの?
>>513 ヘッダに宣言書いているでしょ?
CPPに書くデストラクタの本体には virtual はつけない。
~~~~~~~~~~~~~~~~~~
もしCPPに書いているのがclass宣言で、その宣言に virtual をつけるのはOK
もしそのようにしているのに怒られると言うなら具体的にコードを書いてみて
>>514 ありがとう!ヘッダに宣言書いていました
System.DateUtils.hppをインクルードすると、
W8058 ヘッダーに初期化データが含まれているためプリコンパイルヘッダーを作成できない
ってエラーが出るのは、回避不可能なの?
>>516 そんなのしょっちゅうだよ
インライン展開はほんとうに控えめだし
継承される可能性のあるクラスは、仮想デストラクターを置けって言うけど、
ヘッダーファイルに↓の置いておくだけでよいの?
virtual __fastcall ~TSample();
>>518 それでもコンパイルエラーは出ないけど、いざ実行されるとランタイムエラーが出るんだっけ
確かそんなはず
>>519 特にエラーは何も出ずに実行できるのだが
>>518 本体(デストラクタの実体)がないからエラーになるはずだけど
[ILINK32 エラー] Error: 未解決の外部参照 '__fastcall TSample::~TSample()' が x:\xxx\xxxx\xxxx.OBJ から参照されました
宣言したけど使っていない場合はエラーも出ないし実行に支障はない
これはメンバ関数も同じだよね
ヘッダーに書きたいなら宣言にあわせて実体も書いておくものじゃないだろうか。
virtual __fastcall ~TSample() { }
抽象クラスでの純粋仮想デストラクタを考慮するなら
virtual __fastcall ~TSample() = 0;
になるだろうし。
仮にその(
>>518)宣言で問題にならないにしても、継承したクラスで問題起きるかもしれないから書いておいたほうが無難だとは思う。
アプリの起動時に、しなきゃならない処理がたくさんあるんだけど
(INIファイルの読み込みとか)
メインフォームやスプラッシュフォームのコンストラクターとかに
書くと気持ち悪いから、アプリケーション初期化関連のメソッドを
並べたクラスを一つ作って、メインフォームのコンストラクターから
インスタンス作って全部やらせるのって、汚いやり方?
1つの仕事を順番にやるだけのクラスになるんだけど。
>>521 これだと、"純粋関数定義の構文が正しくない"と怒られてしまうのだけど。。
virtual __fastcall ~TSample() { }
>>522 別の関数作ってそこにたくさんの処理を書いてコンストラクタからその関数を呼び出すだけじゃだめなの?
>>523 そのエラーがどういう状況で発生するのか良くわからないのでお役に立てない感じ。
どういうクラス宣言しているのかちょっと気になります。
>>524 ありがとう。
>
>>522 > 別の関数作ってそこにたくさんの処理を書いてコンストラクタからその関数を呼び出すだけじゃだめなの?
メインフォームに関係ない処理を、メインフォームクラスに置くのは気が引けて。。
>
>>523 > そのエラーがどういう状況で発生するのか良くわからないのでお役に立てない感じ。
> どういうクラス宣言しているのかちょっと気になります。
ごめん。IDEを再起動してみたら、普通にコンパイルできた。謎だ。
共通なグローバルな初期化はメインのデータモジュール作って、データモジュールのコンスタラクタとかでやれば??
で、各フォーム特有の初期化は各フォームのコンストラクタでやる。
「プロジェクトオプション」の「フォーム」で指定する作成順序はメインデータモジュール->メインフォームの順で。
俺はだいたいそうやって作ってるけど。
大抵、データベースアプリとかで、グローバルな接続コンポはデータモジュール作って、そこに置くように、
その延長でそうしてる。
>>526 TSQLDataSetとかTSQLConnection とかでなく、
自作のクラスを包含させるっていうこと?
ド素人で申し訳ない。。
まず、データモジュールってコンポーネントはしってるんだよね??
グローバルな設定の初期化(終了化)するタイミングはデータモジュールのコンスタラクタ(デストラクタ)なわけで、
後は、君が書いたクラス次第でしょ。ここが何をして、どう使うクラスになってるのか全く想像できないから、
どう説明したらいいか・・
えらそうに言わないでください
それか、
>>572はこういうことか。
もちろん、君のクラスはTComponent派生して、別にIDEに登録して使うわけじゃないと思うから、
TSQLConnectionみたく、IDEから貼り付けできないけど、そのクラスがインスタンスが
アプリの開始から終了までずっと、
存在する必要があるなら、データモジュールに、フィールド(プロパティ)を追加して、データモジュールの
コンストラクタ(デストラクタ)で作成・破棄してもいいし。そこはやっぱ、君のクラスが何してるか、どう使うか次第・・
>>528 > まず、データモジュールってコンポーネントはしってるんだよね??
知らないんだ。リファレンスを見たところ、別のコンポーネントを一括管理するのかと思っているのだけど。
WinSocketの初期化、INIファイルのロード、各種スレッドの起動等を
メインフォームの表示前に終わらせてしまうのが目的。
元々やろうとしてたのは、この各処理を順々にやっていくパブリックメソッドを持った
アプリ初期化用クラスのインスタンスをメインフォームクラスで生成して、
そのメソッドをコールしようと思っていたのだけど。。
>>リファレンスを見たところ、別のコンポーネントを一括管理するのかと思っているのだけど。
そう、それで、別にコンポーネントのためだけに使わなくてもいいわけで、そこに、グローバルなコンポーネント以外にも、
自作のグルーバルなクラスのインスタンスをプロパティ経由とかで、外部に公開してもいいわけで。そこはご自由にと。
>>元々やろうとしてたのは、この各処理を順々にやっていくパブリックメソッドを持った
>>アプリ初期化用クラスのインスタンスをメインフォームクラスで生成して、
>>そのメソッドをコールしようと思っていたのだけど。。
これをそのまんま使うなら、インスタンスの生成とメソッドコールを単にデータモジュールのコンストラクタに移動するだけ終わりじゃ?
>>522でキミが 「メインフォームやスプラッシュフォームのコンストラクターとかに書くと気持ち悪い」と言ったコードを「データモジュール」のコンストラクタに書けばいいんだよ。
データモジュールは、C++Builderのバージョンがわからないのであれだけど、
自分のものは 新規作成→その他→C++Builderプロジェクト→C++Builderファイル にある
データモジュール自身にそれらを実行する関数を持たせて「別の関数作ってそこにたくさんの処理を書いてコンストラクタからその関数を呼び出す」ってのでもいいけど。
クラス名は TDataModule ね
説明不足で本当に申し訳ない。
汚いやり方とか、気持ち悪いとか言ったのは、
クラス名を動詞にするなとか、データがなくで振る舞い(メソッド)だけのクラスは良くないって
CODE COMPLETEやら、ほかのWEBサイトに書いてあったからなのです。
そういうクラスを作ること自体が、オブジェクト指向と外れているのではないかと。
537 :
535:2013/11/11(月) 21:01:01.58
>>536 物凄くよく分かりました!ありがとうございます!
参考に一度実装してみようと思います!
538 :
デフォルトの名無しさん:2013/11/12(火) 15:12:44.63
>>510 リンクありがとうございます.
一通り目を通しましたが,解決方法がわかりませんでした.
どの辺を特に見たらいいですか?
シングルトンデザインパターンで実装すると、
マルチスレッド アプリケーションのコンストラクタでローカル静的変数を使うことは危険です
という警告が出るのですが、どう危険なのでしょうか。
初期化コードが複数回あるいは同時に実行されることがある、という
542 :
539:2013/11/12(火) 18:39:32.34
ありがとうございます。
マルチスレッド化する前にインスタンスが作られるのであれば、
#pragmaで消しても大丈夫な警告なのでしょうか?
遅延生成をやめれば問題はない
544 :
539:2013/11/12(火) 20:26:11.82
>>543 分かりました。ありがとうございます!
それから、関係ないのですが、クラス名の1文字目の"T"って何の略ですか?
"TApplication", "TForm", "TThread", "TCheckBox"等の"T"です。
昔、OWLを作った人がTypeのTだと明言してた
546 :
デフォルトの名無しさん:2013/11/13(水) 16:44:57.65
XE4でTChartなくなった??
発見できないんだけど
547 :
デフォルトの名無しさん:2013/11/13(水) 16:48:41.81
あ、あったわ。
変なタブに潜んでた
まあしかしお前等ってほんと糞の役にも立たないゴミ虫だよなww
548 :
デフォルトの名無しさん:2013/11/14(木) 00:53:54.22
TurboApplication、TurboForm、TurboThread、TurboCheckBox。
XE4の品質は超クソだな
さすがにXE3から数ヶ月で出ただけのことがあるわ
で、このクソ品質を修正しただけのXE5に更新するには\40,000-って
どんだけクソな会社なんだよ…
今に分かった事じゃないんだけどさ
ボーランド時代は安くて痒い所に手が届く使い勝手の良いコンパイラを提供してくれていたのだが
それに無理があったからボーランドは手放したんでしょ?
とりあえず今のC++ XE4 Update1で発生する不具合
・ビルド時にsaveMemのエラー?でコンパイラが起動出来無くなる事がある
・インクリメンタルリンクを有効にしているとビルド後のバイナリ起動時にDelayLoaderのエラー発生
・突然プロジェクトファイルに不正なタグが書込まれる ProjectExtensions問題 XE2から
・デバッグ実行のプロセス起動時にアプリケーションエラーでIDEごと落ちる
こんなにクソなんです
QCに入れたって日本人担当者とさんざん英語でやりとりした挙げ句、
再現出来ずだしな
可哀想に。
あの「日本人担当者」はボランティアなので多くを期待するな
QC 入れるときに 「高橋さんはコメントしないでください」
って一文入れとけばいいと思う。
552 のバグレポートって、何番?
現象が再現しないってのはよくあることだわな
ちゃんと、再現性があるなら
その再現条件を明記しないからだろ
再現しないのは、特殊環境下でしか起きないこともあるしな
あるいは自作プログラムのバグが悪さをして不安定になってるとか
自分が遭遇したBuilderのバグは、ぐぐればまず間違いなく同じ現象が出てくるわ
それは甘え。
特殊なのは高橋さんのほうかもしれないしな
それは言いがかりに近いな
「再現できない」ってのは「バグがない」ってことではないのだよ
「テストケースエラー」でもない。
言いがかりをつけているのはどっちかな
キミだよ
558 支持。
言いがかりだよ
BCB6で32bitアプリを作る時にはどうすれば良いんでしょうか。
16bitしか作れないんでしょうか。
64bitアプリの間違いか?
BCB6ならすでに32bitアプリなんだが。
何か作ったexeが16bitになってるんですが、どうしたらよいんでしょうか
ああ、バージョン情報を含めるをチェックしたらバージョン情報が出てきました。
マイクロソフトのサイトに、exeファイルを右クリしてバージョン情報が出てこなかったら16bitアプリって
書いてあったんですが、右クリで出てきたので32bitなんですかね。
32bitになってました。どうもありがとうございました。
>>565 それはMSのアプリに限っての話だろう。
32bitアプリはバージョン情報を含める事も含めない事もできる。
16bitアプリはバージョン情報を含める事ができない。
MSは自社アプリには必ずバージョン情報を含めるからバージョン情報が出ないなら16bitアプリっていう判断なんだと思う。
あとMSでなくても市販のアプリは基本的にバージョン情報含めているから同じ。
個人開発だと必ずしも含めているとは限らないからその判定法は成立しない。
と、そういうことなんだと思う。詳しくは知らないのだけど。
>>567 の素晴らしい考察に感動したっ!!
そして
>>562 のあまりのお粗末さにも感動したっ!!
でさ、みんなちゃんとバージョン情報付けてる?
どうでも良いツールなんか手抜きしてバージョン情報付けなかったりするけど、
>>562に16bitあぷりでつか?って言われちゃうのか
初心者版で初心者かもしれない人に何いってんだか・・
XE2以降ではバージョン情報の設定機能はダメダメになってるよね
プラットフォーム別にバージョン情報を別に出来るって言うのは理解できるけど、
そのおかげで全ビルド構成で別々にバージョン情報が作られてしまう
「ビルド番号を自動更新」にすると、DebugとReleaseで別々のバージョン情報になってしまうという…
一体全体どういう連中が作ってるんだろうか
XE2を使っています。
プロジェクトマネージャのウインドウで、各ユニットのフォルダ構造が
表示されていますが、この中でユニットになっていないものがあります。
(+ボタンを押すと、開くようになっていない)
プロジェクトファイルで、DependentOnタグが付いていないユニットが
該当するようなのですが、このタグを直接プロジェクトファイルをいじらずに
付ける方法はございませんでしょうか。
そこまで分かってるんならプロジェクトファイル直接書替えればいいじゃん?
あとは一度プロジェクトからソースを削除してもう一度追加してみるか
はっきりとは分からんけど、ヘッダファイルのインクルードガードのマクロ名で
ユニットになっているかどうかを判定しているように思えた
>>572 ありがとうございます。
プロジェクトから削除〜追加でユニット化されました。
インクルードガードのマクロ名で判定しているのは確かだと思います。
そのため、#pragma onceが使う機会を持てません。
> 16bitアプリはバージョン情報を含める事ができない。
含める事ができないんじゃなくて、32bitWindowsからは「16bitアプリのバージョン情報」は読めない(バージョンタブが表示されない)ってだけかもしれないな。
最近、XE2でコンパイルすると
[ILINK32 警告] Warning: プロジェクト名.ilc 0x00010000 / 0x08000000
[ILINK32 警告] Warning: unknown heap name : 0x08000000 / 0x08000000
[ILINK32 警告] Warning: エラーが検出されました(LME286)
[ILINK32 警告] Warning: インクリメンタル リンクを実行できません -完全リンクを実行中...
[ILINK32 エラー] Error: リンクを実行できません。
とか表示されてしまうのだけど、何故?
576 :
575:2013/11/20(水) 09:11:06.26
ちなみに、PCを再起動するとコンパイルできるようになる。
IDE自体の再起動ではダメ。
XPじゃないのか?
XE3SP1だったかSP2はそれで動かなくなってたな
LME286でぐぐるとなんかあるっぽいが
>>575 Avastとかのアンチウィルス常駐してるなら一時的に無効にしから起動して作業しないとダメだよ
Avastが疑わしいexeとか強制でフックしちゃうから異常動作連発する
581 :
デフォルトの名無しさん:2013/11/29(金) 18:01:14.70
DriveComboBoxでデフォルトドライブの変更方法教えて
DriveやItemIndexを弄っても全然変わってくれない
>>581 Drive プロパティに代入するだけで変わるけど。
wchar_t 型だけど char 型で代入しようとしてない?
Enabled プロパティとか false になってない?
何かiOSアプリの開発ができるようになるらしいが
BCB6で、リッチエディットの上にマウスが乗った時のマウスカーソルを変更するのは
どうしたら良いんでしょうか 右向きの矢印が出ます
リッチエディットのCursorをオブジェクトインスペクタで変更しておけばいいんじゃ?
マウスカーソルの変更出来ました。ありがとうございました。
587 :
デフォルトの名無しさん:2013/12/02(月) 17:27:08.37
TImageで質問
ストレッチがtrueで
Image1->Picture->LoadFromFileで画像を表示させて
Image1->Widthを変更して再度表示させても以前のサイズのままで
更に読み込むと指定した大きさになるんですがこれすぐ正常なサイズで表示するにはどうしたらいいんですか?
Image1->Picture=NULLにしてもすぐには変わってくれなかったです
>>587 Image1->Picture->Bitmap->Height = height;
Image1->Picture->Bitmap->Width = width;
がいるんじゃないかな。
589 :
デフォルトの名無しさん:2013/12/03(火) 14:45:38.60
590 :
デフォルトの名無しさん:2013/12/03(火) 14:56:18.60
ダメでした(´・ω・`)
591 :
デフォルトの名無しさん:2013/12/03(火) 18:12:27.49
できますた( ´∀`)
592 :
デフォルトの名無しさん:2013/12/06(金) 13:37:24.07
TJPEGImageでjpgを早く読む方法教えて
何かVBとか画像データの検証をオフにしてロードしたら早くできるみたいなんで
これにそういうのあったら教えてほしいですです
Form1.cpp の中で
自分で作った関数や変数の宣言をするのと、
Form1.h の中のprivate: や public: の所で
自分で作った関数や変数の宣言をするのでは、
メモリ使用量やプログラムの大きさ等が何か変わってくるのでしょうか。
オブジェクト指向プログラミング勉強してこい
595 :
デフォルトの名無しさん:2013/12/09(月) 09:23:14.60
>>593 ヘッダに書くと小さいコードだとインライン関数になるか
メモリー使用量やプログラムの大きさは大きくなるけど速度は速くなる傾向。
>>594 オブジェクト指向プログラミングはあまり関係ないような気がする。
スモールトークにもJavaにもC#にもヘッダーファイルの概念は無いから。
596 :
594:2013/12/09(月) 10:32:01.94
エスパー検定勉強してこい
598 :
デフォルトの名無しさん:2013/12/09(月) 13:21:54.02
>>596 そういう意味か!!
てっきり、インライン関数かそうで無いかだと思ったよ。
すまん。
オブジェクト指向はメモリやプログラムの大きさの事を考えて設計する方法では無い
そもそもオブジェクト指向勉強してこいとか、質問の答えにさえなってない
600 :
594:2013/12/09(月) 14:42:09.84
じゃ質問に答えてやれよ
スレッドのExecute()内で、StringGridを動的生成しようと
以下の様にしました。
TStringGrid *SG = new TStringGrid(this);
[BCC32 エラー] Get.cpp(103): E2285 'TStringGrid::TStringGrid(Get * const)' に一致するものが見つからない
エラーの意味が分からないのですが、
スレッド内で動的に生成してはいけないのでしょうか?
アドバイス頂けると助かります。
スレッドのクラス内でthisでいいの?
>>602 this はおまじないだと思っていました。
調べても良く分からないのですが、
空の StringGrid を作るには this の代わりに何を指定すれば良いのでしょうか?
作成したStringGridを貼り付けるGridFormを指定しましたが、
コンパイル時にエラーは出なくなりましたが実行時エラーが発生します。
TStringGrid *SG = new TStringGrid( GridForm );
Execute内でStringGridの動的生成って、ダメじゃないけど豪快だな
Synchronize()とか使ってメイン側で更新する必要があるので、あまり意味がないことが多々ある
スレッド側で必要なのはStringGridではなく文字列の配列だったり、
スレッド生成時にStringGridも生成すれば十分だったりしないかな?
605 :
601:2013/12/12(木) 15:34:49.14
有り難うございます。
やっぱり余りやらない方法なんですね。
経緯を話しますと現時点では、スレッド内からSynchronize()を使って
StringGridのテーブルを更新しています。
このSynchronize()を使った更新処理が重くてなんとかならないかと考え試行錯誤しています。
Queue()を使った方法も試したのですがStringGridがたまにちらつくのでイマイチでした。
(DoubleBufferedはtrueにしてあります。)
次に、StringGridの更新はスレッド内からしか行わないので、
StringGridをスレッド内で生成すれば、StringGridの所有権がスレッドになり、
Synchronize()しなくて済むので、
早く(並列)なるのでは無いかと考えて今に至ります。
勘違いしている点やアドバイスがあればお願い致します。
TStringGrid(Get * const)
なんだから、テキストファイルとかを渡すんだろ
更新処理が重いなら間引くべきだと思うよ
毎回更新する必要があるなら、それは並列化できない、つまりスレッド化の意味がない
608 :
601:2013/12/12(木) 17:13:53.53
有り難うございます。
間引く方向で検討したいと思います。
有り難うございました。
スレ違いだけどこの仕様、C#でも受け継いでいて本当クソだと思うわ
ヘジたんこういう所はダメなのね
>>605 アプリケーション内で使うStringGridはそのひとつなんでしょ?
ただ更新はスレッド側からのみ、メインでやると重くなる、という理由ってことだよね?
重くなるというのが、更新処理中に他のメッセージを処理しなくなりGUIが応答しなくなることを言っているのだろうか?
それとも単純に更新処理に時間がかかるという意味だろうか。
前者でCPUバウンドな更新処理なら TStringGridには Cols プロパティ(TStrings*)や Rowsプロパティ(TStrings*)というのがあるので、
スレッドに TStringList を用意しておき必要な更新処理をすべてこのTStringList に対して行う。
TStringGrid への反映は Synchronize()で Cols プロパティや Rowsプロパティでスレッドの TStringList をAssign してあげればいいんじゃないだろうか。
極力 Synchronize() での処理はデータのコピーにとどめておけばいいと思う。
前者で演算よりもGUIの更新自体(例えば大量の Cells プロパティを更新するなど)が多いなら、
更新処理の合間に適度に TApplication::ProcessMessages を入れてあげればいいと思う。
後者で、単純に更新処理に時間がかかるというなら、更新処理を見直せとしか。
あとStringGridの所有権が誰だろうと、可視コンポーネントはWindowsメッセージによって(つまりメインスレッドで)制御されているのでSynchronize()しなくて済むということはないよ。
611 :
デフォルトの名無しさん:2013/12/12(木) 19:09:59.46
Application->ExeName が化けてるんだけど
Win32のフォルダんとこが.\\.とかなってるし
これちゃんと取る方法おしえてくださ
C++BuilderXE4
C++11から本格的にマルチスレッドと同期サポートが入ったから、案外行けるかも
あ、VCLはObject Pascalで書かれてるんだっけorz
.NETも4.5からAsync入ったしうかうかしてると横取りされちゃうぞ
BCB6でデバッグの時にF12キー押したら出てくるCPUウインドウを出さないように出来ますか
CPUを外してください
そうすれば出なくなりますから
CPU外してもF12押したら出ました・・
嘘言うのはやめてくださいしんでください
>>615 可哀想に幻覚が見えるのか
精神科をすぐに受診してください
wmain だったら BCB6 では無理かも。
618 :
デフォルトの名無しさん:2013/12/21(土) 15:16:38.70
BuilderXE4で実行時にPanelのColorを変更するとキャプションが消えるバグがあるのですが
これを回避する方法を教えてください
619 :
デフォルトの名無しさん:2013/12/21(土) 15:28:12.77
できた
お前等ってほんと糞の役にも立たないゴミだな^^
620 :
デフォルトの名無しさん:2014/01/09(木) 16:59:04.02
TPopupメニューをOwnerDrawする時に
表示されるメニューの幅と高さを任意に指定する方法をおしえて
OnMeasureItemでWidthとHeightを変更する
622 :
デフォルトの名無しさん:2014/01/24(金) 11:57:52.15
C++Builder2010でSQLConfigDataSourceがリンカエラーになるんだけど
odbccp32.libを追加してるのに。
ちなみに、XPでは正常にリンクできたのにWin7だとリンカエラーになるのですが
Win7でもちゃんとリンクする方法を教えてくださ
623 :
デフォルトの名無しさん:2014/01/31(金) 11:46:42.51
印刷するのにお勧めのコンポーネント教えて
FastReport
Delphi XE4 Professionalを持ってるんですが、
C++BuilderXE5 Starter
のアップグレード版は使えますか?
問題ありません。
あー、
> Delphi StarterとC++Builder Starterの両方を購入して1つのマシンにインストールして「Mini RAD Studio」のように使うことはできますか?
> いいえ、1つのコンピュータには、1つのStarterエディションしかインストールすることができません。
なので、VMでも何でもいいので別のWindowsがいるので注意してね。
いやもうデルファイ使わないんでC++さえ使えればいいですw
コンパイラはx86でC++11対応じゃないので、そこも気をつけて。
630 :
デフォルトの名無しさん:2014/02/04(火) 11:46:48.55
>>624 FastReportどこのタブにありますか?
言い忘れてましたがC++Builder2010ですう
631 :
デフォルトの名無しさん:2014/02/04(火) 11:51:13.48
EX4にはFastReportのタブあったけど
2010には無いから2010ではFastReport使えないっぽいですねこれ
QuickReportも無いっぽいしどうしたらいいのこれ
残念だけどRave Reports
633 :
デフォルトの名無しさん:2014/02/04(火) 16:32:54.59
Rabeタブはありますが、Reportsがありませんえん
634 :
デフォルトの名無しさん:2014/02/04(火) 16:33:28.11
Raveです、かみまみた
635 :
デフォルトの名無しさん:2014/02/04(火) 16:37:20.60
あ、でも、RaveProjectで何か印刷のアレをビジュアルでできそうです
どうせ糞だろうけど頑張ってやってみますありがとうございました糞野郎共
SOAP通信できるコンポーネント教えて
TSoapConnectionを発見した!!XE4
んで、送受信はどうやってやるの?
638 :
デフォルトの名無しさん:2014/02/10(月) 13:52:08.67
"44Op44O044Kn44Or44OK"みたいなUTF-8でアレされてるのを戻す方法を教えてください
C++BuilderXE4です。
>"44Op44O044Kn44Or44OK"みたいなUTF-8でアレ
よくわからん。日本g
640 :
デフォルトの名無しさん:2014/02/20(木) 11:40:21.94
TOpenDialogでInitialDirを指定しても直前に開いたとこを開くんだけど
ちゃんと指定したフォルダを開く方法を教えてください
642 :
デフォルトの名無しさん:2014/02/20(木) 15:39:58.88
>>641 サンクス、確かにOSはWin7でXPではちゃんといってたけど
しかし、C++BuilderXE4のバグなのかわからないんだけど
ExtractFileDir( Application->ExeName )で取得したexeのパスがバグってる
exe作るとWin32フォルダにdebugフォルダが作成されてそこで実行してるけど
取得したパスが必ずWin32フォルダの前に\.\が入ってる
これのせいでDialogのInitialDirやFileNameに指定してもうまくいかなかったんだけど
これちゃんとパスとる方法ありますかね?
正規化
644 :
デフォルトの名無しさん:2014/02/20(木) 16:03:01.36
いや意味わかんないです
つ ExpandFileName
646 :
デフォルトの名無しさん:2014/02/20(木) 19:12:22.42
>>645 ありがとう、感動した。
ExpandFileNameをかましてやったらちゃんとパスがアレしてくれました
しかし今までちゃんとできてたのに急に腐った仕様に変えないでほしいなあ園馬鹿ってやっぱ馬鹿なんだな
勝手に相対になっちゃうの?
648 :
デフォルトの名無しさん:2014/02/21(金) 10:19:05.00
パスを見るとフルパスになってるんだけど
何故かWin32フォルダの前に必ず\.\が付加されてる。
ちなみに、Win32フォルダが無い別フォルダで実行するとちゃんとしたパスがゲットできてる
OSの仕様が絡んでいそうな・・・ よくわからんけど
設定ファイルか何かでそう書いてるだけじゃないの
今まで気づいてないだけとか
リンカのファイル出力先がそうなってるから、
デバッガに渡される実行ファイルのパスもそうなる
リンカの出力先指定:.\$(platform)\$(config)
プロジェクトオプションでC++(共有オプション)の中間出力と最終出力ディレクトリにある.\を削除すればOK
追記 参照ボタン押すとフルパスになるから文字列からダイレクトに削除してね
654 :
デフォルトの名無しさん:2014/03/04(火) 10:32:24.33
>>651-653 それやっちゃうと違うPCやフォルダ変えてコンパイルする時はまたその設定が必要なのでは?
655 :
デフォルトの名無しさん:2014/03/06(木) 11:19:51.13
XE4のTMediaPlayerで現在再生中かどうかを調べる方法を教えてください
Modeプロパティで分かるよ
ゴメン、Modeじゃ分からんかったわ
Notify = trueにして再生開始して、OnNotifyイベントで成功が通知されたら再生終了だ
現在再生中という情報を直接取ることは出来ないみたい
俺がやったのはOnNotifyでMode==Playingで処理結果が成功なら再生終了と判定したよ
658 :
デフォルトの名無しさん:2014/03/06(木) 14:11:17.42
>>657 ありがとうございます。
OnNotifyは終了だけを検知したかったのでNotify=falseで使いたいんですが
自分で再生したのはわかるのでOnNotifyが来たら終了って判断できるのですが・・・
そういうのがあったらアレかなとおもって聞いてみましたがアレでしたね
ほんとアレっすよね
660 :
デフォルトの名無しさん:2014/03/06(木) 15:11:36.52
言うほどアレでもなかったわ
661 :
デフォルトの名無しさん:2014/03/06(木) 15:18:52.18
つーか、今改めて試してみたけど
>>656でおkかも
Notify=falseならModeで再生中とそれ以外の区別がついてる感じ
662 :
デフォルトの名無しさん:2014/03/06(木) 15:32:48.53
フォーム非表示の状態で作成されたフォームのListViewがクリアできない
一旦表示させないとListView->Items->Clear( )受け付けてくれないんだけど
これ非表示のままならどやってリストビュークリアしたらいいの??
Update() やってみるとか(適当・未確認)
664 :
デフォルトの名無しさん:2014/03/06(木) 17:18:43.59
Handleを取得してみる
666 :
デフォルトの名無しさん:2014/03/07(金) 10:22:10.84
>>662 どういう状況かよく分からない
その症状が出る最小のコードでも晒してくれればと思うが。
少なくともこちらでは「フォーム非表示の状態で作成されたフォーム」での
ListView->Items->Clear( )は正常に出来ている。
>>666 処理の前にHandleNeededを呼ぶってこと
669 :
デフォルトの名無しさん:2014/03/11(火) 16:18:17.81
>>667-668 返信遅れて申し訳ない
C++Builder5の時からそうだったんだけど
普通にフォームにListView貼り付けて設計時にデータ入れときます
んで、そのフォームのコンストラクタでListView->Items->Clear( )すると消えてくれない
ちなみに
>>662で非表示でクリアできないうんぬんは消すタイミングの問題で
別フォームのボタンを押したらListViewのあるフォームのListView->Items->Clear( )したら消えますよ
670 :
デフォルトの名無しさん:2014/03/11(火) 16:21:09.46
>>668 ちなみに、フォームのコンストラクタで
HandleNeeded();
ListView->Items->Clear( );
やっても消えませんでした。
671 :
デフォルトの名無しさん:2014/03/11(火) 16:22:49.04
あ、すみません。
間違いました。
↓ですよね。
ListView->HandleNeeded();
ListView->Items->Clear( );
これやったらちゃんと消えましたすみまsん
おめでとさん
久々に引っ張りだしてBCB6使いましよ。
未だに便利だな。
故Winny作者も使ってたBCB6
>>672 ありがとゆ
しかし、長年CBuilder使っててHandleNeededって初めて知ったぽ・・・
XE4までは使ってたんだけど64bitがClang使ってて怪しいし、C#の方が便利なんで
最近こちらばかり使っている
正解
C++BuilderでC#って出てる?
てか、ここID出るよういんあったのね。
以前は.NET向けの何かがあったが今は無いよ
>>676 はVS使ってるって事でしょう
ちなみにBCB6からはどれに移行するのが便利かな?
最新の安いの買えば古いのは落とせるんだよね?
まず2007。次はXE5で。古いのが使えるのはPro以上で、Arcだろうがアカデミックは除外。
Unicode以前に移行するくらいなら6のままで良いんじゃないの?
ちなみにC++はXE以降で何も変わってないよ
それどころかXE2以降では訳の分からん不具合が結構ある
2009から使ってるけど、Win32VCLならXEが一番まともだと思う
>>681 >>682 ありがとう。最新版への移行は試してみたんだけど、確かにUnicode周り
が大変な感じだった。コンパイラは変わってないのね。
2007借りて試してみてダメだったら6のまま現役で作ります。
2007はバグ多いからお勧めできんけど。
仕事で6使ってるの?
まだまだ結構いそうだけど
686 :
デフォルトの名無しさん:2014/03/15(土) 10:16:32.35 ID:2N6ROkeB
6も最初バグだらけだった気がした
6+Upd4だっけ
6はデバッガに問題がある
いまだに5を使っている
690 :
デフォルトの名無しさん:2014/03/17(月) 10:12:10.52 ID:STcoURnP
5って一番よかったわ。
俺もまだ5を使ったりするけど最近はXE4が多いかな64ビットアレできるし
691 :
デフォルトの名無しさん:2014/03/18(火) 15:09:16.49 ID:qmOr3Dts
TListViewはどやって動的に作成するの?
ListView1 = new TListView( this );
で作成してもAddすると落ちるんですが
thisはどこ指してる
>>692 クラス自身。だからクラスのメソッド内でしか使わない。
class hoge{
private:
class hoge *this;
};
こういうこと
多少の差異はあるものの
>>693 >>692が聞いてるのはそういうことじゃなくて、thisとして何を渡してるのかなんだと思うが。
この場合のコンストラクタのパラメータには既に表示済の(hwndが有効な)TWinControlか
その派生クラスのインスタンスを渡すのがいいと思う。普通はTListViewを乗せるフォームかな。
1も使ったことある
超昔に会社で
Delphi2 相当で
後に連番が繰り上がって 2 がなくて
3,4,5 になっていったのを克明に覚えている
697 :
デフォルトの名無しさん:2014/03/18(火) 21:07:14.37 ID:cZ3kjopq
一番最初の記念価格のやつ買いました、しかも本屋さんで。
バージョンの番号が付いていなかったけど、ちゃんとバージョンアップされていきましたね。
単発で終わるかも?って思ってました。
>>693 横着せずにまずは新しいプロジェクト作って簡単なコードで TListView を動的作成したほうが原因つかみやすいだろ。
ちゃんとParent設定してるかとか。
699 :
デフォルトの名無しさん:2014/03/20(木) 15:53:38.30 ID:ZOtvmQUF
XE5ってXE4から何が変わったの?何か追加された?
全く何も変わってない
不具合もそのまま
701 :
デフォルトの名無しさん:2014/03/24(月) 17:16:54.97 ID:jkhS/0AK
よし!じゃあ今から注文するわ
702 :
デフォルトの名無しさん:2014/03/25(火) 17:19:10.70 ID:6CkDQtbn
XE4が腐った。
ソースをコピペしたら意味不明なエラーが出てコンパイルするとリンクエラーが出るようになる。
再起動したらまたちゃんとコンパイルもリンクもできるけどめんどい
エロい人助けてエロい人
もうちょっと具体的に書いたら
XE5を買いなさいと言うエンバカからのお告げじゃない?
まったく直ってないと思うけど
意味不明なエラーってどんなんだよ
>>702 エラー内容も書かないとかw
再インストールしろ
ユーザーに致命的なエラーが発生しました
707 :
デフォルトの名無しさん:2014/03/25(火) 17:53:04.92 ID:6CkDQtbn
だって、エラー内容書いたってお前等馬鹿だからどうせ解決しないし
>>703-706みたいなゴミレスは不要なんですよ。
知らないならレスしないで下さい。ウザいだけです。
既にNGに入ってます
解決するかどうかは別として開発者ならエラー内容なしにエスパーするのは難しいって知っていると思うが。
専ブラの初心者ユーザ並みの能力だな。
ゴミ箱に放り込みました
711 :
デフォルトの名無しさん:2014/04/02(水) 16:12:11.76 ID:t1Fz8vI4
C++Builderで作ったっぽいプログラム資源がある
ただしC++Builderのバージョンや、
どんなカスタマイズ(コンポーネントやパッケージ)を用いているのか
さっぱり不明
プログラムの修正依頼をされたけど
最新版のXE5を使えば、開発できるもんなの?
やってみたが、コンパイルエラーが腐るほど出る
首吊る準備した方が早いな
コンポーネントの行方次第だな
行方(ゆくえ)
ActiveXとか使われてると最悪
717 :
711:2014/04/03(木) 09:16:33.75 ID:c6M8SUjY
>>all
サンクス
>>716 本当にこれでいいのかよくわからん資源を集めて
PGを修正しまくって
コンパイルはどうにか通した
ただ、リンクでエラーになる
[ilink32 エラー] Fatal: シンボル @$xp$25Endigrph@TDibGraphicClass の
サイズがゼロか、オフセットが大きすぎます
(モジュール 'C:\PROGRAM FILES\EMBARCADERO\
20786_ENVISION_IMAGE_LIBRARY\ENV201\TRIAL\CB6\ENDIGRPH.OBJ' 内)
EnDiGrph.hpp obj dcu は無かったのでダウンロードした資源
718 :
711:2014/04/03(木) 15:06:39.14 ID:c6M8SUjY
Envision Image Library とかいうのを
取り込んでいるっぽい
それが古い版だったのでXE5対応のやつをパッケージで
取り込んだ
しかしdcuファイルはあるが、hppファイルが無いため
クラス定義なしのエラーになる
ああなんかそのエラーとかって requires セッションになんか加えるんだっけな?
720 :
デフォルトの名無しさん:2014/04/10(木) 11:41:05.83 ID:hCZjGgXU
EX4のTProgressBarで質問です
ProgressBar->Max = 100;
ProgressBar->Position = 0;
for( int i = 0; i < 100; i ++ ){
ProgressBar->Position ++;
}
ProgressBar->Position = 0;
こうした時にProgressBarの表示が半分くらいのとこで終わるのですが
最後にPosition=0をしないと最後まで表示はされますが
処理が終わってからProgressBarが最後まで行くまでに時間がかかってます。
これ以前のようにPosition++した瞬間にProgressBarの描画がされるようにする方法を教えてください
Repaint
723 :
デフォルトの名無しさん:2014/04/10(木) 15:53:27.45 ID:cHkBS6BK
僕が提出したノートは2冊だっけな?
724 :
デフォルトの名無しさん:2014/04/10(木) 17:36:41.17 ID:hCZjGgXU
>>721-722 いえいえ、そういうことを言ってるのではなくてですね
TProgressBarが意図的に推移バーを遅延させてるんですよこれ
XE4で
>>720やってみてもらうとわかるとおもいますが
そして
>>723は視ね
Application->ProgressMessage() じゃないの?
最後まで言ったのに描画更新が行われず前回の更新時の画面で止まるってのはたまによくまれにある。
あとプロパティ値に対して ++ ってOKだっけ?
>__property int Position = {read=GetPosition, write=SetPosition, default=0};
展開すると GetPosition()++ 見たいになる的な糞な仕様があったけど、
当然改善されているのかな?
ProgressBar->Position = i+1;
に変えるか
ProgressBar->Position = ProgressBar->Position +1;
にするかとか。
EX4なんて新しいもの持ってないんで最近のことはよくわかんね。
726 :
デフォルトの名無しさん:2014/04/10(木) 19:00:03.95 ID:coZ4bcw7
ProgressMessage()
ってはじめてみた
Application->ProcessMessages()か
C#で言うとApplication.DoEvents()みたいな
XPマシン電源消したからわからん
×ProgressMessage()
○ProcessMessages()
ループ処理させる時とかでイベント割り込ませるのによく使うよな
掴んだままだと応答なしとか出て行儀の悪いプログラムになるし
あーそれそれ。
ProcessMessagesで、手動でメッセージループを回すケースが必要になるなんて
どっちかというと、プログラムの設計が行儀悪いからだと思うけど。
プログレスを表示するってことはそもそも、ある程度時間のかかる処理なわけで、
そんな処理をUIスレッドで行なおうとするからProcessMessagesせざるを得なくなるわけで、
サブスレッドでそもそもやれと思う。
731 :
デフォルトの名無しさん:2014/04/10(木) 20:35:06.53 ID:coZ4bcw7
↑
またスレタイ読めない人が出現
HandleMessage() もさほど変わらん
>>720 つか、そもそも、Windowsシステムにおいて描画の処理って優先度低くて、暇な時やるってスタンスだから、
for( int i = 0; i < 100; i ++ ){
ProgressBar->Position ++;
}
でループで頻繁に回しても、描画まとめられちゃうからね・・
734 :
デフォルトの名無しさん:2014/04/11(金) 13:13:27.96 ID:bepIv9hm
>>733 いえいえ、違います
>>720は例です
以前はちゃんと描画されてた(Builder5)ので
いつからかはわかりませんが、勝手に遅延描画されてるんですよ
>>734 自分(
>>725)もBuilder5持ってる、試してみたけど確かになるね。
2009で試したけど、こっちもなる。
MarqueeInterval というプロパティ値は?
>アニメーション表示の更新間隔(ミリ秒)。これにより、強調表示部分が動く速度を設定します。デフォルトは 10 ミリ秒です。値を大きくするほど、速度は遅くなります。
2009でのデフォルトだと10(ミリ秒)
Builder5にはなかったプロパティ。
確認してもダメと言うことならたぶんコントロールとしての動作仕様が変わったとかじゃない?
とりあえず ProgressBar->Positionを更新した後にProcessMessages()を呼び出せばちゃんと更新されるようになる。
もしそれでも更新されないならコードがおかしい(最適化のせい)とかかも知れない。
VisualStyleの影響とか、VCL Styleの影響って事はない?
> ProgressBar->Position ++;
この書き方はしたこと無かったな、自分は
ProgressBar->StepIt();
いつもこう書いている
あるいはStepBy(1);
違いがあるのか、無いのかは知らないが
最近XE4 C++ Builderを使い始めた初心者ですが、次のような
コードでエラーが出ないのは何故でしょうか?
char *ptr = "ABCD";
*ptr = 'X';
普通Visual Studio 2010等ではコンパイル・エラーとなりますが、
XE4ではコンパイルが通ってしまいます。。。。(´・ω・`)
XE4の場合は上記のようにポインタを文字列リテラルのアドレスで
初期化する際に、明示的にconst修飾子を付けない限り、文字列
はconst領域のデータ・セグメントには格納されないのでしょうか?
それともコンパイラの警告オプションの設定の問題でしょうか?
初歩的な質問ですみません。
URLを貼ろうとしたら「さくらが咲いてますよ」と言われるんだが
-dcオプション
無視されるみたいだけど
>>739 多分嫌儲とJIMがやってるサクラサーバ除外処理でしょう。
面倒だからオープンにスレ立てますか。
741 :
デフォルトの名無しさん:2014/04/30(水) 18:44:48.10 ID:lAKrL3qN
ボタンのAnchorsで設計時にLeftとBottomして
実行すると配置より上にボタンが表示されちゃいます。
フォームはMDI子フォームでBorderStyle=bsSizeable
何が原因ですかね?
ちなみに他の画面でも同じ事やってるフォームありますがそっちは正常です。
Builder5
parentの設定し忘れ
スケーリングの問題じゃないの?
744 :
デフォルトの名無しさん:2014/05/01(木) 09:56:57.94 ID:CuOT4gd+
>>742 動的に作成してなくて設計時にボタンを貼り付けてます
>>743 フォームのScaledはfalseにしてます。
正常に表示されてるフォームと同じ設定にしてます
パネルにのっければすむ話なんですがなるべく画面を弄りたくないのでめんどくさいし。
他にアンカーをbottomとかに変更したら実行時に位置が変わる原因て何かありますかね?
745 :
デフォルトの名無しさん:2014/05/01(木) 10:01:15.76 ID:CuOT4gd+
あー、もしやとおもってscaled=trueにしたらうまくいった。
これtrueにするとグリッドの表示がくずれるんだよなあ・・・
でも他のフォームはscaled=falseにしてるのになんでうまくいくんだろ
746 :
デフォルトの名無しさん:2014/05/01(木) 10:10:46.81 ID:CuOT4gd+
更に他の画面でやったらやっぱscaled=falseでもうまくいく
ダメな画面はステータスバーついてるんだけどこれが悪さしてる希ガス
フォームに直接置かないでパネル敷いてみ
748 :
デフォルトの名無しさん:2014/05/01(木) 10:20:04.52 ID:CuOT4gd+
なにがどうめんどうくさいのかね?
オボコみたいにコピペでやればちょちょいのちょいだよ
750 :
デフォルトの名無しさん:2014/05/14(水) 11:21:30.30 ID:iA+Geeud
XE4が何かおかしくなったので再インスコしてるんだけどInterBaseのインスコで止まる・・
何度やってもダメ、全部アンスコしてからインスコしてもダメ
これどうしたらいいのさ・・・
いくら超初心者とはいえ
われわれは超能力者でもエスパーでもありませんので
もう少し詳しく状況を書いてもらわなければ
何も回答することができません
752 :
デフォルトの名無しさん:2014/05/14(水) 12:13:12.78 ID:iA+Geeud
しゃーないからInterBaseはインスコせずに際インスコしたら
今度はCodeSite Expressのインスコで固まった・・・
何この糞ソフト・・・
えん馬鹿ってほんと馬鹿だな・・・
Support KBに完全アンインストールのアーティクルがあったはずなんで、まずは全部消してみては?
ところでBDS2006ってWin7でも使えるん?
755 :
デフォルトの名無しさん:2014/06/09(月) 14:29:51.16 ID:2i9+DxAv
XE4のTTrackBarで1回動かすとOnChangeイベントが2回入るバグを回避する方法を教えて
756 :
デフォルトの名無しさん:2014/06/13(金) 11:39:41.87 ID:cEBL9XA9
TTreeViewで質問ですが
起動時にフォルダツリーを作成してるのですが
これを指定した階層のフォルダを開いた状態にする方法を教えて
例えば aaa\bbb\cccって指定したらcccが開かれてるとか
展開された状態にしたいTTreeNodeのインスタンスを取得して、
ExpanededプロパティをいじるかExpandメソッド使うだけでしょ。
いや、そうなんだけどさ。
これ自分で指定ノードまで検索しないとダメなのかなっておもって
自分でそういう関数を作るしかない。
TTreeViewがディレクトリ階層を表しているとは限らないから。
継承でフォルダツリー専用に作られたクラスがあればあるかもしれないけど。
自分でフォルダを読んで
TreeViewしているんだから
その途中で
Expandしたいフォルダに該当するか判定して
該当していたら、開けばいいだけじゃん
761 :
デフォルトの名無しさん:2014/06/24(火) 14:24:51.72 ID:qPVXYS8O
フォームのBorderStyleをbsSizeableにしてTChartを貼っているんだけど
フォームの大きさに合わせてチャートも大きさが変わるように
Anchorsを全部trueにしてますが、実行するとチャートの大きさが設計時より小さくなってしまいます
フォームのScaledはfalseにしてますが、これちゃんと設計時と同じ大きさになる設定を教えてくださ
C++Builder5
762 :
デフォルトの名無しさん:2014/06/24(火) 14:46:21.04 ID:qPVXYS8O
AnchorsでRightとBottomをtrueにするとそれぞれ幅と高さが設計時より小さくなってる
falseにして実行すると設計時と同じサイズ
他のフォームでも全く同じ事してるけどこんな現象にならない、なぜー
予めプロパティで設定しないで、コード上で(OnShowとかで)設定してみたら?
ちと質問。
最新のC++BuilderXE6ってOpenMP使える?
765 :
デフォルトの名無しさん:2014/07/04(金) 12:39:14.35 ID:41y9bvYX
え、もうEX6出てるのかww
EX5ってあるの?4買ってからあんま経ってないのにもう6で照るのかあ
XE6が出て1年近く経ってると思うぞ。
最近は毎年位のスパンで更新している感があるかな。
英語のメール送ってくるエンバカヤロゥ
日本語でサポートしろやエンバカヤロゥ
XE6はまだ2月ちょっとだ…XE7は10月頃か?といわれてる。
ちなみにC++BuilderでOpenMPは使えない気がする。ぐぐったらVCでDLL化して使ってる、という話は見かけた。
まじかー
この前XE4買ったかっばだと思ってたのに
ちなみに、4と6って何か大きな違いある?
オブジェクトインスペクタがバグるのは健在なのかな
>>770 チョンクス
androidのアプリって簡単に作れるのかなあ
うーん、XE6欲しいけど10月にXE7出る可能性あるみたいだしー
てか、XE4で64bitソフト作ったらexeサイズが8MBになるんだけど
XE6ではもっとexe肥大化するのかなあ。
以前Builder5のバグでアプデしたらexeサイズがアレしたけど
これ以上でかくなったら圧縮してもメールで送るの分割せにゃいかんくなる
>>768 あれ、2月位だっけ......
OpenMPは簡単に使えないんね......
ネットで調べたら、使ってる書き込みがあったから、
CLangとLLVMのお陰で普通に使えるのかなと思ったんだけど、
実際はVCでDLL化してたんね......
XE6 2014/04/16 発売開始
安くて使い勝手が良かったから使ってたボーランド時代
今はバージョンアップされても何も魅力を感じなくなってしまった
OpenCLなら通るのに…
778 :
デフォルトの名無しさん:2014/07/31(木) 14:13:33.13 ID:C2bwOfzI
XE7っていつ出るの
779 :
デフォルトの名無しさん:2014/08/04(月) 12:54:28.30 ID:WuS127/J
XE4のTImage3Dってデフォで変な形してるけどこれ正方形や長方形にするパラ教えてくださ
>>779 3D表示は設計時カメラがデフォルトで使用される。
Viewport3DのUsingDesignCameraがTrueだと設計時カメラで表示されるが
falseにするとViewport3DのCameraプロパティに設定されたカメラで表示される。
781 :
デフォルトの名無しさん:2014/08/07(木) 10:12:15.87 ID:bzHTj0Lj
>>780 ありがとうございます。
ちなみにViewport3Dってどこにありますか?・・・
ViewportsグループにViewport3Dありました。
これで色々試してみますありがとう
うーん、うまくいかない・・
手順として
1.Viewport3Dを設置してのUsingDesignCameraをfalseに
2.TCameraを設置してViewport3DのCameraプロパティーをCamera1に設定
3.TImage3Dを設置
カメラとImage3Dの関連付けというかがわからない
カメラ動かしても特にImageの方は形かわらないですし
これうまく使えたら結構色々できそうで良さげなんだけどなあ
784 :
デフォルトの名無しさん:2014/08/13(水) 10:56:58.97 ID:+YEx4mAs
フォームがアクティブになったのを検知する方法おしえて
785 :
デフォルトの名無しさん:2014/08/13(水) 11:10:47.54 ID:+YEx4mAs
できた。
お前等ってほんと糞の役にも立たないカスだな^^
教えてもらっても感謝もしない
質問されても答える気もない
自己解決したら解決方法も記す
自己解決したわ
ソースがついてりゃできるし、ついてなきゃできない。エディションによるとしか。ところでBMPの件はともかく、
そんな話あったっけ?
XE6を使っています ビルド構成をdebugにして実行すると正常動作しますが
Releaseにして実行ファイルを作成すると起動はするのですが異常に重たい
動作になります(スレッドでRS232Cの通信をやっていて通信が重くなる)
ちなみに、XE6を起動した状態(そのプロジェクトを読まない状態)で
その実行ファイルを実行すると正常に動作します。
実行ファイル作成時のオプションなどをいじれば直るものなのでしょうか?
OSはwin8です。
>>793 最適化とかの影響でおかしくなることもある。
動作が変わってしまう場合はまずdebugと同じにして徐々にはずすとかするといいかもしれない。
>>794 解決しました、DEBUGと同じにそて最適化をはずしてもだめだったのでスレッドの速度を
はかってみたところ
Sleep(1);
がXE6を起動しているときと、単独で起動しているときではSleepしている時間が違うように
みえました。
もともとのルーチンもあまりよくなかったので双方を調整し何とか正常に動作するように
なりました。
ありがとうございました。
797 :
デフォルトの名無しさん:2015/01/09(金) 17:41:11.11 ID:tgzE7GLA
うんこ
Windows7にC++Builder6をインストールしたんだけど
統合環境のエディタ画面のスクロールバーが欠けて
半分くらいしか表示されていないのはテーマのせいかね?
Windowsクラシックに変更すればちゃんと表示されたけど
他に何か改善策ないかな
古いバージョンを使うなら
VM環境に入れればイイじゃん
VMにXPなりターゲットのOSを入れてそこで動かせばエエがな
さすれば、OSを最新に変えても
VMのファイルさえコピーすれば
再インストールする必要もなくそのままつかえるべ
テーマで変わるのはあると思う。
自分はWindows7にC++Builder5。
テーマはWindows7ベーシックかな。
右側が若干はみ出しているがまぁ気にせず使っている。
Aeroだと問題ないようだけど。
Aeroでもベーシックでもダメだった
結局BCB6でコンパイル&デバッグする時は画面をクラシックに変えることにした
デスクトップを右クリックして変えるだけで手間もかからないし動作も機敏になるし
ウィンドウの端もキッチリ合わせられるので統合環境ではこの方が見やすいので
あとメッセージウィンドウをソースエディタとドッキングしてるとエラーが出たりしたので
これは外に出して並べることで対処した
ショートカット作って互換性タブの設定をいじくれ
その辺も当然いろいろ弄って確認したけどダメだった
いまさらだが
>>800だけど右じゃなくて左だったわ
まぁいまさらだけど
ボーランドが良かった
C++Builder2010でメール送信できません。
どっかのサイトまんまのやり方です。
IdSMTP->Sendで固まってタイムアウトまで抜けません。
ちなみに同じコードをC++BuilderEX4でやると正常にメール送信できましたが
C++Builder2010ではどうしたらいいんですかね?
TIdMessage *msg = new TIdMessage( this );
IdSMTP->Host = "yahoo";
IdSMTP->Username = "Username";
IdSMTP->Password = "password";
IdSMTP->Port = 587;
//差出人
msg->From->Name = "From name";
msg->From->Address = "From address";
//宛先
TIdEMailAddressItem* to = msg->Recipients->Add();
to->Name = "To name";
to->Address = "To address";
//件名
msg->Subject = "Subject";
//本文
msg->Body->Text = "This is e-mail.";
//送信
IdSMTP->Connect();
IdSMTP->Send(msg);
IdSMTP->Disconnect();
> IdSMTP->Host = "yahoo";
これでメール遅れるの?
indyを最新にすればいいんじゃないかな