14/05/06 00:24:10.00 foRc8yiw.net
FMX.Grid.TStringGrid を使っていて2つほどわからないので教えてください。
Delphi XE5 です。
1.文字列がちょうどおさまるようにセルの幅、高さを変えたい。
SG.RowHeight := SG.Columns[0].Canvas.TextHeight('W');
SG.Columns[0].Width := SG.Columns[0].Canvas.TextWidth('99/99 99:99');
とやっていますが、高さは半分、幅は2/3ぐらいになってしまいます。
マージンは0でやっているはずですが、確認することがあればおしえてください。
2.行毎に背景色を指定したい。
いろいろググったのですが、OnDrawCell(XE5では見つかりませんでした)を使う方法や、すべてのセルを変更する方法しか見つけられませんでした。
917:デフォルトの名無しさん
14/05/06 07:31:33.05 najLXRwS.net
SG.Columns[0].Canvas.Font.Name:= "ほにゃらら";
SG.Columns[0].Canvas.Font.Size:= ほにゃらら;
918:デフォルトの名無しさん
14/05/06 10:59:18.95 foRc8yiw.net
>>872
レスありがとうございます。
Font.Name は無かったので、Font.Family に親フォームと同じ値を入れ、
Font.Size にも親フォームと同じ値を入れて試しましたが結果は変わりませんでした。
919:デフォルトの名無しさん
14/05/06 12:38:28.72 w2wxRZ8k.net
>>867
これ本当なの?
マイクロソフトがそこまで脅威として見ていたのか
920:デフォルトの名無しさん
14/05/06 17:46:19.19 mrCqoALn.net
MSがその程度のことをしてもまったく不思議とは感じないのは確かだな
昔から脅迫にちかいことやりまくってるしな
921:デフォルトの名無しさん
14/05/06 19:03:16.28 IUxNATut.net
SB主導の方がしっくり来るな
922:デフォルトの名無しさん
14/05/06 23:14:09.67 4ff3GRht.net
ソフトバンクはその昔「一太郎」時代にも
えこひいきして他社製ワープロを奈落に突き落としたからな
923:デフォルトの名無しさん
2014/05/07
924:(水) 01:17:07.18 ID:XAsHeWQE.net
925:デフォルトの名無しさん
14/05/07 10:53:06.57 weHfcyWe.net
英語のキンドル本だけど
Delphi XE2 Foundations - Part 1~3
プロモーションで1冊分の料金しかかからなかったよ
926:デフォルトの名無しさん
14/05/07 14:29:26.05 9oyvw0L0.net
>>871
1はTStringGridの各セルにデータを表示した後で、
ループ最も幅の長いセルを見つけてそれに合わせればどうだろう
iColWidth := StringGrid1.Canvas.TextWidth(StringGrid1.Cells[i, j]);
if StringGrid1.ColWidth[i] < iColWidth then
StringGrid1.ColWidth[i] := iColWidth;
2はonDrawCellイベントを使えばラクに実現出来る
Cell内にチェックボックスやゲージなんかも表示できる
onDrawCellイベントが無いなんて有りえない。見間違い。
927:デフォルトの名無しさん
14/05/07 15:03:37.64 63FuNV7B.net
>>880
固定長のものでも幅が合わないので質問しました。
1.はどうやらモバイルアプリケーション開発では正確な TextWidth が返ってこないことが原因のようです。
デスクトップアプリケーション開発では以下の内容でほぼぴったりになりました。
ただ、'+8'もどこかのマージンだと思うので、参照で求めたいのです。
str := 'あいうえおかきくけこ';
StringGrid1.RowHeight := StringGrid1.Columns[0].Canvas.TextHeight(str) + 8;
StringGrid1.Columns[0].Width := StringGrid1.Columns[0].Canvas.TextWidth(str) + 8;
StringGrid1.Cells[0,0] := str;
onDrawCell ですが、やはり見つかりません。'onD'まで入力して補完しようとした画面です。
URLリンク(i.imgur.com)
モバイル/デスクトップ共に同じでした。
928:デフォルトの名無しさん
14/05/07 20:06:01.19 q8kCwgwY.net
Delphi-MLの3751から3757の流れを見ろ。Canvas.Font.Assign(Font)としてからでないと
Canvas.TextWidth/TextHeightが正しくならないらしい。
929:デフォルトの名無しさん
14/05/08 08:09:33.30 Mn1gWHfA.net
>>882
アドバイスありがとうございます。
ですが効果が無いようです。
フォームにButton1を貼り付け、次のコードを実行しました。
Button1.Text := 'あいうえおかきくけこ';
Button1.Canvas.Font.Assign(Button1.Font);
Button1.Width := Button1.Canvas.TextWidth(Button1.Text);
デスクトップアプリケーションの方は'あ'と'こ'が欠けた状態になりました。
これは枠の分を考慮していないので当然の結果です。
モバイルアプリケーションでは'あいうえお…'となりました。
930:デフォルトの名無しさん
14/05/08 20:33:41.04 xARMff45.net
ん?ボタンの枠のサイズを知りたいってこと?これはスタイルに依存することになりそうなんだが…
931:デフォルトの名無しさん
14/05/08 21:03:03.99 Mn1gWHfA.net
>>884
モバイルアプリケーションで、文字を描画するのに必要な幅(高さ)が間違って取得されるので、
正しい幅(高さ)を求めるにはどうすればよいかって質問です。
元の質問は >>871 です。
932:デフォルトの名無しさん
14/05/08 21:13:09.54 6IjhqXCv.net
TListViewでGroupViewを使用してグループ表示したいのですが、カスタムドローすると、描画がおかしくなります。
というより、各アイテムの描画する矩形を正しく取得できません。
OnCustomDrawItemや、OnAdvancedCustomDrawItemに渡されるパラメータに描画する矩形の
情報が渡されなくて、代わりに、TListItem.DisplayRectで取得しろ?みたいな感じがすべての元凶のような気がします。
Windowsメッセージレベルでは矩形の情報は含まれてるのに、それを全く使わず(TListItem.DisplayRect内部で呼ばれてる)ListView_GetItemRectを使うとかどんな設計なんでしょうか。
助けて下さい。
933:デフォルトの名無しさん
14/05/08 22:36:00.58 +w5OUIZN.net
>>885
いやだからなんでボタンで
934:試してうまくいかないっていってるの?StringGridで試したらどうなるのさ。
935:デフォルトの名無しさん
14/05/08 23:35:29.57 Mn1gWHfA.net
>>887
同じです。
TButtonに変更したのはTStringColumnがおかしいのではなく、Canvas.TextWidth / Canvas.TextHeight がおかしいというのを、最も標準的なコントロールで試したからです。
936:デフォルトの名無しさん
14/05/09 00:39:15.79 yuWrC3zX.net
そんなことをするよりは具体的にTextWidthが何を返したか等を記述した方がいいよね
ライブラリのソースを読むことはできても、実機で試せない人もいれば他の環境では再現しない可能性だってあるんだし
少なくとも効果があったかなかったかは問題を解決できてないあなたが勝手に判断したらまずいでしょ
TButtonでどうだったかを示されたところでTButtonはTButtonであってTStringGridじゃないし
937:デフォルトの名無しさん
14/05/09 01:18:37.86 /onGlIxd.net
てぇかここじゃなくてMLかフォーラムで聞いたほうがいいと思う。できれば最小限の再現コード付きで。
938:デフォルトの名無しさん
14/05/09 02:24:37.98 g/8QCC4u.net
>>886
TListviewのcustomdrawは自分も結構悩まされるな
色々検索しても、これはって言う回答はなかなか見つからない
最近は色々試行錯誤して(偶然)うまくいったのが回答だと考えてる
939:デフォルトの名無しさん
14/05/09 10:42:24.63 m3mnutMb.net
>>889
デスクトッププロジェクトとモバイルプロジェクトを作成し、双方にTStringGrid/TButtonを貼り付け、
TStringGridは項目の追加でTStringColumnを1つ追加しています。
コードは同じで
procedure TForm2.Button1Click(Sender: TObject);
var
str:string;
begin
str := 'あいうえおかきくけこ';
Button1.Text := str;
Button1.Canvas.Font.Assign(Button1.Font);
Button1.Width := Button1.Canvas.TextWidth(str);
StringGrid1.RowCount := 2;
StringGrid1.Columns[0].Canvas.Font.Assign(Button1.Font);
StringGrid1.Columns[0].Width := StringGrid1.Columns[0].Canvas.TextWidth(str);
StringGrid1.Cells[0,0] := str;
StringGrid1.Cells[0,1] := StringGrid1.Columns[0].Canvas.TextWidth(str).ToString;
end;
結果が以下の画像です。(左がデスクトップ、右がモバイル)
URLリンク(i.imgur.com)
フォントが違うにもかかわらず、双方ともTextWidthは82.01123046875を返しています。
モバイルプロジェクトでは、TextWidthはあてにならないということなのでしょうか・・・
940:デフォルトの名無しさん
14/05/10 07:52:36.35 AvOE9ejC.net
偶然同じ値になるなどまずありえんわな。
そこを追求してかないと。
941:デフォルトの名無しさん
14/05/10 07:53:24.91 AvOE9ejC.net
仮に違うフォントが使われているとしたら、偶然同じ値になるなどまずありえんわな。
そこを追求してかないと。
942:デフォルトの名無しさん
14/05/10 09:16:54.90 mf5lm0WO.net
単位がピウセルじゃないから…
943:デフォルトの名無しさん
14/05/10 12:13:44.02 jNvYpmR+.net
?
944:デフォルトの名無しさん
14/05/10 17:08:42.21 hRNlgmq3.net
FireMonkeyよく知らないけど、そもそもコントロールのフォントとスタイルのフォントは別物だから当然じゃないの?
ちゃんとスタイル適用しないように設定変えてる?
945:デフォルトの名無しさん
14/05/14 16:33:02.91 fkiecfrZ.net
勤め先はPC関係でもなんでもないのですがdel7proがあります。
ネットで調べたらwin8の64bitでもインストOK、動作OKと書いてあるサイトがありました。
ウィンドハンドルとか調べるツールも動作するんでしょうか?
32bitのwindowsなら動く気がするのですが、64bitだとどうでしょうか?
インストールして自分で調べればいいのですが、会社のPCには気軽にソフトを
インストールしてはいけないので、教えてください。
946:デフォルトの名無しさん
14/05/14 18:21:44.15 Vdg2wSF3.net
>>898
Windows 7 64bit に Delphi 7 Pro を入れてバリバリ使っています
F1 キーの状況感知ヘルプが上手く動作しない以外は不都合を感じません
947:デフォルトの名無しさん
14/05/14 20:36:09.41 rcx5Ml4g.net
Turbo Delphi Explorerを古本の付録でインストールしてみましたが、許諾ファイルが手に入りません
何とか使う方法は無いですか?
948:デフォルトの名無しさん
14/05/14 21:05:14.25 fPvjsynC.net
URLリンク(reg.codegear.com)
949:デフォルトの名無しさん
14/05/14 22:53:04.28 rYa
950:htUE4.net
951:デフォルトの名無しさん
14/05/15 17:28:49.83 NpaGHGTx.net
ちょっと教えてください。
自分で開発したアプリを人に上げるとき
含める必要のあるファイルは何でしょう?
*.pas、*.dfm、*.dpr、*.resファイルは必要ですよね
*.dprojファイルも必要ですか?
その他、不足してるファイルがありますか?
952:デフォルトの名無しさん
14/05/15 18:12:55.76 mqKLvEHr.net
なんで exe以外が必要? ていうかインストーラでまとめてリリースするやろ
ソースもつけるのなら、できたファイル全部だし、
953:デフォルトの名無しさん
14/05/15 18:24:36.25 NpaGHGTx.net
>>904
レスありがとうございます。
実行ファイルではなく、ソースを配布したいと思いまして...
で、コンパイル等で生成されるファイルには、パス情報とか
個人情報が含まれてるのもあるみたいで、ソース配布には
最低限、どのファイルが必要なのかと思いまして。
954:デフォルトの名無しさん
14/05/15 19:06:54.73 YEyMKVb+.net
resは自分でリソース含めたりアイコン作ったりしていないのであれば
無くてもIDEが自動生成するからいらない場合もある
ソース部分は基本的に最初に挙げた3つでOK
955:デフォルトの名無しさん
14/05/15 19:14:24.12 c9jY4n9p.net
>>905
D6 だけど、*.dprojファイルはいらない。
*.dpr
*.pas、*.dfm、*.res
この4つで良いと思う。
特別な外部コンポーネントを使ってるのなら
それの入手方法を知らせるなり、仲間内ならそのコンポーネントをセットで
956:デフォルトの名無しさん
14/05/15 19:42:27.16 J6CNeC2R.net
>>900
受付終了なので、正規手段では不可能
URLリンク(itpro.nikkeibp.co.jp)
URLリンク(keygens.nl)でパッチがダウンロード出来るが、利用は自己責任で
957:デフォルトの名無しさん
14/05/15 19:57:48.61 NpaGHGTx.net
>>906-908
リソースには何も登録してないので
*.pas、*.dfm、*.dprファイルのみにします。
ありがとうございました。
958:デフォルトの名無しさん
14/05/16 15:57:50.91 7/ABzJ5o.net
Delphi XE6のVCLでスタイルを適用すると、TEditのColorなどが全て統一されてしまうようなのですが、
個別に変更することは可能でしょうか?
959:デフォルトの名無しさん
14/05/18 13:19:59.16 OIeu8RRW.net
DelphiでHTMLタグをエスケープする関数とかありますか?
< --> <
> --> >
& --> &
" --> "
こういう変換をしたいんですけど、自前で書くしか方法はないんでしょうか。
960:デフォルトの名無しさん
14/05/18 17:37:31.86 VX0o3int.net
HTTPApp.pasにHTMLEncodeとHTMLDecodeがあるけど。
961:デフォルトの名無しさん
14/05/18 18:44:20.48 tiXNBR85.net
>>911
regular expression実装されてるからそれでやればいいと思うよ
962:デフォルトの名無しさん
14/05/18 20:59:01.20 zXBFYmAa.net
>>912
URLリンク(www.blackcatlab.com)
[Delphi] HTTPApp.HTMLEncodeの不具合
963:デフォルトの名無しさん
14/05/18 21:00:36.34 zXBFYmAa.net
2010以前なのかな
URLリンク(ht-deko.minim.ne.jp)
964:デフォルトの名無しさん
14/05/22 08:04:37.04 R/n1HVqS.net
なんと PeaZip は Lazarus製ではないですか!
965:デフォルトの名無しさん
14/05/24 15:36:40.50 YQpzfHL3.net
以前メディアプレイヤーで質問した者です。
色々調べた所MediaPlayer系をいじるのには
MCIを直接いじらなければならいようだという
ことが分かったのですが、
MCIについて勉強するに適したものはありますか?
WindowsMediaPlayerもボリュームコントロールを出来ないようでした。
もし、示唆等いただけましたらよろしくお願いいたします
966:デフォルトの名無しさん
14/05/24 15:49:44.54 hlo3j/US.net
URLリンク(www13.plala.or.jp)
967:デフォルトの名無しさん
14/05/25 09:03:44.57 WJDhxoAu.net
>>918
ありがとうございました。早速印刷しましたので勉強させていただきます。
968:デフォルトの名無しさん
14/05/26 14:39:58.61 svaviP7r.net
はるか昔に非推奨になって後は死に行くのみのAPIを今更勉強するの…?
それ以前にMCIじゃ個別の音量設定なんてできないし
969:デフォルトの名無しさん
14/05/26 19:50:32.54 rKneIVz3.net
delphiでオーディオ再生だとNewACってのがいいと思う
コンポーネント貼り付けて簡単に再生できるし
再生できるには*.wav、*.mp3、*.wmaなどなど
ボリュームや再生速度も簡単に指定できる
自作のフリーソフトで使ってるけど結構いいよ
難点はDirectSound終了でNewACの開発も終了しちゃったこと
...って、動画も再生するんだっけ? じゃ、ダメだね
970:デフォルトの名無しさん
14/05/26 20:05:21.38 En0fnIi5.net
WMPとかFlashPlayerとかVLCとかをActiveX貼り付けで使えるけど、だめなん?
971:デフォルトの名無しさん
14/05/26 20:10:50.35 En0fnIi5.net
あとは html 吐いて、ブラウザで表示させるのが楽かも
972:デフォルトの名無しさん
14/05/28 06:26:39.46 B4+4ztrr.net
>>920
そうなんですか?
手持ちのソフトやサンプルソースが
MCI使っていたので…
他に良い制御系があるのでしょうか?
973:デフォルトの名無しさん
14/05/28 07:57:11.89 LKrLROO8.net
>>924
URLリンク(docwiki.embarcadero.com)
じゃダメ?
974:デフォルトの名無しさん
14/05/28 09:18:48.20 IF06EKAI.net
URLリンク(code.google.com)
975:デフォルトの名無しさん
14/05/28 09:33:36.36 IF06EKAI.net
↑
ソース
URLリンク(code.google.com)
976:デフォルトの名無しさん
14/05/28 15:42:01.29 2wPOB5Uj.net
便乗して質問するけど
Media Foundationを簡単に扱える
コンポーネントって出てる?
977:デフォルトの名無しさん
14/05/28 23:57:18.16 hE6fxPKH.net
コンポーネントは出てないと思うが、そもそも基本的な事をするぐらいならMedia Foundationで簡単に扱えるし。
URLリンク(msdn.microsoft.com)
英語読むの苦にならないのならだけど
978:918
14/05/29 06:05:02.27 FkL52Gv9.net
>>925
Live 2chに変えたせいで>>918-922に気づきませんでした。
979:929
14/05/29 18:23:52.12 U5vZ2NRt.net
>>929
英語を読むのは平気だけど
アプリの中で効果音的にちょっとオーディオ再生するだけのために
Microsoftのサイトを読んでゼロからプログラミングするのは
少し効率が悪いかも
980:918
14/06/04 17:34:52.13 9Ld+1Bja.net
NewAC 2.61やっと見つけました。
使用方法とか説明しているサイトとか有るでしょうか?
やりたいことは、wavとmp3のコントロールです。
981:デフォルトの名無しさん
14/06/04 20:28:52.83 gFPb9jxH.net
recordと暗黙のキャスト使えば
s: TString;
s := 'hello';
if s.pos('e')>0 then...
とか書けそうだけど
TString, TInteger, TDoubleといった基本型のラッパーライブラリを
気合と根性で作ったものって無いの?
982:デフォルトの名無しさん
14/06/04 23:04:38.42 rS3+cXLk.net
>>933
983: 2010以降なら、record helperを使ってがんばって自前で用意、 XE3以降なら、各種recor helperが標準で用意されてるけど、 これらよりも前のバージョンでの利用を考えてる?
984:デフォルトの名無しさん
14/06/04 23:22:02.87 vvtrsgyN.net
>>932
NewAc261でWavやmp3を再生するだけだったら
デモアプリが参考になると思う
newac261.zip\newac261\demos\Players\AudioPlayer
あとはヘルプがhtmlファイルになってるので
index.htmlファイルから適当に
985:デフォルトの名無しさん
14/06/05 16:01:34.01 4fEc3xBU.net
最新の XE6 で作成したプロジェクトのソースをサンプルとして配布したいのですが、
XE5 以前(~2009 あたりまでを想定)で正常に読み込みできるのでしょうか。
使用しているコンポーネント等は標準的なものです。
986:デフォルトの名無しさん
14/06/05 16:05:17.90 D5lArFFw.net
そんなの内容にもよるから何とも言えないし、自分で試してみればいいだけのような
XE6持ってるならライセンスあるんだし
987:デフォルトの名無しさん
14/06/05 16:33:03.85 4fEc3xBU.net
>>937
おおせの通りなんですが、わざわざそのために昔のバージョンをインストール
するのもなあというのもありまして。
まあ Unicode 対応の 2009 と 64bit 対応の XE2 あたりを入れて試して
みます。
988:デフォルトの名無しさん
14/06/06 07:30:37.85 6OfeBEdh.net
>>934
サンクス
XE6Trial落としてみたけどいちいちTStringとか作らなくても
showmessage('hello'.length.tostring)
とか普通にできるように拡張されてるんだね
しかもXE3からとか
XE2買っちゃったのが悔やまれる…
XE6安いから買っちゃおうかな
989:デフォルトの名無しさん
14/06/07 08:00:41.45 6LoUSKZr.net
UTF16めっっちゃおせぇぇぇぇぇぇ
990:デフォルトの名無しさん
14/06/07 18:53:26.75 U8sWAyx/.net
Delphi7です
リッチエディットで任意の場所にある文字列の文字装飾を知るためには必ず選択状態にして
SelAttributesを見るしか方法はないのでしょうか?
例えば太字になっている部分を検索したり、書き換えたりするときに
プログラム内部で一文字ずつ選択して調べるのでしょうか?
長い文章だと相当時間がかかりそうです
991:918
14/06/09 13:01:16.65 K7gwbRPX.net
>>935
でもアプリをコンパイルしようとすると、コンポーネントが無いとか出てきてしまうんです。
992:デフォルトの名無しさん
14/06/09 13:07:06.72 fxFPhf5Y.net
コンポーネントが無いなら入れたらいいじゃない(高慢な感じで
993:デフォルトの名無しさん
14/06/09 15:18:14.49 HLpaXUPq.net
>>942
無いと指摘されたコンポーネントがNewACだったら
NewACが正しくインストールされてないんじゃないかな
一度アンインストールして、再インストール
それでもインストールできなかったら...\newac261\srcを
検索パスに追加する...
994:918
14/06/09 16:42:00.32 K7gwbRPX.net
>>944
英語がさっぱり…
何をしたら良いのかさっぱり分かりません…
995:デフォルトの名無しさん
14/06/09 16:55:05.37 fxFPhf5Y.net
エラーメッセージも書かずに質問とな
英語くらいgoogle先生とかexcite先生に訳してもらえ
996:デフォルトの名無しさん
14/06/09 19:46:39.50 u+LuodF+.net
codesite.exe -send hello
みたいに使えるCodeSiteLoggingのラッパーツールって無いですか
997:918
14/06/10 06:15:23.34 DxaG/FAR.net
プロジェクトを呼び出すと
クラスTVorbisInが見つかりません。エラーを無視して実行しますか?
注意:エラーを無視すると、コンポーネントまたはプロパティが失われる可能性があります
とでます。
NawAC6.1をインストールするにも解説しているサイトが無いのでどうしたら良いか…
998:デフォルトの名無しさん
14/06/10 06:30:57.98 VLOfpc1m.net
>>948
てか、コンポーネント/パッケージをインストールする方法をまず調べたら?
インストール方法は共通だよ
999:デフォルトの名無しさん
2014/0
1000:6/11(水) 19:30:47.40 ID:Bs2QtGfm.net
1001:デフォルトの名無しさん
14/06/11 21:06:23.57 0Fb7ZLHS.net
TRttiContext.GetTypesで型を列挙して、それぞれのTRttiTypeのTypeKindがtkClassかどうかで
クラスかどうかをチェックして、Handle.Nameでクラスの型名を取得して、TypeData.ParentInfoで
継承元クラスのTypeInfoを取得して、それをずっと辿って継承元にTMyBaseClassが出現するか、ってな
手順になるかな。もし具体的なコードが欲しければここじゃなくて公式フォーラムかMLにどうぞ。
1002:デフォルトの名無しさん
14/06/12 17:09:44.54 WVwRtvyG.net
列挙はともかく親までわざわざRTTIで辿らなくてもクラス参照取り出してInheritsFrom呼ぶだけでいいんじゃないの?
1003:デフォルトの名無しさん
14/06/12 17:14:45.28 rSU+gR4e.net
それもそうだね
1004:デフォルトの名無しさん
14/06/14 04:45:46.47 NSoK88RM.net
// TStringsを乗っ取るサンプル
type
TStringsHelper = class helper for TStrings
procedure Add; overload;
procedure Add(s: String); overload;
procedure Add(fmt: String; args: array of const); overload;
end;
{ TStringsHelper }
procedure TStringsHelper.Add;
begin
Add('');
end;
procedure TStringsHelper.Add(s: String);
begin
Add(s); ← ここでオリジナルのTStrings.Addを呼び出すのってどうやるの?
end;
procedure TStringsHelper.Add(fmt: String; args: array of const);
begin
Add(Format(fmt, args));
end;
1005:デフォルトの名無しさん
14/06/14 10:28:41.73 pZZwN6gt.net
Self.
1006:デフォルトの名無しさん
14/06/16 21:58:08.16 CcnTOfaT.net
inherited;
または
inherited Add(s);
1007:デフォルトの名無しさん
14/06/19 07:14:48.98 NCzAFLQA.net
inherited
はうまく行きませんでしたが(実行できたものの何も文字が入らなかった)
inherited Add(s);
はうまく行きました。ありがとうございます。
1008:デフォルトの名無しさん
14/06/19 13:56:12.16 5QFFttI7.net
初心者でとんちんかなことを言ってるかもしれませんが教えてください
TGifImage.Bitmap.ScanLineを使いたいんですが、
このときの色深度はどうなってるんでしょうか?
TGifImage.Bitmap.PixelFormatを調べればいいのですか?
それともPixelFormatを明示的に、たとえばpf24Bitにすればいいの?
Gifだから本来pf8Bitだと思うんですが、得られた値を
パレット色で変換するのですか(GlobalColorMap.Colors[]など)?
効率のいいピクセル値の取得法を教えてください。
よろしくお願いします。
1009:デフォルトの名無しさん
14/06/19 17:54:59.52 9F/+Tvyf.net
GifだろうがJpegだろうが内部的にはBitmapでしょ
1010:デフォルトの名無しさん
14/06/19 19:34:44.51 5QFFttI7.net
>>959
そうですね。
ダウンロードしてGif.LoadFromStream(TMemoryStream)後、
PixelFormatはpfDeviceになってました。
で、ScanLineで試したところ、pf32Bit相当のフォーマットでした。
pfDeviceって機種依存だと思いますが、1Pixelが何バイトかは
どこから分かるんでしょうか?
2回のScanLineして得たアドレスの差を画像の横幅で割る?
1011:デフォルトの名無しさん
14/06/20 09:42:53.62 TWd9CfnL.net
> TGifImage.Bitmap.PixelFormatを調べればいいのですか?
これじゃねーの?
1012:デフォルトの名無しさん
14/06/24 15:09:10.53 MRk4no2J.net
>>960
何か勘違いしてるがDDBを直接操作する手段は無いからScanLineでは当然触れない
ソースを見れば分かるとおりScanLineを呼び出した時点でDIBに変換されてる
1013:デフォルトの名無しさん
14/06/24 18:22:21.83 abfxo/wj.net
>>962
>勘違い...
1014:大いにありえます。DDBとかDIBとかはじめて聞きました 最終目的はネットからダウンロードしたGif画像を高速に スキャンすることです どうすれば高速に任意のピクセルの色情報を取得できるでしょうか? >ソースを見れば 残念ながらStarter使用者です。ソースは参照できません
1015:デフォルトの名無しさん
14/06/24 19:40:17.20 y6vzvZsg.net
>>962が言うには、ScanLineを呼び出せばDIBに変換されてるというらしいから、
ScanLineで1,2バイト適当に読んだ後に、PixelFormatをチェックしてみれば?
そしたらお望みのDIBのフォーマットになってるってことじゃね?
1016:デフォルトの名無しさん
14/06/24 20:02:10.28 y6vzvZsg.net
つか、TGifImageで適当な画像読んでもPixelFormatがpf8bitになってるけど。
どんな画像読んだんだ?
1017:デフォルトの名無しさん
14/06/24 22:44:28.85 abfxo/wj.net
>>965
たぶんアルファチャンネルの有無による違いかと
1018:デフォルトの名無しさん
14/06/25 15:24:02.24 2LLNN4pY.net
>>964
なんでそんな無駄なことするんだ
「お望みのDIBのフォーマット」が欲しいなら最初からPixelFormat弄ればいいだろ
1019:デフォルトの名無しさん
14/06/26 08:29:30.85 NGdvOluE.net
ScanLineする前にbitmap.PixelFormat := pf24bit で統一しておけばよさそう アルファチャンネルはいらないでしょ
1020:918
14/07/01 19:13:32.79 PUCNylXr.net
すみません。以前wav再生ソフトのボリュームコントロールの
1021:デフォルトの名無しさん
14/07/01 19:15:54.89 PUCNylXr.net
すみません。以前wav再生ソフトのボリュームコントロールの
質問した物です。
WindowsMediaPlayerコンポーネントを使おうかと思っていますが、
日本語のSDKって手に入るのでしょうか?
ボリュームコントロールは簡単にできる物でしょうか?
よろしくお願いいたします。
1022:デフォルトの名無しさん
14/07/01 21:24:31.31 aOmMjglY.net
ActiveX使えば簡単
SDKとか必要ない
ActiveXでプロジェクトに取り込めばOK
1023:デフォルトの名無しさん
14/07/02 09:28:10.80 fePmEt/5.net
でもSDKの資料がないと使い方が分からんね
WMPの資料はWindows7 SDKの資料の中にWMP SDKというのが入ってる
もちろん全部英語
1024:デフォルトの名無しさん
14/07/14 11:26:56.90 A2xnrbKD.net
D7でTEditのOnExitで入力内容のチェックをして正しくないときはフォーカスを移動しないようにしたかったのですが
うまくいきません
このような場合どこでチェックをしたらいいのでしょうか
1025:デフォルトの名無しさん
14/07/14 11:59:10.95 fik+oCj3.net
>>973
OnExitはフォーカスが移動したときに発生するイベントだからなぁ。
OnChangeでチェックする訳にはいかないの?
それかOnExitでチェックしたあとエラーだったら自分自身にSetFocusするとか。
1026:デフォルトの名無しさん
14/07/14 17:14:07.37 +5XDJE2M.net
ちなみにLazarusにはOnEditingDoneイベントというのがあるよ
1027:デフォルトの名無しさん
14/07/14 21:10:27.58 MBSGNiM/.net
あーそーですかー
1028:デフォルトの名無しさん
14/07/15 11:15:08.24 ar3EwYI5.net
>>974
どうもです
OnChangeだと1文字入力するごとに動いてしまうのでダメでした
OnExitで自分自身にSetFocusして戻ってこれましたっけ?
ダメだったような気がしたが何かミスってたのかな
またやってみます
>>975
Lazarusは使ったことないので
1029:デフォルトの名無しさん
14/07/15 11:29:48.33 /OAZiFpr.net
>>977
自分がD7で確認した限りでは上手くいったんだけど…。OnExitの発生する状況
にもよるんかね。
あとは面倒だけどOnChangeで色々と小細工をする。
有効な文字数になるまでチェック処理をスキップするとか
TEdit.Textの内容を保存しておいて前と同じだったらチェックしないとか
1030:デフォルトの名無しさん
14/07/15 13:50:36.17 XxK55HNo.net
フォーカス移動のメッセージを、メッセージループで無視してみるとか? フラグ使って
これなら入力チェックの結果をそのままフラグに使える
これはDelphiのどんなバージョンでも関係なくできる手法
1031:デフォルトの名無しさん
14/07/15 14:17:20.89 XxK55HNo.net
だいたいコンポーネントを細かく制御しようとしたら�
1032:<bセージループに手をつけざるをえない なんでもかんでもイベントドリヴンでお手軽にやれるわけじゃない OnChangeで、とか安易に考える人は、開発力が低く、不要にソースを複雑化してデスマーチに陥りがちだろう 細かい制御をするときは、イベントドリヴンな考えから離れてみるべきなんだよ ある程度経験ある人なら>>978をチラっと見て「こりゃデスマだな」って連想するよ
1033:デフォルトの名無しさん
14/07/15 14:21:51.02 ueYQQSJv.net
チェック処理が相当重く無い限りOnChangeで1文字ごとにチェックしてもたかが知れてるような
1034:デフォルトの名無しさん
14/07/15 14:37:28.53 /OAZiFpr.net
>>980
あなたが俺より開発力が高いのは分かるんだけどね、上の様な質問をしてくる
人にメッセージループを使いなさいとか言って伝わるんかね。
俺自身分からんからもし質問した人がそれで理解できるなら俺はもうロムってるよ。
1035:976
14/07/15 18:02:25.36 MNelpFeK.net
>>977
ソースを参考にすればいいだけなんで
使ったことのあるなしは関係ないよ
1036:デフォルトの名無しさん
14/07/15 20:06:33.85 TDrfNmAN.net
普通は糸口を教えてくれた人にお礼を言う
その糸口を調べてる、考える
1037:デフォルトの名無しさん
14/07/15 21:45:08.88 s3FJhuBU.net
まあ
結論としては
>>980 は
スレッドのタイトルさえ読むことができないバカ
1038:528
14/07/16 09:48:26.85 zPJuhVsB.net
>>528
以前にmp3とwavでボリュームコントロールが一本化できないことで質問した者です。
URLリンク(delphi.about.com)
ではmp3のボリュームコイントロールはできますが、wavには反応しません
>>533ではmp3が反応しません
wmpコンポーネントを埋め込んだときには両方に反応するようにできるでしょうか?
その場合の命令というのはどういった物になるのでしょうか?
1039:デフォルトの名無しさん
16/12/26 17:47:08.94 rjPaEzIFh
var
r: extended;
begin
r:= 9.6 - 9 - 0.6;
Memo1.Text:=FloatToStr(r)
end;
結果は 3.25260651745651E-19
そんなアホなと、vbsで同じことをやってみた。
Dim r
r = 9.6 - 9 - 0.6
MsgBox r
-3.33066907387547E-16
だとさ。
誰かひまなやつ理由を語り尽くせ。
1040:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています