くだすれC++Builder(超初心者用)その4at TECH
くだすれC++Builder(超初心者用)その4 - 暇つぶし2ch712:デフォルトの名無しさん
11/06/08 03:36:40.23
Indy はオープンソースで品質保証も無いしねぇ

713:デフォルトの名無しさん
11/06/08 15:01:02.06
TScrollBoxでスクロールバーが表示されてるかどうかを調べる方法を教えてください

714:708
11/06/08 16:11:11.08
まず、Helpから、Indyは 10.1.1 でした。

>>710
回答、ありがとうございます。
ヘッダからストリームに取込む方法は、IdHTTPでは分からなかったので、
結局、IdTCPでHTTPプロトコルを新たに書き起こしました(*Д* グハッ)

で、ググった数が多くて見落としてましたが、Content-Disposition というか、
HTTPヘッダ内にASCIIコード以外を使うのは、RFCでは許して無いそうで。

又、ブラウザと、IdTCPで受信したヘッダでの文字コードが違う事から、
漢字コードが送られるのは、ブラウザ向け仕様みたいですね。

で、IdHTTPでこれに対応するには、改造すれば良いんですが、ちょっと厄介で。
CB2010は文字列がUnicode標準なのでコンパイルし直すと、あちこちの文字コード
変換で頭爆発します・・・。
(Unicode対応コンパイラだと、代入での暗黙の変換も起きますので)

そういう訳で、HTTPクラスを書き起こし。

>>711
>>712
そういう訳でバグでは無く、RFCの仕様のためでした。

このバージョン以降、バグはかなり少なくなっており(コンパイルし直した環境で
文字コードの問題が起きるとこが有りますが)、後はドキュメントと、Helpの充実を
願うばかり。

特に、IOHandler については、ドキュメントが無いに等しい・・・。

715:デフォルトの名無しさん
11/06/09 00:02:35.71
>>712
別にクローズドソースが品質保証してるわけでもないし。
さらに言えば、マイクロソフトだって、保証はしてない。

716:デフォルトの名無しさん
11/06/09 02:24:11.25
>>714
RFC2231でエンコードされてるとか?
まず、ブラウザで受信した場合とIdHttpの場合のヘッダのネットワークキャプチャ見ねえ
となんともいえんな。

717:デフォルトの名無しさん
11/06/09 12:10:11.94
APIでOpenPictureDialogみたいに画像をプレビューできるのあったら教えてください

718:デフォルトの名無しさん
11/06/09 14:48:51.68
ありません

719:デフォルトの名無しさん
11/06/09 15:08:38.79
TPNGObjectでLoadFromFileしてSaveToFileすると
ビットの深さがオリジナルより小さくなって保存されてしまうのですが
これオリジナルと同じにする方法おしてくださ


720:デフォルトの名無しさん
11/06/09 16:17:55.67
ごめんわかった途中bmp経由してたから24ビットにアレされた
てか再度TPNGObjectで
PNGObject *png = new TPNGObject( );
って作成したpngのサイズを変更したいんですが
どやってサイズ指定できますか?

721:708
11/06/09 20:15:13.87
>>716
レスどもです。
必要事項は自前でこなせてますので、蛇足的な書込みになりますが、結果を
書込んでおきます。(何方かの役に立つかもしれませんから)

IdTCPでストリーム受信したところ(TCPでは文字コード問題は無い筈ですよね?)
サーバーは Apache で、ブラウザ向けリクエスト
"User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows NT)"
を送ると、"Content-Disposition" に含まれる 日本語 filename は
ダブルクォート「"」で囲まれた上で、Shift-JISになり、"User-Agent"無し
では、同様に「"」で囲まれた上で UTF-8 でした。

勿論、この動作はサーバーの設定次第だと思いますので、全てが必ずこうだとは
言えません。ただ、たまたま今回相手にするサーバーがこうだったというだけです。

RFCに書かれていたファイルネームについては、「"」を伴わない形でのASCIIコード
のみだった気がしますが(未確認)。

多分 Apache では、メーラー等で用いられてるヘッダーのように、拡大解釈されて
RFC2231 を用いずに「"」で括って、そのまま漢字コードを使用してるんじゃない
でしょうか?

それとも、改定案が出されてて、それに IdHTTPが対応してないとか。

ちなみに、IdHTTPで取得されたfilenameは、どう変換したのかも分からないコードに
なっており、途中の漢字に含まれるコードで全ヘッダ終了とみなされて、それ以降の
ヘッダは無いものとして処理されてしまいます。

ソースを追えば良いんですが・・・面倒なのでヤメマシタ。
IdTCP->IOHandler->ReadLn で読んだ時点で化けてるので、その辺なんですが、TCPでも、
HTTPでも同じクラス、かつ、多言語でとなると、やはりRFC完全準拠が筋だと痛感。

722:708
11/06/09 21:23:57.92
>>721
IdTCPでの結果だけでは無責任ですので、再度、WIRESHARK にて確認しました。
やはり、Shift-JISとUTF-8でした。

デフォルト設定だと、HTTPなのにポート違うとHexで確認なんで、見難い・・・。


723:デフォルトの名無しさん
11/06/09 22:32:23.71
>>720
使ってるバージョン位、書きぃな。んで、Helpは見とんのかいな。

新規にサイズ0で作成してしまうと、サイズ変更は無理っぽ。
作成する際に指定しましょ。
したら、後は変更可。"サイズ変更"をまんま英語にしたメソが有るぉ。

何故、0で作成すると変更不可かは、ColorTypeとか、BitDepthとか
色々あんでしょ?

724:デフォルトの名無しさん
11/06/10 10:12:33.64
>>723
0で作成とはコンストラクタのサイズを与えるんですか?
TPNGObject *png = new TPNGObject(10,10 );
みたいに?
まあこれはエラーになったんですが、どうやって指定しますか?
元サイトがみれないので


725:デフォルトの名無しさん
11/06/10 10:33:07.39
あ、わかったこれですね
TPngImage(unsigned ColorType, unsigned Bitdepth, int cx, int cy);
これBuilder2010のTPngImageだけどコンストラクタは同じかな
ちなみにこれのColorTypeの定数がわからない・・・

