くだすれDelphi(超初心者用)その18

このエントリーをはてなブックマークに追加
939デフォルトの名無しさん:04/10/10 01:28:13
>>931

procedure TForm1.Button1Click(Sender: TObject);
var
  Rgn: HRGN;
  Image1: TBitmap;
  Image2: TBitmap;
begin
  Image1 := TBitmap.Create;Image2 := TBitmap.Create;
  try
    Image1.LoadFromResourceName(HInstance,'testin.bmp');
    Image2.Width := Image1.Width;Image2.Height := Image1.Height;
    BeginPath(Image1.Canvas.Handle);
    Image1.Canvas.Polygon([Point(50, 50), Point(100, 50),Point(100, 100), Point(50, 100)]);
    EndPath(Image1.Canvas.Handle);
    Rgn := PathToRegion(Image1.Canvas.Handle);
    try
      SelectClipRgn(Image2.Canvas.Handle, Rgn);
      Image2.Canvas.CopyRect(Rect(0, 0, Image1.Width, Image1.Height),Image1.Canvas,Rect(0, 0, Image1.Width, Image1.Height));
    finally
      SelectClipRgn(Image2.Canvas.Handle,0);
      DeleteObject(Rgn);
    end;
    Image2.Picture.SaveToFile('testout.BMP');
  finally
    Image1.Free;
    Image2.Free;
  end;
end;
940デフォルトの名無しさん:04/10/10 01:35:42
>>331
http://www.google.co.jp/search?hl=ja&q=TBitmap&lr=lang_ja

これじゃ足りないってこと?
941940:04/10/10 01:36:42
ミスった。
>>931
に訂正。
942デフォルトの名無しさん:04/10/10 01:48:26
.Picture消せ
943デフォルトの名無しさん:04/10/10 02:18:45
939 です。

× Image2.Picture.SaveToFile('testout.BMP');
○ Image2.SaveToFile('testout.BMP');
944デフォルトの名無しさん:04/10/10 02:19:52
名前を bmp1 bmp2 とかにするといいものを Image1 とかにするから面倒なことに・・・・
945デフォルトの名無しさん:04/10/10 03:31:36
「実行すると止まる」とはコンパイルエラーの事だったのか。
946デフォルトの名無しさん:04/10/10 04:30:54
多次元配列
A: array[0..2, 1..3] of Integer;
で、
High(?) = 2 を求めるには?にどう書けば良いのでしょう?
High(A[0]) = 3 ですし。
947デフォルトの名無しさん:04/10/10 06:04:05
High(A)
948946:04/10/10 07:04:43
できました。 ありがとうございます。
ついでに
A: array[0..1, 2..3, 4..5] of Integer;
で、4, 5を求める場合は
Low(A[0, 2])
High(A[0, 2])
でした。
949デフォルトの名無しさん:04/10/10 09:14:48
他人デバッグ
950デフォルトの名無しさん:04/10/10 13:49:09
文章を読み上げる機能をつけたいんですが、コンポーネント
とか無いんでしょうか。
マイクロソフトのエンジンを使うとして、
メモに貼り付けた日本語を読んでくれるだけでいいんですが・・。
どなたか分るかた居ないでしょうか
951デフォルトの名無しさん:04/10/10 13:51:15
MSのって英語だけじゃなかったっけ?
IBMからSDK付で出てたような。
952デフォルトの名無しさん:04/10/10 13:58:34
上でComponentStateを教えてもらった者ですが、また新たな問題が・・

PageControlのコンポを作っていて、設計時に固定のTabSheetを動的に生成しています。
その処理はCreateWndメソッドをオーバーライドして、
if csDesigning in ComponentState thenの中で記述しています。

これでポトペタ時にはTabSheetもちゃんと表示され、実行時には作成されずちゃんと動作
するのですが、いったんフレームに貼り付けて設計し、そのフレームをフォームに貼り付けよう
とすると、「コンポーネント名TabSheetはすでに使われています」のようなメッセージがでて、
うまく動作しません・・・。

こんな場合にはどうすればいいんでしょう・・・・。どなたか教えてください!
953950:04/10/10 14:02:09
>>951
レスどうも。いえ日本語もできます。他の言語も。それを使った
読み上げのフリーソフトとか結構ありますし。
ただそれを自分のソフトに組み込むのはどうすればよいのやら・・。
954931:04/10/10 14:26:50
いろいろ試したら、やっとできました。
回答くださった方々、ありがとうございました
もう1つお願いします・・・・

