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

C++Builder相談室 Part15

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2005/08/21(日) 17:48:30
C++Builderに関する質問・回答や議論等を行う相談室スレッド。


過去スレ・関連サイトは>>2-7あたり。
0032デフォルトの名無しさん2005/08/23(火) 17:04:58
>>31
testの間違いです。。。
怪しげって何が怪しいんでしょうKA。
0033デフォルトの名無しさん2005/08/23(火) 17:10:10
>>32
いや、何かそこに理由がありそうだなぁ、と。全然わかんないんだけどね。役立たずで申し訳ない
0034デフォルトの名無しさん2005/08/23(火) 17:25:14
>>31
分からないのにスレ違いのネタ引っ張るなよ。
0035デフォルトの名無しさん2005/08/23(火) 17:28:07
^^;
0036デフォルトの名無しさん2005/08/23(火) 17:31:05
print("check..");
って何( ´∀`)?

ってか、本当にコンパイル通ってるのかYO!

#include <stdio.h>
int main()
{
  print("check");
  return 0;
}

Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
test.cpp:
エラー E2268 test.cpp 5: 未定義の関数 'print' を呼び出した(関数 main() )
*** 1 errors in Compile ***
0037デフォルトの名無しさん2005/08/23(火) 22:23:27
>>36
タイプミスですた・・・ww
0038デフォルトの名無しさん2005/08/23(火) 22:55:34
だからおまいらスレ違いの話題をひっぱるなっつうの。
0039デフォルトの名無しさん2005/08/24(水) 00:16:42
全然別の test.exeを実行していたりしたら笑うぞ。ホントに、そこにある test.exeを
実行しているのか? つーか、test をtextと書いたり、printとか何とか、
実際にやった内容と違うことばっかり書いて質問されてもなぁ・・・

問題の切り分けをするなら、300行のナントカは、ともかく、最低限、
printfが1行だけある main() をコンパイルしてみて、できた実行ファイルを、
ルートからフルパスで指定して動かしてみること。
変なパスが通っていて、ヨソにあるexeを実行していたりしないか?

あと、"check.." って、もしかして、改行マークなし? バッファのフラッシュを
しないなら、\nがいるんじゃないかな。

いずれにせよ、完全にスレ違いなので、続きは誘導先でやってくれ。
0040デフォルトの名無しさん2005/08/24(水) 00:47:59
こういうときには,症状が再現する最小限のソースコードをアップするのが常識だと思うがなぁ
0041402005/08/24(水) 00:48:42
おっと,>39と少しかぶっちまったか
0042デフォルトの名無しさん2005/08/24(水) 08:42:39
HelloWrld 表示するだけに不具合がでるコンパイラ
なんてあるわけないし。 100%間違いなく、操作間違ってる。
0043デフォルトの名無しさん2005/08/24(水) 11:35:30
TImageのCanvasに折れ線グラフを描画しているのですが
Transparentをtrueにするとたまにグラフが描画されなくなります。
なんとなく、Canvasからはみ出たときに起こるのですが
これの対処法を教えてください。
0044デフォルトの名無しさん2005/08/24(水) 12:19:18
>>43
まずは「なんとなく」の部分をはっきりさせるべし
0045デフォルトの名無しさん2005/08/24(水) 12:22:03
>>43
Transparentをtrueにしたとき透明表示される色は特に指定しなければ
確か一番左下のドットの色だっけか?

まずはsageようか。
0046デフォルトの名無しさん2005/08/24(水) 13:20:48
質問するのに下げる理由はないよ。
sage厨はスルーで
0047デフォルトの名無しさん2005/08/24(水) 13:44:48
>>45
ありがとうございます。
「一番左下のドットの色」で全ての謎がとけました。
グラフを描画する時にCanvasからはみだしてもちゃんと描画されるときと
されない時で描画されない時は左下のドットに描画してる時でした。
予めTransparentColorに色を与えておいて見事に解決しました。
0048デフォルトの名無しさん2005/08/24(水) 17:32:45
>>44
新党日本
0049デフォルトの名無しさん2005/08/24(水) 18:08:29
フォームに乗ってる全てのコントロールを列挙する方法を教えてください
0050デフォルトの名無しさん2005/08/24(水) 18:14:30
Componentsだった
0051デフォルトの名無しさん2005/08/24(水) 22:05:15
自動作成の対象にしなかったフォームの表示方法を教えてください
0052デフォルトの名無しさん2005/08/24(水) 22:16:57
TForm2 *form = new TForm2(this);
form->Show();
0053デフォルトの名無しさん2005/08/27(土) 10:05:22
すいません、C++Builder6のBDEもしくはdbExpressでMySQLとのSSL通信は可能でしょうか?

MySQLのSSL通信機能はver4.1から正式にサポートされたものなんですが…。
0054302005/08/30(火) 00:02:36
解決しました。
あるグローバル変数を配列を数千×数千で定義していたので出来ませんでした。
百×百位にしてコンパイルしたら実行できました。
しかし実行には.EXEつけないと無理ですが・・・。

0055デフォルトの名無しさん2005/08/30(火) 00:50:31
>>54
うーん、まだまだあやしい。。。 けど、このスレで続けるのは変だから、
うだうだ書くのはやめておくね。
0056デフォルトの名無しさん2005/08/31(水) 14:08:58
>>30=54
『グローバル変数』なら配列の要素が大きくてもそこまで問題じゃないんじゃね?
仮にintで2000x2000だとしたら約15MBくらい
『オート変数』の間違いでは・・・

あと、exeつけないと実行できないんだったら、コマンドプロンプトで『notepad』は起動するんか?
0057デフォルトの名無しさん2005/08/31(水) 22:03:56
>>56
>>38を声に出して百回読め、このあきめくら。

0058デフォルトの名無しさん2005/08/31(水) 22:53:55
馬鹿だなぁ。そんなレス構っちゃないんだよ。
0059デフォルトの名無しさん2005/08/31(水) 23:16:09
Builder5です。
ファイル(F)-新規作成(N)のフォームタブに
自作のフォームを追加したいのですが、方法がよくわかりません。
プロジェクト(P)-リポジトリに追加(T)で追加できそうなのはわかったのですが、
フォームを新規作成した状態では、リポジトリに追加(T)は無効になっています。
どのようにすれば、自作フォームを追加できるでしょうか。
よろしくお願いします。
0060デフォルトの名無しさん2005/09/01(木) 00:05:04
>>59
フォーム右クリックで「リポジトリに追加」
0061デフォルトの名無しさん2005/09/01(木) 00:52:43
>>60
さんくすです。出来ました。
右クリックにあったんですね。気づきませんですた。
0062デフォルトの名無しさん2005/09/03(土) 18:16:43
他のアプリのGUIをのっとって操作する事は可能ですか?
0063デフォルトの名無しさん2005/09/03(土) 18:23:00
可能です
0064デフォルトの名無しさん2005/09/03(土) 20:02:33
フックフック
0065デフォルトの名無しさん2005/09/04(日) 00:36:16
How can I send keys to another application?
http://thunder.prohosting.com/~cbdn/k009.htm
0066デフォルトの名無しさん2005/09/04(日) 05:06:55
アプリケーションのアイコンをImage1に描画
サイズは48×48

DrawIconEx(Image1->Canvas->Handle, 0, 0, Application->Icon->Handle, 48, 48, 0, 0, DI_NORMAL);
0067デフォルトの名無しさん2005/09/04(日) 12:28:10
次バージョンがでるまで、あと何回枕を濡らせばいいのですか?
0068デフォルトの名無しさん2005/09/04(日) 12:31:17
死ぬまで
0069デフォルトの名無しさん2005/09/04(日) 12:55:46
ヘルプ参照しても見つけられないので質問を投げてみます。
double 型の変数から Currency 型の変数に値を変換して設定するための
標準的な関数がありそうな気がします(いや、きっとあるはず)が、見つけ
られません・・・
おしえてくださいませ。m(_._)m

ちなみに・・・
文字列⇔Currency は、StrToCurr, CurrToStr
Currency → double は operator double()
など、その周辺はすぐ見つけられますね。

こういった逆引きって結構時間かかりまっすねぇ・・・
#Variant 型を経由しなきゃダメなんて落ちじゃないですよねー。
0070デフォルトの名無しさん2005/09/04(日) 13:02:52
コンストラクタ
__fastcall Currency(double val);
0071デフォルトの名無しさん2005/09/04(日) 13:04:08
Currency& __fastcall operator =(double rhs);
0072デフォルトの名無しさん2005/09/04(日) 13:05:32
初期化&代入できるんじゃん
0073デフォルトの名無しさん2005/09/05(月) 17:06:17
なにか普通のメンバで行うしかないと思っているとこんな盲点に嵌まってしまう罠。
0074デフォルトの名無しさん2005/09/07(水) 13:22:45
質問です。
メインフォームから動的に作成した子フォームを
MDI親フォームとする方法を教えてください。
0075デフォルトの名無しさん2005/09/08(木) 01:08:11
>>74
TFormはfsMDIChildeのとき、問答無用でメインフォームを親フォームにするみたいだな。
つうわけで無理っぽい。
0076デフォルトの名無しさん2005/09/08(木) 01:48:16
VSS2005みたいにDelphi2006ベータ版配布するのか??
しないだろう。
ユーザは減っていくだけ!!


もし、DELPHI2006無償配布を多くしたら復活の道あるのに。。
0077デフォルトの名無しさん2005/09/08(木) 06:13:33
画像処理・エフェクト( 24ビットのビットマップのみ対応しています )      
http://www.geocities.jp/octbery/program.html
・画像処理・エフェクトの準備

・グレースケール : 画像を白黒画像に変換
・2値化 : 特定のレベルをしきい値として、しきい値より明るいピクセルは白に、暗いピクセルは黒に変換
・階調の反転 : 画像の階調を反転
・ポスタリゼーション : 画像の階調を変える

・wipein : 画像をワイプイン
・wipeout : 画像をワイプアウト
・fadein : 画像をフェードインする
・fadeout : 画像をフェードアウトする

タイマー関連

・プログラムの実行時間を計測

その他

・コントロールの再描画時のちらつきを減らす
・midi音源から音を鳴らす
0078デフォルトの名無しさん2005/09/08(木) 08:42:26
>>75
やっぱりorz
ありがとうございました
0079デフォルトの名無しさん2005/09/08(木) 09:33:19
タスクバーを除いたデスクトップの領域を取得するには?

Windows API SystemParametersInfo()を使用します。


Example:


void __fastcall TForm1::Button1Click(TObject *Sender)
{
TRect r ;

SystemParametersInfo(SPI_GETWORKAREA, 0, &r, 0);
Form1->Top = r.Top;
Form1->Left = r.Left;
Form1->Width = r.Right - r.Left;
Form1->Height = r.Bottom - r.Top;
}
0080デフォルトの名無しさん2005/09/08(木) 10:04:59
Screen->WorkAreaRect
0081デフォルトの名無しさん2005/09/08(木) 10:55:02
>>75
CreateParamsがオーバーライド出きる様に変更されてて、
生成処理差し替え出きると思ったが。
0082質問者2005/09/08(木) 11:33:29
>>81
MDIChildのフォームの親フォーム(MDIForm)はメインフォームの子フォーム
である事が絶対でありメインフォーム自体を変更するのは無しです。

この方法は可能ですか?

0083Image2005/09/08(木) 11:44:47
配列に読み込んだ画像データをImageに直接描画することを考えています。
その際ScanLineを使いたいと思っています。
Delphiではできたのですが、C++Bulderではよくわかりません。
変数の宣言等等含め教えていただけたらと思います。
0084デフォルトの名無しさん2005/09/08(木) 11:51:51
>>83
たとえば24bit幅100pixelなビットマップの12行目を黒に塗りつぶす場合
int line = 12;
char* ptr = static_cast<char*>(Bitmap->Scanline[line]);
for(int i =0; i<100; i++)
{
  *ptr = 0; ptr++; //青
  *ptr = 0; ptr++; //赤
  *ptr = 0; ptr++; //緑
}

あとは考えれ。
0085Image2005/09/08(木) 12:34:43
>>84
回答ありがとうございます。
ごめんなさい。理解が追いつかないです。
配列に読み込んだデータImage[100][100]があるとすると
それはどのように扱うのですか?
0086デフォルトの名無しさん2005/09/08(木) 13:07:36
Delphiでできたのに何でこれの理解が追いつかないのか
ちょっとわからん
0087デフォルトの名無しさん2005/09/08(木) 13:38:34
>>85
Scanlineの返す値が何なのか理解してるか?
0088Image2005/09/08(木) 13:44:09
わからないから質問してみました。すみません
ちなみにDelphiでは以下のように書きました。
for y:=0 to ysize-1 do
begin
p:=bmp.ScanLine[y];
{y列めのデータのアドレスにポインタをセット}
for x:=0 to xsize-1 do
begin
c:=xy[y,x]-(wl-(ww div 2));
c:=(c*256) div ww;
if c > 255 then c:=255;
if c < 0 then c:=0;
p^[x].r:=c ;
p^[x].g:=c ;
p^[x].b:=c ;
end;
end;
form1.image1.Canvas.Draw(0,0,bmp);
end;
0089Image2005/09/08(木) 14:22:23
>>87
Bitmap->Scanline[line]
Bitmapの一列分のデータを返すものだとなんとなくですが
理解しています。
ただ、
BitMap.LoadFromFile('C:\Program Files\Common Files\Borland Shared\
Images\Splash\256color\factory.bmp');
みたいな感じに、先にBitmapに画像を読み込んでいるわけではないので
そのあたりがどのようになるか知りたかったわけです。
説明が悪くすみません。
0090デフォルトの名無しさん2005/09/08(木) 17:40:38
Delphiユーザです。
予め読み込んでいない Bitmap は真っ白なビットマップです。
Scanline[y] が返すポインタは型なしですが、その内容は PixelFormat に依存します。
pf32bit ---- PRGBQuad
pf24bit ---- PRGBTriple
pf8bit 以下 ---- PByte
ですから適切にキャストすると色データにアクセスできます。

逆にいうと ScanLine を使う前に PixelFormat が確定している必要があります。
0091デフォルトの名無しさん2005/09/08(木) 21:26:17
タスクバーを除いたデスクトップの領域を取得するには?

void __fastcall TForm1::Button1Click(TObject *Sender)
{

TRect r ;

SystemParametersInfo(SPI_GETWORKAREA, 0, &r, 0);

Form1->Top = r.Top;
Form1->Left = r.Left;
Form1->Width = r.Right - r.Left;
Form1->Height = r.Bottom - r.Top;

}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{

Form1->Top = Screen->WorkAreaRect.Top;
Form1->Left = Screen->WorkAreaRect.Left;
Form1->Width = Screen->WorkAreaRect.Right - Screen->WorkAreaRect.Left;
Form1->Height = Screen->WorkAreaRect.Bottom - Screen->WorkAreaRect.Top;

}
0092デフォルトの名無しさん2005/09/08(木) 21:37:37
void __fastcall TForm1::Button1Click(TObject *Sender)
{

TRect r ;

r = Screen->WorkAreaRect;

Form1->Top = r.Top;
Form1->Left = r.Left;
Form1->Width = r.Right - r.Left;
Form1->Height = r.Bottom - r.Top;

}
0093デフォルトの名無しさん2005/09/08(木) 21:56:56
Form1->BoundsRect = Screen->WorkAreaRect;
0094デフォルトの名無しさん2005/09/09(金) 00:52:13
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Caption = Screen->DefaultIme;
}
0095デフォルトの名無しさん2005/09/09(金) 00:59:30
Form1->BoundsRect = Screen->WorkAreaRect;
Form1->BoundsRect = Monitor->WorkareaRect;
0096デフォルトの名無しさん2005/09/09(金) 10:09:23
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Button1->Caption = "C++Builder";
}

void __fastcall TForm1::Button2Click(TObject *Sender)
{
Button1->Perform(BM_CLICK, 0, 0);
}
0097デフォルトの名無しさん2005/09/10(土) 06:01:33
http://sapporo.cool.ne.jp/tanomi/qanda/a047.html
OnIdleイベントはTApplicationのイベントなのです。
なので、Applicationに割り当てます。
場所はコンストラクタが良いでしょう。
//Formのコンストラクタで
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
Application->OnIdle = IdleHandler;
}
0098デフォルトの名無しさん2005/09/10(土) 10:13:25
ちょっと思ったんですが
.exe内の関数を.dllに入れて呼び出す場合は実行速度は
大して変わりないのでしょうか?
0099デフォルトの名無しさん2005/09/10(土) 10:15:25
>>98
変わらない
0100デフォルトの名無しさん2005/09/10(土) 10:18:41
起動が遅くなるよ
0101982005/09/10(土) 10:38:42
>>99-100
なるほど、処理速度自体は変わらないけど起動時読み込みにより
遅くなるって事ですね。

起動が遅くなる度合いは関数の数に関係なく.dllの数によるものですか?
0102デフォルトの名無しさん2005/09/12(月) 04:14:24
http://code.junki.main.jp/
http://blog.livedoor.jp/junki560/
0103デフォルトの名無しさん2005/09/12(月) 05:38:10
>>100
機動は早くなるよ
0104デフォルトの名無しさん2005/09/12(月) 07:35:51
C++Builder6 Proで国際化対応、すなわち英語と日本語の切り替えが出来るようなアプリケーションを作りたいのですが、
どのような方法が、良いのでしょうか?

起動時にOSの言語を判定して、キャプションやフォントを変更していく以外に何はよい方法はないでしょうか?
0105デフォルトの名無しさん2005/09/12(月) 11:15:28
http://www.geocities.jp/octbery/_program/scanline.html
http://www.plustarnet.com/aspil/Programming/cpp01.htm
//コンストラクタ(constructor)とデストラクタ(destructor)
__fastcall ~TForm1();

__fastcall TForm1::~TForm1()

{

delete pBitmap;
delete pBitmap2;
delete tmpImage;

pixelinfolist->Clear();
delete pixelinfolist;

pixelinfolist2->Clear();
delete pixelinfolist2;
}
0106デフォルトの名無しさん2005/09/12(月) 22:16:05
>>104
リソースdllを丸ごとすげ替える方法がある。
ヘルプ読め
0107デフォルトの名無しさん2005/09/12(月) 23:58:34
>>106
ヘルプを読んでみたのですが、フォームの内容をDLLに保存する方法がよく分かりません
0108デフォルトの名無しさん2005/09/13(火) 08:16:26
http://makimo.to/2ch/piza2_tech/969/969458279.html
http://makimo.to/2ch/piza2_tech/997/997074601.html
http://makimo.to/2ch/pc3_tech/1016/1016065855.html
http://makimo.to/2ch/pc2_tech/1035/1035596146.html
http://makimo.to/2ch/pc2_tech/1045/1045542179.html
http://makimo.to/2ch/pc5_tech/1054/1054280736.html
http://makimo.to/2ch/pc2_tech/1061/1061594556.html
http://makimo.to/2ch/pc5_tech/1080/1080541814.html
http://makimo.to/2ch/pc5_tech/1089/1089299158.html
http://makimo.to/2ch/pc5_tech/1094/1094749339.html
http://makimo.to/2ch/pc5_tech/1099/1099238936.html
http://makimo.to/2ch/pc8_tech/1108/1108468718.html
0109デフォルトの名無しさん2005/09/13(火) 18:19:07
>>104
テキストファイルからボタンのキャプションなどを読み込めばいいのでは?
0110デフォルトの名無しさん2005/09/13(火) 20:25:41
>>107
リソースdllウィザードとかその類いのが新規作成の中に無いか?
0111デフォルトの名無しさん2005/09/14(水) 00:22:18
borland c++ builder 6.0 professional でSDLを導入しようと思ってます。
行ったことは、まず
SDL-1.2.9.zipをダウンロードして展開。
中に入っていたBorland.zipを展開。(Borlandディレクトリができる)
Borland\bcb6にlibSDL.bpgをダブルクリックする。
プロジェクトメニューからすべてのプロジェクトをメイクをしました。
そうすると、パッケージのインポートライブラリーが見つかりませんと出ました。
これは、同梱されていたBorland.htmlというファイルを参考に実行しましたが
うまくできません。
どうやったらうまく導入できるんでしょうか?
0112デフォルトの名無しさん2005/09/14(水) 12:57:16
>>111
試してみたけどプロジェクトが出鱈目な感じだった。一応できたので以下やってみた手順。

・aliens.exeプロジェクトは、aliens.cが見当たらないのであきらめる。libSDLプロジェクトグループからaliensを削除。デモゲームらしい。
・SDL.dllプロジェクトにSDL-1.2.9/src/cpuinfo/SDL_cpuinfo.cを追加する。
・SDLmain.libプロジェクトのSDL_main.cを削除して、代わりにSDL-1.2.9/src/main/win32/SDL_win32_main.cを追加する。
・IDEを閉じた状態で、SDL.bprとgraywin.bprをメモ帳等の適当なエディタで開いて、「<PACKAGES value=vcl.bpi rtl.bpi…略」となってる部分を、「<PACKAGES value=""/>」とするかこのノード自体を削除して保存する。
・libSDLを開いて、「すべてのプロジェクトを再構築」を実行。
・途中で何回かコンパイルエラーが出るので、その都度userWindowProcを(FARPROC)userWindowProcという風にキャストして再度コンパイル。

で、コンパイルはできた。
0113デフォルトの名無しさん2005/09/14(水) 14:06:30
>>112
どうも試してくれありがとう。
あれから、色々検索しまして、簡単な導入方法がわかりました。
SDL-1.2.9-win32.zipの中のSDL.DLLをc:\windows\systemディレクトリに入れて
SDL-1.2.9.zipの中のborland.zipを展開した中に入っているものを全部borland C++ builder
をインストールした場所の各ディレクトリに入れました。
ヘッダファイルもinclude\SDKに入れまして、ライブラリもlib\SDKに入れてしまい
bcc32.cfgとilink32.cfgにパスを通して終わりです。
実際にSDLのテストプログラムをコンパイルしてみましたら、うまく実行できました。
0114デフォルトの名無しさん2005/09/14(水) 19:49:33
>>113
やっぱランタイムだけでよかったのね。DLLをソースからビルドしたい理由があったのかと思った。
0115デフォルトの名無しさん2005/09/15(木) 09:28:31
TMemoryStreamに読み込んだグレースケールなDIBを
TImageに表示するにはどうすればいいのでしょうか?
そのままTBitmap::ScanLineで読み込んでも変な表示がされるのみでしてorz
0116デフォルトの名無しさん2005/09/15(木) 10:22:57
TBitmap には LoadFromStream ってメソッドが Delphi ではあるんだが
0117デフォルトの名無しさん2005/09/15(木) 10:23:26
>>115
TImage::Picture::Bitmap::KiadFromStream使えば?
0118デフォルトの名無しさん2005/09/15(木) 10:24:09
> そのままTBitmap::ScanLineで読み込んでも変な表示がされるのみでしてorz

ScanLine でコピーするならパレットもグレースケール化しないとね。
01191152005/09/15(木) 11:14:29
>>116>>117
LoadFromStreamでは「ビットマップイメージが不正です」と言われてしまいます。
DIBフォーマットってTBitmapでは直接読めないのでしょうか?
この辺りの処理をちゃんとやってないからScanLineでもダメなのでしょうねorz
0120デフォルトの名無しさん2005/09/15(木) 11:25:42
LoadFromStream で読めるのはビットマップのファイルイメージそのままのときだけ。
読み込み先の PixelFormat はどうなってます?

pf8bit なら、パレットをグレイスケール化することは必須
pf24bit なら ScanLine は TRGBTriple へのポインタだから RGB に同じ値を与えてグレースケールにする
pf32bit なら ScanLine は TRGBQuad 以下同上
0121デフォルトの名無しさん2005/09/15(木) 14:16:14
>>115
Graphics:TBitmap::PixelFormatをいじったか?

pfDeviceにでもなってんじゃないの?pf1bitに変更汁。
0122デフォルトの名無しさん2005/09/15(木) 14:42:13
> pf1bitに変更汁。

pf8bit だろ、グレイスケールといえば普通。pf1bit ならスケールなんてない。黒白
0123デフォルトの名無しさん2005/09/15(木) 15:22:08
あれだな。昔の256色モード。パレットか。懐かしいな。
0124デフォルトの名無しさん2005/09/15(木) 15:27:55
64bitプログラムは作れますか?
01251152005/09/15(木) 16:04:38
PixelFormatはpf8bitにしてあります。

さっぱりワケわかめです。どうも読み込もうとしているDIBが画像データのみで、
ヘッダ情報が含まれていないようです。
ググっても、微に入り細に渡るBitmapフォーマットについての説明(勉強しているのなら
ありがたいですが、それは時間のある時に…)はあっても「だからこうしろゴルァ!」という
ズバッとしたサンプルソースがありませんorz
0126デフォルトの名無しさん2005/09/15(木) 16:17:40
>>125
データにWindowsBitmapのヘッダ付いてないならScanlineで書き込むしかない。
01271152005/09/15(木) 17:28:17
TBitmap::HandleTypeにbmDIBを設定し
上記のようにTBitmap::PixelFormatはpf8bitに設定して
TBitmap::Canvas::Pixels[x][y]にDIBの画像データをちまちまと入れたら出来ました。
お騒がせしました。
0128デフォルトの名無しさん2005/09/15(木) 18:28:34
パレットはどうなったん?
0129デフォルトの名無しさん2005/09/15(木) 18:29:11
>>127
Pixelsは猛烈に遅くなるからやめい。
0130デフォルトの名無しさん2005/09/15(木) 18:29:15
> TBitmap::Canvas::Pixels[x][y]にDIBの画像データをちまちまと入れたら出来ました。

Pixels 使うのは最低だな
0131デフォルトの名無しさん2005/09/16(金) 01:06:17
>>127
だからScanLineを使って入れろというに。
Pixels使うと、一ドット毎にシステムコール起こるの知ってる?
0132デフォルトの名無しさん2005/09/16(金) 05:22:48
バイナリファイルの内容をメモ帳の様にTMemoに読み込むには
どうしたらいいでしょうか。当然NULLで文字が切れてしまいます。
■ このスレッドは過去ログ倉庫に格納されています