726:723
11/06/10 10:52:19.17
暇なんで、付き合ってあげよう。(たまにはエラソ~に

>>724
もしも~し?人の話聞いてます?・・・いや、もうね。
使ってるコンパイラバージョン位書いたらどう?それによってアドバイス違うから。

そもそも
>元サイト
って何?
Help使わない人なの?それとも、RAD環境じゃないフリーコンパイラでガリガリなの?
古い環境?最近はTPNGImageは標準搭載なんよ?

ヘッダファイルをColorTypeやBitDepthで検索すれば分かると思うんだけど。

そもそも、バージョンが分からん事には。
もしかすると初期のTPNGImageにはそんなコンストラクタ、無いかもしれんし。


727:723
11/06/10 11:01:24.60
>>726
自レス・・・テンポ遅れハズィ
>>725
ヘッダをCOLOR_ で検索すると分かる。このヘッダ、ちょっと書き方が「らしく」
ないね。そこだけは認めよう。


728:723
11/06/10 11:24:58.13
で、ここまで書いておいてなんなんだけど、
URLリンク(docwiki.embarcadero.com)
見ると、コンパイラの警告でも出るように、非推奨になってるね。
将来的に廃止かも。多分 >>725 は裏で使いたいって事なんだろけど。

729:デフォルトの名無しさん
11/06/10 11:26:28.23
>>726
TPNGObjectって書いてんだろ馬鹿はレスするなって
それにもう解決したからいい
何でレスも読めないのに知ったかしてレスするんだろうか

730:デフォルトの名無しさん
11/06/10 12:54:08.41
>>729
カワイソス
頭おかし過ぎてワロタ


731:デフォルトの名無しさん
11/06/10 13:09:20.40
>>729
逆ギレかよ。
>>726 (>>723) もとんだトバッチリだな。何一つ間違った事言ってないのに。
ヘッダも読めねークセに、こういう奴って居るんだなー。クワバラ-
相手にしなくてよかった。

732:デフォルトの名無しさん
11/06/10 13:59:16.74
>>729
論拠は >>728 じゃねーの?RAD2010でも警告だしヘッダもそう(読めないんだっけ)
勘違いヤロ-なのはおまいだろ?

733:デフォルトの名無しさん
11/06/10 14:55:06.61
>>729
なんかバカが馬鹿よばわりしてるし

734:デフォルトの名無しさん
11/06/10 16:58:47.17
必死すぎワロタ

735:デフォルトの名無しさん
11/06/10 17:49:54.00
>>729
クズが吠えてて笑える

736:デフォルトの名無しさん
11/06/11 22:57:59.23
ppp

737:デフォルトの名無しさん
11/06/14 15:48:29.17
Builder2010なんだけどTPageControlの背景って前はclBtnFaceだったのにWhiteになってるんだけど
これ背景色変える事できる?OS設定しか無理?
何でこれ背景白にしちゃったんだろ?激しく見づらいんだけど
しかもclWindowと色が被ってるから境界線が判りづらいし

738:デフォルトの名無しさん
11/06/14 18:54:35.33
>>737
TPageControl継承すれば。


739:デフォルトの名無しさん
11/06/14 22:29:43.48
めんどくせーからちゃんと教えて下さい

740:デフォルトの名無しさん
11/06/24 11:53:19.65
UnicodeStringをchar*に変換するにはどうしたらいいですかね?

741:デフォルトの名無しさん
11/06/24 12:03:14.22
wcstombs_s使おうと思ったけどなんかこれ無いってエラーが出る
wcstombsならコンパイルは通るんだけど何故か実行時にエラーが出る。
setlocale( LC_CTYPE, "jpn" );これしてもエラーなんだけどなんでだろう?


742:デフォルトの名無しさん
11/06/24 12:52:35.16
char *ってのはANSI文字列のポインタ?ならAnsiStringに代入してc_strでいいんじゃないか?

743:デフォルトの名無しさん
11/06/24 12:56:32.62
あ、ごめん言い忘れてたけどBuilder2010なのでAnsiStringってワイド文字なんですよねこれ


744:デフォルトの名無しさん
11/06/24 14:05:02.85
えっ?

745:デフォルトの名無しさん
11/06/30 13:34:35.00
質問です:タスクバーに表示されているアイコンにマウスを近づけたときに発生するイベントを取ったり出来ますか?

746:デフォルトの名無しさん
11/06/30 17:11:22.25
出来ます。


747:デフォルトの名無しさん
11/06/30 17:31:38.46
タスクバーって、アプリの中の人じゃなくてWindowsの持ち物なんだけど、どーやったら取れるわけ?

748:デフォルトの名無しさん
11/06/30 17:42:30.35
初心者なら、取り合えず下記でも読んどけ
URLリンク(www.kab-studio.biz)


749:デフォルトの名無しさん
11/06/30 18:14:08.79
グロバールフックってシステム全体を重くするから禁じ手でしょ、常考。。。

750:デフォルトの名無しさん
11/07/03 11:10:55.56
昨日ビルダ購入しました。早速質問です。

StringGridの各セルをテキストとしてファイル出力ってどうやるんでしょうか?
SaveToFileのようなものが用意されていますか?

751:デフォルトの名無しさん
11/07/03 12:25:50.84
 発 者 同         . 。_   ____           争
 生 同 .じ     .    /´ |  (ゝ___)          い
 .し 士 .レ      .__/'r-┴<ゝi,,ノ   ro、      は、
 .な で .ベ      ∠ゝ (ゝ.//`   ./`|  }⌒j     
 .い し .ル        } ⌒ /`ヽ、_∠l,ノ ・ヽ´
 .! ! か の       /  ´..:.} >、、___,  .r、 ソ、`\
             /   ..:.:.}   /   |∨ ` ̄
            /   ..:.:./    |   丶
           / _、 ..:.:.:.{    .{.:.:.   \
          {   ..:Y  .ゝ、   {.:.:.:.:.    ヽ
          |、  ..:/ 丿 .:〉   >.- ⌒  .  ヽ
          / {. ..:./ ソ ..:./  .(    ..:.:.:`  ..:}
         ./..:.:}.:.:./ ヘ、 ..:./   .\ ..:.:r_,ノ、.:.:}
        ./..:.:/|.:/   {.:./     X.:.:}.}   X X
        /..:.:/ .}.:|    }:/       .Y丶ヽ  Y.:Y
  . __/.:/ { }  《.〈、     _,,__>.:》丶   Y.:\
  /.:.:.:.:.::/   !.:.:ゝ  ゝ.:. ̄ヾ ´:.:.:.:.:.:.:.:.:ヾゝ   \.: ̄>

752:デフォルトの名無しさん
11/07/03 15:12:02.10
>>750
TStringGridIOというのを見つけますた。

StringGridにてCellの行数をボタンを押すごとに増やしていく
プログラムを書いてみたのですが、1回目のクリックで列側
(2列目)に作られてしまうのですが、k行1列のグリッド
を適切に作る方法をご存じの方いますか?

下記のようなソースを書いてます。
StringGrid1->Cells[k][0] = IntToStr(k);
StringGrid1->RowCount = k++;
StringGrid1->Refresh();

753:デフォルトの名無しさん
11/07/03 17:55:04.22
関数ポインタの作り方をご教示ください。
下の例では[C++ Error] Unit1.cpp(19): E2235 Member function must be called or its address taken.
のコンパイルエラーが出ます。
ヘッダーファイルには void Func();と void Func2();を書いています

//----------------------------------------
void TCTestForm::Func()
{
void (TCTestForm::*fpFunc1)() = Func2; <---Line 19
(this->*fpFunc1)();
}
//--------------------------------------------
void TCTestForm::Func2()
{
MessageBox(Handle,"Func2","Func2",MB_OK);
}

754:デフォルトの名無しさん
11/07/03 18:04:10.38
メンバー関数を式で使うときは,呼び出すか,& 演算子を用いてアドレスをとらなければなりません。
メンバー関数が不正な文脈で使われると,このエラーになります。
次に例を示します。

class A

{
typedef int (A::* infptr)(void);
public;
A();
int myex (void);
int three;
} a;
A::A()
{
infptr one = myex; // 正しくない - myex を呼び出すかアドレスを取る
infptr two = &A::myex; // 正しい
three = (a.*one)() + (a.*two)();
}

755:デフォルトの名無しさん
11/07/04 07:20:09.52
また質問させてください。

スターターを購入したのですが、
TextViewのようなコンポーネント、
出来ればフリーのものをご存じないでしょうか?

よろしくお願いします。

756:デフォルトの名無しさん
11/07/04 11:16:01.23
うまくいきました!!!

>>754さん、ありがとう。感謝、感謝。

757:デフォルトの名無しさん
11/07/05 14:45:28.83
ファイル選択とかのコモンダイアログをStayOnTopできまつか?

758:デフォルトの名無しさん
11/07/05 16:03:39.13
出来る


759:デフォルトの名無しさん
11/07/05 19:04:58.86
やり方教えて下さいorz

760:デフォルトの名無しさん
11/07/05 21:02:38.94
実際にやってみたわけじゃないけど。OnShowイベントとOnCloseイベントでSetWindowPosを呼んで
HWND_TOPMOSTとHWND_NOTOPMOSTをセットする。対象HWNDはHandle。

761:デフォルトの名無しさん
11/07/07 15:57:07.59
TOpenDialog
のOnShowでTOpenDialog::Handleを使ってWin32APIでTOPMOSTに変更してみましたが、
ダメっぽいですorz

762:デフォルトの名無しさん
11/07/07 17:21:28.35
コモンダイアログの(プロパティにない)表示をかえるのと同じで、Hookしないとだめなんじゃないかな?

URLリンク(wisdom.sakura.ne.jp)
URLリンク(www.kanazawa-net.ne.jp)

763:デフォルトの名無しさん
11/07/08 09:19:33.54
あ、コモンダイアログのフックってダイアログ指定できるんだ。
これってローカルフックだおね。
一旦やってみるかなぁ。
コモンダイアログが他のウィンドウに潜ったら、
自分で浮かびあがるような処理。

764:デフォルトの名無しさん
11/07/08 11:24:12.75
>>763
人呼んでお邪魔虫ダイアログ

765:デフォルトの名無しさん
11/07/08 15:21:38.22
TMyComboBox = class(TComboBox)
TComboBox = class(TMyComboBox)

みたいな感じで、継承してちょっとだけ弄ってそれを標準のコンポみたいに使ってる
Delphiのソースがあったのだけど、これってC++Builderでも可能?
区別が曖昧って怒られちゃう

