くだすれDelphi(超初心者用)その55at TECH
くだすれDelphi(超初心者用)その55 - 暇つぶし2ch842:デフォルトの名無しさん
14/03/29 10:35:32.59 4Djj1jA3.net
>ただこの先スレッドの話題がずっと続いたら本当に初歩の初歩の質問がしづらいかなと思っただけ。
>>795みたいに一人だけ煽ってる奴はいるが、これぐらいで質問できなくなるって、
そんなんじゃ世の中生きていけねぇだろ。配慮の仕方が間違ってるわ。

843:デフォルトの名無しさん
14/03/29 14:33:06.82 6fdBLR4+.net
>>786
>親が子の予想より早く死んでしまったためアクセスバイオレーションとなる

レベルの低い初心者の質問者で申し訳ないけど
このエラーって、どんな感じのエラー?

子が親をアクセスしたときのエラー?
子が親をアクセスしないでもエラーが出る?

844:デフォルトの名無しさん
14/03/29 19:49:54.14 ss1xGzqs.net
>>803
いえいえ「分かる人にはこれだけでわかるだろうけどわからない人も多いかもな・・・」
と思いながら書いた部分を指摘された的確な質問です。
例えばA1型で行こうと決めて(また適当なプログラムですみません)、
procedure TMyThread.execute
begin
Form1.MyThreadFinish:=false;
try

finally
Form1.MyThreadFinish:=true; (1)
end;
end;
とかやっただけだと(1)の部分でご指摘のエラーが発生する可能性があります。
そこでこれを避けようと、真っ先に気づくのは既出のように
procedure TForm1.destroy
begin
Mythread.terminate;
end;
とかやることですが、これだけではダメなことは既に指摘したとおりであり、
もうどうしていいかわからなくなりパニクる(私だけかもしれません)と
いうわけです。

845:803
14/03/30 00:49:20.37 wYL9BvPj.net
>>804
説明、ありがとうございます



846:タは、このスレッドの話題の発端となった>>716の質問者でもあります 実は初心者なのにネット関連のアプリを公開してしまって 今頃になって基本が分かってないことに気づき慌ててる... アプリ内でFreeOnTerminate := Trueで作ったワーカスレッドが 10近く常時動いてます 終了ボタンをクリックすると、終了を示すグローバル変数をセットし それ以降はワーカスレッドからメインスレッドへアクセスすることはない で、聞きたかったのは、親(メインスレッド)が子(ワーカスレッド)よりも 早く終了した場合(もしそんなことが内部的にあるのなら)、 やっぱマズイことがあるのかなってこと 今んとこ終了時にエラーが出たとか聞かないけど、ただ運が 良かっただけってこともあるし...



847:デフォルトの名無しさん
14/03/30 07:16:18.49 8jWWG5Ib.net
>>805
おそらく Form1、mythread などというDelphiレベルの話ではなく OS レベルでの話ということですよね。
私は調べたことがないので、直感でしかありませんが多分メインスレッドが先に終了することなどない
のではないでしょうか。有識者の解答をお待ちください。
いずれにせよそういう疑問を生じさせてしまうのは、死期がはっきりしないという
FreeOnTerminate := Trueの功罪だと私は思います。

848:デフォルトの名無しさん
14/03/30 12:50:46.18 B4XYVLF4.net
URLリンク(msdn.microsoft.com)

少なくとも >>805 で問題になることはない。ただグローバル変数ではなく同期オブジェクトを使うのが
望ましい。

>>806
FreeOnTerminateの功罪って意味不明。FalseならどこかでFreeしなきゃいけないし、Trueなら
勝手にFreeされるので止めた後はアクセスしちゃいけない、それだけ。それにプロセスの終了時は
Windowsがリソースの回収を行うので実際はFalseでもFreeする必要がない(好みじゃないけど)。

849:デフォルトの名無しさん
14/03/30 16:53:22.21 8jWWG5Ib.net
>>807
意味は・・・また話がこじれそうなのでやめときます。

850:デフォルトの名無しさん
14/03/31 14:32:49.41 rltgWKkD.net
この話まだ引っ張ってたのか
頭の固いキチ○イがいると大変だな…

851:デフォルトの名無しさん
14/04/02 23:46:20.07 /gW5Cj+p.net
ちょっとお知恵をお貸しください

アプリで二重起動防止とか、よくありますが
たとえば自分のPC(開発環境)だけは
二重起動を可能にする方法とかあります?

できれば、まったく同じ実行ファイルで実現したい

852:デフォルトの名無しさん
14/04/02 23:49:00.27 8b9j8yIQ.net
>>810
適当にテキストファイルでも何でもいいからファイルかフォルダを用意してそれがあれば二重起動可能にするとか
どうとでもなる

853:デフォルトの名無しさん
14/04/02 23:58:18.35 /gW5Cj+p.net
>>811
すばやいレス、ありがとうございます

その方向ですよね

あとは起動オプションを使うかですかね

854:デフォルトの名無しさん
14/04/03 00:49:18.37 HsT1tdMS.net
ミューテックス

855:デフォルトの名無しさん
14/04/03 01:38:25.85 CHv47MJA.net
DebugHook URLリンク(docwiki.embarcadero.com)

856:デフォルトの名無しさん
14/04/03 13:58:35.25 hMZDUBRj.net
>>814
ありがとうございます

ちょっと事情があって、開発環境のあるPCでは
Delphi IDE内で実行するときだけでなく
そのPC上で実行するすべての場合で
アプリの二重起動を可能にしたいので...

857:デフォルトの名無しさん
14/04/03 17:37:29.19 +zs34Az8.net
最近のDelphiはドットネットというのに乗せないと動かないとききました。

現状 Windows8.1 64bit の上でD6がいちおう動くようなのでとりあえず使ってるん


858:ですが、 やっぱり新しいのにしないとまずいことがあるのですかね? 機能的にはD6で十分なのです



859:デフォルトの名無しさん
14/04/03 20:36:01.67 Ug9VViSs.net
>>816
2004年くらいからタイムスリップしてきましたか?

860:デフォルトの名無しさん
14/04/03 21:14:58.98 e0k67vMi.net
おれもRAD XE2まで持ってるがDelphi7,CBuilder6ばっかり使ってるな

861:デフォルトの名無しさん
14/04/04 14:45:50.82 RM+Iq64G.net
6ではUnicodeにしかない文字を含むパスを渡されるとデフォルトでは読み込めないから
わざわざUnicodeに対応した処理を自分で実装しないといけないってのは面倒
自分専用ならパス側を書き換えて対処すればいいけど、外に出すアプリでそれは強要できないし6は正直無い
あと言語の拡張を考えると6と2009以降では生産性が倍以上は違うと思う
ただIDEの出来は6の方がよかった

862:デフォルトの名無しさん
14/04/04 15:30:05.33 YgvVnaBl.net
すみません、Delphi側でフォームを用意し、そこに入力した文字列を、ボタンを押す事によりFirefoxなどのブラウザの、例えば通販での個人情報入力フォームに反映させるようにしたいのですがどんなメソッドが必要でしょうか?

質問が下手で申し訳ありません
ちなみにDelphi7をWindows7で使っています
よろしくお願いします

863:デフォルトの名無しさん
14/04/04 16:00:36.20 Lb1wU2ET.net
>>819
倍も違うほど何が変わった?

864:デフォルトの名無しさん
14/04/04 16:18:07.61 ebHBrSE5.net
>>820
FireFoxのことは知らないけど
TWebBrowserを使って、Formなどの要素に書き込んだり
ボタンを押す動作を制御することはできる

検索すれば、いろいろと出てくると思う

865:デフォルトの名無しさん
14/04/04 19:32:30.17 Io3jP59G.net
>6ではUnicodeにしかない文字を含むパスを渡されるとデフォルトでは読み込めないから
>わざわざUnicodeに対応した処理を自分で実装しないといけない
一発変換かますだけだろ
自分で実装する必要はないわな

866:デフォルトの名無しさん
14/04/04 23:54:12.31 HNmjO1Jh.net
え?「c:\☑\☒.txt」っていうファイルを D6 の TMemo に読み込むのに「一発変換」という
簡単な方法があるんですか?

867:デフォルトの名無しさん
14/04/05 07:09:19.43 Jx7qT/sh.net
そういうわながあるのか。。   しかしまあ困るというほどではないかも。

868:デフォルトの名無しさん
14/04/09 16:31:22.56 PRO2eP0Z.net
>>823
一発変換って何?
SJISに変換できない文字があったらVCLのLoadFromFileじゃ絶対読めないけど。
例えば自分で実装せずにTStringList.LoadFromFileする一発変換ってどうやるの?
仮にファイル名に使われている文字がSJISの仕様内におさまっても、
ファイルの中身がSJISに変換できないUnicodeテキストだったらどうやって表示するの?
これも一発変換で表示できるの?

869:デフォルトの名無しさん
14/04/09 16:58:18.78 5wEyC0tG.net
すでにツッコミが入ってるだろーが

870:デフォルトの名無しさん
14/04/09 18:09:07.64 LeGZTXio.net
おまいらマジに
GetShortPathName
で変換することを知らんのか
ってかここは超初心者用だったな

871:デフォルトの名無しさん
14/04/09 18:25:26.16 Kpy3Opz4.net
なんであんなに必死なんだ

872:デフォルトの名無しさん
14/04/09 18:30:35.62 PRO2eP0Z.net
>>828
もしかして今は短いパス名をサポートしない環境があるのを知らない?
ってここは超初心者用だったな、すまん

873:デフォルトの名無しさん
14/04/09 19:08:57.91 2PCUc7IP.net
とりあえずそんなおかしな名前付けるな で済む

874:デフォルトの名無しさん
14/04/09 21:31:16.62 XdnhU9kU.net
他国とのやりとりをしていると平気で出てくるんだよ
ファイル名もテキスト内容も>うにこ

875:デフォルトの名無しさん
14/04/09 23:34:49.77 klWzwYGP.net
ファイル名はWideStringに入れて、Create


876:FileWでファイルをオープンして、THandleStreamで扱う、ってことになるわな。



877:デフォルトの名無しさん
14/04/11 14:55:10.26 UXPfM29I.net
831にとってはおかしな名前でも、その国の人にとっては常用する普通の文字だしな
まさに井の中の蛙だねぇ…

878:デフォルトの名無しさん
14/04/15 21:00:02.58 y7/bYr71.net
>>835
すべてoffという特性は、TRadioButtonには適していないと思う。

複数のTSpeedButtonのGroupIndexを同一にし、かつAllowAllUpをTrueにしたほうが良い気がする。

879:デフォルトの名無しさん
14/04/15 21:00:35.52 pnw/AVzK.net
procedure TForm1.Button1Click(Sender: TObject);
begin
RadioButton1.Checked:=not RadioButton1.Checked;
end;

TRadioGroup も考えてみて
procedure TForm1.Button2Click(Sender: TObject);
begin
if RadioGroup1.ItemIndex<0 then
RadioGroup1.ItemIndex:=0 else
RadioGroup1.ItemIndex:=-1;
end;

880:デフォルトの名無しさん
14/04/15 21:44:38.50 WV05oYWg.net
ラジオボタンってなんでそう呼ばれるのか、若い人にはわからないよなぁとか思ったり

881:デフォルトの名無しさん
14/04/16 01:33:42.30 0PIdiqLV.net
>>835-837
やっぱラジオボタンだけじゃ無理っぽいですね。
チェックボックスのほうが無難かな...
ちょっと文字情報付のボタンが欲しかったんで

どれか1つのボタンだけOnで、そのOnのボタンをクリックすると
それもOffになって、全部Offを許容するって感じで

ちょっとコンポーネント調べたんですが、そんなのないですね

>>837
昔のラジカセのボタンみたいなもんでしょうか?
そういえば、カーラジオも選局ボタンがそんなんだったような

882:デフォルトの名無しさん
14/04/16 22:18:31.95 r3bnRP8n.net
質問です、
Windows7でRAD Studio XE5を使用し、FMXの練習をしています。
ttpwww.gesource.jpweblogp=6214
このページの下にあるサンプルアプリケーションのソースをそのままコピーしたのですが
DrawBitmapの部分で中身が空として扱われてしまいImageLargeが表示されませんでした
ImageSource,ImageSmallは正常に表示されます。
どのような原因だと思われるでしょうか。