BM(Tbitmap)の座標(100,100)にある点の色が何色か知るにはどうしたら良いのですか?
とりあえず黒かどうか判定するに
Canvas.Draw(0, 0, BM);
if Canvas.Pixels[300, 300] = clBlack then hantei := 0
という文を書いたのですが・・
黒ならhanteiの値を0にしてその後の処理を分岐しようかと
でもうまく行きません。何がまずいのでしょう?
Drawとかしなくても直接BMのある点の色を知る方法とか無いですか?

ヘルプを見てるのですが、「色を知る」 という情報が検索できません
「色を知る」が検索かけてそっくりそのまま出るとは思いませんが
955デフォルトの名無しさん:04/10/10 16:12:22
>>954
1.TBitmapにもCanvasプロパティがある
2.100, 100 が知りたいのに何でPixels[300, 300]?
956931&955:04/10/10 16:16:43
ここのまねをしたら、できました。
http://homepage1.nifty.com/MADIA/delphi/Win32API/getcolorcount.htm
一行文の色値を読み込んでから、その中から目的の座標の色を探すみたいですが
直に目的の座標の色を知る方法てないんでしょうか?

>>955
すみません、座標打ち間違いです。
957デフォルトの名無しさん:04/10/10 16:31:10
>>954
hanteiをhentaiと読み間違えたよ。それだけだけど。
958デフォルトの名無しさん:04/10/10 16:36:52
if BM.Canvas.Pixels[
959デフォルトの名無しさん:04/10/10 20:12:13
DBGridに表示するデータについてなのですが、
データが0の時は'XP'、1の時は'Me'と表示するようなことをしたいのですが、
どうすればいいのでしょうか?

それと>>914で質問しました、DBGridのデータ再取得でいまだに悩んでおります。
DBGridでデータ一覧を表示>別画面に移ってデータ改変>またDBGridに戻る
といったような画面ハンドリングの場合、みなさんはどうやってDBGridのデータを再取得しているのでしょうか?
DBの種類や接続方法によって違うのでしょうが、参考に教えていただければうれしいです。
960デフォルトの名無しさん:04/10/10 22:06:09
チャット&ファイル転送を兼ね備えたものを作っているのですが、
何故かローカルじゃないと接続できません。
どういった間違いがあるとこういう事が起こるのでしょうか?
例えば自分のプライベートIPを入れて接続しようとしても接続できません。
961デフォルトの名無しさん:04/10/10 22:23:57
9割方DNSかデフォルトゲートウェイの設定が不良
962デフォルトの名無しさん:04/10/10 22:43:33
またネットワークの基礎知識の無い奴が
ネットワークアプリ作ろうってのかい?
963デフォルトの名無しさん:04/10/10 22:52:08
>>950
MSのエンジン使いたいみたいだけど、
日本語にも対応するようになったんだな。

自分は以前、テレフォニー関係のツールで
合成エンジンが必要になって、MSのも
調べたが、当時は日本語ができなくて
結局、OKIのSmarttalkを使った。

OKIのはActiveXだから、Delでも簡単に実装できた。
964デフォルトの名無しさん:04/10/10 23:31:02
>>961,962
すいません本当にアホみたいな間違いしてました。できました。
お騒がせしました^__^;
965デフォルトの名無しさん:04/10/10 23:41:37
おおおっっぱい♪ いもうとのおっぱい
みくろなおっぱい 洗濯かごの中
いっぱいオッパイの残り香イエエエエエ!
ダンシングしながらはいてみたよ!イエエエエエ
おっぱいみたいな肉まん当てたら疑似餌なおっぱい
アンダー60 トップ80 (笑い)
そんなミクロのオッパイ光恵kてやる是イエエエエエ
966デフォルトの名無しさん:04/10/11 00:11:10
引数がキーと文字列でレジストリ値を加えたり
削除したりするソースを公開しているホームページを
知りませんか?
プログラムだけでもいいんですけど。
967デフォルトの名無しさん:04/10/11 00:15:44
reg.exew
968デフォルトの名無しさん:04/10/11 00:20:14
>>966
TRegIniFileかTRegistryで検索しろ
969デフォルトの名無しさん:04/10/11 07:42:17
>>959
>表示するデータ
対応するテーブルを作るしかないんじゃないの?

>データ再取得
トランザクション再接続じゃダメ?
970デフォルトの名無しさん:04/10/11 09:17:54
>>969
DBGridの表示内容改変はできないのですね。了解しました。

トランザクション再接続とは具体的にはどうすればいいのでしょうか。
再取得方法として、以下の方法で再接続してみたのですが、
ADOQuery.Active := False;
ADOQuery.Active := True;
DBGrid.Refresh;
でも
DataSource.DataSet.Close;
DataSource.DataSet.Open;
DBGrid.Refresh;
でもだめなのです。
だめというか、同じ処理を2〜4回やると再取得できているというのが現状です。
なぜ一回ではダメで複数回で反応するのかがまったくの謎なのです。。。
971デフォルトの名無しさん:04/10/11 09:24:17
そろそろ次スレ。
972デフォルトの名無しさん:04/10/11 09:31:23
くだすれDelphi(超初心者用)その19
ttp://pc5.2ch.net/test/read.cgi/tech/1097454588/

973デフォルトの名無しさん:04/10/11 10:14:44
TEditorってシェアウェアなんだけど機能制限ってあるんですか?
ある程度、物になったら払ってもいいかなとは思ってますけど・・・
974デフォルトの名無しさん:04/10/11 10:49:44
>>973
なぜここで聞く・・・・
975デフォルトの名無しさん:04/10/11 10:56:37
んだな。次スレで聞けや
>>975
超初心者向けスレッドでそういうボケをかますと本気にされそうですね.

念のために書いておくと>>974氏の意図は

「TEditorのおひさるページで調べるなり,作者に直接問い合わせるなりすればよいのに
 なぜわざわざここで尋ねるのか?」

ということだと思われます.
977デフォルトの名無しさん:04/10/11 21:27:30
すみません。TWebBrowser について詳しいサイトを教えてください。
日本語でも英語でもかまいません。よろしくお願いします。
978デフォルトの名無しさん:04/10/11 23:22:44
979デフォルトの名無しさん:04/10/11 23:30:22
>>978

わざわざ、ありがとうございました。信じられないことに検索をすることをど忘れしていました。
980デフォルトの名無しさん:04/10/12 00:12:51
>>970
ゴメン、ADO使ってないのにレスしてしまった。
参考までにIBの場合で書くと、
DataSetをPostしてもトランザクションをコミットしないと実際にはDBに
書込まれないので、他のクライアントからは更新されてないように見える。
任意にサーバーのDB更新したいならコミット処理を書く。
たぶん同じケースなんだと思うけど、ADO知らないので詳細は不明。
981デフォルトの名無しさん:04/10/12 00:34:13
perlで言うところのSpriteの様なライブラリのdelphi版はないでしょうか?
機能的にはSQLのサブセットを使ってテキストファイルに入出力を行うものです.
982デフォルトの名無しさん:04/10/12 10:51:48
すれ違いですがお願いします。
WinXPでCD-ROMやリムーバブルドライブにメディアを挿入した時に
ドライブ内のファイルによって自動再生プログラムを選択する
ダイアログが表示されますが、その中に自作プログラムを入れたいのですが
どうすればよいでしょうか?
具体的には、デジカメのメモリーカードを挿した時に自動でHDDに取り込む
プログラムを作っています。
983デフォルトの名無しさん:04/10/12 20:22:30
自動起動するCDをエクスプローラで開き、autorun.infというファイルの中身を見れ。
もしくは"autorun.inf"でぐぐれ。
984デフォルトの名無しさん:04/10/12 22:53:27
そういうこっちゃねーだろ
985デフォルトの名無しさん:04/10/12 23:04:40
>>983
オレもそう答えそうになって踏みとどまったのだよ
986デフォルトの名無しさん:04/10/12 23:10:36
>>982
漏れならそのダイアログにあるプログラムの名前で
レジストリをサーチする。
何件か絞り込んだらなんとかなるんじゃないかな
987デフォルトの名無しさん:04/10/12 23:54:12
>すれ違いですがお願いします。
図々しい。
988デフォルトの名無しさん