766:デフォルトの名無しさん
11/07/08 15:35:58.43
可能


767:デフォルトの名無しさん
11/07/08 15:57:08.17
C++Builder 2009ってVS用のライブラリや
.NET Frameworkは問題無く使えますか?

768:デフォルトの名無しさん
11/07/08 16:52:59.73
できないのか、残念

769:デフォルトの名無しさん
11/07/11 15:49:37.12
HDDのフォーマット種別(NTFS/FAT32・・・)を調べる方法を教えて下さい。
Win7+BCB2010です。

DriveInfoというのを見つけたのですが使えなさそうです。

770:デフォルトの名無しさん
11/07/11 16:04:57.35
>769
URLリンク(msdn.microsoft.com)

771:769
11/07/11 17:34:16.65
>>770

出来ました!!有り難うございます。

772:デフォルトの名無しさん
11/07/22 17:30:25.07
「asin: DOMAIN error」っていうのをトラップしたいのですが、
catch (Exception &exception)では、catchできないのですか???

773:デフォルトの名無しさん
11/07/22 21:29:11.88
Winキー+Dで全部のウィンドウ非表示(デスクトップ表示)ですが
この操作が行われた時ってトップレベルウィンドウに何かメッセージ
が送られているんでしょうか?

774:デフォルトの名無しさん
11/07/22 22:46:03.43
>>772
int _matherr(struct _exception *e) {
throw Exception(AnsiString(e->name) + " でエラーだお");
}

とか _matherr を自分で定義するべし

775:デフォルトの名無しさん
11/07/25 00:51:46.93
URLリンク(www2.ttcn.ne.jp)
全くの初心者で↑のサイトを見ながらランチャを作ろうとしているのですが、

[BCC32 エラー] Unit1.cpp(18): E2316 '_fastcall TForm1::Create(TObject *)' は 'TForm1' のメンバではない
[BCC32 エラー] Unit1.cpp(33): E2316 '_fastcall TForm1::Save1Click(TObject *)' は 'TForm1' のメンバではない
[BCC32 エラー] Unit1.cpp(50): E2316 '_fastcall TForm1::Delete1Click(TObject *)' は 'TForm1' のメンバではない
[BCC32 エラー] Unit1.cpp(59): E2316 '_fastcall TForm1::Image1Click(TObject *)' は 'TForm1' のメンバではない

というエラーがでます。
なぜでしょうか?

776:デフォルトの名無しさん
11/07/25 01:22:34.90
さーよくわかんないけど、フォームデザイナのオブジェクトインスペクタでそれぞれのイベントを
ダブルクリックして作ったらいいんじゃないかな。

777:772
11/07/25 08:51:46.03
つ ㌧ >>774
キャッチできないエラーって不便ですよねぇ。

778:772
11/07/25 13:10:32.01
ついでですが、何でキャッチできないんでしょう?
キャッチする方法あるのかなぁ?

matherr.cを見たけど、良く分からない(><)

779:デフォルトの名無しさん
11/07/25 13:11:39.66
>>776
ありがとうございます!
できました

780:デフォルトの名無しさん
11/07/25 13:22:52.77
>>778
URLリンク(msdn.microsoft.com)

781:772
11/07/25 13:32:49.36
つ ㌧ >>780

つまり、キャッチしようにも、例外じゃなくて、Cランタイム系で動作が規定されている関数なのね。

782:デフォルトの名無しさん
11/07/25 13:56:35.50
C++Builder XEで
ShellExecute(Application->Handle,
"open",
appname.c_str(),
NULL,
NULL,
SW_SHOW);

というコードで 'char const[5]' 型は 'const wchar_t *' 型に変換できない というエラーが出ます
これはUnicodeStringをAnsiStringに変換する事で直るのでしょうか?
もしそうならどう修正すればいいのでしょうか?

783:デフォルトの名無しさん
11/07/25 14:12:24.62
"open"
->
L"open"


784:782
11/07/25 23:23:52.37
>>783
遅れました
すみませんまだエラーが出ます…
'char *' 型は 'const wchar_t *' 型に変換できない とエラー内容が多少変わったのですが…

785:デフォルトの名無しさん
11/07/26 01:02:34.32
>>784
appname が AnsiString なら UnicodeString にする

786:782
11/07/26 01:16:13.41
>>785
ありがとうございます!
できました

787:デフォルトの名無しさん
11/07/26 13:47:30.33
C++Builder2010でADOTableについて教えてください
既存のmdbファイルがあって指定テーブルのフィールドの説明を取得する方法を教えてください
ADOTableでダメならSQL文でも構いません

788:デフォルトの名無しさん
11/07/27 01:22:03.91
>>787
URLリンク(support.microsoft.com)

789:デフォルトの名無しさん
11/07/27 09:43:06.09
>>788
ありがとう
これADOTableで表現するならどうやってやりますかね?

790:デフォルトの名無しさん
11/07/27 10:44:49.98
RecordsetのProperties

791:デフォルトの名無しさん
11/07/27 10:54:01.29
>>790
更にありがとうございます
しかしこれどうやって記述したらいいのかわかりません

792:デフォルトの名無しさん
11/07/27 11:42:28.29
丸投げイクナイ
少しは自分で考えな

793:デフォルトの名無しさん
11/07/27 11:57:43.94
うるせー。
だまって教えろ。ゴラァ

794:デフォルトの名無しさん
11/07/27 12:38:03.73
スレタイ読めない奴はレスしないで下さい

795:デフォルトの名無しさん
11/07/27 12:42:30.18
そして誰も居なくなるというループ


796:デフォルトの名無しさん
11/07/27 12:47:03.76
もう、終わりにしようよ。

797:デフォルトの名無しさん
11/07/27 13:33:29.25
もう~終わりだね

798:デフォルトの名無しさん
11/07/27 13:38:07.70
君が

799:デフォルトの名無しさん
11/07/27 15:38:43.55
マジコード教えてくださいよろしくです

800:デフォルトの名無しさん
11/07/27 16:19:22.92
小さく見える

801:デフォルトの名無しさん
11/07/27 17:24:20.80
GetFieldDesc_ADO = MyTable.Columns(MyFieldName).Properties("Description")

これをどうやってADOTableの書式で表現するかわかりません


802:デフォルトの名無しさん
11/07/27 20:56:29.33
>>801
まず、
1時間で正確に燃え尽きる蚊取り線香を3つ使って、1時間15分を計ってみてください。

803:デフォルトの名無しさん
11/07/28 01:36:46.64
蚊取り線香ってなかなか着火しないから
火を同時に何ヶ所にもつけるのって難しいよね

804:デフォルトの名無しさん
11/07/28 06:05:49.85
3人がかりだな

805:デフォルトの名無しさん
11/07/28 23:45:07.35
>>801を教えてくださいよ

806:デフォルトの名無しさん
11/07/29 00:59:27.92
ADOTable,ADODataSetにRecordset_といかうプロパティがあって、内部の
オブジェクト公開されてるからそれから、辿っていってみて。

807:デフォルトの名無しさん
11/07/29 11:44:01.13
Builder2007でUTF-8にURLエンコードする方法を教えてください。
HTTPEncodeを使っても正常にUTF-8になってないみたいなので

808:デフォルトの名無しさん
11/07/29 13:44:29.96
俺がアホだけかもしれないけど
UTF-8にURLエンコード
の意味が分からない

809:デフォルトの名無しさん
11/07/29 20:12:08.80
アホはレスしないでください。
ウザいだけです。

810:デフォルトの名無しさん
11/07/30 17:38:44.67
超初心者用なんだから分かるんなら説明してくれてもいいじゃん

811:デフォルトの名無しさん
11/08/01 17:24:56.85
>>806
辿ってみましたがフィールドのコメントを取得するようなのを発見できませんでした。
ぶっちゃけコードを教えてください

812:801
11/08/03 20:43:32.92
まじでさっさと教えてください。


813:デフォルトの名無しさん
11/08/03 21:07:55.33
______  ___________
         V
    _____
   /::::::::::::::::::::::::::\                  _
  /::::::::::::::::::::::::::::::::::::::\             /  ̄   ̄ \
  |:::::::::::::::::|_|_|_|_|           /、          ヽ はぁ?黙ってろデブw
  |;;;;;;;;;;ノ   \,, ,,/ ヽ          |・ |―-、       |
  |::( 6  ー─◎─◎ )          q -´ 二 ヽ      |
  |ノ  (∵∴ ( o o)∴)          ノ_ ー  |     |
/|   <  ∵   3 ∵>          \. ̄`  |      /
::::::\  ヽ        ノ\           O===== |
:::::::::::::\_____ノ:::::::::::\        /          |

814:デフォルトの名無しさん
11/08/04 06:27:21.25
C++Builder2007で、Access2000形式のDBにアクセスしたいんですが、簡単に実現できるクラスライブラリありますでしょうか?

815:デフォルトの名無しさん
11/08/04 09:48:01.54
dbGo(ADO)

816:デフォルトの名無しさん
11/08/04 10:47:18.89
簡単すぎてうんこが漏れそうになった

817:デフォルトの名無しさん
11/08/08 19:06:57.41
C++Builder5を使っています。

#include "ABCDEFGH.h" ←空のファイル
#include "ABCDEFGHI.h" ←存在しないファイル

上のようなCPPをコンパイルするとエラーもなく通るんですが、
これって基本先頭8文字しか確認していないってことでしょうか?
また、C++の仕様上では正しいのでしょうか?


818:デフォルトの名無しさん
11/08/08 23:18:23.60
ファイルシステムのせい
仕様上問題ない

819:デフォルトの名無しさん
11/08/09 12:28:32.91
>>818
8文字ってことでDOS形式のファイル名か何かが
絡んでいるだろうとは思っていましたが、仕様上
問題ないというのは驚きです。
となると、ヘッダーファイル名は先頭8文字をユニ
ークにしなければいけないんですね。


820:デフォルトの名無しさん
11/08/09 14:01:34.81
仕様がMS-DOSも前提にしてるからさ

821:801
11/08/11 17:05:51.55
さっさと教えてくださいよ

822:デフォルトの名無しさん
11/08/11 20:26:49.25
______  ___________
         V
    _____
   /::::::::::::::::::::::::::\                  _
  /::::::::::::::::::::::::::::::::::::::\             /  ̄   ̄ \
  |:::::::::::::::::|_|_|_|_|           /、          ヽ はぁ?黙ってろデブw
  |;;;;;;;;;;ノ   \,, ,,/ ヽ          |・ |―-、       |
  |::( 6  ー─◎─◎ )          q -´ 二 ヽ      |
  |ノ  (∵∴ ( o o)∴)          ノ_ ー  |     |
/|   <  ∵   3 ∵>          \. ̄`  |      /
::::::\  ヽ        ノ\           O===== |
:::::::::::::\_____ノ:::::::::::\        /          |

823: 忍法帖【Lv=16,xxxPT】
11/08/14 15:48:26.79
日本語版で開発したアプリケーションを英語版Windowsに持って行くと、エラーメッセージが日本語で表示されるのですが、
エラーを英語で表示するにはどうしたらいいのでしょうか?独島は日本の領土

824:デフォルトの名無しさん
11/08/16 03:24:59.36
ヘルプの「国際化対応アプリケーションの作成」を読むといいよ
BCB5の場合だけど


825:801
11/08/16 16:26:08.12
とっとと教えてくださいよ

826:デフォルトの名無しさん
11/08/24 15:20:16.08
BCB2010を使用しています。
pragmaでインクルードファイルのパスは指定できるのでしょうか?



827:デフォルトの名無しさん
11/08/24 15:57:39.79
おそらくできない。
URLリンク(docwiki.embarcadero.com)

828:デフォルトの名無しさん
11/08/24 16:03:16.21
URLリンク(docwiki.embarcadero.com)
#pragma option で使用できないオプションは以下のとおりです。
のところに
-Ifilename

829:デフォルトの名無しさん
11/08/24 16:22:12.53
>>827,828

有り難うございます。
すっぱり諦めます。

830:デフォルトの名無しさん
11/08/27 14:02:57.71
ビルダーで、計算した計算結果を
データ入力値や計算結果・図示などの
印刷を行いたいのですが、
ページは数ページから数十ページ程度の出力となりうるもので
ビルダーでするにはどのコンポーネントをつかう必要が
あるのでしょうか?
QuickReportを検索したのですが、
フリーであればよいのですが、
有償問わず教えてもらえたらと。

831:デフォルトの名無しさん
11/08/28 00:13:46.14
csvファイルにしてOpenOfficeで読み込んじゃったり

832:デフォルトの名無しさん
11/08/28 00:52:22.10
FastReportsかQuickReportsだろ

833:デフォルトの名無しさん
11/09/09 16:50:07.99
いまさら、BCB5update1 つかってます。

void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString str1 = "test1";
AnsiString str2 = Caption;

AnsiString dummy1;
AnsiString dummy2;
AnsiString dummy3;
AnsiString dummy4;

#if 1
AnsiString tmp = (str1.Length() ? str1:Caption );//EAccessViolation
#else
AnsiString tmp = (str1.Length() ? str1:str2 );//OK
#endif
}

↑で、EAccessViolation が発生するのは、なぜなんだろ?
コンパイラが腐ってるという噂もありつつ...

834:デフォルトの名無しさん
11/09/09 18:57:56.44
確かに、その辺のバージョンで、?:演算子で
?の右(どちらか)にデストラクタが必要なオブジェクトを置いたとき
変なコードを吐いたのを覚えてる。

危険と認識したので、俺的には
?の右に置くものは組み込み型のみで、かつ2つの型を統一にするようにしている。

835:デフォルトの名無しさん
11/09/09 19:01:09.08
一応。
暗黙の型変換とデストラクタとで
どちらが原因でバグにぶつかるのか深く追求しなかったから、
両方を避けるようにしてる、ってこと。
特にコンストラクタを介する暗黙の型変換は確実にとぶだろうと。

836:デフォルトの名無しさん
11/09/10 05:22:23.39
BCB6 でも再現するがな
さすがに XE2 では正しく動いた。テンポラリのオブジェクトを適切に破棄しておる

>コンパイラが腐ってるという噂もありつつ...
それが正解

837:833
11/09/10 19:35:16.92
はぅ、やはりそうなのか...

マシン語がよめれば、確信がもてたんだろけど、
よめないので、吐かれたコードが怪しいとおもいつつ、確信がもてなかただ
やっぱ、最後はマシン語よめないとなぁ...勉強しろよ>自分

if文に書き換えりゃいいだけだから、まぁ、大した話ではないんだけど、
失った時間が...

↑のは、dummy をはさんでるから、当該文で、例外がおきるけど、
スタックの状況によっては、全然離れたところが壊されて、
意味不明の動作になるから、けっこうたちがわるい...


838:デフォルトの名無しさん
11/09/10 19:55:35.09
機械語読めないならCとかC++とか使わないほうがいいよ。MSのドットネットとか使ったほうが安全だと思う。その例だとどうみたってコンパイラのバグだとしか
思えない。ただ、バグを回避するコーディングもテクだとは思うが。

839:デフォルトの名無しさん
11/09/11 10:18:11.84
いまどき機械語読める奴なんていねえよ。
8086の時代じゃあるまいし、バカかよ。
32bitのあのやたら長いバイナリを読める奴なんいるんかよ。
アセンブラ読めれば十分だろ、阿呆。


840:デフォルトの名無しさん
11/09/11 10:31:35.14
ナニを切れてるんだか。デバッガの逆アセを読めるかどうかを言ってるんだろ、たぶん。
「C3がRETだ」とかそういうレベルで機械語が読めるとでも思ったのか??コンパイラが
吐くコードがイメージできないと辛いってことだと思うが。

841:デフォルトの名無しさん
11/09/11 13:34:30.72
機械語
URLリンク(e-words.jp)
マイクロプロセッサが直接解釈・実行できる言語。数字の列で表現され、人間が簡単に理解できるような形式にはなっていない。


842:デフォルトの名無しさん
11/09/12 06:25:03.34
bpをpush/popする意味はなんですか?

843:デフォルトの名無しさん
11/09/12 12:23:43.92
bpをポイントとして使ってんじゃね

844:デフォルトの名無しさん
11/09/12 20:42:14.38
(E)BPは普通その関数の仮引数とローカル変数のスタック上の基準位置を示すのに使う。

845:833
11/09/17 21:24:46.26
ありゃ?私のがもとでなんか険悪?
ちなみに私も、アセンブラのつもりでマシン語とつかてた


846:デフォルトの名無しさん
11/09/17 21:27:26.21
という話はおいておいて。本題

また、BCB5update1 でのお話
//---------------------------------------------------------------------------
class TTest1
{
protected:
#if 1
AnsiString __fastcall GetTest(){return GetTest(1);}//<== E2247 アクセスできない
#else
AnsiString __fastcall GetTest(){return "1";}//<== OK
#endif
public:
__property AnsiString Test ={read=GetTest};
AnsiString __fastcall GetTest(int x){return AnsiString(x);}
};
//---------------------------------------------------------------------------
class TTest2
{
private:
TTest1 * Test1;

protected:
AnsiString __fastcall GetTest(){return Test1->Test;}
public:
__property AnsiString Test ={read=GetTest};
};
//---------------------------------------------------------------------------

これで、コンパイルエラーが出るのはなぜなんでしょ?

847:デフォルトの名無しさん
11/10/10 15:44:24.19
C++builderってdelphiみたいにポインタ使わずにプログラミングできる?

848:デフォルトの名無しさん
11/10/10 15:48:15.92
コンポーネント(TObjectからの派生)がポインタをフル活用しているから難しいんじゃないか?

849:デフォルトの名無しさん
11/10/10 16:30:47.92
Delphiはクラス型変数が実際にはポインタであって、それを構文上ポインタとして見せないというだけだからなぁ。

850:デフォルトの名無しさん
11/10/10 19:51:01.56
string ^ b = a; みたいのだったけか…一応 pascal でもポインタ使えたような記憶がある…
あまり使わないからよく覚えてないし

851:デフォルトの名無しさん
11/10/20 15:22:19.51
Delphiがベースなせいで
C++なら参照で済むところまでポインタ使ってる

852:デフォルトの名無しさん
11/10/20 17:27:05.35
WM_MOUSEWHEELイベントでマウスホイールを取ってるんだけど
StringGridにフォーカスがあるとWM_MOUSEWHEELが入ってこなくなるので
StringGridのMouseWheelを無視してWM_MOUSEWHEELにイベントが入ってくるようにする方法を教えてください

853:デフォルトの名無しさん
11/10/20 17:36:51.16
StringGridをいじってメッセージを転送するのじゃ

854:デフォルトの名無しさん
11/10/20 17:50:10.42
いやそもそもStringGridが受け取らないようにしたい
Enabledをfalseにする如くに。
しかし、グリッド操作もするのでそれはできない

855:デフォルトの名無しさん
11/10/20 18:06:40.77
ホイールを破壊する

856:デフォルトの名無しさん
11/10/20 18:26:34.41
きえろぶっとばされんうちにな

857:デフォルトの名無しさん
11/10/20 20:55:25.38
うん

858:デフォルトの名無しさん
11/10/22 19:07:24.72
プログラムがWM_MOUSEWHEELを受け取ったら
マウス位置がStringGrid内かを判断して
StringGrid内だったら、処理したい関数にメッセージを転送すればいい。
これはわりと普通に行われている処理で
ぐぐれば、いくらでも例が出てくる。


859:デフォルトの名無しさん
11/10/24 06:37:15.09
VCLのTObjectListってC++でテンプレートで使えないんでしょうか?
std::vector使えばテンプレートでキャストしなくてもいいですが、
VCLで統一したくて、でもTObjectListだとキャストいぱーいでいやーんです。。。

860:デフォルトの名無しさん
11/10/26 14:16:12.70
マルチスレッドでクリティカルセクションの使い方がわかりません。

グローバルでcs1,cs2を,Form1のpublicにchar buf[20]を宣言して、
Form1にEdit1,Edit2,Button1を貼って実行すると、競合させたbufの内容が
Edit2側にゴミとして表示されてしまいます。

 URLリンク(ideone.com)

下の2つがスレッド側です。
使い方が根本的に違うのでしょうか。

861:デフォルトの名無しさん
11/10/26 14:49:16.04
まじめに見てないけど。
家(buf)には鍵(cs)が1つだけあって、それを先に取ったものが家に入れる。
「家とは関係のない鍵(cs1,cs2)」をそれぞれが持っててるだけでは意味ない。


862:デフォルトの名無しさん
11/10/27 01:07:21.50
CriticalSectionは1個だけ作成する。
作成するタイミングも間違い。コンストラクタか、FormCreate()でnewすべき。
競合するオブジェクトにアクセスしたいときにAcquire()する。


863:860
11/10/27 13:24:14.00
>>861-862
やってみたのですが、上手くいきません。

スレッド側のSleepがロックを解除してしまうとかはなさそうだし。
Sleepがないと、クリティカルセクションを使わなくても見た目では
競合していなかったので入れてみたのですが。

本来のやりたい事は、buf[]を介してUSB-I/O基板を繋いで、
メインスレッド側:
 ・Timer1で定期アクセス
 ・特定の処理で単発アクセス
サブスレッド側:
 ・特定の処理で連続アクセス
だったので、実験的に競合させるサンプルプログラムを作って動作を
試したかったのです。
(ググっても、見た目で効果がわかるようなサンプルプログラムはなかったので)

タイマイベントの中でフラグを立てて、それを監視して競合を避ける方法も試してみます。

864:デフォルトの名無しさん
11/10/27 13:45:51.12
その上手くいかないソースは上げられませんか?

タイマイベントの中でフラグ云々は、クリティカルセクションそのもののような気が。

865:デフォルトの名無しさん
11/10/27 13:59:33.25
上げられません

866:860
11/10/27 15:16:25.87
>>864
こんなんです
URLリンク(ideone.com)

フラグでの処理は、まだは試していません

867:デフォルトの名無しさん
11/10/27 17:23:54.69
Synchronizeってメインスレッドで動くから競合しないんじゃ…。
丸ごとSynchronizeするならスレッドの意味ないんじゃ…。

868:デフォルトの名無しさん
11/10/27 20:22:24.18
これ、クリティカルセクション保持したままメインスレッドに処理渡すと
デッドロックしそうなんだけど。

基本は競合するところに最小限のロックをかけるだから、テストといえどもまずい。



869:デフォルトの名無しさん
11/10/28 06:54:34.72
>>866
Timer1Timer はメインスレッドのメッセージループ内で動作するよ。
Synchronizeを使って呼び出されたSyncDebugはメインスレッドのメッセージループ内で動作するよ。

TCriticalSectionやMutexみたいなことをメッセージループで実現するのがTThreadのSynchronizeなのでどちらかにしたほうがいいよ。


870:デフォルトの名無しさん
11/10/28 11:41:44.21
訂正

Mutexは違うな

871:デフォルトの名無しさん
11/10/28 13:00:04.95
違わなくね?

872:デフォルトの名無しさん
11/10/28 16:31:44.78
いや、同じことは出来るけど、排他制御を関数内で完結させる(局所的な排他制御機構)という点でMutexはいれないほうがいいかなと後で思った
用途の違いというかそんな感じ

873:デフォルトの名無しさん
11/10/28 22:25:37.51
TCriticalSection でぐぐれば、具体例がいろいろ出てくるよ。
実際に正しく動作する例を見れば、理解できるんじゃないかな。


874:860
11/10/29 10:27:45.71
>>967-868
最初はUnit2.cppのExecute()の中で競合させようと、
あれこれ試したのが、上手く競合した状態を作れなくて
Synchronizeを使い出してしまったんですが、本末転倒ですね。

Synchronizeがメインスレッドで実行されるということは、
全く意識していませんでした。

>>869-872
Mutexはプログラム自体の二重起動防止では使っていますが、スレッドに対しても
使えるということでしょうかね。

>>873
TCriticalSectionはググってDelphiの例も読んでみたのですが、局所的な部分の
例しか見つけられませんでした。

クリテクカルセクションは、私には効果を確認する能力がないので諦めて、
フラグで処理しようと思います。

長々と付き合ってもらい、ありがとうございました。

875:デフォルトの名無しさん
11/10/29 11:15:49.57
>フラグで処理しようと思います
いや、・・・TCriticalSectionは、そのフラグだから。
マルチスレッドでもちゃんと調停してくれることを保証するフラグ。


876:デフォルトの名無しさん
11/10/29 11:54:06.06
>>875
それは解りましたが、”私の能力では”効果が確認できないので
TCriticalSectionで書くのを止めるということです。

Synchronizeでも使ってメインスレッド側で調停させる
ことにします。



877:デフォルトの名無しさん
11/10/29 15:35:02.01
やーい無能m9(^Д^)プギャーーーッ