883:デフォルトの名無しさん
14/04/20 12:24:07.84 sTP8AN8M.net
こちらの環境はWindows7,lazarus1.2です。
「デスクトップの表示」をしても消えないウインドウをつくりたいです。
昔は、TForm.createのなかでParentWindow:=FindWindow('Progman',NIL)という定番のやり方があったのですが、仕様が変わったらしくうまくいきません。
(窓が表示されない)
ネットで調べて、ProgmanのかわりにSHELLDELL_DefViewやWorkerWをいれてもだめでした。(デスクトップの表示できえる)
ParentWindow:=GetDesktopWindow();も試したのですがデスクトップの表示できえました。
ガジェットみたいに「デスクトップの表示」をしても消えないウインドウを作るにはどうしたらいいのでしょう。

884:デフォルトの名無しさん
14/04/21 14:17:40.96 p2n411o8.net
ここはDelphiスレです
Lazarusは専用スレがあるのでそちらへどうぞ

885:デフォルトの名無しさん
14/04/22 00:06:55.28 aZUtwyKC.net
つかWin32の質問だよな

886:デフォルトの名無しさん
14/04/22 00:33:15.43 1mdNhLZv.net
Delphi使いは心が狭いな

887:デフォルトの名無しさん
14/04/22 03:00:46.32 P7vsKsdx.net
心の面積とは関係ないような…

888:デフォルトの名無しさん
14/04/22 06:15:48.57 Wc/R4HT8.net
デスクトップの表示ってすべてのアプリを最小化してるのか?
なんらかのmessageが飛んできてるからそれを無視すりゃいい

889:デフォルトの名無しさん
14/04/22 10:23:00.24 Zs7S976a.net
マッピングからはずしてる。
ParentWindow:=nilにしてるという感じ。

890:デフォルトの名無しさん
2014/04/2


891:2(火) 12:29:37.74 ID:z8WHMXPV.net



892:デフォルトの名無しさん
14/04/22 13:47:00.21 0UJjYfLY.net
UFC 128 - : ジョン・ジョーンズ vs. マウリシオ・ショーグン
URLリンク(www.youtube.com)

893:デフォルトの名無しさん
14/04/22 21:34:26.20 aroCR4mU.net
>>840
壁紙に書いちゃえ

894:デフォルトの名無しさん
14/04/22 22:12:14.91 z8WHMXPV.net
天才現る

895:デフォルトの名無しさん
14/04/22 23:11:42.43 K9jQM/w0.net
>>840
WM_MOVEを監視して常にデスクトップ領域内に入るよう監視・調整する

896:デフォルトの名無しさん
14/04/23 06:55:12.12 7+voQcmr.net
>>846
マッピングをいじるわけではないだろう。
アエロなしだと'Progman'、アエロだと'WorkerW’の管理する窓が一番前にきて他の窓を隠す。

897:デフォルトの名無しさん
14/04/27 16:11:50.02 9pN9ZCWS.net
XE2で#20以下の文字をエスケープ、アンエスケープする関数が(なるべく標準で)あったら教えて下さい

'aaa'#13#10'bbb' <-> 'aaa#13#10bbb'

898:デフォルトの名無しさん
14/04/27 16:15:00.00 9pN9ZCWS.net
>'aaa'#13#10'bbb' <-> 'aaa#13#10bbb'

これはあくまで例で、書式の指定は特に無いです

899:デフォルトの名無しさん
14/04/27 16:51:21.96 sr/2zxN+.net
書式はなんでもいいから「#20以下だけ」ってことか・・
そんなものないと思うけどな

900:デフォルトの名無しさん
14/04/28 10:49:56.95 +tUkPlgE.net
XE6でLiveBindingをしているのですが
NumberBoxのValueなどを双方向にバインドすることは可能なのでしょうか

901:デフォルトの名無しさん
14/04/28 20:57:14.17 TqlVJspb.net
>>856
NumberBoxではなく、Gridだけど、UIコントロールのSynchプロパティをバインドするといいよ、ってのをマニュアルで見かけた。

多分ここ

URLリンク(docwiki.embarcadero.com)を使ったデータの同期

902:857
14/04/29 11:27:25.81 mwSTMqLJ.net
>>857
ありがとうございます!試してみます

903:857
14/04/30 19:50:18.37 IRsEECXr.net
>>857
自分はNumberBox(数値設定用コンポーネント)のValueのように、LiveBindingデザイナにデフォルトで表示されないメンバから
DBのフィールド等の値を変更したいと思っていまして、貼っていただいたURLの内容では目的が達せられませんでした。すみません。
ベタにコーディングするしか無いでしょうか。

904:デフォルトの名無しさん
14/05/01 22:30:17.61 31i14fQn.net
Delphi XE5 で Android アプリを作っています。
TMainMenu/TPopupMenu/TMenubar はモバイルに対応していないようですが、メニューボタンに対応させるにはどうすれば良いでしょうか。

905:デフォルトの名無しさん
14/05/04 20:43:23.18 LhkWbjgu.net
ホント、素人な質問で申し訳ないんだけど。。。

フォームにコンポーネント(って言うのかな。ラベルとかエディットとか)を貼り付ける
というとこまでは分かったんですが、そうするとDELPHIが自動的にプログラムを
書いてくれる。で、やたら(sender:tobject)というのが出てくるのですが、これって
何なのでしょう?
senderは送る者、tobjectはルートクラス? 何が何やら・・・

906:デフォルトの名無しさん
14/05/04 21:22:38.92 Hhfw7Ggo.net
多態性について学習するよろし。
型宣言が増えまくるのを抑止する手段>継承元クラスで一緒くたに扱う

907:デフォルトの名無しさん
14/05/04 21:42:22.72 LhkWbjgu.net
>>862
なかなか奥が深いですねぇ。
田舎住まいでしかもインターネットができないので調べるのも


908:一苦労ですが、 今日は都会に来ているので本屋さんに行ってきます。多態性をキーワードに すればいいわけですね。ありがとです^^



909:デフォルトの名無しさん
14/05/04 22:00:57.52 gHxTmPz5.net
最近は本屋行かなくなっちゃったから分からないけど
あんまり本は頼りにならないというか
そもそも売ってないと思うよ
当時でさえそうだったんだから今はますます(略)
本屋より図書館の方がいいかも
まぁ置いてあればの話だけど
やっぱりネットが一番だと思うけどね

910:デフォルトの名無しさん
14/05/05 01:47:01.38 pYH7L/RU.net
昔はDelphiの入門書が結構あったのに最近見かけないね
入門する人がいなくなったのかな

で、技術評論社の「Delphiオブジェクト指向プログラミング」ってのに
お世話になった。もう15年以上も前の話だけど

911:デフォルトの名無しさん
14/05/05 07:18:01.71 vaZjyLth.net
漫画喫茶でもテキトーに入れば入門の情報はいくらでもある
要は自動生成されたコードの意味がわからんってことだろう

912:デフォルトの名無しさん
14/05/05 10:07:02.66 NN5JEBAd.net
>>865
当時 Delphi 関連書籍は流通を押さえてたソフトバンクの策略により書店から姿を消した
代わりにソフトバンクは全国の書店に VB 関連書籍をバラ撒いた

913:デフォルトの名無しさん
14/05/05 18:47:49.07 ztfUYVnN.net
なんでソフトバンクはそんな策略をしたの?
MSからお金を貰ったとか?

914:デフォルトの名無しさん
14/05/05 18:55:58.45 NN5JEBAd.net
>>868
当然、日本マイクロソフト社との裏取引があったのだろう

915:デフォルトの名無しさん
14/05/05 18:58:30.62 orKzLKCf.net
とりあえず、PDFで転がってるOh!No!のDelphi3 Q&A150選でも見とけ

古すぎてアレだがw

916:デフォルトの名無しさん
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タグをエスケープする関数とかありますか?

< --> &lt;
> --> &gt;
& --> &amp;
" --> &quot;

こういう変換をしたいんですけど、自前で書くしか方法はないんでしょうか。

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:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています


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