878:デフォルトの名無しさん
11/10/29 16:24:53.78
>>876
何逆ギレしてんの?カルシウムとっとけよー

879:デフォルトの名無しさん
11/10/31 10:11:38.77
あれが逆ギレに見えるんだww

880:デフォルトの名無しさん
11/11/01 10:05:20.79
指定コントロールのMouseDownイベントで
Corsorの形状を変えているのですが
この時にマウスボタンを離さないとカーソルが変わってくれません。
これマウスボタンを押したままでマウスカーソルを変更する方法を教えてください

881:デフォルトの名無しさん
11/11/01 16:40:12.41
試してないけど カーソルを変更した後にApplication->ProcessMessages();入れてみたら?

882:デフォルトの名無しさん
11/11/01 17:10:17.79
>>881
それやったけどダメですた。
ちなみにSleepもやったけどダメですた
何か強制的にカーソル変えるアレないですかね?
ちなみにScreenのカーソルなら一発で変わるんですけどね



883:デフォルトの名無しさん
11/11/01 17:26:33.21
やりたいことがよくわからないんだけど、コントロールのCursorはそのコントロール上に
カーソルが来たときのデフォルトのカーソル形状を設定するもの。なので通常は
Screen.Cursorを変更するんだけど。

884:デフォルトの名無しさん
11/11/17 23:18:33.47
TIniFileクラスのWriteStringで、
改行を含むAnsiString型の文字列(中身=AA\r\nBB\r\nCC)をiniファイルに書く。
これでiniファイルを覗いてみると、

[Test]
Test1=AA
BB
CC

のように正しく書き込まれている。
でも、それをReadStringで読み込むと、AAまでしか読めず
BBやCCの部分は読めない。

どうしたらいい?
ちなみにTest1に書きたい文字は行数が決まっていない(改行が何回あるかわからない)

885:デフォルトの名無しさん
11/11/18 00:13:38.10
[Test]
Test1_Lines=3
Test1_Line1=AA
Test1_Line2=BB
Test1_Line3=CC
じゃだめ?


886:デフォルトの名無しさん
11/11/18 08:47:52.86
その1
\r\nをあらかじめ別の文字あるいは文字列に置換して書き込む
読み出し時に、置換部分を\r\nに戻す
その2
複数行に対応した関数(例:ReadStrings)を作成する


887:デフォルトの名無しさん
11/11/18 09:41:37.18
Ini ファイルは、改行が区切りコードだからなぁ...
以下のデータがあった場合
AA\r\nzz=1\r\nCC

[Test]
Test1=AA
zz=1
CC

と書き込まれますが、884 は、ReadString で何が読めたらよい?

まぁ簡単には HTTPApp.HTMLEncode/HTMLDecode を使うことを考えたらどうだろうか
C++Builder でも(バージョンにもよるだろうけど)使えると思う。


888:デフォルトの名無しさん
11/11/21 06:26:05.41
C++ Builder は、いつ C99 や C++11 に対応しますか?


889:デフォルトの名無しさん
11/11/21 10:50:31.61
しません。
C++98 の亜種として、「Borland C++」という独自規格だと思ったほうがよいでしょう。
C++03 すら満足していません。


890:デフォルトの名無しさん
11/11/21 14:21:43.73
>>888
高速C++「もどき」コンパイラだと思っておけばいいよ

でもXE→Update→XE2→Updateの度にbcc32.exeのサイズが少しずつ大きくなっている
まあ多分SSE4.2とかSSE4a、AVXのインラインアセンブラを拡充しただけだと思うけど

891:デフォルトの名無しさん
11/11/21 14:27:49.03
かかってこいよ

892:デフォルトの名無しさん
11/11/21 15:55:10.13
>まあ多分SSE4.2とかSSE4a、AVXのインラインアセンブラを

それはすばらしい

893:デフォルトの名無しさん
11/11/21 16:16:06.30
でもVCのCompiler Intrinsicsの方が便利だと思わないか?
どちらにしろx64ではインラインアセンブラは禁止されちゃったしCompiler Intrinsicsを
使うしかないわけだが

今回C++Builderの64bit化が見送られたのもここら辺に関係ありそう



894:デフォルトの名無しさん
11/11/21 16:51:10.99
TArrowSeriesでLineSeriesのXValue[0]=0みたいに
動的に値を変更するにはどうしたらいいですか?
EndXValues->XValue[0]=0;
とやっても値が変わらないみたいなので・・

895:デフォルトの名無しさん
11/11/22 15:56:01.89
カタログには「ANSI/ISO C++言語標準への準拠とBoostサポート」って
書いてあったりするのになあ。
BCB5の頃は最新ANSI C/C++に対応って謳ってたのになあ。

インラインアセンブラはMSが勝手に自粛してるんじゃなくて、
コンパイラメーカーは64-bitでインラインアセンブラ実装しちゃ
いけないってことなのかな。


896:デフォルトの名無しさん
11/11/22 16:30:10.66
禁止。って誰がいってるの?

897:デフォルトの名無しさん
11/11/22 16:57:46.52
移植性が落ちるから?

898:デフォルトの名無しさん
11/11/22 17:13:03.04
Compiler Intrinsicsを使うとCPUに最適なコードを勝手に生成してくれるからだろう
アセンブリ言語まで抽象化されちまった

そのCPUが持つ最高の命令を使うわけだ
気持ち悪いな
レジスタが見えないとか

899:デフォルトの名無しさん
11/11/22 17:16:11.65
>>896
URLリンク(msdn.microsoft.com)(v=vs.80).aspx

>The intrinsics are required on 64-bit architectures where inline assembly is not supported.

禁止は別にされてないが、VCでAMD64用のコンパイラはインラインアセンブラを
サポートしなくなったってだけの話だろ

Embarcaderoがどのようにしようと勝手
でもCompiler Intrinsicsが主流になりそうな予感

900:デフォルトの名無しさん
11/11/23 03:34:04.45
Compiler Intrinsics は MS/Intel/GCC でサポートされちゃったからねぇ

901:デフォルトの名無しさん
11/11/24 13:25:04.98
TChartで動的にスクロールする方法おしえて

902:デフォルトの名無しさん
11/11/25 12:15:27.64
顔を横に動かす。

903:デフォルトの名無しさん
11/11/25 21:45:22.42
それでは縦スクロール出来ないじゃん


904:デフォルトの名無しさん
11/11/25 22:51:40.65
顔を縦に。。。
いや、なんでもない

905:デフォルトの名無しさん
11/11/28 23:48:57.40
え、インラインアセンブリ無しでどうやってMMXやSSE動かすの?

906:デフォルトの名無しさん
11/11/29 09:21:01.53
VisualC++、IntelC++ GCC は十分に頭がよいので、アセンブラ使わなくても十分速度は出る。
そしてどうしても使いたいときは、MMX/SSE の命令に一対一対応した専用の関数を使う。
上記のコンパイラは十分頭がよいので、それらを適切なアセンブラ命令に変換してくれる。

某所の頭が悪いコンパイラではそういうことはできない

907:デフォルトの名無しさん
11/11/30 16:19:47.91
質問あるんだけどログ見る限りじゃまともに答えてくれる人はいないな・・・
いつからこんなゴミ隔離スレになっちゃったんだろ・・

908:デフォルトの名無しさん
11/11/30 16:26:33.72
>>907からゴミ隔離スレになりました

909:デフォルトの名無しさん
11/11/30 17:15:17.43
もう板全体というか2ch自体が過去の遺物

910:デフォルトの名無しさん
11/11/30 17:22:08.29
やっぱりゴミが沸いた・・・
もうダメだこのスレ・・・

911:デフォルトの名無しさん
11/11/30 17:34:59.06
質問も書かずに荒らしてるのはお前なんだけどな

912:デフォルトの名無しさん
11/11/30 18:18:12.24
>>907
わかることなら答えるよ
ここのふいんきがいやなら公式フォーラムで

913:デフォルトの名無しさん
11/11/30 18:35:18.41
ここは雑魚しかいないから他行きます・・

914:デフォルトの名無しさん
11/11/30 18:37:32.90
2ch自体が雑魚の集まり


915:デフォルトの名無しさん
11/11/30 18:37:37.39
>>913
お前も雑魚だな

916:デフォルトの名無しさん
11/11/30 18:53:52.21
雑魚はレスしないで下さい。ウザイだけです。。

917:デフォルトの名無しさん
11/11/30 20:13:25.10
ま た お ま え か

918:デフォルトの名無しさん
11/11/30 21:01:48.45
>>916
と 雑 魚 が申しております

919:デフォルトの名無しさん
11/11/30 21:40:59.09
また雑魚か

920:デフォルトの名無しさん
11/12/06 16:26:47.18
TLineSeriesでLinePenの幅はピクセル単位だけどこれを物理量(軸スケールと同じ単位)で指定する方法を教えてください

921:デフォルトの名無しさん
11/12/06 17:09:10.79
Chart->LeftAxis->CalcPosValueってのを発見したけど!
何を与えても全部0で返ってくる・・・
これどうしたらちゃんとした値が返るの??

922:デフォルトの名無しさん
11/12/06 17:21:18.99
CalcYSizeValue

923:ヘルプの"チャート上でのカスタム描画"から引用
11/12/06 17:23:42.95
系列の値から画面の座標値を割り出すメソッド
系列にも座標値からポイント値への変換,およびこの反対の変換を行う似たようなメソッドがあります。主な違いは,系列メソッドを使用すると,計算の際に正確な軸コンポーネントを理解している必要がないという点です。
これは,右または上の軸に関連する系列,あるいは各軸に関連する複数の軸がある場合に,大変便利です。

CalcPosValue
このコードは,1000 の値を持つ Series1 のポイントを画面上のどこに置くかを計算します。
Var MyPos : Longint ;
MyPos := Series1.CalcPosValue( 1000 );
あるいは
MyYPos := Series1.CalcPosValue( Series1.YValue[ 0 ] ) ; { <-- 最初のポイント }

CalcXPos および CalcYPos
特定のポイントあるいは特定のポイント値に対する,X および Y の両方の座標値を計算することができます。
MyXPos := Series1.CalcXPos( EncodeDate( 1997, 12, 31) ) ;
あるいは
MyXPos := Series1.CalcXPos( Series1.XValues.Last ); { <-- 最後のポイント }

XScreenToValue および YScreenToValue
画面ピクセルをポイント値に変換するには,次のコードを使用してください(水平座標値用は XScreenToValue)。
Var MyValue : Double ;
MyValue := Series1.YScreenToValue( Y ) ;


924:デフォルトの名無しさん
11/12/06 17:29:49.35
>>922
ありがとう
てか、表示でけた。
Showイベで値取得できないのねこれ。
ボタン押して取得するようにしたら取れた
ちなみに
CalcPosValueとCalcYSizeValueの違いがいまいちよくわからないなあ
同じくLeftAxis->これでやったら違う値かあらmfだdsm「pふじこ

925:デフォルトの名無しさん
11/12/06 17:39:42.86
C++Builder6 で作ったプログラムで、
FormatDateTime で元号の表示してるプログラムの場合、
将来的に元号変わったら、その時点で使えなくなるって認識でいい?

926:デフォルトの名無しさん
11/12/06 17:49:16.72
OSに依存じゃなかったっけ

927:925
11/12/06 22:46:49.95
レスありがとう。

それなら安心なんだが。

質問するまえに、ライブラリのソース見てみればよかったんだね。
気がつかなかったw
ディスクを探す作業に戻るよ。

928:デフォルトの名無しさん
11/12/06 23:26:29.64
OSに依存だからこそどうにもならないような気も

929:デフォルトの名無しさん
11/12/07 13:46:13.08
Windows 7以降であれば追従可能になっている。
URLリンク(cpplover.blogspot.com)

逆にいえばそれ以前のOSではおそらく何が起きても追従しない。

930:デフォルトの名無しさん
11/12/08 02:18:24.03
>何が起きても追従しない。
どうしてそう言い切っちゃえるんだろう

Windows7 以降は見やすいところにテキスト平文で書かれている。ってだけ。
それ以前の OS でも変更可能。元の Microsoft のブログでも、以前の OS の話はしていない。
W7/.NET4 ならレジストリエディタで「簡単」に変更できる。って言ってるだけ。

つか Vista で元号更新できなきゃ大騒ぎになるだろうに

931:デフォルトの名無しさん
11/12/20 11:35:16.49
[MSBuild エラー] "ILINK32" タスクが予期せずに失敗しました。
System.Runtime.InteropServices.COMException (0x8000FFFF): 致命的なエラーです。 (HRESULT からの例外: 0x8000FFFF (E_UNEXPECTED))
場所 Borland.Build.Tasks.Cpp.IBCBuildHostObject.ILinkAliasVFSFile(String fileName, String& tempFilename)
場所 Borland.Build.Tasks.Cpp.ILINK32.GetCommandLine()
場所 Borland.Build.Tasks.Common.BaseTask.GenerateCommandLineCommands()
場所 Microsoft.Build.Utilities.ToolTask.Execute()
場所 Borland.Build.Tasks.Common.BaseTask.Execute()
場所 Borland.Build.Tasks.Cpp.ILINK32.Execute()
場所 Microsoft.Build.BuildEngine.TaskEngine.ExecuteTask(ExecutionMode howToExecuteTask, Hashtable projectItemsAvailableToTask, BuildPropertyGroup projectPropertiesAvailableToTask, Boolean& taskClassWasFound)

C++Builder2009でビルドすると上のようなエラーが出る場合があるんだけど何だろう?
コンパイルは終わってリンクでエラーになってるみたいだが、このままもう一度ビルドを
実行するとリンクも終わって正常に終了してプログラムも実行できるのだが・・・
サイズの大きいプログラムだから何らかの制限で途中でビルド出来なくなってるのかなぁ?
ググってみたところ国内では見つからず海外では同じような事象の報告が見つかったが
翻訳しても何を書いてあるのか全然ワカランし

932:デフォルトの名無しさん
11/12/21 12:45:57.75
C++Builder2010環境での__int64論理演算に関して教えて下さい。

BYTE dt[] = { 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88 };
__int64 len;

len = 0;
shift = 0;
for(i=0;i<8;++i)
{
len |= dt[i] << shift;
shift += 8;
}

BYTE変数を64bit変数に並び替えるプログラムを作りました。
しかし思った様な動作をせず、何処がいけないのかを調べたら、
シフトした結果が以下の様になっていました。

0x0000000000000011 ok
0x0000000000002200 ok
0x0000000000330000 ok
0x0000000044000000 ok
0x0000000000000055 ng 0x0000005500000000これが正しい値
0x0000000000006600 ng 0x0000660000000000
0x0000000000770000 ng 0x0077000000000000
0x0000000880000000 ng 0x8800000000000000

どうしてこの様な結果になるのでしょうか?
どなたかアドバイスをお願いします。

933:デフォルトの名無しさん
11/12/21 12:57:51.21
len |= (__int64)dt[i] << shift;
とか?

934:デフォルトの名無しさん
12/01/15 19:24:20.03
簡単なランチャーを作ってみようと思い、
フォームにButtonとMemoを配置し
drag&Dropを使ってTMemoにDropしたファイル名のフルパスを表示する所までできました。
TButtonにDropしたファイルのアイコン表示とファイル登録をしたいのですが、どうすればいいのでしょうか

935:934
12/01/15 21:06:23.09
あ、すみません
ファイル登録はできました。
ButtonにDropしたファイルのアイコンを表示するにはどうすればいいでしょうか?

936:デフォルトの名無しさん
12/01/16 07:46:49.35
SHGetFileInfo

937:デフォルトの名無しさん
12/01/18 16:27:21.94
C++Builder2010でメール受信
TIdMessage *msg = new TIdMessage(this);
IdPOP3->Retrieve( 1, msg );
Memo->Lines->Add( msg->Subject );
delete msg;
色々ぐぐったらこれでOKみたいなんだけどSubjectが化ける
SubjectはJconvert使わなくてもOKみたいなんだけど、これどうやったらちゃんと表示しれくれますかね?

938:デフォルトの名無しさん
12/01/18 16:40:58.64
>SubjectはJconvert使わなくてもOKみたいなんだけど

思い込みは捨てなさい

939:デフォルトの名無しさん
12/01/18 16:42:08.85
いや、どのサンプルみてもSubjectでJconv使ってない。
本文では使ってっけど。
っていうか、知らないならレスしないでね。

940:デフォルトの名無しさん
12/01/18 17:09:33.19
C++Builder2010ってIndy10なのかな?
Indy9なら
URLリンク(read2ch.com)
334あたりから
最新のIndy10
URLリンク(indy.fulgan.com)
では直っているような気がするが、確認はしていない。


941:デフォルトの名無しさん
12/01/18 17:12:07.45
>>940
Indy10です。


942:デフォルトの名無しさん
12/01/18 17:14:27.06
ちなみに、Subjectは1行で長くはないでふ

943:デフォルトの名無しさん
12/01/18 17:15:30.73
最新Indy10のIdCoderHeader.pas
と中身を比較してみて
更新されているなら、最新のIndy10にすれば直る。

かも・・・


944:デフォルトの名無しさん
12/01/18 17:18:22.61
>>934
ありがとうやってみます。
ちなみに、ふつうは>>937でOKだよね??

945:デフォルトの名無しさん
12/01/18 17:25:27.46
>>943
結構違ってましたねこれ
ちなみにこれどやってコンパイルするんですか?

946:デフォルトの名無しさん
12/01/18 19:43:38.75
C++Builder 2009 の queue.h を見たら,
内部コンテナの c が,その上の protected を
コメントアウトして public にされちゃってるん
だけど,何でだろ?

947:デフォルトの名無しさん
12/01/20 10:05:08.80
TImageの画像を回転させたいんだけど
DirectXとかでできるならやりかた教えてくださ

948:デフォルトの名無しさん
12/02/19 12:03:40.92
エクセル操作についての相談です。
シート8gatuのセル[5,7]に書かれた値を、シート9gatuのセル[5,7]に書きたい。
で、Delphiのようにスマートに書きたいのですが、OlePropertyGetとOlePropertySetでアタッチするのが、どうも不細工で。
COlevariantか何かでシート情報等を取得できれいいのだけど、そういうのが可能か?
初心者なのでよくわかりません。ということで、ちょっと知恵を貸してもらえませんか。いずれもTurboExplorerです。
/////////////////////////////////
var
ExcelApp,ExcelBook,ExcelSheet:Olevariant;
begin
ExcelApp := CreateOleObject('Excel.Application');
ExcelBook := ExcelApp.WorkBooks.Open('C:\\MOGURA.xls', False);
ExcelSheet := ExcelBook.WorkSheets['8gatu'];//--読み込み
MIMIZU := ExcelSheet.Cells[5,7];
ExcelSheet := ExcelBook.WorkSheets['9gatu'];//--書き込み
ExcelSheet.Cells[7,5] :=MIMIZU;
//--------------
/////////////////////////////////
Variant exAppl,exWorkbooks, exWorkbookl,exWorkSheets,exWorkSheet;
exAppl = Variant::CreateObject("Excel.Application");
exAppl.OlePropertySet("Visible",false);
exWorkbooks = exAppl.OlePropertyGet("Workbooks");
exWorkbook = exWorkbooks.OleFunction("Open","C:\\MOGURA.xls");
exWorkSheets = exWorkbook. OlePropertyGet("WorkSheets");
exWorkSheet = exWorkSheets.OlePropertyGet("Item","8gatu");//--読み込み
MIMIZU = exWorkSheet. OlePropertyGet("Cells",5,7).OlePropertyGet("Value");
exWorkSheet = exWorkSheets. OlePropertyGet("Item","9gatu");//--書き込み
exWorkSheet.OlePropertyGet("Cells",5,7).OlePropertySet( "Value",MIMIZU);


949:デフォルトの名無しさん
12/02/21 16:29:59.07
BCB5で作ったプログラムをBCB2006にコンバージョンしています。
このプログラムで、別途作成したbplがあって、これは何とか
BCB2006でビルド出来たのですが、パッケージインストールして
いざコンポーネントを貼り付けようとしたら、「リストがインデックスの境界を超えた」
とエラーになります。
何とか調べたところ、以下のプロパティの n に大きな値が入ってきてることがわかりました。

__property AnsiString DspIdxs[int n] = {read = FGetDspIdxs};

それで質問なんですが、このプロパティの int n って初期化が必要なのかと思いますが、
どうやって初期化すればよいのでしょうか?

誰か、この初心者におしえてください。


950:デフォルトの名無しさん
12/03/02 18:33:15.90
大分昔に作ったTurboCで作ったDOSアプリをXE2にコンバージョンしたいのですが、test.prjを何に変えればよいのですか?
TurboCのバージョンは2.0です。

951:デフォルトの名無しさん
12/03/03 00:40:49.30
ファイルのリストと、特別に指定したオプションがわかるかといいかと。
.prj は、バイナリファイルなので、
Turbo C 2.0 の IDE のプロジェクトウィンドウで見るか、
prj2mak ユーティリティって、TC20 にあったっけ?



952:デフォルトの名無しさん
12/03/09 19:28:33.92
borland の make の並列化対応版て無い?

953:デフォルトの名無しさん
12/03/10 21:25:36.26
無い。

954:デフォルトの名無しさん
12/03/13 11:55:20.09
Windows7にC++Builder5を入れたんだけど
プロジェクトのオプションを開こうとするとアドレスエラーが出る
これ回避方法教えてくささい

955:デフォルトの名無しさん
12/03/13 12:00:29.57
回避できません。Visual Studio C++ を勧めます。

956:デフォルトの名無しさん
12/03/13 12:08:07.88
マイ糞ソフト信者は消えてくれ

つーか、他のWin7に5入れても特にエラー出ないんだが
今日他のに入れたらエラーでまくりなんだ
なんとかしてくれ

957:デフォルトの名無しさん
12/03/13 13:10:26.17
回避できません。
別のまともなツールを使ったら?


958:デフォルトの名無しさん
12/03/13 13:12:23.80
いいから消えろよ蛆虫

959:デフォルトの名無しさん
12/03/13 14:14:34.71
>>954
俺はXPモードで動かしてるよ

960:デフォルトの名無しさん
12/03/13 14:19:16.96
>>959
俺もそうしてる
2台に5入れてんだけどそれは大丈夫なんだけど
今日他のPCに入れたらエラーでまくり理由わからん
フォルダの権限とかもアレしたみたけどだめ
ほんとマイクロソフトはゴミすぎる

961:デフォルトの名無しさん
12/03/13 15:58:36.84
わざとかもね

962:デフォルトの名無しさん
12/03/13 16:09:58.05
ああ、ちなみにおかしいのはバージョンが新しいWin7だな
これ完全にマイクロソフトが仕込んだアレだろ

963:デフォルトの名無しさん
12/03/13 16:59:53.82
ばーじょんうぷ、はよはよ

964:デフォルトの名無しさん
12/03/14 01:02:55.07
いつまで前世紀のもの使ってんだよ

965:デフォルトの名無しさん
12/03/14 04:33:19.78
Q>これ回避方法教えてくささい
A>回避できません。

終了


966:デフォルトの名無しさん
12/03/14 13:35:20.14
まだOWL使ってるぜ

967:デフォルトの名無しさん
12/03/14 22:41:29.18
OWLnextにしようぜ

968:デフォルトの名無しさん
12/03/14 23:40:01.12
ああOWLNextだ

969:デフォルトの名無しさん
12/03/15 00:05:37.17
owltech

970:デフォルトの名無しさん
12/03/15 21:19:47.22
turboC++2006explorでメソッド単位で折りたたむと、
{}が変なところでぶちぶち切れるんだけど、
修正パッチって出てない?知らない?

971:デフォルトの名無しさん
12/03/15 23:35:37.23
ん~聞いたことないなぁ。Turbo Explorerはもうなかったことにされちゃってるし。

972:デフォルトの名無しさん
12/03/23 13:52:58.06
TSpeedButtonに色付けしたいだけなのですが、
このボタンはグレイ固定?

973:デフォルトの名無しさん
12/03/23 14:05:18.44
うむ

974:デフォルトの名無しさん
12/03/23 17:05:07.86
ボタンに色付けしたい*だけ*って表現をよく見るけど、テーマの適用とか考えると
*だけ*じゃなくて相当微妙な問題だってことを理解する必要があるわな。
Windows 7のAero Glassとかだとフォーカスがあるボタンのグラデーションは
実際にはアニメーションしてたりするわけで。

975:営利利用に関するLR審議中@詳細は自治スレへ
12/04/06 10:20:24.21
C++Builder2007なんだけど
起動するたびにツールパレットが非表示になってて使いづらいWin7
XPだと毎回起動してもちゃんと表示されてんだけど
これどこで消えないように設定するの?



最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch