ミ,,゚Д゚彡DelフサギコのフサフサDelphi談話室
レス数が1000を超えています。これ以上書き込みはできません。
0001Delフサギコ
NGNG∧,,∧ ∬ /DelphiやBorlandに関する
ミ,,゚Д゚彡っ━~ < 雑談や質問しながら
_と~,, ~,,,ノ_. ∀ \ みなーで、くつろごうや
ミ,,,,/~), │ ┷┳━  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ̄ ̄ ̄ .じ'J ̄ ̄| ┃
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ┻
0002Delフサギコ
NGNG ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
.∩∧,,∧ (´´
,,,,,,,,,,ミ゚Д゚,,彡 (´⌒(´
ど,,,, ,,,,,二⊃≡≡(´⌒;;;≡≡≡
~''(,,,,,づ゙゙ (´⌒(´⌒;;
ズザーーーーーッ!!
関連スレ
( ゚Д゚)ノ Delギコ猫のプログラミング相談室part4 (ある意味荒らしで逝ってしまっています)
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1002469894
( ゚Д゚)ノ Delギコ猫のプログラミング相談室part3 (誤って削除されたようです)
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1001039863
( ゚Д゚)ノ Delギコ猫のプログラミング相談室part2
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=999482946
( ゚Д゚)ノ Delギコ猫のプログラミング相談室 (逝ってしまいました)
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=997348797
0003Delフサギコ
NGNG ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄
∧,,∧ (´´
\,,,,ミ,,゚Д゚彡 (´⌒(´
⊂,,,,,,,,,つつ.≡≡≡(´⌒;;;≡≡≡
(´⌒(´⌒;;
ズザーーーーーッ
Borland Delphi 6 Personal ダウンロード
http://www.borland.co.jp/delphi/personal/
Borland Kylix Open Edition ダウンロード
http://www.borland.co.jp/kylix/openedition/
JBuilder 5 Personal ダウンロード
http://www.borland.co.jp/jbuilder/jb5/download/
Borland C++ Compiler 5.5 無償ダウンロードサービス
http://www.borland.co.jp/cppbuilder/freecompiler/
0004Delフサギコ
NGNG| ;:・・.∴○;・.:∴ * ☆
| ゚ ⊂⊃ 。
| ☆,, ∧ ∧ *
| ゚ ヽ(゚Д゚*)ヘ
| * (□ノ)ノノ ゚.・∴..*.☆+
| ⌒⌒⌒∪∪⌒⌒⌒⌒
| ⌒ ⌒ ⌒ ⌒
|
| Delギコさんはお空の上で幸せに暮らしているだろうか
\
 ̄ ̄ ̄ ̄ Ο  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ο
♪ ∧,,∧゚ ♪
ミ,,゚Д゚彡 ♪
ミつ[|lllll]).
〜ミ ミ
U''U
Delphiお勉強リンクは過去スレをみてください。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=999486538
0005デフォルトの名無しさん
NGNG0006Delフサギコ
NGNG♪ ∧,,∧ ♪ < 話題募集中! > ♪ ∧,,∧ ♪
ミ,,゚Д゚彡. ♪\________/♪ ミ゚Д゚,,彡
ミつ[|lllll]). ([lllll|]とミ
〜ミ ミ ミ ミ〜
U U U U
0007Delフサギコ
NGNGミ,,゚Д゚彡 < 寒い季節になりました。
ミ つ且~~ \___________
〜ミ,,,,,, ,,ミ
[Delphi:61493..61505] 他のフォーム(フレーム)の表示イメージを別フォームに縮小表示したい
って、TCustomForm.GetFormImageだけで済む問題なのじゃなかったかな。
過去スレが過去スレがと言わずに、もう一度話題にしてあげればいいのに。
0009デフォルトの名無しさん
NGNG0010Del生徒
NGNG( ´∀`)/< 先生!あいかわらずHELPのリンクミスが多いです!
_ / / / \
\⊂ノ ̄ ̄ ̄ ̄\  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
||\ \
||\|| ̄ ̄ ̄ ̄ ̄||
|| || ̄ ̄ ̄ ̄ ̄||
.|| ||
0011Delフサギコ
NGNG/...... .. .../
||::: ∧ ∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| ̄\ ミ ゚Д゚ミ< ひええええ、Borconの恐ろしい情報だ
| |: ̄U U ̄:|\_________
確かに、金取りすぎとは思っていたが...BorCon
1万円以下ならフサも逝ってもいいんだけどね。
>>10
多くて報告する気もなくなりますね。
ソース置き場にスレつくってHELPのバグを
積み重ねておきましょうか?
HELPといえば、一つの項目調べるのにVCLとCLXの項目が出てくるの嫌っす。
しかも、内容に差がなかったりするし。
0012デフォルトの名無しさん
NGNGOpenKylixとかOpenDelphiなんてのが作られたら別にそれはそれでいいんだけど。
無理だろうな。。。
0013Del房
NGNG( ´∀`)/< 先生!あいかわらずDELスレが多いです!
_ / / / \
\⊂ノ ̄ ̄ ̄ ̄\  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
||\ \
||\|| ̄ ̄ ̄ ̄ ̄||
|| || ̄ ̄ ̄ ̄ ̄||
.|| ||
0014Delフサギコ
NGNG|よろしくフサ−|
|______|
∧,,∧.. .||
ミ,,゚Д゚ミ..|| Delphiが人気って事かしら?
ミ づΦ あれ、ちがう?
〜ミ ミ
U''''.U
0015Del生徒
NGNG( ´∀`)/< 人気ありますね! 2chツールもほとんどDel!
_ / / / \
\⊂ノ ̄ ̄ ̄ ̄\  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
||\ \
||\|| ̄ ̄ ̄ ̄ ̄||
|| || ̄ ̄ ̄ ̄ ̄||
.|| ||
0016デフォルトの名無しさん
NGNG新技術にはついていけないダメプログラマですか。
0017デフォルトの名無しさん
NGNGドントヲーリー
0018デフォルトの名無しさん
NGNG>一つの項目調べるのにVCLとCLXの項目が出てくるの嫌っす。
何とか.zip を展開すると VCL だけが出るようになるんだけど
試した?
0019Delフサギコ
NGNG常にVCLだけでも困るかな
CLXつかっているときは出てもらわないと。
 ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄
∧,,∧
ミ,,゚Д゚彡∬
〃 つ旦O
〜ミ,,,n,,n[ ̄ ̄ ̄.]
 ̄ ̄ ̄
0020デフォルトの名無しさん
NGNG(,,゚∀゚)< マターリしててイイでち
@_) \________
0021Delフサギコ
NGNG,ヘ ヘ /
ミ,,゚Д゚ミ< マターリ、日曜洋画劇場を見ますか。
ミ,,,,,,,,ミノ \
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
0022Delヒッキー
NGNG0023Delぞぬ
NGNG/ ● ●、 _____
|Y Y \ /
| | | ▼ | < 正直、フリーカーソルはどうにかして欲しい。
| \/ _人.| \_____
| ___ノ
\ ./
| | |
(__)_) アドインでどうにかできるのは知ってるけど。。。
0024Delヒッキー
NGNG0025デフォルトの名無しさん
NGNG_____________
___ /
/´∀`;:::\< >>23 テレホマンはフリーカーソル好きょ
/ /::::::::::| |
| ./| /:::::|::::::| \_____________
| ||/::::::::|::::::|
0026Delフサギコ
NGNGミ,,゚Д゚彡 < フサはフリカソルエディタもノンフリカソルエディタも
,;゙ ミ \普通に使います。慣れたのかな。
ミ. ミ VSでCtrl+↑↓が効かないのや
/゛゛゛゛ ブックマークジャンプが、イマイチつかいにくかったり
Ctrl+Shift+Rのキーマクロが出来ないのはどうにかして欲しかったり…
AAの人増えたのかニャー
0027Delフサギコ
NGNG∧,,∧ / VC/VBからの乗り換えを支援するのなら
ミ,,゚Д゚彡< 非フリーカーソルの実現はプライオリチー高め
ミつ つ \ じゃないのかニャ
〜ミ ミ.  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
U U
あのアドインは完璧に非フリカにはならないですし。
(D6に対応してくれたのは大変よいのですが)
VSユーザーがアドインをすぐに知ることが出来るとも思えない
VSユーザーに不便を強いるのはよくなーい。
ユーザーの意見を積極的に反映してもらうためにも
某日NGに匿名で投稿しておきましょうか?
って、匿名でNG投稿する方法わからないや・・・・・・誰か気が向いたらフリカ要望やってちょ。
そういえばJBは非フリカ選択できるのではなかったかな?
技術的には簡単なことじゃニャーか?
0028デフォルトの名無しさん
NGNG堀信者のようにイタク無い事を願うアルよ。。
0029Delフサギコ
NGNGミ ゚Д゚彡
〜ミ,,,,uuミ
痛くならないように気をつけます。
でも、某に要望出すのは自由だと思うんだ。
なるべく多くのユーザーの声が届きますよにっと。
しかし、堀信者って痛いのですか・・・・・
言語は宗教って、ヘジーも逝っておられるようですし(C#スレで見た)
原理主義みたいになってはいけないですよね。
0030デフォルトの名無しさん
NGNGで堀信者って何?初めて聞いたんだが。
0031デフォルトの名無しさん
NGNG堀=DelphiXの作者
0032名無しヘタぐらまさん
NGNGDelスレの乱立は他のスレを圧迫し,Delユーザーの情報収集を困難にします.
あえて立てるからには「面白いから許可!」「これはこれでいい」と思えないと.
(プレッシャーかけてごめんなさい)
あと,Delモナさんのスレへのリンクがないのですが…?
0033デフォルトの名無しさん
NGNGモナースレもよろしく!
http://piza2.2ch.net/test/read.cgi/tech/1003113413/l50
0034Delフサギコ
NGNG∧,,∧l||l だから他Delスレが下がっている時に立てたのに…
;゙⌒ヽ彡 トホホ
〜ミ___ミ
''" ""''"" "''
0036デフォルトの名無しさん
NGNGこのスレしか見てないから困難は無い(w
0037Delフサギコ
NGNGばかぼんパパはこう申しております
 ̄ ̄∨ ̄ ̄ ̄
∧,,∧
ミ,,゚Д゚彡
ミ つ[ |:3ミ ]). <ソレデイイノダー
〜ミ ,, ミ
∪∪
関係ないけど、大阪弁2ch、プログラーの息抜きにドゾ
http://www.yorosiku.net:8080/-_-http://www.2ch.net/2ch.html
0038Delフサギコ
NGNGhttp://piza2.2ch.net/test/read.cgi?bbs=tech&key=1002468050
名無しさん#さんに感謝しつつ
の、258-261のXMLサンプルを移植したいのですが
簡単に同等機能を実装する方法ありますか?
どなたかご存知でしたら教えてください。
∧,,∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ミ,,゚∀゚彡 < 素直にCチャープ使えってか。
ミ つ且~~ \___________
〜ミ,,,,,, ,,ミ
つまりXMLライブラリが欲しいなって事かも。
0039Delあめ猫にゃ
NGNGXML Parser
http://www.microsoft.com/japan/developer/workshop/xml/general/xmlparser.asp
Delphiへの導入方法
http://www.geocities.co.jp/SiliconValley-SanJose/9156/xml-memo.html
http://homepage2.nifty.com/boheme/delphi/techdoc/dad0080.html
0040デフォルトの名無しさん
NGNGOpenXMLでいいんじゃない?
MSXMLもある
あとIBMもDLL公開してたような
QuickRTTIで実行時型情報をXML形式で保存してくれるのがどっかにあった
どれも使ったこと無いので
だれか人URL調べてちょ
0041デフォルトの名無しさん
NGNGポイントをついた解答がすぐつくのも謎。
みんな学生じゃないよね?仕事中に質問するのはわかるけど
回答するひとはどんな立場なんだろう?
0042デフォルトの名無しさん
NGNG業務中の2chスレとDelphi-MLのチェックは
プロのDelphiユーザーの義務です(藁
確かに休日は閑古鳥状態だね
0043デフォルトの名無しさん
NGNGこっちの方が生きが良いから好きだ。
0044デフォルトの名無しさん
NGNG今月のCマガどうだった?
[Part2] Borland DelphiをOpen Tools APIで機能拡張する
買い?
0045デフォルトの名無しさん
NGNG面白そだね。最近Cマガチェックしてないので知らなかったよ。
誰かMLでdelphi media watchスレ立てて
特集記事・連載の解説してくれよ。
0046デフォルトの名無しさん
NGNGWizman の記事だね。
0047Delヒッキー
NGNGhttp://homepage2.nifty.com/boheme/delphi/tips/tec1510.htm
でも C# のサンプルは SAX っぽいね。。。
0048名無しヘタぐらまさん
NGNGたしかにモナスレも技術的な話になりつつあるので
マターリスレとしての意味はあるかもしれません.了解しました.
>>34
というわけで泣かないで〜(泣).
>>41
ニフティのFDELPHIで相当お世話になったので,
(数時間後に回答というのも珍しくなかった)
困っている方の質問を見てしまうと
仕事そっちのけで(それはマズイけど)
カラダが勝手にレスを打ってしまうのです.
他人に親切にされると自分も他人に親切にしてしまいたくなるのは不思議.
0049デフォルトの名無しさん
NGNG0050デフォルトの名無しさん
NGNG0051ビル・ジョブス
NGNG0053Delフサギコ
NGNG♪あのねしぃちゃん
今日、初めて蒟蒻畑アロエリーナ喰ろうたら (゚д゚)ウマー
だったの。、アロエのCMがこれだったって初めて知ったの…
聞いてくれてあーりがと しぃちゃん♪
_____ __
\/
∧∧ ∧,,∧ ブラックジンヂャ ハ ノンダコト ナイノ
(*゚ー゚) ミ゚Д゚,,彡
ノつ旦) ミ(旦⊂ミ
て ) ) ミ( ( ミ〜
| ̄∪ J ̄ ̄ιし' ̄| Ψ ソウ オレハ、ショクヨウ
|.. |□
XMLの情報サンクスコ、
今日は書泉グランデでいろいろ立ち読みしてきて
疲れたーYO
>>52
調査してみます。
七味唐辛子といい、BCB系はなんで閉鎖するのでしょう?
大変、便利で感謝しちえるユーザーがいるのに〜〜〜
ちなみに七味は、一時期ファイル日付が完全に狂っていたので
アップ時にファイル更新で作者さんがHomepageデータを誤って全削除した
可能性が高いかと思っているのニャガ....
CマガはWizmanさんの記事以外はDelに冷たいので
買ってやらないのーニャ
0054デフォルトの名無しさん
NGNGWizman てCマガの筆者だったの!?
0055デフォルトの名無しさん
NGNG0056Delフサギコ
NGNGミ ゙''゙゙゙つ
ミ∧,,∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ミ;゚Д゚彡 < >>55、いや、別に差別しているつもりは・・・
U U \________
OpenToolsAPIの情報はすごく有用なのですが...
もう一押し、前のように中村先生タンの記事があれば買ったかも。
でも、考えてみるとCマガってVBには異常に冷酷っすね
VBの情報は他誌で出ているからCマガで扱う必要性がないと
踏まえて編集されているのでせうか。
0057Delフサギコ
NGNG移動中なだけかも。
∧ ∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| ̄ ̄ミ,,゚Д゚ミ ̄| < おやすみなさいまー
|\⌒⌒⌒⌒⌒⌒\ \
| \ \  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
\ |⌒⌒⌒⌒⌒⌒|
\ |_______|
0058デフォルトの名無しさん
NGNGほら、一応 C (言語) マガジンだった過去を背負っているのよ。
0059デフォルトの名無しさん
NGNG( ゚Д゚)< もちっとペースダウソで夜露氏久
|つ つ \
〜 |
∪ ∪
スレ傾向としてヒートアップに向かうのはよろしくないと思う
願わくば肉・野菜・野菜・野菜・肉・野菜・野菜
0060デフォルトの名無しさん
NGNGワラタ
0061Delあめ猫にゃ
NGNG/∂⌒∂ 。゚。。°
(( ┃ ┃ )) ☆ °゜
彡 ー ミ / ご挨拶忘れてたにゃ
O( つ つ よろしくにゃ
(ノ (つ
∧ ∧ 。o 0 〇
/∂⌒∂
(( - - )) Λ Λ
彡 ー ミ ミ゚Д゚,彡
|~~~~~~~~~~~~~~~~~~~~~~~|
0062ヒキ
NGNG0063Delフサギコ
NGNGミ,,゚Д゚彡 <
Π ̄ ̄ ̄| \あらためまして、コニャニャチワ
|つご挨拶()
| |___.|
∪∪
あめ猫さんAA、マンセー
0064Delフサギコ
NGNG|| フサは 。 Λ,,∧ いいですか?!
||フサフサのフサ \ ミ゚Д゚,,ミ
||________⊂ ⊂ ,,ミ
∧,,∧ ∧,,,∧ ∧,,∧ ...| ̄ ̄ ̄ ̄|
ミ ∧,,∧ ミ ∧,,∧ ミ ∧,,∧. |教授 .│
〜(_ミ ∧,,∧ __ミ ∧,,∧__ミ ∧,,∧ ̄ ̄ ̄
〜(_ミ ∧,,∧_ミ ∧,,∧_ミ ∧,,∧ はい、教授。
〜( ,,ミ ,,ミ〜(,,,,ミ ,,ミ〜(_ミ ,,ミ
〜(___ノ 〜(___ノ 〜(___ノ
0065Delフサギコ
NGNGミ゚Д゚,,彡 < なんてこったい!
⊂ ⊂ミ__ \____________
/ ̄ ̄ ̄ ̄ ̄ /|
∧_∧ //|
/ ( ,, )__//┌─────────
|| ̄/ ) ||/ < どうしたの?
|| (_○___) || └─────────
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
∧,,∧ < AAを1から収集しなおしなんだぞ!
ミ゚Д゚,,彡_ \____________
/ ̄ ̄∪ ∪ /|
/∧_∧ //|
/ ( ;´∀`)_//┌─────────
|| ̄( つ ||/ < ほっぺに"ミ"付けただけでしょ
|| (_○___) || └─────────
0066Delフサギコ
NGNG|| ほっぺに 。 Λ,,∧ テストにでますよ!
|| 「ミ」を付ける \ ミ゚Д゚,,ミ
||________⊂ ⊂ ,,ミ
∧,,∧ ∧,,,∧ ∧,,∧ ...| ̄ ̄ ̄ ̄|
ミ ∧,,∧ ミ ∧,,∧ ミ ∧,,∧. |教授 .│
〜(_ミ ∧,,∧ __ミ ∧,,∧__ミ ∧,,∧ ̄ ̄ ̄
〜(_ミ ∧,,∧_ミ ∧,,∧_ミ ∧,,∧ はい、教授。
〜( ,,ミ ,,ミ〜(,,,,ミ ,,ミ〜(_ミ ,,ミ
〜(___ノ 〜(___ノ 〜(___ノ
0067Delフサギコ
NGNGミ,,゚Д゚ 彡< 唐突ですが、シツモソです。
__ミ ミ ミ \___________________
\,,∪  ̄ ̄ ̄\
||ヽ|| ̄ ̄ ̄ ̄||"
...|| ̄ ̄ ̄ ̄||
Delphi6Pro辺りでインタネット経由のIMのような
チャットシステムは簡単に出来ますでしょうか。
なんとなくデキそ で デキナサそ なアンニュイな感じがしています。
IndyのDemoみてもそういうの蜜からニャです。
\Demos\Internet\Chat
こちらは使い方がわかりません。
0068デフォルトの名無しさん
NGNGあのね。いわゆる IM は、実は Point To Point/ Peer to Peer ではなくて
サーバーを一回経由しているの。だから FireWall の内側同士で会話できるの。
やってることは Web 掲示板を使ったチャットと同じなの。
だから「チャットシステムは簡単に」できるんだけど、プロトコルを決定する必要が
あるの。または既存の IM とつなぐ場合にはプロトコルを解析する必要があるの。
だからプロトコル設計が肝でインターネットコンポは実現のための道具にしか
過ぎないのよ。
.. 探してみるとあるもんだ。
http://www.morphtek.com/
Instant Message Component
Indy を使った D5/D6/Kylix 用、P2P コンポーネント群
0069デフォルトの名無しさん
NGNG0070Delフサギコ
NGNG_________
∧,,∧ / さっぱりわからニャイ
ミTДT彡< 何をインストールすればいいかすら…
ミつ つ \
〜ミ ミ.  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
U U イキナリ ど挫折...
ナ・ナナジウGet〜
0071名無しさん♯
NGNG>>38
MSXMLを使えば「そこそこ」簡単にできると思われ。
書き込みはSAX、読み込みはDOMという感じで。
でも、C#でサンプル作ろうと思ったらあっさり挫折。(藁
(VB.NETの方がはるかに楽そう。)
DelphiのCOM interopの場合はどうなんだろう...?
0072Delフサギコ
NGNG♪
♪ お世話になって
♪ ∩ ∧,,∧ ♪
ヾミ ゚Д゚彡 フッフフサ フフサ フフサ
ヾ ⊂ ヾ フッフフサ フフサ フフサ
O-、 )〜
U
♪ おりまするー
♪
♪ ∧,,∧ ♪
ミ ゚Д゚彡⊃ フッフフサ フフサ フフサ
ヽ⊂ ミ フフサ フフサ フッサ〜ル
⊂,,, ミ
し″
フサはいまいちわかってません。
どなたか、救いの手を...(他力本願マンセー)
0073802
NGNGおまえ実はDellギコそのものじゃないの?
0074デフォルトの名無しさん
NGNGそのことにふれちゃいけません。
0076802
NGNG(゚Д゚)ハァ?
0077名無しさん♯
NGNGソース置き場使わせてもらいました。
ということで、MSXMLのサンプル。(VB.NETだけど...。)
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1003826049&res=2
0078デフォルトの名無しさん
NGNG0079デフォルトの名無しさん
NGNGモナーの *やさしい* Delphi質問スレ
http://piza2.2ch.net/test/read.cgi/tech/1003113413/
簡単な質問にモナーが答える筈なんですが・・・
質問が結構難しいようで・・・
ミ,,゚Д゚彡DelフサギコのフサフサDelphi談話室
http://piza2.2ch.net/test/read.cgi/tech/1003664165/
フサギコとお話しましょうというスレです
■質問類■
Borland Delphi初心者用お勉強スレ
http://piza2.2ch.net/test/read.cgi/tech/1001035627/
D6を落として初めて使う人の質問を主に扱います
Delphi相談室その2
http://piza2.2ch.net/test/read.cgi/tech/995950803/
TIPSや技術的な相談室です。中級上級向
■夢と希望■
★クライアントサイド最強の Delphi に物申す★
http://piza2.2ch.net/test/read.cgi/tech/1001442200/
Delphiにこんな機能があったらいいのに、とかの話題です
■廃■
Delphi/Kylix Tech 2nd
http://piza2.2ch.net/test/read.cgi/tech/993005709/
DelphiMLというメーリングリストのウオッチになってしまいました
0080デフォルトの名無しさん
NGNG分かりました。質問は「質問類」のスレですればいいんですね。
ありがとうございました。
0081デフォルトの名無しさん
NGNG見ている人は全部見ているからあまり気にせんでよいよ。
規則が無いのが 2ch
0082デフォルトの名無しさん
NGNG0083Delフサギコ
NGNGミ,,゚Д゚彡 < >>79 分類わけ、どもーありがと
ミ つ且~~ \___________
〜ミ,,,,,, ,,ミ
、近頃ネタ不足なので、息抜きにでもAAドゾ
0084Delフサギコ
NGNGソ ̄(,,゚Д゚)
/| ̄ ̄ ̄ ̄ ̄ ̄ ヽ) ヽ) ̄ ̄ ̄|
| | | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| |
| | | GIKO MANZAI .| |
| | | ∧ ∧ ∧,,∧ / ̄ ̄ ̄
| | | (,,゚Д゚) ミ゚Д゚,,ミ < 逝ってヨシ
| | | | つつ ¶ (ミ ミ) \___
| | | 〜 | || ミ ミ〜 | |
| | |_ ∪∪ || ∪∪____| |
| | | ̄ ̄ ̄ ̄ ̄ ̄ ̄| ・・ロ |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
0085Delフサギコ
NGNG| こんばんちはー、ギコーズです。
\
 ̄ ̄ ̄|/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
∧ ∧ ∧,,∧
(,゚Д゚,) 目 ミ゚Д゚#ミ
|つ つ ..|| (ミ ミ)
〜 | .|| ミ ミ〜
∪ ∪ . || ∪ ∪
_______/|_______
/
| どっちが[ギ]でどっちが[コーズ]だ ゴルァ
\_______________
/|
/ ̄ ̄  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| そんな分け方してません。
\_______________
0086Delフサギコ
NGNG| S A G E !!
\________ _______
|/
Σ∧ ∧ ∧,,∧
(#゚Д゚) 目 ミ゚Д゚,,ミ
|つ つ ..|| (ミ ミ)
〜 | .|| ミ ミ〜
∪ ∪ . || ∪ ∪
/|
/ ̄ ̄  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| 思いっきりAGEとるがな!!
\_______________
0087Delフサギコ
NGNG| A G E !!
\________ _______
|/
∧,,∧
⊂ミ,,゚Д゚彡つ
Σ∧ ∧ ∩∧_∧∩
(;゚Д゚) 目 ヽ( ´∀`)ノ タカイタカーイ
|つ つ ..|| ( )
〜 | .|| | | |
∪ ∪ . || (__)_)
/|
/ ̄ ̄  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| アンタ誰!?、、Delモナさん?
\_______________
0088Delフサギコ
NGNG| 別人だ
\________ _______
|/
∧ ∧ ∧,,∧
(゚Д゚,,) 目 ミ゚Д゚,,ミ
|つ つ ..|| (ミ ミ)
〜 | .|| ミ ミ〜
∪ ∪ . || ∪ ∪
/|
/ ̄ ̄  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| 本人はこう申しております。
\_______________
0089Delフサギコ
NGNG| 「もどってきて!」って言ってくれた方々ありがとう
\________ _______
|/
∧ ∧ ∧,,∧ テレルゼ
(;゚Д゚) 目 ミ゚Д゚*ミ
|つ つ ..|| (ミ ミ)
〜 | .|| ミ ミ〜
∪ ∪ . || ∪ ∪
/|
/ ̄ ̄  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| 別人って言ったばかりでしょ・・・・
\_______________
0090Delフサギコ
NGNG\
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄
∧ ∧ Zzz...
〃' ̄(,,-Д-) モット Delphi ネタ デナキャ
/| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄.| "めも電卓"クライ ザンシンナ ネタ ガ・・・
| | | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| |
| | | | |
| | | | |
| | | 放 送 終 了 | |
| | | | |
| | | JOGX-TV | |
| | |___________| |
| | | | ・・ロ |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
0091デフォルトの名無しさん
NGNG0092デフォルトの名無しさん
NGNGヽ|〃
_|三三|_ / ̄ ̄ ̄ ̄ ̄
ヽミ ´∀`ミノ < ガミワヅナツ、ミヤミヒユアネメーハ!
彡ノノミ \_____
丿 >
0093デフォルトの名無しさん
NGNGワラタ。このスレはマターリ逝きたいですね。
0094Delしたらば
NGNG∧,,,,∧/) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
彡,,・ー・ミ/ < したらば〜
( @ ⌒ヽ \____________
丶_) ( ⌒"
ヽ__)
∧,,,,∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
彡,・ー・,ミ < よろしくにょら
⊂ @ つ \_____________
ヽ | |
∪ ∪
0095Delしたらば
NGNGでる ふぁい まん せー♪
∧,,∧ ∧,,∧ ∧,,∧
∧,,∧ ∩・ー・ミ) ミ・ー・彡 ミ・ー・ミ
ミ・ー・ミ ) @丿 ⊂@⊂ヽ |つ@つ
( つ@つ 〜| / ヽ⊂,,)〜 ⊂,, 丿
て ) ) (/''(/ ヽJ ∪
0096Delフサギコ
NGNG@,,,ミ,,゚Д゚彡 < したらば、かわイイd(・∀・)
⊂,,,,,,,,,つつ. \_
カワイースギ!
0097デフォルトの名無しさん
NGNG@はカラータイマーですか?
0098802
NGNGまた煽られるぞ。
0099Delフサギコ
NGNG∧,,∧∧∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ミ,,゚Д゚ミ・ー・彡 < しーちゃん、ゴメンネ
_と~,,, ミ,@⊂| ∀ V \______________________
.ミ,,,/~),(( ノ〜┷┳┷
 ̄ ̄ ̄ .し'J ∪ ̄|.. ┃
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ .┻
_∧_________
/しーには内緒だぞ。。。
かわいくて作ってしまいました...スマソ>>94-95
したらばが、♂か♀かも知らないのに…
いや、むしろ、かわいければ♂だって♂でも♂しか、むしろ♂の方が、、、
ところで、上沼恵美子似の歌手は
なぜ、つんく♂(ツンクチンコと読むのか?)という名前なの?
0100Delフサギコ
NGNG ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄
∧,,∧
ミ,,゚Д゚彡 (´´
ミ つ且~~ (´⌒(´
〜ミ,,,,,, ,,ミ ≡≡(´⌒;;;≡≡≡
(´⌒(´⌒;;
ズザーーーーーッ
●芸能人の「つんく」はどうして「つんく」という名前なんですか?
また、最近つんくさんは語尾に「♂」がついてつんく♂になりましたがそれにはどう言う意味があるのでしょうか?
http://homepage2.nifty.com/yurai/name7a.htm#つんく
>>91
2wayじゃないけど、Delphiのダイアログページでやや満足かと・・・
0101デフォルトの名無しさん
NGNG|
|_∧ シタラバ…
|−゚)
⊂|
| 〜
|∪
 ̄ ̄ ̄ ̄ ̄ ̄ ̄
0102デフォルトの名無しさん
NGNG0103デフォルトの名無しさん
NGNGコード補完の失われた機能
「新しい IDE 機能」としてリストアップされている機能の一つが提供されていなかった。
Help より引用
ルーチンの本体内の空白行上でコード補完機能を手動(〔Ctrl〕+〔Space〕)で呼び出すと,
(現在のユニットで使用されていない場合でも)追加の RTL ユニットのシンボルがポップ
アップリストボックスに表示されるようになりました。
これはレジストリの定義ミスです。
[HKEY_CURRENT_USER\Software\Borland\Delphi\6.0\Code Insight]
"ExtraUnits"="Classes;ComConst;ComObj;ComServ;Contnrs;ConvUtils;DateUtils;HelpIntfs;IniFiles;MaskUtils;
Masks;Math;MtsObj;RTLConsts;Registry;StdConvs;StdVCL;StrUtils;SyncObjs;TypInfo;VCLCom;VarCmplx;VarConv;
ShareMem;SysConst;SysUtils;Types;VarUtils;Variants"
(長すぎるんで途中で改行入れてあります。常識に従って編集してください)
これを D6Cmplt.reg として保存後、RegEdit に食わせるとここで定義したユニットに関しては
Uses 節に指定されていなくてもコード補完の対象となり、さらに追加した識別子を定義している
ユニットが Uses 節に無いときには勝手に挿入してくれる。
0104Delモナ
NGNG| なんかネタにされているモナー >83-90
\__ ____
∨ ___
∧_∧ ||\ \  ̄|  ̄|
( ´∀`) || | ̄ ̄||: |
┌( つ/ ̄||/  ̄ ̄/ |=|
| ヽ |二二二」二二二二二二二二」
 ̄]|__) | | | |
/ ̄\ / | / |
◎ ◎ [__」 [__」
自分の得意系の質問がないのでまともに答えられない日々・・・。
しかしDelフサギコさんは、かつてのDel〇コ師匠を思い起こさせてくれる良い存在だ。
Del6pro欲しい今日この頃。
0105デフォルトの名無しさん
NGNGuses Windows, ShellApi;
begin
ShellExecute( 'OPEN', PChar(ParamStr(0)), '', '', SW_SHOW);
end.
0106デフォルトの名無しさん
NGNGブラクラ
0107Delフサギコ
NGNG∧,,∧ /
ミ,,゚Д゚彡 < ところで、便利なArrowコンポーネントはないですか?
Π ̄ ̄ ̄| \ 上下左右しか矢印が書けないショボいのとか
|つキボンヌ() 斜めが書けても、TviArrowExくらいしか見つからない。
| |___.| もっとビクーリするくらい矢印が書きやすいものがありそうかと
∪∪ 思うの・・・・ないのかな。
0108下手人
NGNG転載させてもらいました
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1003919990
0109デフォルトの名無しさん
NGNGあっちにも書いたけど,RegEdit に渡せる形式でなかったことと
Enterprise 版にあるユニットが入っているため下位の版ではうまく動かん。
修正した Enterprise 版のファイルをあっちにアップしておきます。
0110下手人
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/lounge/file/1003919990_3/D6CmpltEnt.reg
0111デフォルトの名無しさん
NGNGどんな矢印を書きたい?
希望する機能を全て書いてみてよ。
つくってあげる…かも。
0112Delフサギコ
NGNG電 |
|∧,,∧
柱 ミ,,゚Д゚彡 <ちょっと無茶っぽいこと言っていいかしら>>111さん
⊂ ミ
|, ,,ミ
|∪
, ' , ; ' ;
最理想はD6ダイアグラムページの矢印なのだけど
捕まえグリッド(マウスでつかめる黒い点)の
実装がかなり手間ですのでそれはあきらめて
TShapeのようなクラスを3つ用意して
TArrowOrigin(始点)
TArrowLine(線)
TArrowEndPoint(終点)
これらがそれぞれをpropertyで関連づいて
任意の"角度"で三角形やらひし形やら丸やら四角を
枠と中身を任意の色やStyleで描画できるようにしておくと
RADのみで
かなり自由度の高い矢印がかけるのではないでしょうかと
思ったりしています.
TArrowContactPoint(接点)を用意して
始点-線-接点-線-接点-線-終点
と組み合わせたら折れ線も書けそう。
良く知りませんがベジェ曲線みたいな拡張も可能かも...
組み合わせ時にコンポーネント同士の位置関係に気配りが必要。
連動して動くといい感じですね。
0113Delフサギコ
NGNG∧,,∧ / それより、TImageを継承して
ミ,,゚Д゚彡< 設計時クリックした2点間に指定した形の始点終点で
ミつ つ \ 矢印描画したほうがいいか。
〜ミ ミ.  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
U U
我ながらよい設計は思いつきませんが...
0114デフォルトの名無しさん
NGNG読んでいたら、こんなのが紹介されてた。
Bold for Delphi
http://www.boldsoft.com/products/bfd/index.html
ビジネスソフト開発用だけど、DelphiアプリをUMLでデザインできるみたい
試してないけど。
0115デフォルトの名無しさん
NGNGhttp://www.devexpress.com/products/vcl/exforlib1.asp
の
dxfConnector
は?
0116デフォルトの名無しさん
NGNG... 白い粉,まざってない?
0117デフォルトの名無しさん
NGNGフケとか?
0118デフォルトの名無しさん
NGNG>TArrowOrigin(始点)
>TArrowLine(線)
>TArrowEndPoint(終点)
>これらがそれぞれをpropertyで関連づいて
>任意の"角度"で三角形やらひし形やら丸やら四角を
>枠と中身を任意の色やStyleで描画できるようにしておくと
? コントロール矩形に内接するひし形、三角形、楕円、長方形、正方形、円を 任意の境界色、スタイル、塗りつぶし色、塗りつぶしスタイルで描画できるって事かな。
矢印は、矩形の辺に平行、対角線のどちらかを選ぶって事か。
でも気を付けないと矢印の”棒”は描けても、スペースが足りなくて”矢じり”が描画できないことってあるよね…
0120Delあめ猫にゃ
NGNG0121デフォルトの名無しさん
NGNGもと
http://community.borland.com/article/0,1410,27913,00.html
ボブさんちはBorland系の最新情報をまとめてチェックできるから良いぞ。
http://www.drbob42.com/
kylix2の話もでてるな。
0122Delあめ猫にゃ
NGNGTMyArrow = class(TGraphicControl)
private
Arrow :TGraphicControl;
FArrowSize: Integer;
procedure SetArrowSize(const Value: Integer);
public
constructor Create(AOwner:TComponent); override;
destructor Destroy;
procedure Paint;override;
published
property Anchors;
property ArrowSize:Integer read FArrowSize write SetArrowSize;
end;
として、
type TMyArrowhead = class(TGraphicControl)
procedure Paint;override;
end;
矢尻だけのコンポをローカルに定義して
constructor TMyArrow.Create(AOwner: TComponent);
begin
inherited;
Arrow:=TMyArrowhead.Create(Self);
(AOwner as TWinControl).InsertControl(Arrow);
ArrowSize:=10;
end;
と作成してオーナーに一緒に登録すればなんとかなるかも
0123デフォルトの名無しさん
NGNGprocedure Tjotai_real.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
文
end;
上の文をFormCreateで呼ぼうと思っImage1MouseDown(Sender,mbLeft,ssShift,0,0);
をしたのですが「TshiftStateとEnumerationには互換性がありません」って警告が
出ます。
どうしたら良いでしょうか?
0124デフォルトの名無しさん
NGNG0125デフォルトの名無しさん
NGNGあら?Delphi6 じゃないね?
0126デフォルトの名無しさん
NGNGTShiftStateは集合型。
ssShiftはTShiftStateの要素の列挙型。
集合型として書くには、 [ssShift] として ssShift要素だけが
ある集合にする必要がある。
言語ガイドで集合型あたりを読むこと。
0127デフォルトの名無しさん
NGNG[ssShift]
0128デフォルトの名無しさん
NGNGssShift の方が列挙型
[ssShift] として集合型にする必要がある。
0129123
NGNGKylixです。
0130123
NGNGこれで解決しました。
ありがとう御座います。
0131Delフサギコ
NGNG〜′,,,,,,,ミ,,゚Д゚彡 < サンクスコ。
UU""" U U \_______________
>>115
矢印のサンプルはないのですね。ぜひ見てみたい。
いいのがそろってますねー。
実行時マウスでコントロール移動可能コンポと
矢印を組み合わせたら,,,簡易UMLツールじゃないかな!
>>118
>? コントロール矩形に内接するひし形、三角形、楕円、長方形、正方形、円を 任意の境界色、スタイル、塗りつぶし色、塗りつぶしスタイルで描画できるって事かな。
別に内接はしなくてもいいのですが、そういう事です。
任意角で描画可能なのが大切
矢印の線と始点終点の形が一致しなきゃいけませんよね。
でもコンポを組合すのはどうもだめっすね
┌─────┬─┐
│ │ │
├─┐ └─┤
│ │ │
└─┴─────┘
こういう領域を自分で設定して
左下から右上に線を描画
左下で始点を描画、右上に終点を描画
こうしたら解決しそう。
矢印の矢じり角度を90度以上にも設定できるように
なるのがいいですね。
>>122
そうか。矢じりだけの矢印も使いたいから(使いたいの?)
それ自体一つのコントロルにしてしまって
内部に持つのはいい感じニャー!!
>>121
レジストリ情報(>>103)なりね。サンクスコ
0132Delあめ猫にゃ
NGNG設計時に、マウスで設定出来るようにすればいいかも
TGraphicControlでも
WndProcを継承して
if (csDesigning in ComponentState) then Dispatch(Message) else inherited;
みたいにやれば設計時にメッセージを貰う事が可能みたい。
0133Delあめ猫にゃ
NGNG線とか箱とか文字箱とかを表示出来て編集出来るコンポがいいな
データはTStringsプロパティで
Arrow x0,y0,x1,y1
Box x0,y0,x1,y1
Msg x0,y0,x1,y1,"メッセージ"
みたいに
0134デフォルトの名無しさん
NGNGぷろぐらみんぐ経験はCがちょこっと
Perl(CGIで)を少々。
双方ともにコマンドラインからしか操作してないの。
だからWindowsとかでWindowぱかっと開くの作りたいの
(Tkでチャレンジしたけどしんどかったの。)
の。
0136111=118
NGNGためしにちょっとつくってみた。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1003826049
の4に KShape.pas が置いてあるから、インストールしてみて。
Saw.enabled プロパティを有効にするとなんだかバぐるので
注意してね。
再描画に問題あり。どうやって解決するんだ?
0137デフォルトの名無しさん
NGNG再描画されないし。
こんな程度の腕でつくってあげるなんてぬかすな
0138Delフサギコ
NGNGミ,,゚Д゚彡 < >>137厳しいでござるな
ミ つ且~~ \___________
〜ミ,,,,,, ,,ミ
>>132
ナイスな情報ありがとございます。
>>133
それは暗に、UMLツールを作れという指令ですか?。。。。。。。。。。。。。゚Д゚;;;
>>136サンクスです。試してみます。
矢印コンポといえば、
昔の日経ソフトの連載で出ていたり
D4プログラミングバイブルに載っていたりしますので
その辺りを調査するのもいいかもね。
あと、DSPやTorryで探せば二つくらいみつかりますよ。
0139デフォルトの名無しさん
NGNGまあ落ち着きなさいって。世の中にはコンポすらつくれないDELプログラマが何人いることか…
0140横レススマソ
NGNGたった何人なのか(w
微妙なフォローにワラタ
0141Delあめ猫にゃ
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=999294620&res=25
マウス左で矢印の先と尻尾をドラッグ移動出来るかの実験コンポだから
範囲外にドラッグしようとしたらとか考えてない
それとマウスで動かした時にプロパティエディタを更新する方法が判らん
0142デフォルトの名無しさん
NGNGhttp://www.borland.co.jp/delphi/del6docup.html
IBX のヘルプ、pascal 化されとる。
0143デフォルトの名無しさん
NGNGhttp://piza2.2ch.net/test/read.cgi/tech/1001442200/l50
某の人がここ読んだんじゃない?
0144デフォルトの名無しさん
NGNGpublished
property Source: TWinControl;
property Destination: TWinControl;
property Space: Integer; default 4;
が欲しいかも
0145デフォルトの名無しさん
NGNG>某の人がここ読んだんじゃない?
読んでるのは事実でしょ。こないだもあっという間に誤字が直ったし。
けど、これは関係ないでしょ
0146Delフサギコ
NGNG| あめ猫さん。すっげーーーー!!!
\___ _________
∨
♪ ∧,,∧ ♪ すばーらし!
ミ*゚Д゚彡 ♪
ミつ[|lllll]).
〜ミ ミ ツカイヤスイ!!!
U''U
>>141 別にOE更新しなくてもGetが正しければ
よいと思いますよ。
>>141のリンク先のソースはHTMLソースから
取得するとヨシ。
あとは
│\
┌───┘ \
│ \
│ /
└───┐ /
│/
やら
|\
/\ | \
\/  ̄ ̄ ̄ ̄ ̄ | /
|/
こんなのをサポートしてほしいっす!
前後に端点がつかない単なる線だけも欲しいし
LineのWidthとか点線とかサポート
とか。わがままいってしまいますニャ。
あと矢印の端点捕捉のマウス認識範囲はもう少し広いのがよいいです!
いや、やれといわれりゃやりますが。
うーん。CanResizeとかああやっているのかなるほどなあ。
function TMyArrow.DesignProc(var Message: TMessage):boolean;
をを。なんだこりゃ。。。
0147デフォルトの名無しさん
NGNG日本語版のパッチは判別してくれないのかな…。
0148下手人
NGNG0149デフォルトの名無しさん
NGNGそうじゃなくて.
D6 付属のものは Ver8
"A patch is now available for Indy 9.0.2" は
9.0.2-B に対するパッチ。ということ。まず最初に 9.0.2 を落とさないと。
0150Delフサギコ
NGNG〜⊂`'''''''''ミ。Д。ミ⊃ アボオーン
`'''''''''''∨ ∨
OE⇒OIだった。オブジェクトインスペクタでOEって間違うなんて…
0151デフォルトの名無しさん
NGNG0152147
NGNGごめん言葉がたらなすぎた。
Indy9.0.2をインストールしようとすると、Delphi6のアップデートをしてないとインストールできませんよ
というメッセージが出る。
すでにアップデートパッチを当てているのに。
なので日本語版のアップデートは認識してくれてないのかな、と。
0153147
NGNGすいません。 152とかは無視して。
0154147
NGNGIndy9.0.2-Bをインストールしようとすると、
"This installation requires Borland Delphi Service Pack 1 ..."
とのメッセージが。
とりあえず9.0.1を使っていますが。
0155sage
NGNG>これは何に使うの?>矢印
フサギコがDel用2wayUMLツールを作ってくれるそうです
0156デフォルトの名無しさん
NGNG完成した暁には、プラスチックの下敷きで、ナデナデしてあげよう
0157デフォルトの名無しさん
NGNGwarata
0158Delフサギコ
NGNG±±±±±
 ̄ ̄ ̄ ̄ ̄
∧M∧ ・・・・。
ミ ゚Д゚彡
〜ミ,,,,uuミ
作"れ"ません。
(作"り"ませんに非ず)
矢印は矢じるしたい時に矢じってください。
0159136
NGNG俺のは誰も評価してくれないのか…
評価してくれたのは1人
それも煽り…
0160デフォルトの名無しさん
NGNGインストーラーの問題かな?
ソースコードキットを使って,ビルドしたら?
0162Delあめ猫にゃ
NGNGええと、設計時に動かせるかどうか試したいだけだったから
あめ猫はこのまま拡張する気はないにゃ。ひとつのキャラクタ
を一つのコンポにする方法だと複数のキャラクタが重なった時に
操作させるには、結局操作点を別のcontrolにしてZオーダ上げたり
させなくちゃいけない。
どうせやるなら >>133 みたいに複数のキャラクタを一つのコンポ
内で操作出来るコンポを作りたいにゃ
操作点の有効範囲は
if hypot(ArrowSx-Xpos,ArrowSy-Ypos)<4 then FMoveS:=true
else if hypot(ArrowEx-Xpos,ArrowEy-Ypos)<4 then FMoveE:=true;
この行で4ピクセルとキメうちしてる
この範囲に入ったらマウスカーソルを変更させるとか操作点の範囲
を画面に描くとかすると格好いいかも
>>136
チラっと見たら プロパティの変更時とかにpaint直接呼んでる
けど、Invalidateで無効を宣言するだけにした方がいいと思う
0163Delあめ猫にゃ
NGNG┌───┘ \
│ \
│ /
└───┐ /
│/ この表示したい時の Paint例
procedure TMyArrow.Paint;
var h,c,s,wc,ws,vc,vs:double;
var Head:array [0..7] of TPoint;
begin
wc:=cos(PI*ArrowHeadAngle/180)*ArrowHeadSize;
ws:=sin(PI*ArrowHeadAngle/180)*ArrowHeadSize;
h:=Hypot(ArrowEx-ArrowSx,ArrowEy-ArrowSy);
c:= (ArrowEx-ArrowSx) / h;
s:= (ArrowEy-ArrowSy) / h;
h:= ArrowHeadSize*0.25;
vc:=wc;
vs:= h;
with Head[0] do begin X:=ArrowEx; Y:= ArrowEy; end;
with Head[1] do begin X:=ArrowEx+Round( +s*h );Y:=ArrowEy+Round(-c*h);end;
with Head[2] do begin X:=ArrowSx+Round(c*vc+s*vs);Y:=ArrowSy+Round(-c*vs+s*vc);end;
with Head[3] do begin X:=ArrowSx+Round(c*wc+s*ws);Y:=ArrowSy+Round(-c*ws+s*wc);end;
with Head[4] do begin X:=ArrowSx; Y:= ArrowSy; end;
with Head[5] do begin X:=ArrowSx+Round(c*wc-s*ws);Y:=ArrowSy+Round(c*ws+s*wc);end;
with Head[6] do begin X:=ArrowSx+Round(c*vc-s*vs);Y:=ArrowSy+Round(c*vs+s*vc);end;
with Head[7] do begin X:=ArrowEx+Round( -s*h); Y:=ArrowEy+Round(+c*h);end;
with Canvas do begin
Polygon(Head);
if (FMoveS or FMoveE) then
begin
Ellipse(ArrowEx-4,ArrowEy-4,ArrowEx+4,ArrowEy+4);
Ellipse(ArrowSx-4,ArrowSy-4,ArrowSx+4,ArrowSy+4);
end;
end;
end;
0164デフォルトの名無しさん
NGNG長方形と三角形のリージョンつくってOR結合するとすごく簡単だよ
0165デフォルトの名無しさん
NGNGDelギコの得意なフックで書けばいいんじゃないの?
0166デフォルトの名無しさん
NGNG0167デフォルトの名無しさん
NGNGサンプルコードきぼーん
0168Delフサギコ
NGNG;゙⌒ヽ彡 頭を打って脳がやられちゃったみたい。
〜ミ___ミ 鬱だ。まじ鬱だ。今は動物病院....
''" ""''"" "'' 後遺症がひどく残るようなら保健所逝きになるかも........まだ子猫なのに。
>>159さん、作ってくださってありがとね。
最初に評価したけど
いきなりIDEごとハングする処理はせめて混ぜないで欲しかった。
あと、矢じるし系とShape系を混ぜるのは
クラスの分類として混乱しそう。
それとああいうUIだと矢じるしの端が消えた時に
それを見せるための操作が非常に面倒だという事が
改めてわかりました。
>>162あめ猫さん
> 複数のキャラクタが重なった時に
> 操作させるには、結局操作点を別のcontrolにしてZオーダ上げたり
> させなくちゃいけない。
使っていくうちにその不便さが身にしみました。
見せてもらって初めて問題点が浮き彫りに
まるで仕様をろくに決めていない顧客みたいだ>俺
> どうせやるなら >>133 みたいに複数のキャラクタを一つのコンポ
> 内で操作出来るコンポを作りたいにゃ
ドウイニャー
ああいう操作の形がありだと知っただけでも
非常に勉強になりました。感謝感謝。
>>164-165
非短形コンポって見たことないでした。作れないって。
0169164
NGNGprocedure TForm1.Button1Click(Sender: TObject);
var
Rgn1,Rgn2:HRGN;
Pts:array[0..2] of TPoint;
begin
Rgn1 := CreateRectRgn(10,10,45,20);
Pts[0] := Point(40,5);Pts[1] := Point(60,15);
Pts[2] := Point(40,25);
Rgn2 := CreatePolygonRgn(Pts,3,WINDING);
CombineRgn(Rgn1,Rgn1,Rgn2,RGN_OR);// OR結合
with Canvas do begin
Brush.Color := clRed;
FrameRgn(Handle,Rgn1,Brush.Handle,1,1);// 枠
OffsetRgn(Rgn1,0,30);
FillRgn(Handle,Rgn1,Brush.Handle);// 塗りつぶし
end;
DeleteObject(Rgn1);
DeleteObject(Rgn2);
end;
>>168
コンポが占める領域のことじゃないよ。描画方法について言ってるわけよ。
0170デフォルトの名無しさん
NGNG>163 は任意方向むくよ
0171164
NGNGリージョンを回転させるAPIはあるけど、Win9X ではダメ。
保持しているリージョンを回転させるのではなく、リージョン
を定義している点の座標を回転による変換で作り直すわけ。
163のコードでもこれは同じでしょ。
でも、任意回転のこと考えたら確かにリージョンを使うメリットは
減るね。うーむ、164 でのOR合成によるリージョンでの描画は撤回。
163 で計算された座標をもとにポリゴンリージョンを保持することを
提案。リージョンを保持することの利点は、
1) 一度作ってしまうと、再描画のたびに計算する必要がない
2) 特定の点がリージョン内にあるかどうかをすぐに判断できる
くらいかなぁ...。
0172Delフサギコ
NGNGミ,,゚Д゚彡 < 矢じるしコンポ。どうりで標準で用意されていない
ミ つ且~~ \&有名なのがない、わけですね。
〜ミ,,,,,, ,,ミ
>>171
>1) 一度作ってしまうと、再描画のたびに計算する必要がない
再描画ごとに計算するのは
やり方さえ工夫すればリージョン使わず描画する時も必要ないのでは?
任意角度のプリミティブ図形(△やら□などのことだったよね)
の描画計算にそれほど時間がかかると思えないです。
>2) 特定の点がリージョン内にあるかどうかをすぐに判断できる
ゲームじゃないし....必要になるかな。マウスドラッグはしやすくなりそうだけど
あめ猫さんのものを拡張して
TArrowsPaintみたいなのを用意して
複数のArrowを動的配置できるようにできたらいいですのにね。
そうすればコンポーネントの重なりも無視できるし
インスペクタ連動するためには
TCollectionとTCollectionItemが必要になるか....ますますフサには不可能だ。
0173164
NGNG171 の 1) については、確かにポリゴンの座標を配列で持っていれば
リージョンを使わなくても簡単に再描画できるね。
でも 2) については結構重要だと思うよ。とくに斜めに矢印が描画さ
れている時は、それを囲む矩形領域がコンポの領域になるわけだろう。
ユーザが図形をマウスでドラグしたくなったとき、ほんとに選択したい
図形が判断できるのは重要なのでは。とくに、他の図形コンポと重なり
あっているときには。
あとリージョンでは
3)それを囲む外接矩形領域が簡単に取得できる
ことも重要だと思わないか。コンポーネントの領域に反映させるために。
0174デフォルトの名無しさん
NGNGそれを囲む外接矩形領域が簡単に取得できる
ってのは、頂点のリストがあるのなら
単に最大・最小を走査するだけで出てくるんでは?
0175164
NGNGあのね、リージョンじゃなきゃできない、と主張してるんじゃないんだよ。
172 や 174 のコメントの内容は、「リージョンをつかわなくてもこう
すればできる」という内容だよね。リージョンを使えばもっと簡単だよ、
ということを主張してるのよ。おれもリージョンに固執するわけでもな
いが、ちょっとでも便利ならリージョンを使う、という選択もありだろ。
一般論として、ベジェ曲線や弧などを輪郭の一部としてもつ図形では、
スキャンして外接矩形は求められんだろ。今回の矢印の場合でもAPI
一つで取得できる方がスキャンして求めるより簡単だろ。
なぜリージョンを使う、ということを避けたがる?
0176174
NGNG別に避けたがってるんじゃないよ。
ポリゴン形状前提の場合、外接矩形を得るのに
リージョンのメリットの補強にはならないって思っただけ。
ポリゴンに限定しないのなら、システムにやってもらったほうが
いいのは間違いないけどね。
0177Delフサギコ
NGNG設計時にリージョンを使うと矢印図形の描画領域外の余白部分の
向こう側にある矢印を選択できるのでしょうか。
(変な形のボタンコンポーネントなどはどうなっているのかな。
そんなの使ったことないからしらにゃい)
だとしたら便利ですね。
でも出来ないのなら"矢印"というものは
単なる2点間指示なわけなので
外接領域が必要になることはすくなさそう。と思うてます。
一つのTGraphicCtrlに複数の矢印を描画することと
一つのTArrowsMyPanel上に矢印リージョンな子Windowを
動的生成するのと同じことなのかな。
>なぜリージョンを使う、ということを避けたがる?
そういうわけではないのですが
必要無いときには使わないですし。
"描画"が必要なのと"Window"が必要なのとは違うし。
いろいろな可能性を模索がいいですね。
 ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄
∧,,∧ クチ バッカ デ ゴメン ヨ
ミ,, ゚Д゚彡
〃 つ旦~~
〜ミ,,,n,,n[ ̄ ̄ ̄.]
 ̄ ̄ ̄
0178164
NGNG> 別に避けたがってるんじゃないよ。
> ポリゴン形状前提の場合、外接矩形を得るのに
> リージョンのメリットの補強にはならないって思っただけ。
わかった。そのとおり、ポリゴンの場合は補強にはなってないね。
すまぬ。
>>all
市販のドローソフトが描く矢印を見てると、矢印の方向だけでなく
「やじり」部分の大きさや形を選ぶことができるよね。単純な三角
だけでなく、曲線の入ったヤツとか。ああいうふうにするには、
しつこいようだが、リージョンを使えば簡単なんだがね。ネックは
170 が指摘しているように、Win9X 系では、リージョンを回転させる
APIが使えないことなんだよ。だれか、一般的な方法でAPIを
使わずに任意角度にリージョンを回転させる方法を教えてくれないだ
ろうか? ポインタだけでもOK。よろしくお願いします。
0179Delフサギコ
NGNG\,,,,ミ,,゚Д゚彡 < なるほど、リージョン自体と
⊂,,,,,,,,,つつ. \ SetWindowRgnとは違うのですね。
フサは良く知らなかったので、同じ機能かと思ってた...スマソ
読んでいたはずの、D4プログラバイブルの矢印コンポーネントでは
矢印の三角形部分クリックの判定にリージョン使ってた。
そんで、気になる所ですが
設計時コンポーネントにSetWindowRgnを適応することはできるのだろうか…
>>178
ようやく話が見えてきました。確かにリージョ使うと簡単ですね。
>任意角度にリージョンを回転させる方法
思いっきり単純計算でリージョン作り直すとか?
これなら労力さえあれば何とかできるでしょうが…
0180164
NGNG>必要無いときには使わないですし。
>"描画"が必要なのと"Window"が必要なのとは違うし。
リージョンは、ペンやブラシ、フォント、と同じGDI オブジェクト
だぞ。Window とは関係ない。ただ、リージョンを使ってウィンドウ
にクリッピング領域を設定できる、ということだよ。
> 一つのTGraphicCtrlに複数の矢印を描画することと
> 一つのTArrowsMyPanel上に矢印リージョンな子Windowを
> 動的生成するのと同じことなのかな。
これは見かけだけが似てるけど、コーディングするほうでも、
ウィンドウズのリソースの面からみても全く違うでしょ。
リソースのことを考えなければ、矢印ウィンドウというのが
コンポーネントとしては実装が一番簡単そう。
設計時はともかく、実行時には、<その形>のままでマウス
メッセージに応答できるよね。
0181164
NGNG>>任意角度にリージョンを回転させる方法
>思いっきり単純計算でリージョン作り直すとか?
>これなら労力さえあれば何とかできるでしょうが…
リージョンを構成するプリミティブを作成するときの座標を
っかいてんさせれば、リージョンも回転できそうに思うのだが
そうではないんだよ。これが悩みの種なんだ。
たとえば、単純な楕円リージョンを作ったとして、それを中心
を原点にして20度傾けるにはどうしたらいい?外接矩形の座標を
傾けてもできないんだよ....。
0182デフォルトの名無しさん
NGNGベジェ曲線なら制御点リストを回転/変形させるだけで
生成される曲線もそのとおりに回転/変形するから便利だよね。
0183デフォルトの名無しさん
NGNG0184Delフサギコ
NGNG∧,,∧ / を!出来た。設計時リージョン。
ミ,,゚Д゚彡< これで矢印がいくら重なっても大丈夫!か?
ミつ つ \
〜ミ ミ.  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
U U
type
TPanel1 = class(TPanel)
private
protected
procedure Resize; override;
public
procedure TPanel1.Resize;
var
Rgn: HRGN;
begin
inherited;
Rgn := CreateEllipticRgn(0, 0, Width, Height);
SetWindowRgn(Handle, Rgn, false );
end;
Panelの色変えて貼り付けると
円形部分だけ反応して
背景のコンポーネントがセレクト可能でした!
描画処理は変になってるけどね。
>>180
設計時にも動作可能でしたよ。
Winメッセージに反応できるということは
マウスが上を通過したら色が変わる矢印なども作れるかな。
>>181
なるほど。そこまで考えてませんです。はい。
>>182-183複雑ですね。
0185下手人
NGNG回転角度覚えてるんなら、リージョンの中心座標とカーソル座標使って
カーソルの座標側を回転させられない?
最初に生成したリージョンだけで判定できると思うが
0187デフォルトの名無しさん
NGNG0188Delあめ猫にゃ
NGNG>141 それとマウスで動かした時にプロパティエディタを更新する方法が判らん
やっとみつけた
GetParentForm(Self).Designer.Modified;
0189Delあめ猫にゃ
NGNGこれが無いとドラッグしたままエリア外に動かしてしまうと困った事に
0190下手人
NGNGクリック位置からどのリージョン選択するか判定する時は、リージョン回転無しでできないスカ?って事ッス
例えば45度回転してるなら、図形の回転軸(X,Y)からクリック位置(x1,y1)の相対距離(X-x1,Y-y1)と逆正接で
角度と距離を得て、図形の回転量(45)を引くと。
で再度、正接と距離で座標に変換してリージョンとの衝突判定すれば
判定計算軽くならない?
FireWall-1でモメてるんでソースは勘弁(w
0191Delあめ猫にゃ
NGNG今考えている 複数のキャラクタが表示出来るコンポは
property lines:TStrings;
を持たせて、内部は Flines:=TStringList.Create;
で、Lines.Objects[] に
IMyDrawItem = interface (IUnknown)
function SetText(s:string):boolean; //表示文字列を渡す(エラーならfalse)
procedure Paint(Canvas:TCanvas); //描画させる
function DragID(x,y):Integer;//0以上なら制御点
function Drag(x,y,ID):bool; // x,y の位置にIDの制御点を動かす。動かしたら true
function GetText:string; //DragがTrueなら読返す
procedure GetBox(var rect:TRect);//全部が描画出来る箱のサイズ
end;
と1対1で持たせるという方式です。
これなら簡単でしょ?
0192164
NGNG>クリック位置からどのリージョン選択するか判定する時は、リージョン回転無しでできないスカ?って事ッス
返信ありがとう。
クリック位置からの判定とリージョンの回転はなにか関係あるんですか?
同じ座標系なら PtInRegion() API ですぐに分かるんでは?
0194Delフサ2ネコ
NGNG∧ ∧∩ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ミ@゚Д゚@ミ < 楕円など、回転して変になる奴はリージョンをかけない方向は?
(| 2ネコ | \真円とかポリゴンとか認めないでいたら?
〜| _ |
し' `J リージョンの使い方を自分で限定してしまえばいいかもね。
ところで、あめネコ氏はどうしてそんなに百戦錬磨っぽいの。
>>191 そんなの普通思いつかないYO.発想がすごいや。
矢印を含むキャラクタ名を追加したら
内部で動的にオブジェクトを追加しておくってことでしょ。
で指定したいオブジェクトのIndex値orキャラクタ名をOIで指定すると
そのオブジェクトのプロパチがOIで指定できるって事かな。
出来たらすごい。
0195164
NGNG>楕円など、回転して変になる奴はリージョンをかけない方向は?
うん、これならいいよね。
ポリゴンみたいに、複数の点だけで完全にリージョンを記述できれば
回転は簡単だよね。例の三角と長方形の矢印だったら7点の座標を
保持すると、回転は外接矩形の中心を原点にして任意にできるね。
ちょっとトライしてコンポーネントつくってみる。
みんな、ありがとね。
0196Delあめ猫にゃ
NGNGいや、あの・・・・オブジェクトインスペクタにいちいち登録したら
逆にうっとうしいと思う。
あめ猫の考えてるのは単に TStrings 用のエディタで編集するだけです
LINE ,10,10,100,200 みたいにね
これをマウスで移動とか出来るようにすれば便利かなと
この土日には雛型作ってみるから、 便利そうだったら誰か
拡張して、プロパティエディタとか作って欲しいなと・・・
ところで、今、線分と点の距離とか
ttp://www.infoeddy.ne.jp/~tensyo/prog/linealgo.htm
ここ見てるんだけど、ここに 楕円をベジェで描く方法とかもあるよ
0197デフォルトの名無しさん
NGNGいいページ!Viva!あめ猫もViva
0198Delフサギコ
NGNGミ ゚Д゚彡 拾ったネコ、あまり調子が良くニャイ。
〜ミ,,,,uuミ ご飯も飲み物もなんも食べないナー
元気になってくれるのかな。
0200164
NGNGおっと、帰る前に、
いいページ紹介してくれて、ありがとう。
役に立ちそうだ。ベジェから直接リージョンは
作れないんだけれど、パスを通せばつくれそう。
やってみるよ。
0201デフォルトの名無しさん
NGNGフリーカーソルや、予約語機能をつけた
エディタコンポーネントがありますね。
あれは、すべて自前のコードで実現してるんですか。
つまり、キー入力に応じてカーソルを移動、
カーソルの点滅や文字入力、削除、上書き、選択時の挙動にいたるまで
すべて自分でコードを書かないといけないのですか。
0202デフォルトの名無しさん
NGNG多機能なエディタの多くはそうです。
0203デフォルトの名無しさん
NGNG他人の褌を使っているうちはろくな事はできないと思われ。
0204通りすがり
NGNGそれはWin標準のコントロールだとダメってこと?
>フリーカーソルや、予約語機能をつけた
>エディタコンポーネントがありますね。
関係ないけどエディタコンポすごいよな。
これ使った良質なソフトがどんどん出てきてるんだもの
Delphiのコンポ作者←→ソフト作者(コンポ使用者)の分業が
ものすごくうまくいってる感じだよな。
0205デフォルトの名無しさん
NGNG「DragAcceptFiles()が未定義だゴルァ(゚Д゚)」と怒られます。
uses Windowsはしてあるんですが‥‥
どうやるんでしょうか。Win32API呼べないのでお手上げ状態です。
0206デフォルトの名無しさん
NGNG0207デフォルトの名無しさん
NGNGがいしゅつだよね?
0208ななしヘタぐらま
NGNGEdit程度でフォント幅固定ならそれほど難しくないのですが….
カーソル(キャレット)の処理は場所と大きささえ指定すれば
点滅はWindowsが勝手にやってくれます.
フォントがプロポーショナルだったり
さらに色つき,大きさ違いなどの修飾がつくと
飛躍的に難しくなりますけど.
0209Delフサギコ
NGNG,,,,,,,,,,,,,∧,,∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′,,,,,,,ミ,,゚Д゚彡 < 201さんじゃないのですが
UU""" U U \_______________
キャレットってどうやって表示するのでしょうか。
テキストビュワーなら自前で作ったことあるので
そこにキャレットが表示できると
簡単なエディタになると思うのです。
プロポショなどは抜きで簡単なやり方を紹介してほしー
0210Delフサギコ
NGNGミ ゚Д゚彡
〜ミ,,,,uuミ
えっと、MLで話題になっているチャットプログラムって
>>67-68で出てる要望を見たせますかニャ?
0211201
NGNG> カーソル(キャレット)の処理は場所と大きささえ指定すれば
>点滅はWindowsが勝手にやってくれます.
!
初めて知りました。DCを指定すると、キャンバスに描画するんですか?それとも
超基本エディタオブジェクトみたいな奴があって、それを継承した
モノに対してキャレット表示を行うのですか?想像できません。
0212Delあめ猫にゃ
NGNGけど一応動くから見てほしいにゃ
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=999294620&res=29
プロパティエディタは無いから
Lines プロパティに LINE か ARROW1 を入れるにゃ
ややこしいコードは>>196のWebからパクりまくり
0213Delあめ猫にゃ
NGNGそこにマウスを持ってゆくと 色が変わるから ドラッグするにゃ
線なら全体移動、○まら端だけ移動
0214デフォルトの名無しさん
NGNGをヘルプで見てください。めちゃ簡単です。
追伸:キャレットはウィンドウに対して作ります。
0216201
NGNGどうもありがとうございます!
ウィンドウにカーソルを表示することが出来ました。
質問ついでに。
日本語変換のときに、IME(なんの略なんだろう?)の
日本語入力&変換ウィンドウがでてきますね。
あれを任意の位置に表示するにはどうすればよいのでしょうか。
0217Delフサギコ
NGNGミ,,゚Д゚彡
ミつ[|lllll]). 複数個Lineを重ねると
〜ミ ミ 全部同時に動いてしまうニャリ。
U''U
procedure TMyDraw.PropModified; {プロパティを変更した時の処理}
var f:TCustomForm;
var i:IDesigner;
begin
f:= GetParentForm(Self);
if f<> nil then begin i:=f.Designer; if i <>nil then i.Modified; end;
end;
ここのIDesignerが
var i:IDesignerHook;
こうだと思われ
>>216はやいなー。ネコにもわかるように教えてくれにゃ。
簡単なサンプルなど、、キボンヌ...
0218201
NGNGCreateCaret(
Handle, // 表示先 Window ハンドル。例えば Panel1 に表示するならば Panel1.Handle とする
0, // キャレットに使う Bitmap ハンドル。ビットマップを使用しない場合は 0.
2, //キャレットの横幅
16 // キャレットの高さ
);
ShowCaret( Handle ); //キャレットを表示
SetCaretPos( 20, 30); // キャレットを移動(キャレットの左上座標(多分)を指定
…キャレットとカーソル、どちらがただしいのでしょう。
自分はカーソルのほうがしっくり来るんですけど。
0219デフォルトの名無しさん
NGNGhttp://www2.big.or.jp/~osamu/Delphi/Tips/key.cgi?key=10
にサンプルがあるけど(BCB用だけど)
0220201
NGNGキャレットの表示にウィンドウハンドルがいるということはですよ、
TWinControl を継承したコントロールに対してのみキャレット表示が可能という事ですよね。
TGraphicControl を継承して文字を描画しようと思ったのですが、
もしかして不可能ですか。
キャレットを表示しつつ、文字描画をも行うには
なんのコントロールを利用すればよいですか。
0221デフォルトの名無しさん
NGNGキャレット表示は基本的にフォーカスを持っていることを
示しているのだから TWinControl 継承が必須です。
TCustomControl はどうでしょうか?
0222201
NGNGどうもありがとうです。参考にして試してみたら、
キャレット位置にIMEウィンドウを表示することが出来ました。
uses IMM;
...
TForm1 = class ...
...
public
procedure IMEStart(var AMessage: TMessage); message WM_IME_STARTCOMPOSITION;
end;
procedure TForm1.IMEStart(var AMessage:TMessage);
var
CompForm: TComPositionForm;
CaretPos: TPoint;
LF: LogFont;
ImmContext:HIMC;
begin
ImmContext := ImmGetContext( Handle );
//キャンバスのフォントと同じに設定する
GetObject( Canvas.Font.Handle, sizeof(LogFont),@LF);
ImmSetCompositionFont( ImmContext, @LF);
//キャレットのポジションに設定する
ImmGetCompositionWindow( ImmContext, @CompForm );
CompForm.dwStyle := CFS_POINT;
//キャレット位置を取得
GetCaretPos( CaretPos );
CompForm.ptCurrentPos := CaretPos;
ImmSetCompositionWindow( ImmContext, @CompForm);
ImmReleaseContext( Handle, ImmContext);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
//キャレットの位置を設定
CreateCaret( Handle, 0, 2, 16 );
ShowCaret( Handle );
SetCaretPos( 10, 20 );
end;
0223Delフサギコ
NGNGuses IMMが追加で必要っすね
∧,,∧ /
(,,,,,,,ミ,,゚Д゚彡 < PanelなどだとTABSTOP=True
⊂,,,,,,,,,つつ. \にする必要があるのですね。
VCLのCanFocusはあてにならないし
どうしてButtonはTabsとp=Falseでも
クリックしたらフォーカスを他Ctrlから
奪えるのにPanelはだめなのかしら
PanelClickイベントに
Panel1.SetFocusと書いたら
出来たけど...
0224Delあめ猫にゃ
NGNG∧ ∧
/∂⌒∂
(( × メ )) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
彡 ヘ ミ < ありゃD5 で試してたにゃ
( ⊂) \__________
◯(⌒Y⌒)
結局 中間変数を使わない事にしたにゃ
折線の時に便利かと思ってわざわざ複数選択が同時に出来るようにしてたにゃ
結局全体移動の時は複数選択出来ないように変更したにゃ
関数型のメソッドのinherited のやり方判らなくなったから procedure に直してるにゃ
で、便利そうかにゃ?
0225Delあめ猫にゃ
NGNG1、ARROW2 >>163 の追加
2、>>224
3、矢印の端をドラッグして矢の大きさを変えられる
0226Delあめ猫にゃ
NGNGなぜか編集中ドラッグしてると画面表示されないにゃ
D5だと問題無いし、TMyDraw.IsDesgine:=True にして実行すると問題ない
どうやら PropModified を呼び出すといけないみたいだ・・・
まあ Linesプロパティだけだから呼び出す必要ないかもにゃ
0227デフォルトの名無しさん
NGNG関係ないけどさ、JAVAスクリプトでのみ、リンクさせてるサイトって
殺したくなるんだよな。 俺JAVA切ってるから。
0228デフォルトの名無しさん
NGNG0229下手人
NGNG〜□□ □□ ( ゚Д゚)< pasファイル添付もしてくれると嬉しいぞゴルァ>>225
(O)----(O)U-U) \__________
0230デフォルトの名無しさん
NGNG気持ちはわかる。
手元で動的生成して、結果は単なるHTMLにするのがスマート。
0231デフォルトの名無しさん
NGNGfunction IsPrint(C:Char):Boolean;
begin
result := C in [#20..'Z']; //でOKですか
end;
0232>>231
NGNG0233デフォルトの名無しさん
NGNGfunction IsPrint(C:Char):Boolean;
begin
result := C in [' '..'~'];
end;
ただし半角カナ除く。
0234下手人
NGNG〜□□ □□ ( ゚Д゚)< 添え付けってなんだゴルァ(w
(O)----(O)U-U) \__________
0235Delあめ猫にゃ
NGNGこれでいいかにゃ
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=999294620&res=33
MyDraw.Pas として貼付したにゃ
自分で使ってみた感じ、
けっこういい。
後、マウスの右ボタンで
コピーや追加ボタンが出ると嬉しいけど、あめ猫はこれで満足
これ以上便利にするにはちゃんと設計しないと・・・・
0236Delフサギコ
NGNGミ,,゚Д゚彡 いいものを見せてもらいました。
ミつ[|lllll]).
〜ミ ミ 感謝でございます。
U''U
0237デフォルトの名無しさん
NGNGキーを押しても、オーバーライドした KeyDown が反応しません。
MouseDown はちゃんと反応してくれますが。
KeyDown 内にブレークポイント設定してみたところ、
ブレークポイントの無効をしめす色に変わっていました。
コンポのコンパイル時に、オプション→コンパイラ→デバッグ情報
をONにしたのですが、結果は同じです。
どうすればよいですカ。
0238デフォルトの名無しさん
NGNGキーが押されたら KeyDown メソッドが呼ばれるんじゃなくて、
KeyDownメソッドを呼ぶことによってキーダウンイベントが発生
するんですね… 逝ってきます。
0239デフォルトの名無しさん
NGNGキーが押される→ DoKeyDown → KeyDown → OnKeyDown の順で
呼び出されるから、キーが押されたときの処理内容を
KeyDown に書くのは間違ってはいませんね。
0240デフォルトの名無しさん
NGNGMouseDownが呼ばれたときなどにSetFocusメソッドを呼びだして
フォーカスを取得しないとキーイベントは発生しないですよ。
>>238
>キーが押されたら KeyDown メソッドが呼ばれるんじゃなくて、
これで合っています。コントロールがフォーカスを持っているときに
キーが押された場合、KeyDown メソッドが呼ばれます。
0242237
NGNG0243デフォルトの名無しさん
NGNG普通のアルファベットのキーとかが認識できないのか?
それとも特殊なキー(ALTとかカーソルとか)が認識できないのか?
0244デフォルトの名無しさん
NGNG>>243の続き。
もし>243の通りなら、
procedure CMWANTSPECIALKEY(var Msg: TMessage); message CM_WANTSPECIALKEY;
をpublicに追加、実装はResultに1を入れてみるがよい。
外してたらスマソ
0246デフォルトの名無しさん
NGNG0247237
NGNGステップ実行すらできないのです…
0248デフォルトの名無しさん
NGNGまさか実は override していなかったとか無い?
ブレークポイントを置けないというのはそうとしか考えられない。
0249Delあめ猫にゃ
NGNG設計時にドラッグとか出来るようなDrawグラフィカルなコンポって
出来るのかなって疑問だけだったから、まあだいたい出来るって
結論出たら、それ以上やる元気が出ないんだよね
マウスの右ボタンでメニュー出したりは普通の処理だから出来る
の判ってるしさ
・・後メニューを付けたりアイテムを増やすのは、手間はかかるけど
そんなに難しい処理じゃないと思うけどなあ・・・
0250Delあめ猫にゃ
NGNG長さ0の線分が入っていると必ず選択状態になってしまう。
修正分はソース置場と
参考にさせて貰った元のソースがあった
http://pc.2ch.net/test/read.cgi/tech/1003559977/
に置きました
0251237
NGNGとりあえず一件落着です。さて…
キャンバスを持った簡易メモコンポ@バグたくさん です。
文字を描画するイベントがあるので、イベント内で独自の文字を描画する
事が可能になっています。袋文字描画のサンプルコードが入ってます。
感想聞かせてください。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=999294620&res=36&fi=no
0252デフォルトの名無しさん
NGNGそれは、きっと使う人が追加してくれるでしょうニヤソ
0253デフォルトの名無しさん
NGNG0254下手人
NGNG移転しました
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1004273797&res=2
1ネタ1スレで結構ですのでヨロシコ
0255237
NGNG>procedure CMWANTSPECIALKEY(var Msg: TMessage); message >CM_WANTSPECIALKEY;
教えてもらった方法を試してみました…
KeyDown では、カーソルキー,TABは取得できませんでした。(BSやDEL,ENTERは取得できた)
そこで、CM_WANTSPECIALKEY ではカーソルキーも取得できたので
procedure CMWANTSPECIALKEY(var Msg: TMessage);
に
var
w:word;
begin
w := Msg.WParam;
KeyDown(w,[]);
と書きましたが、カーソルキーを押した場合、なぜか2回分カウントされます。さらに、シフトの状態がわからないではありませんか(TAB 及び TAB+SHIFT等)!
とりあえず、いろいろ試してみます。
0256デフォルトの名無しさん
NGNGinherited呼び出した?
呼び出したあとにResultに値入れるのが吉。
0257256
NGNGんと、要は inherited; して、メッセージのパラメータ見て
必要ならResultに1いれて、それで終了。
だったハズ。
大分前にいじったから少し忘れてる。
なので確証はない…スマソ。
0258デフォルトの名無しさん
NGNGvar
Key:Word;
begin
inherited;
Msg.Result := 1;
Key := Msg.WParam;
KeyDown( Key, [] );
end;
としたら、カーソルキーとエンターが3回カウントされるようになりました(;´Д`)
0259デフォルトの名無しさん
NGNGKeyDown イベントで無事処理を終えた場合はパラメタに
何かの値が入っているから、そうでない値(=処理できなかった)
場合に限って result := 1 ; をせよ、という事ですか?
0260デフォルトの名無しさん
NGNG全くの未経験なので、、
あったら凄く便利なんで。
0261ねこま
NGNG0262256
NGNG説明不足スマン。
今一度よくコード見てみた。
procedure Tなんちゃら.CMWANTSPECIALKEY(var Msg: TMessage);
begin
inherited;
If Msg.WParam in [必要なキーの集合] then
Msg.Result := 1;
end;
なコードでよかったハズ。
あとはKeyDownのオーバーライドで処理すれば無問題。
また外してたらスマソ。
0263Delフサギコ
NGNGミ ゙ミ゙ ミ
ミ 〜
ミ∧,,∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ミ,,゚Д゚ミつ < 下がってまーす
゙U ゙゙ \________
>>260
[Delphi-ML:41732] Re: How to Call _Dispose
http://www2.big.or.jp/~osamu/Delphi/delphi-browse.cgi?index=041732
やればできなくないってものだと思った方がいいかも。
そんなに便利ですか?興味あるのでどんな時に便利とか聞きたいニャ
最近、デザパタを知って
もっとDelで積極的にインターフェースを使いたいのですが
どうもうまく使えなくて鬱〜〜。
0264Delフサギコ
NGNG⊂ミ,,゚Д゚彡つ
∩∧_∧∩
ヽ( ´∀`)ノ タカイタカーイ
( )
| | |
(__)_)
0265デフォルトの名無しさん
NGNG実体をとった後に TAutoObjRef に関係付けなきゃいけないところがダメ。
それができるくらいなら開放コードを書くよ。
0266Delフサギコ
NGNG/...... .. .../
||::: ∧ ∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| ̄\ ミ ゚Д゚ミ< ダメとか言われても知らん
| |: ̄U U ̄:|\_________
ガベコレがあればうれしいけどね。
なくてもそうは困らない。
0267デフォルトの名無しさん
NGNG混ざると悪夢をみるよ...
0268Delフサギコ
NGNG/ミ;゚Д゚ミ ./\< インターフェースが
/| ̄∪∪ ̄|\/ \なんか変
|____|/ うーん。COMを引きずらないで
,,,,∪∪,,, ,, Java並にまともなインターフェースを
実装してほしかった。
QueryInterface
_AddRef
_Release
のないインターフェースがなぜ作れなかったのだろう。
0269デフォルトの名無しさん
NGNGインターフェースなんてDelではそんなに使い道ないだろ。
0270デフォルトの名無しさん
NGNG出来たんじゃなかったっけ?違った?
0271デフォルトの名無しさん
NGNGつまり参照カウンタ管理機能の無い、単なるメソッドテーブルと化した
インターフェースが欲しいって事?
あればあったで便利かもしれない。
0272Delフサギコ
NGNGメモ IInterface は IUnknown と同等です。
一般的には,プラットフォームに依存しないアプリケーションには
IInterface を使用し,
Windows に依存する部分があるプログラムには
IUnknown を使う必要があります。
ですって。ダメダメです。前と同じ。
どうして素のInterfaceを用意していないのか
聞いてみたい。小一時間。
 ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄
∧,,∧ ホエホエ
ミ,, ゚Д゚彡
〃つ旦O
〜ミ,,[ ̄ ̄ ̄.]
 ̄ ̄ ̄
デザパタやりにくいやんか。
どうしてInterface変数を破棄するときに
オブジェクトの破棄命令が動作するの。しなくていいっつの。
0273デフォルトの名無しさん
NGNG0274デフォルトの名無しさん
NGNG_AddRef
_Release
を空実装すればいいのでは?
0275Delフサギコ
NGNG∧,,∧ / さんぷる書いてみますね。
ミ,,゚Д゚彡<
ミつ つ \ ちこっとまっとくれ。
〜ミ ミ.  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
U U
0276デフォルトの名無しさん
NGNGこんなに時間かかっていい物なんですか?
ふつうにリストからデータ引っ張り出してListViewに入れてるだけなんですが‥‥
0277Delフサギコ
NGNG∧,,∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ミ,,゚Д゚彡 < 婆ちゃんListViewを使うのじゃないかな?
,;゙ ミ \_____________
ミ. ミ
/゛゛゛゛
よくしらなーい。
Virtual と ListViewって単語で検索してみてくださいな。
眠い・・・・サンプルは明日になります。スマソウ
0278ななしヘタぐらま
NGNGっていうか5500個って多すぎませんか?
プログラムがサクッと動いたとしても
使い勝手が激しく悪そうな気がするのですがどうでしょう.
0279デフォルトの名無しさん
NGNGファイラー作ろうとか思ったら、そうなってしまうこともたまにあるかもしれない。
てことじゃないのかな。
0280デフォルトの名無しさん
NGNG0281デフォルトの名無しさん
NGNG単に add してるだけだと、1個アイテムを入れるたびに再描画するのですよ。
BeginUpdate してから5500個入れて EndUpdate.
それでも足りなかったら
Items:=TListItems.Create して5500個入れ、最後に TListView.Items.Assign( Items ) する。
0282Delあめ猫にゃ
NGNGTStringsのObjectsにインターフェース綺麗に入れらないから止めちゃった
でも後から考えたら インターフェースの動的配列作って、TStringsを継承して
外からはTStringsに見えるようなの作ればよかったかも・・・・
0283デフォルトの名無しさん
NGNGインタフェースのドラフト晒してみれば、良い知恵出ないかな?
0284Delフサギコ
NGNGミ,,゚Д゚彡 < インターフェースのしつもーソをアゲました。
U ミ \____________
ミ ミ
ノ∪∪
インターフェースがわからない
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1004423652
長くなってしまいましたが
非常に簡単なことしかしてません。
質問を二つ書いています。
インターフェース変数の使い方、教えてくださいな。
あの使い方であっているものかどうかもイマイチ自信なし。
優れた正しいやり方を氏ってましたら
指摘してくださいな。
「インターフェースって何?」
って方も動作させてみると面白いかもね。
あまりなじみがないものですし、わからなかったら
質問してくださいな。
0285デフォルトの名無しさん
NGNGインターフェースの中身はメソッドテーブルって事は知っているよね?
そのメソッドテーブルはオブジェクトのインスタンス毎に生成されています。
インスタンスを廃棄した場合、メソッドテーブルも同時に廃棄されます。
インターフェースの参照を解放する前にインスタンスを廃棄してしまった場合、
_Releaseメソッドなどを呼びだそうとすると既に存在していない
メソッドテーブルを参照しようとしてメモリアクセス違反が起きます。
これは回避不可能なので、あらかじめ nil を代入しておき _Release メソッドの
自動呼び出しを抑制するほかありません。
0286Delフサギコ
NGNG∧,,∧ /
ミ;゚Д゚彡< ゼンゼンんしらにゃー。
ミつ つ \>>285さん、ありがとう。
〜ミ ,, ミ.  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
∪∪
> インターフェースの中身はメソッドテーブルって事は知っているよね?
知りませんです。
なんとなく、そんな気はしますが。
> そのメソッドテーブルはオブジェクトのインスタンス毎に生成されています。
> インスタンスを廃棄した場合、メソッドテーブルも同時に廃棄されます。
なるほどなるほど。
つまり、インターフェース変数にはメソッドテーブルが入るという事ですね。
> インターフェースの参照を解放する前にインスタンスを廃棄してしまった場合、
> _Releaseメソッドなどを呼びだそうとすると既に存在していない
> メソッドテーブルを参照しようとしてメモリアクセス違反が起きます。
えーーーー!!!
nilが入っていないとメソッドテーブルの実体はなくなっているのに
インターフェース変数の参照が消える時にメソッドテーブルにアクセスしようとするわけですね。
> これは回避不可能なので、あらかじめ nil を代入しておき _Release メソッドの
> 自動呼び出しを抑制するほかありません。
にゃんじゃって〜〜〜!
こんな実装した奴どこの誰ジャー−−
∩,,,,,,,,,,,∩ ,,,_
〜⊂`'''''''''ミ。Д。ミ⊃ ギャフーン
`'''''''''''∨ ∨
0287Delフサギコ
NGNG_________
∧,,∧ /
ミ;゚Д゚彡< D6UP1でもTToolbarのCustomizeがバグったままだと
ミつ つ \思うのですが・・・・・・
〜ミ ,, ミ.  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
∪∪ バグなのか、仕様なのか・・・
0288デフォルトの名無しさん
NGNGこういう風に、アクティブウインドウのタイトルバーに
張りつくプログラム作りたいんですけれども、
どうすればよいか分かる方いらっしゃいませんか?
0289デフォルトの名無しさん
NGNGカプセル化したユニットがあるけど、公開しようか?
0290Delフサギコ
NGNG(,,,,,,,ミ,,゚Д゚彡 < こんなんすると、いろいろなWindowHandleが取得できるから
⊂,,,,,,,,,つつ. \それでアクティブと位置を求めるといいかも。
WindowList: TList;
はFormのprivateでもっていてね。
type
TWindowInfo = class
Handle: HWND;
Classname: String;
Caption: String;
end;
function EnumWndProc(Wnd: HWND; WndInfoList: TList): BOOL; stdcall;
var
WndClassname, WndCaption: array [0..255] of Char;
ProcessID : DWORD;
WindowInfo: TWindowInfo;
begin
//ウィンドウの表示状態をチェック
if IsWindowVisible(Wnd) then
begin
//ウィンドウクラスの情報を取得
GetClassname(Wnd, WndClassname, 255);
SendMessage(Wnd, WM_GETTEXT, 255, Integer(@WndCaption));
WindowInfo := TWindowInfo.Create;
with WindowInfo do
begin
Classname := WndClassname;
Caption := WndCaption;
Handle := Wnd;
end;
WndInfoList.Add(WindowInfo);
GetWindowThreadProcessID(Wnd, @processID);
end; //if IsWindowVisible(Wnd) then
Result := True;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
Str: String;
begin
EnumWindows(@EnumWndProc, Integer(WindowList));
for i := 0 to WindowList.Count-1 do
begin
Str := IntToStr( TWindowInfo(WindowList.Items[i]).Handle) +' '+
TWindowInfo(WindowList.Items[i]).ClassName +' '+
TWindowInfo(WindowList.Items[i]).Caption +' ';
Memo1.Lines.Add(Str);
end;
end;
0291288
NGNGえとですね、今考えてる手順は
1.アクティブウインドウのハンドル取得。WindowRect取得。
2.ボタンの数を数えたり、タイトルバーの高さとかいろいろ調べる。
3.borderstyleがnoneなフォームを、位置を考えながらペタッと貼りつける
です。で、困ってることと言うのは、アクティブウインドウが
「最前面に表示するウインドウ」だった場合、隠れちゃうんで困ったなぁ
って言う感じで考えてました。
手間かけてすいません。
0292Delフサギコ
NGNG∧,,∧ タイマーでまわしてみました。
ミ,,゚Д゚彡
ミつ[|lllll]). SetWindowPosがポイントですね。
〜ミ ミ
U''U
タイマー以外の方法あったら教えてください。
Window列挙なんて必要ないのね。
procedure TForm1.Timer1Timer(Sender: TObject);
var
AHandle : hWnd;
ARect : TRect;
begin
ARect := Rect(0, 0, 0, 0);
AHandle := GetForegroundWindow;
while (AHandle <> HWND(nil)) do
begin
if IsWindowVisible(AHandle) and (not IsIconic(AHandle)) then
Break;
AHandle := GetWindow( AHandle, GW_HWNDNEXT);
end;
if AHandle = HWND(nil) then
raise Exception.Create('Windowの取得に失敗しました');
GetWindowRect( AHandle, ARect );
if AHandle <> Self.Handle then
begin
Label1.Caption := IntToStr( ARect.Top );
Label2.Caption := IntToStr( ARect.Left );
Self.Top := ARect.Top;
Self.Left := ARect.Left + 50;
SetWindowPos(Self.Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE or SWP_NOMOVE);
end;
end;
0293デフォルトの名無しさん
NGNGタイマー使って最前面に表示させつづけるわけですね。
サンプルコードどうもです。
0294下手人
NGNG拾ってみなされ
0295293
NGNGあう。。。
もしかしたら、それやろうとしたら、サブクラス化しないといけないですか。。
サブクラス化はまだ勉強中っすー。
0296デフォルトの名無しさん
NGNGどうやってひろう?
システムグローバルなフックでもインストールする?
うん、これが一番美しいかなぁ。
>>295
サブクラス化は関係ないと思う。
0297下手人
NGNG誤動作も無いしデバッグもしやすい
0298デフォルトの名無しさん
NGNG0300296
NGNGタイマーで監視は簡単かもしれないが、PGとしては心痛まない?
ゴミの日でもないのに、1秒ごとにゴミ置き場を見に行くんだぜ。
フックでメッセージを捕まえられれば、ゴミの日に収集車から電話
で直前に知らせてもらうのと同じだぜ。他の事に専念できるし、
寝ててもいいし。
0301276
NGNG>>277
sampleディレクトリの中にあったんでソース覗いてみます。
>>278
一括置換用のツールの操作対象ファイルの一覧です。
(特定ディレクトリ以下で特定条件を満たしたファイルを除く全ファイルに対して複数の置換処理(Webページのヘッダ部分書き換えとか)をバッチ処理するツール)
たまたまテストしたディレクトリ(Apacheのドキュメントルート)にPHPのマニュアル(約2500ファイルw)とかがあっただけなんですが異様に遅かったのでどこか不味かったかな?と思ったんで。
>>281
こっちのほうが簡単そうなのでとりあえずこっちで様子を見てみます。
0302デフォルトの名無しさん
NGNGグローバルフックも結構コストかかるような気がするけど(´Д `)
0303ねこま
NGNGそういえば ownerdata とかで google で検索してもあんま出てこないんですけど
検索のしかたが悪いんでしょうか?
0304デフォルトの名無しさん
NGNGCOMインターフェースは基本的にリファレンスカウンタを持つから
そういう実装になるのは当然だよ。
Delphi 2 では、インターフェースは言語でサポートされておらず
class 宣言を使って擬似的にインターフェースを定義していた。
参照カウンタも AddRef,Release メソッドを呼びだして自分で
管理する必要があったんだよね。
俺は言語レベルでリファレンスカウンタを自動的に管理してくれる方が
良いが、単なるメソッドテーブルとしてインターフェースを使いたい場合
それが邪魔になるということだね。
0305デフォルトの名無しさん
NGNG2chで解決したDelphi質問をFAQ収集するスレ
http://pc.2ch.net/test/read.cgi/tech/1004501183/
0306Delあめ猫にゃ
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=999294620&res=37
前回作った複数矢印コンポと同じアイテムを使います
貼り付けると、まるで矢印コンポがあるかのように見えるけど、
アイテムは TObjectから継承してるのでコンポではありません。
Win2000では ほぼ巧く動きました
0307デフォルトの名無しさん
NGNG(パレットを独自で管理したいと思っているので)
ご存知の方がいましたら、教えていただきたいです。
よろしくお願いします。
0308デフォルトの名無しさん
NGNG質問の内容がまったく分かりません。
我々は何を答えれば良いのでしょう。
0310デフォルトの名無しさん
NGNGすみません。そのとおりです。
もう一度質問させてください。
256色BMPの保存および読み込みの方法を教えていただけないでしょうか?
または、パレット管理のよい方法が知りたいです。
Delphi標準のだと256色BMPの保存、読み込みは出来るのですが
パレットで躓いてしまいます。
1)BMPを読み込み、パレットを取得
2)BMP編集後、上記1で取得したパレットで256色で保存
3)BMPを読み込み、上記で1)取得したパレットで表示
というような処理をしたいのです。
よろしくお願いします。
0311デフォルトの名無しさん
NGNG0312Delフサギコ
NGNGインターフェースも継承できるのだから
COMに依存しないインターフェースを作って
そこからIUnknownを派生させればいいのにと思うニャ。
というかクロスプラットホーム環境でまで
なぜCOM的なリファレンスカウンタ実装しなきゃならないのか
納得いかない。
TObject以下のクラス変数=ポインタは
DelphiPascalの利点だったけど
このインターフェース変数の実装は
明らかにJavaに劣る欠点だと思うニャ
 ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄
∧,,∧
ミ,, ゚Д゚彡
〃つl⌒|⌒l
〜ミ,,[ ̄ ̄ ̄.]
 ̄ ̄ ̄
0313デフォルトの名無しさん
NGNGそれは Delphi は Java では無い。から。です。
0314Delフサギコ
NGNG/...... .. .../
||::: ∧,,∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
|: ̄\ ミ,, ゚Д゚ミ< と、過激に言ってはみたものの
|: :|: ̄U U ̄:|\_________
|: :|: .:|
_____
/:\._____\ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
|: ̄\ ミ ゚Д゚ミ < ちょっと後悔
|: :|: ̄U U ̄:| \_________
.______
|: :\. \ 隠れとこう
|: :|: ̄U U ̄:|
インターフェース変数に入れた時は
オブジェクトを開放しないように気をつける
という対処方法でよいかニャ
0315Delあめ猫にゃ
NGNG荒れそうだから放置
デストラクタ Destroy 以外の名前に出来るけどやらないでしょ?
オブジェクトの削除方法は共通の方がいいに決まってる。
だから、インターフェスじゃデストラクタを最初から用意したってだけのことでは?
0316デフォルトの名無しさん
NGNG普通にTBitmapで256色BMPをロードしてきたら、Paletteプロパティにパレットハンドルが入ってて、GetPaletteEntriesのAPIでパレットの内容を取って来たり、SetPaletteEntriesのAPIでパレットの内容を変更したりできるはずでえす。
0317デフォルトの名無しさん
NGNGそれでも独自処理の方を望むなら、ぐーぐるとかで BITMAPFILEHEADER を引けば、BMPファイルの構造を教えてくれるので、自分で1バイトずつ読みながら必要な情報を取り出したり、保存するときは1バイトずつ書き込んでBMPファイルを作り上げれば良いです。
0318デフォルトの名無しさん
NGNGどうしても nil 代入をしたくないというのなら下のような方法もある。
実装クラスにインターフェースを持たせるのではなく、別クラスに
インターフェースとしての機能を持たせるのです。
この方法だとTHogeImpの生死は、インターフェースの参照カウンタとは
完全に無関係になります。
type
// とりあえず作るインターフェース
IHoge = interface
procedure ShowMessage;
end;
// ITest のメソッドを実装するクラス
THogeImp = class
public
procedure ShowMessage;
function GetHoge: IHoge;
end;
// インターフェースを実装するクラス。
TTestImpAdapter = class(TInterfacedObject, IHoge)
private
FImp: THogeImp;
public
constructor Create(AImp: THogeImp);
property Imp: THogeImp read FImp implements IHoge;
end;
implementation
procedure THogeImp.ShowMessage;
begin
Windows.MessageBox(0, 'テスト', 'ほげほげじゃ', MB_OK);
end;
function THogeImp.GetHoge: IHoge;
begin
Result := TTestImpAdapter.Create(Self);
end;
constructor TTestImpAdapter.Create(AImp: THogeImp);
begin
inherited Create;
FImp := AImp;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
HogeImp: THogeImp;
Hoge: IHoge;
begin
HogeImp := THogeImp.Create;
Hoge := HogeImp.GetHoge;
Hoge.ShowMessage;
HogeImp.Free; // nil 代入するまえにFree しても
Hoge := nil; // エラーが起きない
end;
0319デフォルトの名無しさん
NGNG2chで解決したDelphi質問をFAQ収集するスレ
http://pc.2ch.net/test/read.cgi/tech/1004501183/
0320デフォルトの名無しさん
NGNG解決する問題と
解決しそうにもない問題を切り分ける能力くらい持ってくれ。
0321デフォルトの名無しさん
NGNG★解決した問題はこちらへ★
2chで解決したDelphi質問をFAQ収集するスレ
http://pc.2ch.net/test/read.cgi/tech/1004501183/
0322Delあめ猫にゃ
NGNGLinesプロパティに
RTEXT,39,138,164,218,34,TEST漢字
みたいに定義すると斜めのラベルを貼ったように使えます
けっこう面白いのですが、ドラッグでサイズ指定する時が、
なんか格好悪いのです。 何か巧い方法はないでしょうか?
今は四隅をドラッグするとサイズ指定になっています
0323デフォルトの名無しさん
NGNG0324Delあめ猫にゃ
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1004530597
どうも 斜め文字を描く時に、サイズを得るのに HDC が必要な為、 Paintメソッドが呼ばれた
時についでにサイズを変更してるのが良くない感じ・・・・
しかし、アイテムはWinHandleを持っていないから HDCが簡単には手に入らないし・・・
sysytem.Handleから HDC 作ってもいいのかな?
0325Delあめ猫にゃ
NGNG○Application.Handle ・・・鬱
0326Delフサギコ
NGNG___.___. ∀  ̄ ̄∨ ̄ ̄ ̄ ̄ ̄
. .| ┷┳━ ∧,,∧,,,,,,,,,,,,,,,
 ̄ ̄ ̄ ̄ ̄ ̄ ̄|... ┃ ミ゚Д゚,,彡,,,,,,,, ゙〜
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ .┻ U U """"UU
∫ _________
∧,,∧ ∬ /
ミ,,゚Д゚彡っ━~ < ただーいま。..
_と~,, ~,,,ノ_. ∀ \
ミ,,,,/~), │ ┷┳━  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ̄ ̄ ̄ .じ'J ̄ ̄| ┃
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ┻
いろいろ教えてくださってサンクスコ。
話が複雑すぎてついていけない、恭子の語呂
0327デフォルトの名無しさん
NGNGGetDC(0) でスクリーンDCのハンドルがいつでも使える。
0328Delフサギコ
NGNGミ,,゚Д゚ 彡< 教官!!>>318さんのコードが
__ミ ミ ミ \_なぜ動いているのかわからません
\,,∪  ̄ ̄ ̄\
||ヽ|| ̄ ̄ ̄ ̄||"
...|| ̄ ̄ ̄ ̄||
○interfaceってGUIDなくてもいいのかニャ?
○IHogeをinterface継承しているのに
TTestImpAdapterは
procedure ShowMessageを作らなくても
いいのかニャ?
○ property Imp: THogeImp read FImp implements IHoge;
つーか implements 指令って何これ?
○ Hoge.ShowMessage;
なぜTHogeImp.ShowMessageが呼ばれるのか....
ニゲロー
∧,,∧ ──────
ミ゚Д゚,,彡 < さぱーり理解できませーん。
⊂⊂ ミ──────
ヾ ,,ミ〜 ────
し じ ─────
こんなコード、いったいどこで取引されているのYO・・・・
やはり闇市場でしょうか...
0329Delフサギコ
NGNG∧ ∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| ̄ ̄ミ,,゚Д゚ミ ̄| < もう寝ます。
|\⌒⌒⌒⌒⌒⌒\ \
| \ \  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
\ |⌒⌒⌒⌒⌒⌒| きっと明日になったらわかる、きっときっと
\ |_______|
0330デフォルトの名無しさん
NGNG0331Delフサギコ
NGNGUMLスレでおもしろいツールが紹介されてました。
http://www.osk.3web.ne.jp/~shino/dev/DICON/DICON.html
どうですかねー>>各位
 ̄ ̄∨ ̄ ̄ ̄
∧,,∧
ミ,,゚Д゚彡
ミ つ[UML]).
〜ミ ,, ミ
∪∪
MLの人たちはD6のダイアグラムページは
無視しているのだろうか....
ガムバッタラUMLのクラス図かけなくはないだろうに…
>>330 (W
コード書くの早すぎ...
0332Delあめ猫にゃ
NGNG>>330 なんか かいかぶりすぎ
GUI用の計算ソースはあのページからカッパラッたもんだし
回転関係は普段良く使うから慣れてるだけだにゃ
0333デフォルトの名無しさん
NGNGいい。省略可能。
○IHogeをinterface継承しているのに
TTestImpAdapterは
procedure ShowMessageを作らなくても
いいのかニャ?
いい。property Imp: THogeImp read FImp implements IHoge;
で、FImpにIHogeの実装を委譲しているから。
○つーか implements 指令って何これ?
property xxx: Txxx(もしくはIxxx) read Fxxx implements Ixxx;
で、Txxx型(Ixxxを実装している)のメンバFxxxにそのクラスのIxxxの実装を
委譲する。
○ Hoge.ShowMessage;
TTestImpAdapterはIHogeインターフェースをTHogeImpに委譲してるので、
THogeImp.ShowMessageが呼ばれる。
0334Delフサギコ
NGNGミ ゚Д゚彡 すごすぎ
〜ミ,,,,uuミ
なぜにsage進行・・・・ageとくかしら
0335Delフサギコ
NGNG_________
∧,,∧ /ようやく
ミ;゚Д゚彡< 理解はできたのですが
ミつ つ \ こういうアダプターを作る方法が
〜ミ ,, ミ. いいのか悪いのか…
∪∪
Interfaceに関係なく重複メソッドのあるVCLには
こういうInterfaceアダプターを作るのは
都合がいいかもしれないけど
素直にコーディングしたい時には
なんというか複雑怪奇な
コードにならざる得ないような…気がしています。
実際にはIHogeインターフェースの参照が無くなる時には
TTestImpAdapterが破棄されているわけですよね。
THogeImp.GetHogeを内部に隠さなければわかりやすい。
procedure TForm1.Button1Click(Sender: TObject);
var
HogeImp: THogeImp;
Hoge: IHoge;
begin
HogeImp := THogeImp.Create;
Hoge := TTestImpAdapter.Create(HogeImp);
Hoge.ShowMessage;
HogeImp.Free; // nil 代入するまえにFree しても
Hoge := nil; // エラーが起きない
end;
TTestImpAdapter が TInterfacedObject を継承しているから
TTestImpAdapterは破棄する必要がないといえばないのですが。
納得いかないなあ。これがBorlandの選択なのかな。
Delphi以前の class型のない object型の時の ObjectPascalみたいな
不便さを感じる。(ってDelphi以前の事は知らないですが)
インターフェース変数に代入するときに
自動的に内部でアダプター作ってくれりゃあいいのに
と思うのは俺だけかな?
∧,,∧l||l 最近、文句いってばっかだニャ
;゙⌒ヽ彡 トホホ
〜ミ___ミ
''" ""''"" "''
Delphiによりよくなってもらいたいの。
C#にもJavaにも負けて欲しくないの。
GUIDがなくてもOKってのはいい事を聞きました。感謝。
0336デフォルトの名無しさん
NGNG解決法は無いですか?
0337デフォルトの名無しさん
NGNGExtended に integer を代入はOK
0338デフォルトの名無しさん
NGNGどうもです。
0339デフォルトの名無しさん
NGNG0340デフォルトの名無しさん
NGNG同意。漏れはTrunc呼んじゃう。
0341Delフサギコ
NGNG;゙⌒ヽ彡
〜ミ___ミ
''" ""''"" "''
クワッ
∧,,∧l||l Delphiの悪口言ったら
;;゙ミ゚Д゚彡 バチあたったんか!
〜ミ___ミ
''" ""''"" "''
∧,,∧l||l あた、、あたたたた。(TДT
;゙⌒ヽ彡
〜ミ___ミ ))
''" ""''"" "''
0342デフォルトの名無しさん
NGNGお大事に。猫は元気ですか?
0343Delフサギコ
NGNG;;゙ミ゚Д゚彡 名前はトラギコかトラしーちゃんにしようか...検討中
〜ミ___ミ いま一つ体調はよくならないのです。点滴うってもらってます。
''" ""''"" "''
∧,,∧ そうそう。彼女の痛みに比べりゃ
;゙⌒ヽ彡 この腹の痛みなど、大したことないよな。
〜ミ___ミ
''" ""''"" "'' ♀の子だから、トラしーちゃんかな…ヤパシ
0344デフォルトの名無しさん
NGNG0345デフォルトの名無しさん
NGNG途中の道の中央分離帯のところで交通事故死したと思われな、
黒い子猫の死体をハッケソ、一気にウトゥになったよ…
Delフサのウトゥな気分を垣間見た気がする…
0346デフォルトの名無しさん
NGNG非効率的な気がします。
Maskユニットを使いたくなかったので MatchesMask 関数を使わなくても
大丈夫なように少し工夫しました。
最初に、マスクを指定して FindFirst → ファイル一覧を得る
次に、マスクには * を指定して FindFirst → ディレクトリ一覧を得る
→ 再帰検索。
2回目で結局全てを検索しているので、1回目の検索は無くてもいいような
気もしますが、1回目で * マスク検索をすると、ディレクトリ以外だった場合に MatchesMask 関数でチェックをしないといけません。
高速化のために、よい知恵はありますか。
ソース↓
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1004653717&res=1
0347デフォルトの名無しさん
NGNG気がしますって...
プロファイル取ったの?
0348デフォルトの名無しさん
NGNG非効率的だと思っただけです。
0349Delフサギコ
NGNG.∧,,∧ ∧,,∧ ∧,,∧ ∧,,∧ ∧,,∧ .∧,,∧
ミ,,゚Д゚彡 ミ,,゚Д゚ミ ミ,, 彡 ミ,, ミ .ミ゚∀゚,,彡 ミ゚∀゚,,彡 アヒャ
⊂ つ 〃 つつ 〃 つ ⊂ つ ⊂ミ⊂ ミ ⊂ つ
0 ミ〜 〜 ,, つ 〜 ,,つ 〜 ,つ .⊂ ミ〜 0, ミ〜
,` J (/ (/´ し´ ,`J `J
>>344読めません。
>>345時には出会います
>>346フサが自作しているのはワイルドカードマッチを
無視して全検索するものなので、知恵はでてこないです。
0350Delフサギコ
NGNG(*゚−゚)⊃∧ < 最近シツモソが少ないねー
__| つミ,, ゚Д゚ミ,,,,/~つ_ \______________
と_)ヽ,,,つ,,,,,,,ノJ | ━┳━
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|... ┃
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ .┻
聞くは一時の恥、聞かぬは一生の恥ぞよ
何でも聞いてみましょうな。
0351デフォルトの名無しさん
NGNG他の方法は FileListBox を非表示で作成して temsを見る方法が思いつくけど
そういうの追いかけてもしょうがないと思うよ。
それがメインの物作ってるなら別だけど
その方法でも、そんなに待てない程は遅くないでしょう
0352デフォルトの名無しさん
NGNGまぁマターリいこうや
0353346
NGNG盛り上げようと
問題提起をしてみたのですが(内容に問題があったか)
無理か…
0354Delフサギコ
NGNGミ,,゚Д゚彡 < そもそも、ワイルドカド使うファイル検索って
U U \多用します?
〜ミ ミ
∪∪
フサはワイルドカドなしファイル検索で十分なので
必要性を感じないのだけど...
0355デフォルトの名無しさん
NGNG0356デフォルトの名無しさん
NGNGワイルドカードよりも、任意の拡張子の
ファイルを探す事 "しか" ありませんね。
*.txt
こういう風にしか使わない…
0357デフォルトの名無しさん
NGNG*.~*;*.DCUとかで使ったぐらいかなぁ
0358Delフサギコ
NGNGミ,, 彡 亡くなったってさ。
ミ ミ
ミ〜,, ミ
∪ ∪
0360デフォルトの名無しさん
NGNG展開されたんだけどそういうのないの?
0361デフォルトの名無しさん
NGNG0362デフォルトの名無しさん
NGNG$PATH( $EXENAME ) でパス名取得とか、
そんなマクロもあったような(ツールの設定だけかな)
0363デフォルトの名無しさん
NGNGをまたいだメソッドの呼び出しはこんなふうにやるのですか?
-----------------------
Project.exe
type
IHoge = interface
procedure Print;
procedure Exit;
end;
THoge = class(TInterfacedObject, IHoge)
procedure Print;
procedure Exit;
end;
var
Hoge: THoge;
function GetHoge: IHoge; stdcall;
begin
Result := Hoge as IHoge; // Hogeは作成済みとする
end;
------------------------
Library.dll
type
IHoge = interface
procedure Print;
end;
var
Hoge: IHoge;
begin
Hoge := GetHoge; // Project.exe の GetHoge
Hoge.Print;
end;
0364デフォルトの名無しさん
NGNGProject.exe と Library.dll が逆のような気がするけど、THoge を
作成したときに参照カウンタをあらかじめ一つ増やして置いてください。
そうしないと >>363 の Library.dll 側で IHoge が必要なくなったときに
THoge が自動的に解放されてしまいます。
Hoge := THoge.Create;
Hoge._AddRef;
こんな感じです。
0365ななしヘタぐらま ◆B18Bks.Y
NGNGDel5ProにはMatchesMaskがない(はず)なので私も同じ方法ですが
複数のフォルダから時に千以上のファイルを検索してもストレスを感じないので
これで良しとしています.
2回目以後の検索ではディスクキャッシュが効いていますしね.
うちのはさらに"*.pas;*.dfm"といった複数のマスクにも対応させるために
フォルダごとに都合(マスク数+1)回検索していますけど
ストレスは感じませんでした.
ただ,どっかに不具合があるのか,この検索を使っている自作コンポを使うと
統合環境の2回目の実行で必ずDelphiごと固まってしまいます(涙).
メモリの開放,どこかで忘れたかなぁ???
0366Delフサギコ
NGNGミ ゚Д゚ミ ∫< >>361 多重継承みたいなことできます
.(ミ ミっ-~ \__________
〜ミ,,⊃ミ⊃
TComboBoxとTEditのTextプロパティを同列に扱いたい場合
それぞれにインターフェースをくっつけてTextプロパティを
操作するとコーディング量がすくなくて済みます。
I := ComboBoxInterface1;
I.Text := ’ニテヨシ’;
I := EditInterface1;
I.Text := 'ヤイテヨシ';
こんな感じ。
>>365
*.*で全ファイルを検索して実際にファイル名を拾うときに
拡張子がpasか、dfmかという判断をする検索でも
6000ファイルをなめてもストレスはあまり感じてないです。
メモリリーク調査ユニットを使ってはいかがでしょうか?
0367デフォルトの名無しさん
NGNGOnData で表示する TListItem を作るわけですが、
同様のリストビューが複数必要なので、
TListView を継承したコンポーネントを作成しようと思いました。
モデルのクラスは固定です。
この場合、OnData や OnDataFind を定義した上で
外部から変更できないようにするのがいいでしょうか?
それとも UpdateAction メソッドをオーバーライドして作れる?
0368ねこま
NGNGそういう場合私だったら普通にイベントハンドラを使い,
なるべくコメントでわかりやすくするようにこころがけます.
0369デフォルトの名無しさん
NGNG>Del5ProにはMatchesMaskがない(はず)なので私も同じ方法ですが
あるよ・・・。
0370デフォルトの名無しさん
NGNGWideString型の引数や戻り値を使っても大丈夫なのですか?
Delphiで書くとこんなかんじです。
IHoge = interface
function GetName: WideString; stdcall;
procedure SetName(const AName: WideString); stdcall;
end;
0371名無し
NGNG以下の as 演算子の使い方はなぜいけないのでしょうか?
type
ITestData = interface
['{BBF2BE95-FEE5-4CC2-9CEF-9C83E29BF234}']
function GetColumnText(Index: Integer): string;
property ColumnText[Index: Integer]: string read GetColumnText; default;
end;
TTestComponent = class(TComponent, ITestData)
private
function GetColumnText(Index: Integer): string;
public
property ColumnText[Index: Integer]: string read GetColumnText; default;
end;
implementation
function TTestComponent.GetColumnText(Index: Integer): string;
begin
Result := 'Column_' + IntToStr(Index);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
TestIntf: ITestData;
TestComp: TTestComponent;
begin
TestComp := TTestComponent.Create(nil);
TestIntf := (TestComp as ITestData); // ← だめ
end;
0372371
NGNG0373デフォルトの名無しさん
NGNGtype
TMyInterface = class(TObject, IUnknown)
function QueryInterface(const IID: TGUID; out Obj): HResult; stdcall;
function _AddRef: Integer; stdcall;
function _Release: Integer; stdcall;
end;
IHoge = interface
end;
THoge = class(TMyInterface, IHoge)
end;
function TMyInterface._AddRef: Integer;
begin
Result := 1;
end;
function TMyInterface._Release: Integer;
begin
Result := 1;
end;
0374名無し
NGNGprocedure TForm1.Button1Click(Sender: TObject);
var
NodeIntf: INodeData;
NodeComp: TNodeComponent;
begin
NodeComp := TNodeComponent.Create(nil);
NodeIntf := NodeComp;
Button1.Caption := NodeIntf.ColumnText[0];
NodeComp.Free;
end;
エラーになりません
なぜでしょうか?
0375デフォルトの名無しさん
NGNGIHoge = interface
procedure Beep;
end;
Ver2のインターフェース
IHoge = interface
procedure Beep;
procedure Exit;
end;
があって、EXE側でオブジェクトを作成する場合、
EXE(Ver1)、DLL(Ver1)
EXE(Ver2)、DLL(Ver1)
は問題ありませんが、
EXE(Ver1)、DLL(Ver2)
の場合、DLLでIHoge.Exitは使えません。
DLLロード時に 『IHoge.Exit が見つかりません』等の
エラーメッセージをオプション等で自動的に表示する事は
可能でしょうか?
0376Delフサギコ
NGNGDelマガを読むのがいいと思います。
他にInterfaceの教科書ってありますでしょうか。
>>みなさん
 ̄ ̄∨ ̄ ̄ ̄
∧,,∧
ミ,,゚Д゚彡
ミつ[デルマガ]).
〜ミ ,, ミ
∪∪
>>374
たまたまかも。
フサもそういうタマタマエラーにならないことが
たくさんあって、わけわかに陥っていました。
> procedure TForm1.Button1Click(Sender: TObject);
> var
> NodeIntf: INodeData;
> NodeComp: TNodeComponent;
> begin
> NodeComp := TNodeComponent.Create(nil);
> NodeIntf := NodeComp;
> Button1.Caption := NodeIntf.ColumnText[0];
> NodeComp.Free; //※
> end;
※の部分でNodeIntfに代入してあるメソドテーブルが破棄されているので
確実にやばいと思います。
._Release: の実装内容にかかわらず
._Releaseの記述してあるメモリ領域が存在しないと
思った方がいいかも。
って、のであってるかな。
0378名無し
NGNGマジデスカっ!?
何度やっても全然エラーが出ないです・・・
MemCheck にもひっかからないです・・・
コワ〜
0379デフォルトの名無しさん
NGNGTNodeComponent;
が何なのか解らないから、答えようがないのでは?
0380名無し
NGNGややこしくてすみません
0381デフォルトの名無しさん
NGNGNodeIntf._Releaseが呼ばれて、その中で
NodeComp.Destroyが実行されるって事?
0382Delフサギコ
NGNG> procedure TForm1.Button1Click(Sender: TObject);
> var
> TestIntf: ITestData;
> TestComp: TTestComponent;
> begin
> TestComp := TTestComponent.Create(nil);
> TestIntf := (TestComp as ITestData); // ← だめ
> end;
TObjectのようなInterfaceを一つも継承していないものには
asが使えないらしい
ナカムラのタクちゃん....いや、中村大先生さまも
Delマガでぼやいてました。
>>378
変数スコープを抜けた時のことを考えて
プログラムしなければいけないのは
かなりきついですよね。
>>374のコードでは
たしか_Releaseのコードにブレーク設定しても
ひっかからないと思われますがどうでしょう?
ひっかからないのはおかしいですよね。
>>379
普通の何かのCompoと何かのInterfaceなら
374コードは危険では?
 ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄
∧,,∧ サムイ ヨル アタカイ チャがウマイ
ミ,, ゚Д゚彡
〃つ旦O
〜ミ,,[ ̄ ̄ ̄.]
 ̄ ̄ ̄
0383デフォルトの名無しさん
NGNGtype
IHoge = interface
end;
THoge = class(TInterfacedObject, IHoge)
destructor Destroy; override;
end;
destructor THoge.Destroy;
begin
inherited;
end;
procedure TForm4.Button1Click(Sender: TObject);
var
HogeIntf: IHoge;
Hoge: THoge;
begin
Hoge := THoge.Create;
HogeIntf := Hoge;
Hoge.Free;
end;
0384Delフサギコ
NGNG∧,,∧ ゛
∧,,∧ ミ・ー・ミ
ミ ´ー`ミ∧ ∧ ∧,,∧ ゛ミ,,,,,,,,,ミ ゛
\ < (;゚Д゚) ミ゚Д゚ ミ /|
\.⊂ヽ \⊂ヽ ミ,,_//
\ ⊂ _,ノ ⊂ _,ノ゛/
∪∪ ̄∪∪"
チャットみたい。
>>381
> NodeComp.Free; 後に
> NodeIntf._Releaseが呼ばれて、その中で
> NodeComp.Destroyが実行されるって事?
NodeCompo.FreeするとNodeIntfが指し示すメソッドテーブルも破棄されてしまうので
NodeIntf._Releaseの処理のためのメモリ領域そのものがないので
_Releaseを呼び出したとたんにアクセス違反が起きる可能性がある
とフサは認識してるのですが。ちがうかも。
識者の方、間違っていたら指摘してね。
素直なやり方は
TInteafacedObjectを継承して
NodeIntf := TNodeCompo.CreateとしてFreeを行わずに
破棄は_Releaseに一任するのがいいと思いますよ。
>>383
デストラクタが二回よばれているのは変ですね?ナンデダロ
そのコードの場合、Freeはとりあえず必要ないです。
0385371
NGNG>エラーは出ないけど、デストラクタは二回呼ばれています。
呼ばれなくなりました!
function TNodeComponent._AddRef: Integer;
begin
Result := -1;
end;
function TNodeComponent._Release: Integer;
begin
Result := -1;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
NodeIntf: INodeData;
NodeComp: TNodeComponent;
begin
NodeComp := TNodeComponent.Create(nil);
NodeIntf := NodeComp;
Button1.Caption := NodeIntf.ColumnText[0];
NodeComp.Free;
end;
0386Delフサギコ
NGNG,,,,,,,,,,,,,∧,,∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′,,,,,,,ミ,,゚Д゚彡 < フサの環境では「無効なポインタ操作」例外でます
UU""" U U \_______________
>>383のコードから
// Hoge.Free;
Freeをコメントアウトするとちゃんと動作します。
0387デフォルトの名無しさん
NGNG0388Delフサギコ
NGNG〜′,,,,,,,,,,ミ,,゚Д゚彡 < 同様の理由でヤバイと思うのですが…
UU"""" U U \_______________
> procedure TForm1.Button1Click(Sender: TObject);
> var
> NodeIntf: INodeData;
> NodeComp: TNodeComponent;
> begin
> NodeComp := TNodeComponent.Create(nil);
> NodeIntf := NodeComp;
>
> Button1.Caption := NodeIntf.ColumnText[0];
> NodeComp.Free;
> end; //※
※の段階でNodeIntf._Releaseが呼ばれるのに
実際の_Releaseがない(もしくは_Releaseを示すポインタがない?)
らしいですから...
_Releaseにブレークポイントを置いて
Free後に呼ばれているかトレース確認をしたらどうでしょう。
止まりますか?
>>387
と、、、言われても、俺もこんな実装嫌いですよ。
0389デフォルトの名無しさん
NGNG一度仕様が公開されるなどしたインターフェースは互換性を維持するため、
定義を二度と変更してはならないのです。新しいバージョンで新たなメソッドが
追加されるなどしたときは、新しいインターフェースを定義するのが普通です。
Ver1のインターフェース
IHoge = interface
['IHogeのGUIDを入れてちょ']
procedure Beep;
end;
Ver2のインターフェース
IHoge2 = interface(IHoge)
['IHoge2のGUIDを入れてちょ']
procedure Beep;
procedure Exit;
end;
としておいて、DLL 側 に HogeProc 関数があるとして下のようにすればよいんじゃないかな?
procedure HogeProc(Hoge: IHoge);
var
Hoge2: IHoge2;
begin
if Failed(Hoge.QueryInterface(IHoge2, Hoge2)) then
raise Exception.Create('IHoge2 が使えません。Ver2のEXEから呼びだしてください');
Hoge2.Exit;
end;
0390371
NGNG以下がまとめのソースです (interface 部)
type
INodeData = interface
['{BBF2BE95-FEE5-4CC2-9CEF-9C83E29BF234}']
function GetColumnText(Index: Integer): string;
property ColumnText[Index: Integer]: string read GetColumnText; default;
end;
TNodeComponent = class(TComponent, INodeData)
private
function GetColumnText(Index: Integer): string;
protected
function _AddRef: Integer; stdcall;
function _Release: Integer; stdcall;
public
destructor Destroy; override;
property ColumnText[Index: Integer]: string read GetColumnText; default;
end;
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
end;
var
Form1: TForm1;
0391371
NGNG{$R *.DFM}
destructor TNodeComponent.Destroy;
begin
inherited; // ← ここにブレークポイントおいて調べる
end;
function TNodeComponent.GetColumnText(Index: Integer): string;
begin
Result := 'Column_' + IntToStr(Index);
end;
function TNodeComponent._AddRef: Integer;
begin
Result := -1;
end;
function TNodeComponent._Release: Integer;
begin
Result := -1;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
NodeIntf: INodeData;
NodeComp: TNodeComponent;
begin
NodeComp := TNodeComponent.Create(nil);
NodeIntf := NodeComp;// as INodeData;
Button1.Caption := NodeIntf.ColumnText[0];
NodeComp.Free; // 自分で破棄できました。
// Destructor も1回だけです
// なぜならば
end;
procedure TForm1.Button2Click(Sender: TObject);
var
NodeIntf: INodeData;
begin
NodeIntf := TNodeComponent.Create(nil);
Button2.Caption := NodeIntf.ColumnText[0];
// このあとで NodeIntf がインスタンスを破棄しようとするが
// 参照が -1 しか返さないのでそのまま
// ※メモリリークします
end;
0392デフォルトの名無しさん
NGNGこれじゃ、気軽に公開出来ません。
ユーザーからの要望に応じてインターフェースのメソッドを
増やせないのか・・・。
0394デフォルトの名無しさん
NGNG0395デフォルトの名無しさん
NGNG>TObjectのようなInterfaceを一つも継承していないものには
>asが使えないらしい
>>371 での TTestComponent の宣言を下のようにすれば as 使えるようになるよ。
TComponent = class(TComponent, IUnknown, ITestData)
なぜ使えるようになるかというと、コンパイラは IUnknown インターフェースが
クラスで実装されているかどうかを調べて、as 演算子が使用可能かどうか
判断しているみたい。
で、class 宣言にはクセがあって class 宣言で列挙されたインターフェースのみ
クラスに実装されます。つまり、あるインターフェースをclass 宣言に列挙したからといって
そのインターフェースの親インターフェースも自動的にクラスに実装されることはありません。
下のコードでこのことは確認できます。
type
IHoge1 = interface(IUnknown)
end;
IHoge2 = interface(IHoge1)
end;
THoge2 = class(TInterfacedObject, IHoge2)
end;
procedure TForm1.Button1Click(Sender: TObject);
var
obj: THoge2;
Hoge1: IHoge1;
Hoge2: IHoge2;
begin
obj := THoge2.Create;
Hoge2 := obj; // class 宣言で IHoge2 が列挙されているのでコンパイルできる
Hoge1 := Hoge2; // IHoge2 を IHoge1 に代入することは出来る。
Hoge1 := obj; // class 宣言で IHoge1 が列挙されていないのでコンパイルできない
end;
0396392
NGNGその都度インターフェースを作っていたら、
インターフェースだらけ
IHoge, IHoge2, IHoge3, IHoge4,....
になるのですが。
これは避けたい。
0397Delフサギコ
NGNG\,,,,ミ,,゚Д゚彡 < 371=>>391さん
⊂,,,,,,,,,つつ. \確かにコードは動きますね。
> Button1.Caption := NodeIntf.ColumnText[0];
> NodeComp.Free; // 自分で破棄できました。
> // Destructor も1回だけです
> end;
…うーん。NodeCompo.Freeの後にNodeCompo._Releaseが動作しても
いいものなのだろうか?
0398デフォルトの名無しさん
NGNG0399デフォルトの名無しさん
NGNGインスタンスが廃棄されたあとはインターフェースの内容は不定になるので
やっぱり_Releaseを呼びだしてはいけないと思います。
>>391 のケースでは、メモリが破壊されなかったとかなどでたまたま
うまく動いただけじゃないかな?
バグの原因になるのでやめた方がよいと思いますが…
0400デフォルトの名無しさん
NGNG0402371
NGNGおっしゃるようにたまたまっぽいです。
もうすこし考えてみます
0403デフォルトの名無しさん
NGNGfunction TMyInterface._Release: Integer;
begin
Result := 1;
end;
procedure TForm4.Button1Click(Sender: TObject);
var
HogeIntf: IHoge;
Hoge: THoge;
begin
Hoge := THoge.Create;
HogeIntf := Hoge;
Hoge.Free;
Hoge._Release;
THoge($EEABCDEF)._Release;
end;
0404371
NGNG私はただ永続的な Interfaced クラスを作りたいだけでした
別に _Release で破棄されるならそれでいいや
nil を代入しなければならないってのも慣れの問題かも
0406デフォルトの名無しさん
NGNGMDIアプリケーションで
MDIチャイルドを表示させたときに、メインウィンドウのメニューを
メインウィンドウのメニュー + チャイルドフォーム用のメニュー
というように、混ぜたいのです。いまは、チャイルドフォーム用のメニューにわざわざ
メインメニューと全く同じメニュー構造+チャイルドフォーム用の
メニューを付け加えるという、無駄とも思える作業をしています。
もっと楽な方法はありますか。
0407Delフサギコ
NGNG...Delphi6\Demos\Doc\TextEdit\textedit.dpr
これみるといいっすよ。>>406
┏━━━━━┯━━━━━
┃ |
┃ |
┃ ∩∩
┃ ∧ ∧
┃ ミ,,゚Д゚ミ
┃ ミ ミ フゥ…
┃ ミ ミ
┃ ミ ミ ミノムシ ミタイ ダナ
┃ ..U..U
┃
┃ ぶら下がり倦怠期
基本はほとんど全部作らなければいけないけど
DemoではWindowメヌーが重なってますね。
0408Delフサギコ
NGNG〜′,,,,,,,ミ;゚Д゚彡 < BorConでオフ会の話とか出ないけど
UU""" U U \ニンヅウ大丈夫なのか?>>Bor
フサはBorConのお金払えないから
2chプログラム板オフに出ることにしたんだけど
デルファーの人だれかきます?
ハミゴになったらヤダナ。
0409デフォルトの名無しさん
NGNGTMetaFile って使い方が良く分からないのよ。
というか、 WMF 形式自体を、見た事が無い。
線を書き込んだり、テキストデータを埋め込むにはどうすればよいのでしょう。
というか、そもそもWMFにテキスト及び
フォント情報を埋め込むことはできるので消化。
0410ななしヘタぐらま ◆B18Bks.Y
NGNGTMetafileはTBitmapと違ってそれ自身でデータを作ることができません.
TMetafileCanvasというクラスを使ってデータを作ります.
まずはヘルプをご参照ください.
TMetafileCanvasのCreateメソッドの説明から例を見られます.
この例にはありませんがテキストを書き込むこともできます.
フォントの埋め込みはたしかなかったと思いますが….
注意点としてTMetafileはいくつか問題を抱えています.
私も彼の不可解な行動に振り回されましたが
この問題については中村拓男氏のサイト『中村の里』で
詳しく説明されていますのでそちらをご覧下さい.
Delphiマガジンの過去の号にも同氏の記事があったのですが号は失念.すいません.
0411ななしヘタぐらま ◆B18Bks.Y
NGNGそんなオフが開催されるのですね.
2chのオフ関係は関心が無かったのですが
職場が東京都下なのでBorCon会場付近ならいけないこともないなぁ.
#しかしOff会板を見たもののそれらしきスレは見当たらなかったのですが….
0412ななしヘタぐらま ◆B18Bks.Y
NGNGぐぉ.ツッコミありがとう.
0413デフォルトの名無しさん
NGNGマ板見れ
0414デフォルトの名無しさん
NGNG0415名無し
NGNGDelphi でだけ使えればいいのなら付けなくていいよっていうもの?
0416デフォルトの名無しさん
NGNGDelphi only なら stdcall はいらない。
0417名無し
NGNGcase ClassType of
TButton:
end;
こういう事がしたい
if (ClassType = Txx) then XX else
if (ClassType = Txx) then XX else
:
こういうのは嫌
今は自分で番号を決めてやっています
0418415
NGNGわかりました thx!
0419名無し
NGNG(VCLComObject が nil である限り)
昨日知ったです
0420デフォルトの名無しさん
NGNGないな・・・。
逆は出来るんだけどね。
0421417
NGNGそうですか・・・ レスthxです
ヘルプ眺めてたら ClassID ってのを見つけて「おぉっ!?」と思ったんですが
TComObjectFactory.ClassID
property ClassID: TGUID;
だめじゃん・・・
0422名無し
NGNGTList から取り出すと Pointer 型なので代入できません。
p := list[i];
if (TObject(p^).ClassType = TAAA) then intf := TAAA(p^) else
if (TObject(p^).ClassType = TBBB) then intf := TBBB(p^) else
こんな方法しか無いのでしょうか?
0423名無し
NGNG0424名無し
NGNGよろしくお願いします
0425デフォルトの名無しさん
NGNG0426デフォルトの名無しさん
NGNG??
半角カナは悪ではないよ。
0427デフォルトの名無しさん
NGNG参照カウンタのことを完全に理解していないのなら、Pointer型を
介して使うのは大変危険です。
ただ単にキャストすればいいだけなんだけど、
ptr := Pointer(intf);
と
IUnknown(ptr) := intf;
は動作が違う。前者はptrにただ代入するだけだが、後者は
代入に加えて参照カウンタをもインクリメントする。
前者はきちんと参照カウンタをデクリメントしないとメモリリークするし
後者はインターフェースが勝手に廃棄されることがある。
0428427
NGNG書き込んだ瞬間に誤り見つけた…
(訂正版)
後者はきちんと参照カウンタをデクリメントしないとメモリリークするし
前者はインターフェースが勝手に廃棄されることがある。
0429デフォルトの名無しさん
NGNG0430デフォルトの名無しさん
NGNG現在の時間を取得するのに一番時間のかからないやつってなんでしょう
いくつか方法あるけど・・・
ドウナンショ?
0431デフォルトの名無しさん
NGNGって、そんなに時間かかるんですか。
0432デフォルトの名無しさん
NGNGミリ秒まで正確に測りたいときは
どうすんだろ
TZtimerでも使うのかな
0433デフォルトの名無しさん
NGNG0434424
NGNG知りたいのはポインタ→インターフェースなのです
以下がテスト用のコードです。
メモリリークはしないはずだと思いますので皆様よろしくお な が いします。
type
ITestData = interface
['{BC55ADC4-9676-43EB-B16A-0AE02676C8CB}']
function GetText(Index: Integer): string; stdcall;
end;
TXComponent = class(TComponent, ITestData)
protected
function GetText(Index: Integer): string; stdcall;
end;
function TXComponent.GetText(Index: Integer): string;
begin
Result := ClassName + '! ';
end;
procedure TForm1.Button1Click(Sender: TObject);
var
obj: TXComponent;
p: Pointer;
intf: ITestData;
begin
obj := TXComponent.Create(Self);
p := @obj;
Caption := TXComponent(p^).GetText(0) + ' / '; // 代入確認
// intf := IUnknown(p^); // コンパイル不可
intf := ITestData(p^); // ← Access Vioration
Caption := Caption + intf.GetText(0);
end;
0435424
NGNGintf := TXComponent(p^);
これは当然できます。
やりたいのはクラスがわからないという場合の話です
TObject(p^).ClassType という話になって
>>417 >>422 へとリンクされてしまいます
0436デフォルトの名無しさん
NGNGTObject にいったんキャストして、GetInterface メソッドを呼び出す。
使い方は TInterfacedObject.QueryInterface の実装を参考に。
as 演算子はこの場合、使用不可。
0437436
NGNGで変なところがあるな。
p := @obj; って変数自体へのポインタを得てどうするの?
関数抜けたら無効なポインタになるっしょ。
p := obj; として TXComponent にキャストするときは
TXComponent(p) とするべき。
0438デフォルトの名無しさん
NGNGInterface は知っておいたほうがいいかな。
ActiveXはいまだに動作原理…というか
何の目的で使うのかが良く分からないし、
Interface に関してはここの議論を見ても
???だし…
0439デフォルトの名無しさん
NGNG必要になれば分かるよ。
Delphiのって限定じゃないInterfaceは理解すると良いかも。
JavaとかC#で。
0440434
NGNG>TObject にいったんキャストして、GetInterface メソッドを呼び出す。
このヒントのおかげでできたです!ありがとう!
procedure TForm1.Button1Click(Sender: TObject);
const
GUID_ITestData: TGUID = '{BC55ADC4-9676-43EB-B16A-0AE02676C8CB}';
var
obj: TXComponent;
p: Pointer;
intf: ITestData;
begin
obj := TXComponent.Create(Self);
p := obj;
Caption := TXComponent(p).GetText(0) + ' / '; // 代入確認
// TObject(p).GetInterface(GUID_ITestData, intf); // どっちでも
TObject(p).GetInterface(ITestData, intf); // いいです
Caption := Caption + intf.GetText(0);
end;
>p := @obj; って変数自体へのポインタを得てどうするの?
>関数抜けたら無効なポインタになるっしょ。
あっそうか!なるほど
世界が広がったーよ
0441434
NGNG0442434
NGNGと思ったら、多分 >>395 の理由で IUnknown が無いと False しか返さないんですが
やはりこういう場合 class に定義追加しておかないとどうしようもないんでしょうか?
0443デフォルトの名無しさん
NGNGSupports使わないって事で終わり
0444デフォルトの名無しさん
NGNGGetInterface の戻り値をチェックすればいいんじゃないの?
0445Delフサギコ
NGNG∧,,∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ミ,,゚Д゚彡 < ちょっと用事があって、2chきてなかったす
,;゙ ミ \_____________
ミ. ミ
/゛゛゛゛
スマソ。貴重な情報みなさんサンクスです。
プログラミングバイブルのD6版とか出ないかな。
インターフェースについて体系的に知りたいことが山ほど...
Javaのデザパタ初心者本(デザパタスレで調べてください)
にInterfaceの例がイパーイのっているので
Javaも覚えたいと思っている人は
読んでみるといいよ。
インターフェースの使い道もわかります。
0446デフォルトの名無しさん
NGNG ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
Λ_Λ
( ´Д⊂ヽ
⊂ ノ
人 Y
し (_)
0447デフォルトの名無しさん
NGNG0448デフォルトの名無しさん
NGNGOpenHelpの事?
手動で出来ると思うのだが。
0449デフォルトの名無しさん
NGNG ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
Λ_Λ
( ´Д⊂ヽ
⊂ ノ
人 Y
し (_)
0450デフォルトの名無しさん
NGNGoh.exe ってない?
0451デフォルトの名無しさん
NGNG直接書き換えればいい。
0452デフォルトの名無しさん
NGNG0453デフォルトの名無しさん
NGNG自然淘汰ですか。
さて。
OpenPictureDialog で独自の画像フォーマットを開けるように、
フィルタにマイ拡張子を追加してありますが、
このファイルを選択すると「毎回表示できませんエラー」が出てきます。
標準でない拡張子を選択した場合に、エラーを回避する方法はありませんか。
0454453
NGNG○ 回避するにはどうすればよいですか。
0455デフォルトの名無しさん
NGNGその画像フォーマットを登録してしまえば済むと思うのだが?
0456デフォルトの名無しさん
NGNGOpenPictureDialogに?
それとも、単に拡張子を関連付けるって事?
0457Delフサギコ
NGNGミ,,゚Д゚彡 < TGifImageをusesしたら
,;゙ ミ \
ミ. ミ ダイアログでもGif表示できたような…
/゛゛゛゛
画像登録ってそう言うこと?
0458デフォルトの名無しさん
NGNG>TPicture.RegisterFileFormat('jpeg', 'JPEG イメージファイル', TJPEGImage);
0459デフォルトの名無しさん
NGNG0461Delフサギコ
NGNG∧,,∧∩ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ミ,,゚Д゚彡 < ヘジルスバーグ氏って
U ミ \カタカナでフルネーム
@ミ ミ なんて呼べばいいのですか?
∪ ∪
0462デフォルトの名無しさん
NGNG0463デフォルトの名無しさん
NGNG0464名無しヘタぐらま ◆B18Bks.Y
NGNG私はフレームを使いまくっているので以前悩んだことがありますが,
やはりコンストラクタのオーバーライドで対処しています.
フレームのpublic部に次のメソッド(コンストラクタ)を追加して
constructor Create(AOwner: TComponent); override;
実装部に必要な処理を書きます.
0465462
NGNGそーです。
今回はTFileStreamです。
0466デフォルトの名無しさん
NGNGTStringStream経由するのが正統的かな?
ss := TStringStream.Create;
ss.CopyFrom( filestream, n );
ss.DataStringで文字列として取れる
0468デフォルトの名無しさん
NGNGStream.Read(S[1], n);
は安全ですかねぇ〜?
0469Delフサギコ
NGNG∧,,∧ / こんなんつくーたよ。Memo1には「ってヨ」という文字が入る
ミ,,゚Д゚彡<
ミつ つ \ StringStreamなんてあるんだ。初耳。
〜ミ ミ.  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
U U
procedure TForm1.Button1Click(Sender: TObject);
var
MS1, MS2: TMemoryStream;
SL: TStringList;
begin
MS1 := TMemoryStream.Create;
MS2 := TMemoryStream.Create;
try
SL := TStringList.Create;
try
SL.Text := '逝ってヨシ';
SL.SaveToStream(MS1);
MS1.Position := 2;
MS2.CopyFrom(MS1, 6);
MS2.Position := 0;
Memo1.Lines.LoadFromStream(MS2);
finally
SL.Free;
end;
finally
MS1.Free;
MS2.Free;
end;
end;
0470デフォルトの名無しさん
NGNGいつもそう書いてるYO
0471デフォルトの名無しさん
NGNGうーむ、
MS2 := TMemoryStream.Create;
で失敗したら、MS1.Freeが呼ばれませんが、
どうしましょう?
0472Delフサギコ
NGNGミ,,゚Д゚彡っ━'~ | 適当なサンプルだから
ミ∪ ~,ノ < 勘弁してよ。
ミ '' ミ \____________
し'~し'
0473デフォルトの名無しさん
NGNG最初にnilで初期化するか、try-finallyブロックをネストするか。
0474わりこんでごめんだけど
NGNGVB⇒VC⇒java(秀丸)と触ってきたが一番使い辛いぞ。
フリーカーソルなんぞはツールで克服すつとしても、それ以前の基本機能である
window分割とかできんし、なんだかストレスが溜まってしかたない俺はdelさわるなってことか?
0475デフォルトの名無しさん
NGNGウィンドウの「分割」はできないけど,同じエディタバッファを複数のウィンドウで
同時編集できますが?
0476Delフサギコ
NGNG∧,,∧ /
ミ;゚Д゚彡< 慣れですから。
ミつ つ \
〜ミ ,, ミ.  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
∪∪
別の編集windowを開けて上下に配置して
デスクトップ位置保存をしてみるとよかれ。
あと、ツールに
エディタを登録して実行引数を$EDNAMEにでもすると
開いているテキストが他のエディタで開けるから
それをつかってちょ。
0477デフォルトの名無しさん
NGNGこれでどう? http://www.gexperts.org/
0478デフォルトの名無しさん
NGNG弘法筆を選ばず.
0479デフォルトの名無しさん
NGNGフルスクリーンエディタの事?
N88-BASICとかと同じ。
0480デフォルトの名無しさん
NGNGそれを入れると何がどう変わるのか、軽く触りだけでも教えてもらえたり
なんかすると、厨房なボクとしては凄く感激だったりするんだけど、教え
てみたりなんかしてみない?
0481デフォルトの名無しさん
NGNGhttp://www.gexperts.org/tour/html/
エディタの拡張とかgrep検索とかVCっぽくしたりもできる
どのあたりが気に食わないのかわからないけど
GExperts は D2 の頃から開発されつづけてるからだいたい何でもあると思う
オープンソースだ
オレはフリーカーソルじゃないと嫌だけどなぁ
0482デフォルトの名無しさん
NGNGフリーカーソルってのは、行の終わりよりも右にカーソルを置ける機能のこと
0483デフォルトの名無しさん
NGNGフリーカーソルは宗教論争的なので、話題にするのは危険。
0484デフォルトの名無しさん
NGNG0485Delフサギコ
NGNG| はい、ありがとうございます!
| 某landサポートセンターです!
\_____ _______
∨
∩_∩ D
( ´∀`)○ ___
( )D……/◎\
=============================
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| Delphiを作った人は
| アンダースヘジルスバーグさんって
| お呼びすればいいのでしょうか?
\_____ _______
∨
C∧,,∧
___ ○ミ゚Д゚,,彡 ハツオン ワカラン
/◎\……Cミ ミ
=============================
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| ・・・・・・・・・・・・・・・・・・・・
| インシデント減りますがお調べいたしましょうか?
\_____ _______
∨
∩_∩ D
(;´∀`)○ ___
( )D……/◎\
=============================
0486デフォルトの名無しさん
NGNG実話?
0487デフォルトの名無しさん
NGNG漏れも実話か気になる、教えてくれ。
0488Delフサギコ
NGNGミ;゚Д゚ミ < 実話なわけないっしょ
(ミ ミつ)ビシッ\_________
〜ミ ミ
∪ ∪
ホントにやったら、Borlandから目をつけられるという
諸刃の剣ですね。
0489デフォルトの名無しさん
NGNG同じ質問を「C# を作った人は...」に置き換えて、MS に聞いてみて、
対応を比較するのも一興。
0490474
NGNG弘法は筆を選ばないが、厨房なので筆を選んでしまいます。
ま、とりあえずGExperts入れてみます。つーヵdelだけの人って
MSDNとかネットでみてんの?
0492デフォルトの名無しさん
NGNG筆おろしした?
0493デフォルトの名無しさん
NGNG当然。常時接続だし。
0494デフォルトの名無しさん
NGNG値上げしたので次の延長時期が来るのが怖い…
0495Delフサギコ
NGNGミ ゚Д゚彡 治ってます?>Gエキスパ
〜ミ,,,,uuミ
だーれか。日本語化してほしなーー。
http://hp.vector.co.jp/authors/VA003525/jmysoft.htm#6
もあるしー。exeScopeのライセンス料の2000円あげるからGエキスパの日本語化
だれかしない?って、誰もやらないか....
0496462
NGNGするようにしてる場合、画面のプロパティでフォントの大きさを変えると
レイアウトが崩れます。回避するにはどうすればいいでしょうか
0497Delフサギコ
NGNGミ ゙''゙゙゙つ
ミ∧,,∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ミ,,゚Д゚彡 < ニュートンのリサイズキットなど・・・・・・・
U U \________
http://www.newtone.co.jp/produc11.html
GetPixelPerInchアピとかでフォントサイズ取得できたっけ?
0498462
NGNG触ればどうにかなりますか?
0499デフォルトの名無しさん
NGNGCVS でソース公開しているけど、それじゃだめなんか?
0500デフォルトの名無しさん
NGNG0501474
NGNGMSDNなんてめちゃめちゃ時間かかるじゃん。む?まさかPlatformSDKをダウンロード?
そんな不便を補って余りある利点がデルにはあるのかな。 ま、どっちにしろ500に
期待ってとこか。
0502デフォルトの名無しさん
NGNG0503デフォルトの名無しさん
NGNG過去ログ検索すれば分からない事はありません(藁
0504デフォルトの名無しさん
NGNG親切に教えてあげようね。
Platform SDK をダウンロードしなくても,必要なところだけ読めるようになっているんですよ。
0505デフォルトの名無しさん
NGNG0506デフォルトの名無しさん
NGNG標準的なものとか推奨なものがあれば、載っている本とかサイトを教えて下さい。
よろしくお願いします。
0507>506
NGNG0508デフォルトの名無しさん
NGNG「コーディングガイドラインとか変数の命名規則」は識別子に短い名前しかつけられなかったり
型管理が弱い言語において、楽をするための方便です。
C++ や Pascal などの型情報をちゃんと処理できる言語では、言語仕様に型情報を管理する機能が
入っているので、変数名に型情報を盛り込むのは二度手間になります。
暗号のような名前を使うよりは、その物ずばりの名前をつけたほうが確実です。
0510506
NGNGHungarian Notation ですか。うーん。
>>508 さん
一応、Java では
Writing Robust Java Code とか、
http://ObjectClub.esm.co.jp/ のコーディング標準などを見てたんです。
で、Delphi でもそういったものはないのかな、と。
ということで、>>509 さんのをこれから読んでみます。
0511デフォルトの名無しさん
NGNG0512デフォルトの名無しさん
NGNG郵便番号->住所の変換をやりたいんですけど
ImmGetConversionListの使い方おしえてください。
変換の一覧が欲しいのです。
DelphiMLのサンプルじゃ動かんし。
自分でもやったけど、わけ・わか・らん。
ちなみに WinNT4+Delphi5+IME97です。
0513474
NGNGもちろんオンラインで見れるけども、それはVSのMSDNを見るのに比べ著しく
動作が遅く、非効率ではないだろうかってことだったんですが。まぁ回線切らずにお勉強サイト
逝ってきます
0514>512
NGNG0515Delフサギコ
NGNGミ,,゚Д゚彡< 期待していいでしょうか!
'ミ つ旦)~~ \ わかりやすいから英語でもOKのトコ多いですが
⊂ミ",, ,,ミ つ 細かいオプションはやぱり日本語がいいですよね。
>>498
スマソ、わかりませんん。MLのログみたら解決に近ずく方法はあるかも
>>511
>>84-90みてね。
ジ…自爆したかなあ....名無しさん#さんにはお世話になってます。
C#スレみたけど、Gridにオーナードローってないのかな。
命名則はフィールドにFつけるくらいかな。
>>512
それって何か市販のコンポーネントがあった希ガスる。
大昔Delマガに広告載ってなかったかな。
MLのサンプルってせめてURL出して聞こう!
0516デフォルトの名無しさん
NGNG0517Delフサギコ
NGNGミ.,,゚Д゚彡< あったあった。
ミ つ目(ミ . \_______________
〜ミ,,O,,,,,,つ
新郵便番号⇔住所 高速相互検索
http://www.lerx.to/lereaux/postal.html
安いし、買いでは?
ルロー氏はDelマガで採算が取れてるのかニャ。
まさかシャキーンばかりが増えてる事が無い事をお祈りしまする。
0518デフォルトの名無しさん
NGNGインストーラ「ExePress」を使ってインストーラを
作った場合「アプリケーションの追加と削除」に
登録されないのを教えて欲しいのですがスレ違いでしょうか。
マニュアルは見たのですが参考になるURLなどを教えて欲しいです。
0519デフォルトの名無しさん
NGNG>"HIGH-els-bare"
>
>However, I have the videos of the sessions, so I just looked up Anders'
>keynote.. he used "HIGH-ls-berg".
ハイルスバーグ
みたいだよ。
0520Delフサギコ
NGNG/...... .. .../
||::: ∧ ∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| ̄\.ミ*゚ー゚ミ< なななななななななななな
| |: ̄U' U ̄:|\__________
| |: :|
| | ∧,,∧:| / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| \ ミ,,゚Д゚彡< なななななななななな
| |: ̄U' U ̄:| \__________
| |: :|
0521512
NGNG>514
なにぃぃぃ。それはしらなんだ。
>515
残念ながらコンポーネント案はだめなのよ。
でね。
HMC: HIMC;
dwSize: DWORD;
lpCand: PCandidateList;
i: integer;
begin
ListBox1.Clear;
Edit1.SetFocus;
HMC := ImmGetContext(Edit1.Handle);
dwSize := ImmGetCandidateList(HMC, 0, nil, 0);
lpCand := HeapAlloc(GetProcessHeap(), 0, dwSize);
ImmGetCandidateList(HMC, 0, lpCand, dwSize);
ってかいてあげたんだけど。lpCand^.dwCountが0なのよねぇ?
どうしたらいいんでしょうか?
052228
NGNG0523Delフサギコ
NGNGミ ゚Д゚彡
〜ミ,,,,uuミ でも、何をがんばりましょう・・・・?
>残念ながらコンポーネント案はだめなのよ。
なぜでしょう。
自前で出来るにこした事はないと思いますが。
0524518
NGNG>>518 への事故レスです。なんとか解決しました。
板を汚したついでに書かせていただきまっす。
iアプリ作成用にNTTより配布されている
J2ME Wireless SDK for the DoJa
が原因のようでした。
このソフトのレジストリのDisplayNameが長すぎるのが原因のようです。
[DisplayName] "Java(tm) 2 Platform, Micro Edition, Wireless SDK for the DoJa APIs (Release 2.2)"
これをアンインストールしたらぞろぞろと今までのが表示される様になりました。
0525518
NGNGiアプリ作成用にNTTより配布されている
もとい
iアプリ作成用にNTTドコモより配布されている
です
0526デフォルトの名無しさん
NGNG0527デフォルトの名無しさん
NGNG「アプリケーションの追加と削除」に登録しない方法を
聞きたいのかとオモターヨ。
0528デフォルトの名無しさん
NGNGhttp://plaza27.mbn.or.jp/~satomii/design/imm/imm7.html
を見ると、いつでも使えるAPIではないようです。
0529518
NGNG読み返してみれば・・・なるほど
書き方が悪かったようです
0530518
NGNGちなみに他のインストーラでも同様の影響が出る事が
あるようです。ご注意を
0531ななし
NGNG0532デフォルトの名無しさん
NGNGフォームのScaledをfalseにして、
フォームのFontのHeightを正の値にしてみたり。
0533デフォルトの名無しさん
NGNGその1・Pascalで書くと遅いのでもっと高速化してみたいとき(出来るとは限らない)
その2・特殊な命令(cpuidとか)を実行したいとき
その3・アセンブラを使えと強要されたとき
0534512
NGNGVar
HMC: HIMC;
dwSize: DWORD;
lpCand: PCandidateList;
i, j, Len: integer;
F: LPTSTR;
s:string;
C: array of integer;
begin
ListBox1.Clear;
Edit1.SetFocus;
HMC := ImmGetContext(Edit1.Handle);
ImmSetCompositionString(HMC, SCS_SETSTR, PChar(Edit1.text), Length(Edit1.text),nil,0);
ImmNotifyIME(HMC,NI_COMPOSITIONSTR,CPS_CONVERT,0);
ImmNotifyIME(HMC,NI_OPENCANDIDATE,0,0);
dwSize := ImmGetCandidateList(HMC, 0, nil, 0);
lpCand := HeapAlloc(GetProcessHeap(), 0, dwSize);
ImmGetCandidateList(HMC, 0, lpCand, dwSize);
SetLength(C,lpCand^.dwCount);
for i:=0 to lpCand^.dwCount -1 do
StrLCopy(@C[i],PChar(lpCand)+24+i*4,4);
for i:=0 to lpCand^.dwCount -1 do begin
if i < lpCand^.dwCount - 1 then
SetString(s,PChar(lpCand) + C[i], C[i+1] - C[i])
else
SetString(s,PChar(lpCand) + C[i],lpCand^.dwSize - C[i]);
ListBox1.Items.Add(s);
end;
ImmNotifyIME(HMC,NI_CLOSECANDIDATE ,0,0);
ImmReleaseContext(Edit1.Handle, HMC);
HeapFree(GetProcessHeap(), 0, lpCand);
end;
とりあえず、コードはできて。ListBoxには変換候補を取得できたんだけど。
あとはEdit1に変換のがのこっちゃうのよ。どうするよ?
0535デフォルトの名無しさん
NGNGIISではRequest->QueryFields->Textに値が入るけど、
Apacheでは値が入らないなんてことありますか?
Apacheだと、ブラウザで入力された値が取れないよー。
0536535
NGNGなんか、行末がCRLFになるべきところが、CRCRLFになったりする?
0537Delフサギコ
NGNGミ ゙''゙〜
ミ∧,,∧ / CGIはわからないですが
ミ,,゚Д゚彡 < 改行コードを普通にするのはAdjustLineText
U U \________
0538535
NGNG事実の方も誰かから聞きたいな...
0539535
NGNGRequest->ContentFields->Text
が途中で切れてるんだけど、Apacheって制限があるんだね。
識者解説キボン。
0540462
NGNGなんでこんなにマニュアルの出来がわるいの?
0541535
NGNGAdjustLineBreaksだ!
0542Delフサギコ
NGNG/:\._____\ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
|: ̄\ ミ,,゚Д゚ミ < ごめん、まちがえてた
|: :|: ̄U U ̄:| \_________
.______
|: :\. \ 隠れろ
|: :|: ̄U U ̄:|
0543デフォルトの名無しさん
NGNGフサ君や、手がはみ出ておるぞ。
0545デフォルトの名無しさん
NGNGヒドイ。
0546デフォルトの名無しさん
NGNGListBox1.Items.Add(PChar(Integer(lpCand) + C[I]));
だけでOK。
0547デフォルトの名無しさん
NGNG0548Delフサギコ
NGNG∧,,∧ /
ミ;゚Д゚彡< >>54 どういうっていわれても困るけど
ミつ つ \
〜ミ ,, ミ.  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
∪∪
CLXのEditコントロールはFontのCharaSetをUniにできます。
Editの中に♥マークが表示できるね(IEからコピペしたりしたら)
0549512
NGNGあんがとぉぉ。無事、仕組み完成。
ご協力感謝します。
0550デフォルトの名無しさん
NGNG(つまり、指定した行が一番上に表示されるように
スクロールしたい)のですが、
EM_SCROLL メッセージだと1行単位でしかスクロールできず、
大量にスクロールさせると非常に時間がかかります。
一気に n 行スクロールさせるにはどうすればよいでしょうか。
with RichEdit1 do
begin
IndexFrom := Perform( EM_GETFIRSTVISIBLELINE, 0, 0 );
IndexTo := 目的の行インデックス
for i:=IndexFrom to IndexTo-1 do
Perform( EM_SCROLL, SB_LINEDOWN, 0 );
for i:=IndexTo to IndexFrom-1 do
Perform( EM_SCROLL, SB_LINEUP, 0 );
end;
0551デフォルトの名無しさん
NGNG他のメッセージは?
0552デフォルトの名無しさん
NGNG↓
目的の行にカーソルを移動+EM_SCROLLCARET
0553Delフサギコ
NGNG〜′,,,,,,,,,,ミ,,゚Д゚彡 < EM_LINESCROLLじゃない?
UU"""" U U \_______________
0554Delフサギコ
NGNG〜′,,,,,,,,,,ミ,,゚Д゚彡 < ここみるよし>>550
UU"""" U U \_______________
http://homepage2.nifty.com/boheme/delphi/tips/tec0280.htm
http://homepage2.nifty.com/boheme/delphi/tips/tec0300.htm
0555550
NGNGEM_LINESCROLL どうりでうまくいかないと思っていたら、
メッセージの第一引数にスクロール量を
指定していました(;´Д`)
逝ってきます
0556Delフサギコ
NGNG〜′,,,,,,,,,,ミ,,゚Д゚彡 < APIヘルプEM_LINESCROLL みても
UU"""" U U \Lパラ Wパラ の意味はわかるニャリ
カンチガイ ノ リョウガ ケイケン ニナルカモ
0557デフォルトの名無しさん
NGNGキャレットが移動された事を知りたいのですが、
EM_CaretMoved
みたいなメッセージはありませんか?
0558デフォルトの名無しさん
NGNG>>533
Delphi のインラインアセンブラの話なら
ここと
http://pc.2ch.net/test/read.cgi/tech/1002267809/212
ML の次のスレッドをよく読むよろし。
http://www2.big.or.jp/~osamu/Delphi/delphi-browse.cgi?index=049229
0559デフォルトの名無しさん
NGNG0560Delフサギコ
NGNG∧,,∧ ∬ / マウスとキーボードの入力で
ミ-Д-彡っ━~ < SelStartの位置を監視するとよし
_と~,, ~,,,ノ_. ∀ \ >>557
ミ,,,,/~), │ ┷┳━  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ̄ ̄ ̄ .じ'J ̄ ̄| ┃
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ┻
0561書き損じるとカコワルイネ
NGNG0562Delフサギコ
NGNGミ-Д-彡,,,,,,,,,,,,ヾ〜 < RichEditならOnSelectionChangeがあるようです
U U """"UU \_
procedure TCustomRichEdit.CNNotify(var Message: TWMNotify);
で
EN_SELCHANGEを監視してるのですね。
なんでTMemoにはないんかな。
0563デフォルトの名無しさん
NGNG0564557
NGNGそして…
目的の行を表示させるのは良いのですが、WordWrapされている場合に、
本来の行と 実際に表示されている行がずれてしまいます。
現在のカーソル位置から、WordWrap によって
変化する前の、本来の行番号を得たいときはどうすればよいでしょうか。
ちなみに、カーソル位置は以下のコードで取得しています。
X := LongRec( Memo.Perform( EM_GETSEL, 0, 0) ).Hi;
Y := Memo.Perform( EM_LINEFROMCHAR, X, 0 );
X := X - Memo.Perform( EM_LINEINDEX, -1, 0 );
0565Delフサギコ
NGNG,,,,,,,,,,,,,∧,,∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′,,,,,,,ミ,,゚Д゚彡 < SelStartまでのCRLFを数えるとか?
UU""" U U \_______________
わかんない
0566デフォルトの名無しさん
NGNGfunction GetIndex(text:string; selstart:integer):integer;
var
i:integer;
begin
result := 0;
for i:=1 to length(text) do
if (ByteType(text[i])=btSingle) and (text[i] = #13)then
inc( result );
end;
改行コードは2バイト文字に含まれないという保証があれば、
if 条件が一つ減らせるのですが…
0567デフォルトの名無しさん
NGNGJIS(ISO-2022-JP), SJIS, EUC-JPに関しては
文字コード$20未満は2バイト文字には含まれないよ。
他の文字コード(他言語とか)は知らんが。
Posあたりを使って#13#10を追いかけていくとかでも大丈夫だとは思う。
0568デフォルトの名無しさん
NGNG(アプリの終了時=メインフォームのOnDestroy)
しかし、アプリを起動したまま、キーボードの終了ボタンを押して
Windowsを終了させると、メインフォームのOnDestroyが呼ばれないようです。
終了時にちゃんとデータを書き込むにはどうすればよろしいですか?
0569縞栗鼠(シマリス)の親方
NGNGここは、完全に狂ってる。
授業料は一年分一括前払いなので、
金が入れば、生徒は要らない
金を振り込んだら、何とかその生徒を辞めさせようと
講師どもが、あの手、この手でイヤガラセをしてきますね。
セクハラはもちろん、脈絡の無い罵倒は日常茶飯だね。
酒臭い講師もいるし・・・ 人生の最果て中央高等学院
http://chs-f.com/index.html 福岡校
学歴詐称 経歴詐称 デタラメ授業
http://www.chuo-school.ac/ 東京本校
0570デフォルトの名無しさん
NGNG0571デフォルトの名無しさん
NGNGツリービューのビューがないヤツ、みたいな。
0572デフォルトの名無しさん
NGNGTComponent がそれ。
0573デフォルトの名無しさん
NGNG自作するとか。
そのレコード自身のポインタを管理するTListとかもって。
っていうかTTreeNodeは?
0574571
NGNGけど参考になりました。ありがとう。
0575ねこま
NGNGOnDestroy は必ず発生するはず
しなかったらバグもしくは異常終了してる
しかし OnDestroy で保存などやってはいかん!
>>571
リストにリスト突っ込んで自作
面倒ならネット探せばあるよ
>>573
TTreeView が無いと使えないよ.
まあ隠して使えばいいんだけど
>ツリービューのビューがないヤツ、みたいな。
この要望にそぐわないのでは
0576デフォルトの名無しさん
NGNG(1)タスクバーのシャットダウンを選択してOSをシャットダウン。
(2)キーボードのスリープボタンを押してOSをシャットダウン。
(1)は、OnDestroyが正常に動くんだけど、
(2)は、ダメ。OnDestroyが動かない。
ちなみに、コンパネの電源オプションでスリープボタンを電源OFFにしています。
OSは2000。
>>570 氏のいっている、OnCloseQueryにして試してみる。
0577デフォルトの名無しさん
NGNG>しかし OnDestroy で保存などやってはいかん!
なぜ? 保存には OnDestroy がもってこいだと思うが。
俺は OnClose, OnCloseQuery のような表示に関わるイベントは
保存のタイミングに使うには信頼性が無いと思っている。
0578デフォルトの名無しさん
NGNGTTreeNodeのインスタンス生成すれば使えませんか?
0579デフォルトの名無しさん
NGNGつまり、Ownerである、Application も Free されない。
よって、finalization が実行されない。
OnCloseQueryが発生するのは、WM_QUERYENDSESSIONに応答しているから?
0580デフォルトの名無しさん
NGNGWM_QUERYENDSESSIONをフックして、
Haltを実行しては?オレはそうして
る。
0581デフォルトの名無しさん
NGNG場合によってはね。
デストラクタよばれず、アプリが強制終了されてOSが落ちることはあるよ。
OnCloseQueryでやるのが無難。
0582Delフサギコ
NGNG,,,,,,,,,,,,,∧,,∧ /
〜′,,,,,,,ミ,,゚Д゚彡 < こんなのでどのイベントが発生しているか
UU""" U U \確認していいかも。
ファイルに文字列を追加書き込み
する手続きです。
procedure FileAddText(const S, FileName: String);
var
F : TextFile;
begin
try
AssignFile(F, FileName); // 既存のファイル
if not FileExists(FileName) then
Rewrite(F) {ファイル新規作成}
else
Append(F); {ファイル追加モード}
Writeln(F, S);
finally
CloseFile(F);
end;
end;
>>571
自分自身のポインタをプロパティでもっておくだけで
簡単にTree構造は実現できますよん。
0583デフォルトの名無しさん
NGNGShift+Tab で逆タブを実現するにはどうすればいいですか
0584デフォルトの名無しさん
NGNG0585584
NGNG0586デフォルトの名無しさん
NGNG以下のような関数を作りたいです。
GetPal( BMP画像,パレット変数 )
SetPal( BMP画像,パレット変数 )
GetPalは指定されたBMP画像から256色のパレットを読み出して
パレット変数に、格納します。
SetPalは指定されたパレット変数の内容をBMP画像のパレットとして
設定します。
パレット変数の定義
Palette :array[0..255] of Integer;
いろいろ調べたのですが、(過去ログも見ました。)分からないので具体的に
関数を作って教えていただけないでしょうか?
また、このときBMP画像が256色パレットではない場合には、
256色パレットに変換してから、上記の処理をしたいのですが
そういうのは、どうすれば出来るのでしょうか?
具体的には、画面にSelectImage: TImage;というのがあり、そこのBMPに対して
上記の処理を行いたいと思っています。
SelectImage.Picture.LoadFromFile(ImageFileName);
で、BMPを読み込んだ後に、GetPal関数を使ってパレットを取得
パレット編集後に、PutPal関数を使ってパレットを書き換えて
SelectImage.Picture.SaveToFile(ImageFileName);
で、BMPを保存しようと思っています。
よろしくお願いします。
0587デフォルトの名無しさん
NGNGTBitmap.Palette
0588デフォルトの名無しさん
NGNGいちおうこのヘルプは読んでみたのですが・・・分かりませんでした。
この例にあるのはシステムパレット(?)を取得しているようなので
そこを変えてやってみたのですがうまくいきませんでした。
procedure TForm1.ColPut;
var
x,y: integer;
SysPal : LogPal;
begin
SysPal.lPal.palVersion:=$300;
SysPal.lPal.palNumEntries:=256;
GetPaletteEntries(SelectImage.Picture.Bitmap.Palette, 0, 255, SysPal.lpal.palPalEntry);
for x:=0 to 15 do
begin
for y:=0 to 15 do
begin
Palette[x+y*16] := RGB( SysPal.lpal.palPalEntry[x+y*16].peRed,
SysPal.lpal.palPalEntry[x+y*16].peGreen,
SysPal.lpal.palPalEntry[x+y*16].peBlue );
ColorImage.Canvas.Brush.Style := bssolid;
ColorImage.Canvas.Brush.Color := Palette[x+y*16];
ColorImage.Canvas.FillRect(Rect(x*8+1,y*8+1,x*8+7+1,y*8+7+1));
end;
end;
end;
こんな感じでSelectImage.Picture.Bitmapのパレットの色を使って
ColorImage.Canvasに四角を書こうとしたのですが、ダメでした。
(へんな色が表示される。)
難しいです。
0589デフォルトの名無しさん
NGNG0590587
NGNGよく知らないけど
CreateCompatibleDC(Null) でコンテキストを作って、
SelectObject でBitmapと関連付け、
GetDIBColorTable で読めるらしいです。
0591199
NGNGこんな感じかな。
procedure TForm1.Button1Click(Sender: TObject);
var
PE:array[0..255] of TPaletteEntry;
i:integer;
begin
Image1.Picture.Bitmap.LoadFromFile('c:\Captured.bmp');
Image1.Picture.Bitmap.PixelFormat := pf8bit;
GetPaletteEntries(Image1.Picture.Bitmap.Palette,0,255,PE);
with Canvas do begin
for i := 0 to 255 do begin
Pen.Color := RGB(PE[i].peRed,PE[i].peGreen,PE[i].peBlue);
MoveTo(0,i);LineTo(100,i);
end;
end;
end;
PE[i].peFlags を考慮する必要があるかも。
0592デフォルトの名無しさん
NGNGもし画面を256色モードでやってるなら、それだと色が出ません。
ハイカラー以上でやりませう。
って、そういう基本的なことではなかった?
0593デフォルトの名無しさん
NGNG>589
そうです。あれからずーっと悩んでいます。難しいです。
>590
そのやり方は初耳ですので調べてみたいと思います。
>591
早速やってみましたが、うまくいきませんでした。
現象としては、まずBMPが正しく表示されません。
なんか、変な色になります。肌色のキャラが黄色になります。
8bit,24bitのBMP両方ともなりました。
それに、パレットもうまく表示できませんでした。
>592
フルカラーでやっています。グラフィックツールを作っていて
256色の絵を書きたいと思っています。
みなさん、ありがとうございました。
もしよろしければ、引き続き教えてほしいです。
ダメだったソース
// ペンの色表示
procedure TForm1.ColPut;
var
x,y: integer;
PE:array[0..255] of TPaletteEntry;
begin
DataImage.Picture.Bitmap.PixelFormat := pf8bit;
GetPaletteEntries(DataImage.Picture.Bitmap.Palette,0,255,PE);
for x:=0 to 15 do
begin
for y:=0 to 15 do
begin
Palette[x+y*16] := RGB( PE[x+y*16].peRed,PE[x+y*16].peGreen,PE[x+y*16].peBlue );
ColorImage.Canvas.Brush.Style := bssolid;
ColorImage.Canvas.Brush.Color := Palette[x+y*16];
ColorImage.Canvas.FillRect(Rect(x*8+1,y*8+1,x*8+7+1,y*8+7+1));
end;
end;
end;
0594591
NGNG>早速やってみましたが、うまくいきませんでした。
>現象としては、まずBMPが正しく表示されません。
>なんか、変な色になります。肌色のキャラが黄色になります。
>8bit,24bitのBMP両方ともなりました。
>それに、パレットもうまく表示できませんでした。
そうですか。こちらでは全くうまくいっていますけど。
そもそも pf24bit の画像を pf8bit に減色するのですから
変な色になるのは当然です。また、パレットは pf8bit 以下の
色分解能であるときのみ有効です。もともと256色の画像を
591 のようにやって変な色になるとしたら、実行環境のビデオ
ドライバがおかしいか、そもそも256色以下の環境である可能性が
あります。
>592
>フルカラーでやっています。グラフィックツールを作っていて
>256色の絵を書きたいと思っています。
たんに256色以下の色数を使えば、描画後、TBitmap の PixelFormat を
pf8bit にすると自動的に256色の絵になりますけど。はじめから
使用できる色をパレットとして用意しておくのは、無意味です。
0595ななしヘタぐらま ◆B18Bks.Y
NGNG目的が256色モードでの画像表示,ではなくて256色データの作成なら
中村拓男さん作の TnkDIB を使うっていうのはダメでしょうか?
はずしていたらごめんなさい.
0596デフォルトの名無しさん
NGNG>たんに256色以下の色数を使えば、描画後、TBitmap の PixelFormat を
>pf8bit にすると自動的に256色の絵になりますけど。はじめから
そんな事はありません。単にハーフトーンパレットになるだけです。
0597Delフサギコ
NGNG~━っミ ゚Д゚彡,, < >>583 がんばる。
∀._(,,,~ ,,,~⊃_ \____________________
━┳┷ |. ,(~ヽ,,,ミ.
┃...| ̄ ̄し'J.  ̄ ̄ ̄ パレットはわからなー
┻ ヽ ̄ ̄ ̄ ̄ ̄ ̄ ̄
0598591
NGNG>そんな事はありません。単にハーフトーンパレットになるだけです。
パレットの話ではない、ということを言いたかったんですよね。
フルカラーで実行してハーフトーンパレットになる理由はなに?
DDB→DIB変換のVCLの実装についてのおはなしですか?
そもそも256色であることに相違ないとおもいますが。
0599デフォルトの名無しさん
NGNGこの免罪符嫌い
0600596
NGNG591 で「たんに256色以下の色数を使えば…」と書いてあることから
24bit画像に256色以内の色数を使って描画すれば、8bitに減色したときに
理想的な減色が行われると言っているように思えたんだが違うのか?
実際はハーフトーンパレットを使って適当に減色が行われる。
0601Delフサギコ
NGNG電 |
|∧,,∧
柱 ミ,,゚Д゚彡 <はずしたらゆるさねー
⊂ ミ と書いてみてはDO?
|, ,,ミ
|∪ そういえば、昔PC98Doって機種があって....
, ' , ; ' ; 98と88のソフトが動いただよ。
0602Delフサギコ
NGNGなぜになんも話題にならないの?
 ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄
∧,,∧ ウラグチ カラ ハイリタイ
ミ,,゚Д゚彡∬
〃 つ旦O
〜ミ,,,n,,n[ ̄ ̄ ̄.]
 ̄ ̄ ̄
0603591
NGNG>591 で「たんに256色以下の色数を使えば…」と書いてあることから
>24bit画像に256色以内の色数を使って描画すれば、8bitに減色したときに
>理想的な減色が行われると言っているように思えたんだが違うのか?
違わないが、「理想的な減色」とはいっていない。元質問者は256色
の絵を描くツールを作っているわけで、予めパレットを設定しておくこ
とにどれほどメリットがあるだろうか?しかも256色以内の使用色
でも固定のハーフトーン色に減色されるんですか。だとしたら、実装が
ボロいということですね。
>実際はハーフトーンパレットを使って適当に減色が行われる。
これは知らなかった。VCLの TBitmap はいい加減なんだね。
減色のアルゴリズムはいろいろあるけど、PSP Pro みたいに
使用色のヒストグラムをとって頻度の多い方から採用する、とか。
そもそも256色以内の使用色で減色するのが間違いだと思う。
使用色そのものをパレットに採用するだけだと思うが。
いろいろ教えてくれてありがとう。>>596
0604デフォルトの名無しさん
NGNGあなたのほうが健全な心の持ち主だと思う。
また、2ch への誘導メール出してみようか
0605デフォルトの名無しさん
NGNGPC98Do 持っていたよ。V30に毛が生えたようなCPUなのに、286より少し遅いくらいだった。
拡張スロットが1個しかなくて苦労したけど。
88モードは殆ど使わなかったけど
って関係ないからsage
0606デフォルトの名無しさん
NGNGオレモナー
0607デフォルトの名無しさん
NGNGヤメレ
0608デフォルトの名無しさん
NGNGproperty Items:TStringList read GetItems write SetItems;
function TMyForm.GetItems ...
begin
result := ComboBox.Items;
end;
procedure TMyForm.SetItems ...
begin
ComboBox.Items := Value;
ListBox.Items := Value;
end;
MyForm.Items.Clear
などのように呼び出す場合は、SetItems ではなく GetItems だけが
呼び出されてしまうみたいですね。
0609デフォルトの名無しさん
NGNGItemsとLinesでassignは?
0610デフォルトの名無しさん
NGNGLinesじゃなくてItems同士だ、逝ってくる
0611デフォルトの名無しさん
NGNGJavaは血で血を洗う内紛
OOはアンチと信者の抗争。
RubyはHSPに当り散らしてるし。
0612デフォルトの名無しさん
NGNG初心者スレはそうでもないよ。
0613Delフサギコ
NGNGミ,,゚Д゚彡 < リアルワールド(米)で飛行機が墜落して大変だ。
,;゙ ミ \_____________
ミ. ミ
/゛゛゛゛
>>605 V33でしたっけ?
0614デフォルトの名無しさん
NGNGMSの減色だって(ピー)でしょう
0615デフォルトの名無しさん
NGNGV33AはDo+
0616デフォルトの名無しさん
NGNGおいらのDelphi6が逝ってるからなのだろうか。
鬱だ
0617デフォルトの名無しさん
NGNGはずしていたらごめんなさい。
0618>616
NGNG0619名無しヘタぐらま ◆B18Bks.Y
NGNGマッキントッシュは特に何にもしなくても
OSが全部そこそこきれいにディザリングしていたような。
0620デフォルトの名無しさん
NGNG>>594
>そもそも pf24bit の画像を pf8bit に減色するのですから
>変な色になるのは当然です。また、パレットは pf8bit 以下の
>色分解能であるときのみ有効です。もともと256色の画像を
>591 のようにやって変な色になるとしたら、実行環境のビデオ
>ドライバがおかしいか、そもそも256色以下の環境である可能性が
>あります。
今の自分が使っている画面の設定はHigh Color(16ビット)です。
>>593のソースの中の
DataImage.Picture.Bitmap.PixelFormat := pf8bit;
というのをすると、BMPが変な色になります。
コメントアウトすれば普通に表示されます。
フルカラーのBMPでなるのなら分かるのですが、
256色のBMPでもなってしまいます。
>>603
>違わないが、「理想的な減色」とはいっていない。元質問者は256色
>の絵を描くツールを作っているわけで、予めパレットを設定しておくこ
>とにどれほどメリットがあるだろうか?しかも256色以内の使用色
>でも固定のハーフトーン色に減色されるんですか。だとしたら、実装が
>ボロいということですね。
256色の固定パレット(もちろん編集は可能)を用意して、
そのパレットを使うBMPを複数枚書くのを目的としています。
>>595
TnkDIB ダウンできないようです(404)Delphi5までしか
対応になっていないからでしょうか。
みなさん、ありがとうございました。
引き続き教えていただければうれしいです。
0621デフォルトの名無しさん
NGNG申し訳ありません。出来ました。こちらのミスでした。
ロード用のBMPにロードしたものを編集用のエリアにコピーしていたのですが
そのときに、パレットがコピーされないのが原因でした。
お手数をかけて大変申し訳ありませんでした。
どうも、ありがとうございました。
0622デフォルトの名無しさん
NGNGOptpixはシェアウェアで、ゲームのFFなんかでも使われた実績があります。
Padieはフリーですが、開発は終わっていたと思います。
昔はPag1テトラへドロンというディザなしでの性能が恐ろしく高いソフトが
のもありましたが、作者が特許を抱え込んだままサポートを止めてしまっていて残念。
とは言え、作者様のサイトやテトラへドロンのヘルプは、減色を理解するのにかなり役立ちます。
なお、自作する場合は、減色は圧縮と同じで特許に固められているので注意が必要です。
Cマガのバックナンバーにもいくつか参考記事があるので参照してみてください。
0623デフォルトの名無しさん
NGNG減色ですか。きれいな減色が出来ればよいのですが(24ビットBMP読み込み時
に減色して256色表示等)とりあえず、いまは考えていません。
Cマガジンはいろいろ気になるのですが近くに売っていないので
たまにしか買ってないです。定期購読しようかな。
で、>593の問題ですが、現在がんばっていますが解決してないです。
ロードしてきたBMP(LoadImage)をpf8bitで画面に表示までは
うまくいきました。
LoadImage.Picture.Bitmap.PixelFormat := pf8bit;
GetPaletteEntries(LoadImage.Picture.Bitmap.Palette,0,255,PE);
が、そのあとに取得したパレットを別のイメージ(ColorImage)に描画するのが
うまくいきません。インデックスカラーではなく、RGB値を使っているので
きちんと描画できそうなものなのですが・・・。
引き続き教えていただければうれしいです。
// ペンの色表示
procedure TForm1.ColPut;
var
x,y: integer;
PE:array[0..255] of TPaletteEntry;
begin
LoadImage.Picture.Bitmap.PixelFormat := pf8bit;
GetPaletteEntries(LoadImage.Picture.Bitmap.Palette,0,255,PE);
for x:=0 to 15 do
begin
for y:=0 to 15 do
begin
Palette[x+y*16] := RGB(PE[x+y*16].peRed,PE[x+y*16].peGreen,PE[x+y*16].peBlue);
ColorImage.Canvas.Brush.Style := bssolid;
ColorImage.Canvas.Brush.Color := Palette[x+y*16];
ColorImage.Canvas.FillRect(Rect(x*8+1,y*8+1,x*8+7+1,y*8+7+1));
end;
end;
end;
0624591
NGNG>DataImage.Picture.Bitmap.PixelFormat := pf8bit;
>というのをすると、BMPが変な色になります。
>コメントアウトすれば普通に表示されます。
>フルカラーのBMPでなるのなら分かるのですが、
>256色のBMPでもなってしまいます。
596 が教えてくれたところによると、TBitmap では256色でも
そうなるみたいです。まったく、いい加減ですね。
>256色の固定パレット(もちろん編集は可能)を用意して、
>そのパレットを使うBMPを複数枚書くのを目的としています。
そこで、上記のことをするためには、まず TBitmap のインスタンス
を作って初期化し PixelFormat := pf8bit; に設定してから
こちらで任意の256色の論理パレットを作成して、それに設定する。
そして、そのパレットから色を選んで描画する。ということでは
どうでしょうか?
うーむ、試してみたいが時間がないのでごめん。
0625591
NGNG>今の自分が使っている画面の設定はHigh Color(16ビット)です。
ハイカラー(16ビット)でパレットを扱うソフトを開発するのは
最悪です。true color(24ビットまたは32ビット)に比較すると
色解像度は256分の1です。ですから、RGB() で色を指定しても
カラーマッチングが行われ、システムパレットにマッチングされて
しまいます。純色以外の任意の値で RGB() で Canvas.Pixels[x,y]
で色を置いて、GetRValue(Canvas.Pixels[x,y])、GetGValue()、
GetBValue() してみると、置いた色と同じでない場合があることに
気がつくでしょう。
true color 環境での開発を強くお薦めします。
0626デフォルトの名無しさん
NGNG>うーむ、試してみたいが時間がないのでごめん
とんでもないです!ヒントをいただけるだけで十分です。
わざわざ時間を割いて解答していただきありがとうございます。
>>625
マジですか!早速再起動することにします。
本当に基本のようなことが分かっていなくて申し訳ないです。
ありがとうございました。
現在皆さんから教えていただいたことを参考にいろいろ試しています。
ありがとうございます。
0629デフォルトの名無しさん
NGNGえっ!嘘なの!本当なの?でもどっちにしろ良くないことには違いないので
再起動しました。状況は変わってないですけど・・・。
0630625
NGNG設定色と取得色が一致するのは稀であることが分かります。
procedure TForm1.Button1Click(Sender: TObject);
var
Sclr,Gclr:COLORREF;
i:integer;
begin
with Canvas do
for i := 0 to 255 do begin
Sclr := RGB(127,127,i);
Pixels[1,1] := Sclr;
Gclr := Pixels[1,1];
ListBox1.Items.Add(IntToHex(Sclr,4)+
' : '+IntToHex(Gclr,4));
end;
end;
0631デフォルトの名無しさん
NGNG0632Delフサギコ
NGNGミ,,゚Д゚彡 < BorConの様子はどうですか?
U ミ \____________
〜ミ ミ
∪ ∪ ダレモ イッテナイ?
0633デフォルトの名無しさん
NGNG0634デフォルトの名無しさん
NGNG簡単なゲームならある程度簡単に作れるが、
CやC++で作られているちょっとしたものを作ろうとするなら手間は一緒
0635デフォルトの名無しさん
NGNGWideStringに対応した文字列操作関数って限られてますよね
例えば、検索するのもPos関数だけ
PWideChar使えるやつもないし
結局、みんな自作してるもんなんすか?
0636デフォルトの名無しさん
NGNG注意 この関数はマルチバイト文字セット(MBCS)をサポートします。
0637test
NGNG0638デフォルトの名無しさん
NGNGTListViewで、項目が長すぎて途切れて表示されているとき、
ツールチップみたいな表示でポップアップして表示したいん
ですが、どうやったらいいのでしょうか?
0640デフォルトの名無しさん
NGNGすごすぎ!
JBuilderは少し早すぎるな・・・JDK1.4対応してるかな?
0641
NGNGJBuilderってJDK選ばないことで有名じゃなかったか?
0642デフォルトの名無しさん
NGNGPersonalでマウススクロールして欲しいのよ。標準で。
そのほうが初心者受けいいでしょ。
0643
NGNGってことはあなたは初心者?
0644デフォルトの名無しさん
NGNG0645
NGNG0646デフォルトの名無しさん
NGNG0647デフォルトの名無しさん
NGNGハァ?
0648デフォルトの名無しさん
NGNGMember British Computer Society
Meteor Burst Communications System
0649デフォルトの名無しさん
NGNG0650625
NGNGImage1 の Bitmap に 白、赤、黄緑、青、黒の五色の
カラーテーブルを設定する
procedure TForm1.Button1Click(Sender: TObject);
var
Table: array[Byte] of TRGBQuad;
begin
FillChar(Table,SizeOf(TRGBQuad)*High(Byte),#0);
Table[0].rgbRed := 255;
Table[0].rgbGreen := 255;
Table[0].rgbBlue := 255;
Table[1].rgbRed := 255;
Table[1].rgbGreen := 0;
Table[1].rgbBlue := 0;
Table[2].rgbRed := 0;
Table[2].rgbGreen := 255;
Table[2].rgbBlue := 0;
Table[3].rgbRed := 0;
Table[3].rgbGreen := 0;
Table[3].rgbBlue := 255;
with Image1 do begin
Picture.Bitmap.Width := Width;
Picture.Bitmap.height := Height;
Picture.Bitmap.PixelFormat := pf8bit;
SetDIBColorTable(Picture.Bitmap.Canvas.Handle,
Low(Table),High(Table), Table);
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
with Image1.Canvas do begin
Pen.Width := 3;
Pen.Color := clPurple;
LineTo(100,100);
Pen.Color := RGB(40,200,30);
Brush.Color := clNavy;
Ellipse(10,10,170,80);
Pen.Color := RGB(240,200,130);
Brush.Color := clMaroon;
Rectangle(100,100,150,150);
end;
end;
任意の色を設定してもカラーテーブルのどれかの色に
マッチングされるのが分かる。
0651625
NGNGImage1 の Bitmap に256のグレースケールのカラーテーブル
を設定する。
procedure TForm1.Button1Click(Sender: TObject);
var
Table: array[0..255] of TRGBQuad;
i: Integer;
begin
for i := 0 to 255 do
with Table[i] do begin
rgbRed := i;
rgbGreen := i;
rgbBlue := i;
rgbReserved := 0;
end;
with Image1 do begin
Picture.Bitmap.Width := Width;
Picture.Bitmap.height := Height;
Picture.Bitmap.PixelFormat := pf8bit;
SetDIBColorTable(Picture.Bitmap.Canvas.Handle,0,255,Table);
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
with Image1.Canvas do begin
Pen.Width := 3;
Pen.Color := RGB(80,100,150);
LineTo(100,100);
Pen.Color := RGB(100,200,230);
Brush.Color := RGB(200,100,100);
Ellipse(10,10,170,80);
Pen.Color := RGB(240,250,230);
Brush.Color := RGB(250,120,150);
Rectangle(100,100,150,150);
end;
end;
やはり任意の色指定でもグレースケールにマッチングされるのが
分かる。
0652625
NGNGImage1 の Bitmap に任意の256色ビットマップファイルからの
カラーテーブルを設定する。
function GetNumOfColorTable(Filename:string):integer;
var
FST:TFileStream;
BIH:TBitmapInfoHeader;
begin
FST := TFileStream.Create(FileName,fmOpenRead or fmShareDenyNone);
FST.Position := SizeOf(TBitmapFileHeader);
FST.Read(BIH,SizeOf(BIH));
result := BIH.biClrUsed;
FST.Free;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
BmpFile:string;
BM:TBitmap;
Table: array[0..255] of TRGBQuad;
i,NumColor: Integer;
begin
BmpFile := 'c:\ColorTest.bmp';
BM := TBitmap.Create;
try
BM.LoadFromFile(BmpFile);
if BM.PixelFormat <> pf8bit then begin
ShowMessage('not 256 color!');
exit;
end else begin
NumColor := GetNumOfColorTable(BmpFile);
GetDIBColorTable(BM.Canvas.Handle,0,NumColor-1,Table);
end;
finally
BM.Free;
end;
with Image1 do begin
Picture.Bitmap.Width := Width;
Picture.Bitmap.height := Height;
Picture.Bitmap.PixelFormat := pf8bit;
SetDIBColorTable(Picture.Bitmap.Canvas.Handle,
0,NumColor-1,Table);
end;
end;
0653625
NGNGprocedure TForm1.Button2Click(Sender: TObject);
begin
with Image1.Canvas do begin
Pen.Width := 3;
Pen.Color := RGB(80,100,150);
LineTo(100,100);
Pen.Color := RGB(100,200,230);
Brush.Color := RGB(200,100,100);
Ellipse(10,10,170,80);
Pen.Color := RGB(240,250,230);
Brush.Color := RGB(250,120,150);
Rectangle(100,100,150,150);
end;
end;
やはり任意の色指定でもカラーテーブルのいずれかの色にマッチング
されるのが分かる。
0654635
NGNG要はSJISですよね
WideStringは2バイトのみのUTF-16
>>645
APIで文字列操作ってどういうのでしょ?(スレ違いか・・・)
0655デフォルトの名無しさん
NGNGCharLower, CharLowerBuff, CharNext, CharPrev, CharToOem, CharToOemBuff, CharUpper
CharUpperBuff, CompareString, CompareStringW, ConvertDefaultLocale, EnumCalendarInfo
EnumCalendarInfoProc, EnumCodePagesProc, EnumDateFormats, EnumDateFormatsProc
EnumLocalesProc, EnumSystemCodePages, EnumSystemLocales, EnumTimeFormats
EnumTimeFormatsProc, FoldString, FoldStringW, FormatMessage, GetACP, GetCPInfo
GetCurrencyFormat, GetDateFormat, GetLocaleInfo, GetLocaleInfoW, GetNumberFormat
GetOEMCP, GetStringTypeA, GetStringTypeEx, GetStringTypeW, GetSystemDefaultLangID
GetSystemDefaultLCID, GetThreadLocale, GetTimeFormat, GetUserDefaultLangID,
GetUserDefaultLCID, IsCharAlpha, IsCharAlphaNumeric, IsCharLower, IsCharUpper
IsDBCSLeadByte, IsTextUnicode, IsValidCodePage, IsValidLocale, LCMapString
LCMapStringW, LoadString, lstrcat, lstrcmp, lstrcmpi, lstrcpy, lstrcpyn, lstrlen
MultiByteToWideChar, OemToChar, OemToCharBuff, SetLocaleInfo, SetThreadLocale
WideCharToMultiByte, wsprintf, wvsprintf
0656625
NGNGhttp://www.efg2.com/Lab/
0657625
NGNG256色のビットマップを Image1 の Bitmap にロードして
そのパレットエントリを取得し、それを使って Image2 の
Bitmap にパレットを設定し、パレットエントリを表示する
procedure TForm1.Button1Click(Sender: TObject);
var
PE:array[0..255] of TPaletteEntry;
pLP:PLogPalette;
i,NumPalEntry,x,y:integer;
begin
with Image1 do begin
Picture.Bitmap.LoadFromFile('c:\Windows\花見.bmp');
NumPalEntry := GetPaletteEntries(Picture.Bitmap.Palette,0,255,PE);
end;
Label1.Caption := IntToStr(NumPalEntry);
with Image2 do begin
if NumPalEntry > 0 then begin
Picture.Bitmap.Width := Width;
Picture.Bitmap.Height := Height;
Picture.Bitmap.PixelFormat := pf8bit;
GetMem(pLP,4+SizeOf(TPaletteEntry)*NumPalEntry);
pLP^.palVersion := $300;
pLP^.palNumEntries := NumPalEntry;
for i := 0 to NumPalEntry-1 do
pLP^.palPalEntry[i] := PE[i];
Picture.Bitmap.Palette := CreatePalette(pLP^);
FreeMem(pLP);
for i := 0 to NumPalEntry-1 do begin
Canvas.Brush.Style := bsSolid;
Canvas.Brush.Color := RGB(PE[i].peRed,PE[i].peGreen,PE[i].peBlue);
x := i mod 16;
y := i div 16;
Canvas.FillRect(Rect(x*8+1,y*8+1,x*8+7+1,y*8+7+1));
end;
end;
end;
end;
0658625
NGNG657 で
NumPalEntry := GetPaletteEntries(Picture.Bitmap.Palette,0,255,PE);
のところの 255 を 256 にしてください。
0660デフォルトの名無しさん
NGNGNの集合が、またNと同じような形になって…
というフラクタルはありませんか。いちばん簡単なのは単なる
三角形や四角形だと思うけど…
0661デフォルトの名無しさん
NGNG0662デフォルトの名無しさん
NGNGでも>>660の条件に当てはまるかどうかは微妙。
つか完全には自己相似してないんじゃないか?
(拡大すると似たような形はでてくるが)
数学板で聞いたら?>>660
0663デフォルトの名無しさん
NGNGコッホ曲線 シェルピンスキー なんかで検索するといいでしょう
例:
http://www.tennoji-h.oku.ed.jp/tennoji/suriken/SURIKEN.HTM
0664( ´∀`)
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1005720042&res=1
数列を第6項まで入力すると、第20項までを予測する。
例えば
1 2 3 4 5 6
と入力すると、
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
と表示する。
いまのところ、等差、階差、等比数列に対応。
うまくやれば、階比(?)数列にも対応できると思うのよ。
だけど、なぜか公比 -1 の数列は対処できない…
( ´∀`)ダレカカイゾウシナイカナ
0665Delフサギコ
NGNG〜′,,,,,,,ミ,,゚Д゚彡 < シェルピンシェルピン
UU""" U U \_
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1005721983&res=1
コホー曲線はわかんないYO
0666デフォルトの名無しさん
NGNGレプタイル(rep-tile)も簡単です。
┌─┬─┐
│┌┴┐│←これ系
├┤┌┴┘
│└┤
└─┘
0667デフォルトの名無しさん
NGNGアルゴリズム辞典に載ってたのと変数名が一緒だYO!
0669Delフサギコ
NGNGミ,,゚Д゚彡
ミ⊃ つ
〜ミ ⌒ )
し'´`J
インターシモソさん、おなかをひじ掛けにするのは、チョットどうかと思うの。
http://www.watch.impress.co.jp/pc/docs/article/20011113/bor02.jpg
るろ〜氏と、どっちが………
http://www.watch.impress.co.jp/pc/docs/article/20011113/borland.htm
> 午前10時からの基調講演には、約600名の受講者が参加した。
誰だよ、人少ないとか炒ってたのは!!
というかサクラですか?サクラですか?サクラタンエロ画像キボンですか!?
サクラでも、エロ画像でもいいから、猫も裏口から入れてホシカタ
首に鎖つけるから、ペットとして持ち込んで呉れ
ボーランド、J2EE対応の開発ツールとアプリサーバーを発表
http://biztech.nikkeibp.co.jp/wcs/show/leaf?CID=onair/biztech/comp/154335
ボーランド、『JBuilder 6』『Kylix 2』など次期主力製品群を一斉発表
http://biz.ascii24.com/biz/news/article/2001/11/13/631228-000.html
すべてのプラットフォームを標準技術で統合するボーランド
http://www.zdnet.co.jp/enterprise/0111/13/01111305.html
.∧,,∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
@'"ミ,,゚Д゚ミ < Delフサの某ランド、ちょっと一言コラム
UU''UU \___________
http://www.borland.co.jp/about/column/column01.html
http://www.borland.co.jp/about/column/column02.html
http://www.borland.co.jp/about/column/
http://biz.ascii24.com/biz/news/article/2001/11/13/imageview/images668564.jpg.html
シャチョさん、どんどん太ってないですか。
おいしいもの食べ過ぎてないのですか?
売上増でウハウハで、毎晩毎晩オネーチャンはべらしてませんか?
0670Delチビフサ
NGNGミ ミ < Delフサ
ミ つ \_____
ミ @ ミ
'∪'''∪'
ピキューン + / ̄ ̄ ̄ ̄ ̄
+ ∧,,∧ < 毒舌
ミ,・∀・,ミ \_____
(( ⊂ . つ ))
+ ミ ミ
''とノ'' +
キュピィィィン + / ̄ ̄ ̄ ̄ ̄
∧,,∧ < 死刑
ミ,,・∀・ミ . \_____
ミ つ つ ))
+ ミ ⊂.ミ
''∪''''
0671Delフサギコ
NGNG頒゚Д゚;彡< エェエエ!
,;゙⊃,ジ \_____
〜ミ ,,○
∪
∧,,∧
ミ・∀・,,ミ ウマ!ハチレー!
∧∧⊂,, ミ
ゴラァ ミ゚Д゚;彡∪''''ヽ〜
∪∪'''''''''''UU
ネタでした
ということにしておこう。。。
0672デフォルトの名無しさん
NGNGおぜぜ \65,000 也ですか…… (゚Д゚)ウマー
0673某困
NGNG正直BorCon高い。
今日の最後のセッション1.5hみっちり宣伝だったし(w
0674デフォルトの名無しさん
NGNG0675デフォルトの名無しさん
NGNG杉タンですか?
0676某管
NGNGBorConは某管でOK?
0677Delフサギコ
NGNGミ ゚Д゚彡
〜ミ,,,,uuミ で、KylixのC++版の名前は?
0679デフォルトの名無しさん
NGNG詳しい解説ありがとうございました。STEP3まで試してみて、
これからSTEP4に入ります。
ありがとうございました!
0680デフォルトの名無しさん
NGNGスレ自体が終わりそうなのでここにも書かせていただきます。
誰か教えてください。
> FireBirdにIBXで接続するISAPIアプリケーションを作っています。
> IBDatabaseをひとつのクライアント(WEBブラウザ)
> が開いてしまうと、他のクライアントが開けなくなってしまいます。
> 複数クライアントの同時接続はできないのでしょうか?
> Win2000+Delphi6Pro+IIS5.0です。
よろしくお願いします。
0681625
NGNG追伸です。657 でやっていることは Graphics.pas にある
CopyPalette() 関数を使うと簡単にパレットを同等にできます。
もし、ソースを参照できるようでしたら、この関数の実装コード
は参考になりますので見ることをお薦めします。
しかし、元質問のようにパレットを自前で用意したり、編集可能に
したり、表示したりするには、地道にパレットエントリを取得して
おかなければなりません。
0682デフォルトの名無しさん
NGNG0683デフォルトの名無しさん
NGNGちょっとショックです。
http://itpro.nikkeibp.co.jp/free/NSW/NEWS/20011115/2/
0684680
NGNGhttp://firebird.sourceforge.net/
本当のところはよくわかりませんが無料で使えるDBMSで、
INTERBASEと基本的には同じようなものです。きっと。
DelphiのIBXで接続できますし。
0685デフォルトの名無しさん
NGNGNetscapeとMozillaの関係みたいなものだ。
本題のほうはわからないのだが。すまそ。
0686Delフサギコ
NGNG,,,,,,,,,,,,,∧,,∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′,,,,,,,ミ,,゚Д゚彡 < >>685 俺もどこかで聞いたな。
UU""" U U \_______________
InterBaseのオプソ版が火の鳥なんでしょうか?
>>683
めっさ気体!
インターシモソ輻射長…伊達に太ってないな。ウンウン
0687Delフサギコ
NGNG∧,,∧ /
ミ;゚Д゚彡< なななんか、今確認したらDelphiMLが
ミつ つ \信者獲得大作戦みたいになってる…
〜ミ ,, ミ.  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
∪∪
D6ならTryStrToIntを使うべきでは?>>VBのInNumeric
0688デフォルトの名無しさん
NGNG0689デフォルトの名無しさん
NGNG0690デフォルトの名無しさん
NGNG0691Delフサギコ
NGNG|,,∧
|Д゚彡 ジー (す)ギタンからメール届いたYO
⊂ミ
| ミ
|´
http://www.borland.co.jp/borcon2001/report/
|
|、 サッ
|彡彡 >>690 信者は一人?
|
|
|
0692kala
NGNG消そうかどうか迷っている。Delphi6 Personalが無料で
手に入る今、二世代遅れのProfessional版を持っていて
何かメリットがあるんだろうか。どう思われますか?
0693デフォルトの名無しさん
NGNGPersonal版とProfessional版の違いの方が大きいんじゃない?
趣味でやるだけでDBも使わないというのなら話は別かも知れんけど
0694デフォルトの名無しさん
NGNGどこで生成して破棄したらいいんですか?
それと、動的配列は破棄しなくてもいいんですよね?
0695デフォルトの名無しさん
NGNGユニットのinitialization節とfinalization節。
>それと、動的配列は破棄しなくてもいいんですよね?
基本的に長い文字列と扱いは一緒。
0696デフォルトの名無しさん
NGNGAru jouken o mitasu takakukei wo kaesu kansuu o tukuritai ga
sono takakukei wa nankakukei ni naruka wa wakaranai.
Douteki hairetu o hikisuu ni tori, kansuu nai de
memory o wariatetai.
sikasi, ikano youni suruto dame?
function GetPolygon(var APoints:array of TPoint);
var
...
begin
....
....
SetLength( APoints, ACount );
for i:=0 to ACount-1 do
APoints[i] := ....
end;
0697695
NGNG生成されるようにも作れるよ。実際ScreenやPrinterオブジェクトは
こんな風な書き方で利用者が生成・破棄のタイミングを考えなくても
いいようにしてある。
interface
function MyClass: TMyCLass;
implementation
var
instance: TMyClass;
function MyClass: TMyCLass;
begin
if instance = nil then
instance := TMyClass.Create;
Result := instance;
end
finalization
if instance <> nil then
instance.Free;
0698デフォルトの名無しさん
NGNGfunction GetPolygon(var APoints:TDynamicTPointArray);
begin
…
みたいにする。
0699デフォルトの名無しさん
NGNG0701デフォルトの名無しさん
NGNG0702kala
NGNGなるほど。データベース関連など省かれている機能があるわけね。
腐ってもProfessionalてなわけか。
まあ使うかは分からないけど取っておくとしよう。
Delphi6 Enterpriseが見つかるまで(お
※一部フィクションです。
0703デフォルトの名無しさん
NGNG0704デフォルトの名無しさん
NGNG0706Delフサギコ
NGNG∧,,∧ /せっかくなのでジョウホウ
ミ;゚Д゚彡 < D4からPro版以上にはコードエクスプロラ
,;゙ ミ \ つーのがついてまして、
ミ. ミ 簡単便利にコーヂング可能になります。
/゛゛゛゛
また、"定義の検索"機能であるコードナビゲーションも
かなり便利。(これもPro版だったよね)
おかげで
Pro版じゃないと生きていけない体になってしまいました。
0707Delフサギコ
NGNGミ,,゚Д゚彡 < 保守!
(ミ ミ \____________
〜ミ ミ
∪''∪
ギコBASIC拡張計画
http://pc.2ch.net/test/read.cgi/prog/961558082/
http://www.geocities.co.jp/SiliconValley-Oakland/8522/data/gikob064.lzh
0708デフォルトの名無しさん
NGNGmoji1 moji2 moji3 moji4
aaaa aaaa aaaa aaaa
aaaa aaaa aaaa aaaa
aaaa aaaa aaaa aaaa
aaaa aaaa aaaa aaaa
------------------------------
以降何行続くかはデータにより変わる。
横向き印刷でやりたいのですがどうしたらいいでしょうか?
Orientation := poLandscape;を指定するとプリントアウトされなくなっちゃうんです。
データじたいはメモリ上に持ってます。
Gridに張り付けて印刷しようとか色々考えましたがダメでした。
こうしたら良いよって言うのがあったら教えて下さい。
0709デフォルトの名無しさん
NGNG>Orientation := poLandscape;を指定するとプリントアウトされなくなっちゃうんです。
座標の指定が間違ってません?
単に打つだけならAssignPrnでテキストファイル変数にプリンタを
割り当てれば座標指定が要らないので楽かも。
var
F:TextFile;
begin
Printer.Orientation := poLandscape;
AssignPrn(F);
Rewrite(F);
Writeln(F, P1:4, ' ', P2:4, ' ', P3:4, ' ' P4:4);
CloseFile(F);
0710デフォルトの名無しさん
NGNG無理やり書き換える方法はありませんか。
0711デフォルトの名無しさん
NGNGCreateFileを置換させるDLLを食べさせるか
0712デフォルトの名無しさん
NGNGなに考えてるんだ?
0713デフォルトの名無しさん
NGNGRead(Buff, 3)で3bit読み込んだりしたいんだけど・・・・
0714デフォルトの名無しさん
NGNG0715デフォルトの名無しさん
NGNGそんな方法が仮にあったとして、
今度、自分がファイルをロックしたくなったとき困るよ。
0716デフォルトの名無しさん
NGNGTBitStream = class(TStream)
private
FReadedBit: ShortInt; //Last中何ビット読んだか
FLast: Byte;
FSource: TStream;
public
constructor Create(Source: TStream);
function Read(Buffer, Count); override;
end;
constructor TBitStream.Create;
begin
inherited;
FSource := Source;
FReadedBit := 8;
end;
function TBitStream.Read;
begin
while Count > 0 do
begin
if FReadedBit = 8 then begin FSource.Read(Last, 1); FReadedBit := 0; end;
// FLast and (1 shl FReadedBit) を、(あなたがどういう形で欲しいのかは知らないが)とにかくBufferに書き込む
Inc(FReadedBit);
Dec(Count);
end
end;
0717デフォルトの名無しさん
NGNG標準アクションのTEditCut,TEditCopyなどEditのアクションを
使っているのですが、TCustomEditから継承されたものしか
機能しないとヘルプに載っていました
これをTComboboxでも使用したいのですが、どうすればいいでしょうか
0718713
NGNGレス感謝です。
とりあえず、参考にしながらザクっと一回組んでみます。
0719Delフサギコ
NGNG∧,,∧ / ̄ ̄ ̄ ̄ ̄
ミ,,゚Д゚彡< >>717 これ使うといいんじゃない?
./つ=|||| \_____
〜ミ \_/
0720ure
NGNGhttp://www.delphi-jedi.org/DelphiGraphics/jedi-index.htm
ここのDirectShowの動画キャプチャのサンプル(TCapture)が動かないんです。
これが使えれば自分好みの「TVを見るプログラム」が作れるなと。
DirectShowだとwmvで録画も出来そうだしさ。
Delphi6でやってます。どなたか動作した方いらっしゃいますか?
http://www.delphi-jedi.org/ってなんかすごぞう。
Indyもここのサブプロジェクトみたいだし。
0721茶碗
NGNG色んなページのTipsなどを見ながら勉強する毎日ですが悩んでいます。
他アプリのChildのSysListView32 classのリスト文字列を取得したいのです。
今はこんな感じでやってますがだめです。
SendMessage(WND,WM_GETTEXT,256,longint(pch1));
// WND はSysListView32のハンドルです。
何か良い方法は無いものでしょうか。
0722デフォルトの名無しさん
NGNGいろいろ面倒なんだよね。
OSはなに?
0723茶碗
NGNGありがとうございます。
OSはWinMeです。
かなり面倒なのでしょうか。
今からGoogleで検索してみます。
参考になる所をご存知でしたら教えてください。
0724デフォルトの名無しさん
NGNG基本的には、CreateFileMapping(INVALID_HANDLE_VALUE,...
で共有メモリを作って、SendMessageで渡す構造体は(文字バッファも)
共有メモリ上において置くってかんじかなあ。
0725茶碗
NGNGありがとうございます。
難しいですね。むーん
0726デフォルトの名無しさん
NGNGいつの日か,日本にも Jedi のような真の Delphi User Group が育つ日を夢みつ…
0727デフォルトの名無しさん
NGNGセクタ直接書き込みとかできないの?
0728ure
NGNG自分好みのテレビソフト作りたくない?
0729デフォルトの名無しさん
NGNGどうもありがとうございます
これでコンボボックスの切り取り貼り付けも出来そうです。
0730デフォルトの名無しさん
NGNG作りたくない。
ソースが付いているのよね?
なら、デバッグ可能でな?
0731ure
NGNGソース追いかけるとCPUウインドとかに入ってAccessViolationする。
俺の環境が悪いのかなとおもってどうなのかなって。
0732デフォルトの名無しさん
NGNGたくさんだしたり消したりってどうすればできるんでしょうか?
TImageを実行中につくれればできるのかな、と素人考えしています。
0733デフォルトの名無しさん
NGNG2、リストしたキャラクターの数分だけ、画面に描画
でOK。
実際には、データは構造体でもクラスでもいいし、リストは動的配列でもTListでもいい。
描画は、あらかじめ設計時にTImageに貼り付けておいた画像から転送してもいいし、
もちろん、実行時にTImageに読み込んで転送してもいい。
さらにゲームよりの話ならこちらの方がいいかも↓
http://game.2ch.net/test/read.cgi/gamedev/1005038203/
0734デフォルトの名無しさん
NGNGなんとなくイメージがわいてきました。
ありがとうございます。
そっちの板だと板違いカエレとかいわれそうでしたので……。
0735デフォルトの名無しさん
NGNG0736Delフサギコ
NGNG∧,,∧ / Delphiソース文字列からコメントを削除する関数つくったけど
ミ,,゚Д゚彡< どうも、リファクタリングがうまくいかないので
ミつ つ \ もっとエレガントに書けないものかな?
〜ミ ミ.  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
U U
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1006076016
>>734
いいんじゃないっすか。ブロック崩しスレも結構面白いし。
フサも学びたいっす。
0737デフォルトの名無しさん
NGNG複数行にまたがるコメントのこと,考えた?
0739Delフサギコ
NGNG〜′,,,,,,,ミ,,゚Д゚彡 < D6Personalでパッチはあてました?
UU""" U U \_______________
,,,,,,,,,,,,,∧,,∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′,,,,,,,ミ,,゚Д゚彡 < >>729 TComboBoxではProtectedで
UU""" U U \EditHandleが存在するので、それを継承して可視して
メッセージを投げてもCut&Paste&Undoなどが出来ます
∧,,∧,,,,,,,,,,,,,,, / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ミ゚Д゚,,彡,,,,,,,,,,,,ヾ〜 < やっと二日酔いから脱したぞぅ
U U """"UU \_
0740デフォルトの名無しさん
NGNGざっとリファクタリングして書き込んでみたよ。
test code信用してパス確認しただけ。
0741名無しの初心者
NGNG0742740
NGNG文字列も消してしまうものにしてしまった。すり抜けてる。
0743デフォルトの名無しさん
NGNG熱意があれば十分
0744Delフサギコ
NGNG,,,,,,,,,,,,,∧,,∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′,,,,,,,ミ,,゚Д゚彡 < >>742ん??
UU""" U U \_______________
Preタグで投稿すると改行がコピーできない...
0745740
NGNG0748Delフサギコ
NGNG〜′,,,,,,,ミ,,゚Д゚彡 < >>745、センキューセンキューセンキュスコ!
UU""" U U \_______________
コード書くのお早いですね〜
>>747
意味がちょっとわかんないです。
コピペしたらそのまま動作するのがいいな。
AAも綺麗に表示されるともっといいな
0749名無しの初心者
NGNG0750740
NGNGtest firstでやってるとテストを通れば完成なので、コード書くのは速くなる。
そのかわりテストをきちんと書かないと今回みたいな羽目になるので
仕様をきっちりtestできるようにしないとね。
ほかにも(テストしていない)曖昧な仕様としては
閉じていないコメントを残すのか消すのかってのがあるね。
とりあえず消すほうで書いたけど、あくまでも未定義動作だな。
テストを書いて明文化したいね。
0751デフォルトの名無しさん
NGNGSetWindowPos( Handle, HWND_TOPMOST , 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE );
のちょうど逆のような。
0752デフォルトの名無しさん
NGNGHWND_BOTTOM
0753デフォルトの名無しさん
NGNGたとえウィンドウがアクティブになっても
BOTTOMでいてほしいのです
0754デフォルトの名無しさん
NGNGアクチブになる時にBOTTOMにすればいいじゃん
0755デフォルトの名無しさん
NGNGいいんでしょうか?Indyとかのコンポーネントは使わないで。
Monazilla見たんですが、WinInet使った方法は書いてないみたいです。
Delphi4 pro + Win2k
0756755
NGNG/bbs.cgi? の後ろにbbs= &key= みたいにくっつけたアドレスを送ればいいんでしょうか?
0757デフォルトの名無しさん
NGNG0758デフォルトの名無しさん
NGNGAV出る前からトレース。
0759ure
NGNG追い詰めたんだけどわかんないよー
0760デフォルトの名無しさん
NGNG0761ure
NGNG710: if FWantPreview then begin
711: BuildPreviewGraph;
712: StartPreview;
713: end;
FWantPreviewを読むところでCPUウインドに入ってしばらくすすむと
「同時に複数の例外が発生しました」でとまる。
0762デフォルトの名無しさん
NGNGFWantPreviewは Boolean型のフィールドだから、、、
ん〜、エクスプローラーから実行したらどぉなるの?
0763ure
NGNGなにも起こらずにプログラム終了。
エラーダイアログもでない。
0764デフォルトの名無しさん
NGNG0765デフォルトの名無しさん
NGNG>ウィンドウを常に再背面にする命令はありませんか。
http://nt.sakura.ne.jp/~miwaki/progtips/wndpos/alwaysbackground.shtml
Delphi でもテスト済みです。
0766デフォルトの名無しさん
NGNG遊びのレシピ
0767ure
NGNGDirectX8を入れた2000とXPでやったけど同じとこで駄目。
0768デフォルトの名無しさん
NGNGカメラは Logitech/Logicool QUickCAM-express.
プログラムを IDE から動かすと、4-5 回 Break がかかるけど無視して先に進めば
動き出すよ。
0769ure
NGNGwww.microsoft.com/japan/directx/
DirectX 8.1 は Windows XP に含まれていますので、
Windows XP のユーザーは DirectX 8.1
をダウンロードする必要はありません。
ってかいてあるけども?
0770デフォルトの名無しさん
NGNGきにせんといてくれ。
0771デフォルトの名無しさん
NGNG0772Delフサギコ
NGNGなるべくfirstでしたいのですが
ついついいいかげんになって途中で、煮詰まってからtestを書くこともあります。
ちゃんとFirstでやらないと。
XPの流れですかね。すごい優れたコーディング技法っすね。
>とりあえず消すほうで書いたけど、あくまでも未定義動作だな。
>テストを書いて明文化したいね。
おっしゃるとおりです。
test外の動作では頭の中では考えていたんだけど、ちゃんとテストしないと
いけませんね。
_________
∧,,∧ /
ミ,,゚Д゚彡< XPバンザイニャ
ミつ つ \
〜ミ ミ.  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
U U
>ウィンドウを常に再背面
って不思議な仕様ですね。
それにしても、JBのUML化とUnitテスト統合が
エンプラ版だけってのは納得がいかんです…
DelではPro版にも乗っけてほしいな。
0773デフォルトの名無しさん
NGNG変わりにDEL5で作業を続けているのですが、以前DEL6で保存するときに
レジストリ弄るのを忘れたため、dfm のテキストが全て異なる
文字セットで記録されています。これを一括変換したいのですが、
どのようなアルゴリズムで変換できますか?
0774OK
NGNGこれあげる。汚いけど動いてはいる。レジストリで解決できるようになってお蔵入りした奴。
もとのソースをTStringsに読んで、各行をこの関数で変換し、
別のファイルに書き出して。
間違っても元のファイルを上書きして破壊したりしないように!
function Del6DfmToDel5Dfm(const S: string):string;
type
TParseStatus = (psNormal, psQuote, psEndQuote, psUtf, psEndUtf);
var
Pos, Len: integer;
Status: TParseStatus;
c: Char;
N: integer;
Num: string;
begin
Pos := 1;
Len := Length(S);
Status := psNormal;
Result := '';
while(Pos <= Len) do begin
c := S[Pos];
case Status of
psNormal: // Intial state
case c of
'''': begin
Result := Result + c;
Status := psQuote;
end;
'#' : begin
Result := Result + '''';
Status := psUtf;
end;
else
Result := Result + c;
end;
psQuote: // Quotation started with <'>
while (Pos <= Len) do begin
c := S[Pos];
if c = '''' then begin
Status := psEndQuote;
break;
end else
Result := Result + c;
Inc(Pos);
end;
0775つづき
NGNGcase c of
'''': Status := psQuote;
'#' : Status := psUtf;
else begin
Result := Result + '''' + c;
Status := psNormal;
end;
end;
psUtf: begin // Utf string started with <#>
N := 0;
Num := '';
while (Pos <= Len) do begin
c := S[Pos];
if IsNumeric(c) then begin
N := (N * 10) + (Byte(c) - Byte('0'));
Num := Num + c;
end else if c = '#' then
break
else if c = '''' then begin
Status := psQuote;
break;
end else begin
Status := psEndUtf;
break;
end;
Inc(Pos);
if (Pos > Len) then
Status := psEndUtf;
end;
if N < 128 then begin
Result := Result + '''#' + Num + '''';
end else
Result := Result +WideChar(N);
if (Status = psEndUtf) then
Dec(Pos);
end;
psEndQuote: // End of quotation
case c of
'''': Status := psQuote;
'#' : Status := psUtf;
else begin
Result := Result + '''' + c;
Status := psNormal;
end;
end;
end;
Inc(Pos);
end;
if Status in [psEndQuote, psEndUtf] then
Result := Result + '''';
end;
0776デフォルトの名無しさん
NGNG早速やってみます
ところで IsNumeric は「引数が整数表現かどうかを判定する関数」
でいいんですよね。
0777ure
NGNGwww.kuroutoshikou.com/products/tvcuner/bt878a.html
でもプログラムがとまるところはdirectxに関係なさそう
なんだよね。。。
0778デフォルトの名無しさん
NGNGプログラムが止まる所より前で問題が発生しているのでしょう。
どこまでわかるか不明だが、
エクスプローラーから実行時、ファイルにログを書きながら、どこまで実行されたか調べるとか。
ソースをコメントアウトしていくとか。
あと、DirectXに自己チェックツールついていませんでしたか?
0779デフォルトの名無しさん
NGNG乗りかかった船。
画像アップ版の存在は知っているよね?
ソースを「追わないで」IDE の中から Run して落ちた時の
画面コピーとかどこかにアップできませんか?
CPU ペーンの状態をみてみたい。
あと,Call Stack / 呼び出し履歴も。
チェック OS は W2K を希望。
0780ure
NGNGありがとう。
とりあえずキャプチャした。
ソースを「追わないで」IDE の中から Run して落ちた時
http://ure.s5.xrea.com/capture/accessviolation.png
そのときの呼び出し履歴とスレッド
http://ure.s5.xrea.com/capture/yobidashithread.png
ちなみにamcap.exeというdirectxのサンプルは正常に動きます。
0781デフォルトの名無しさん
NGNGWindows Media Playerのバージョンは?
0782デフォルトの名無しさん
NGNG0000 で 0000 の Read エラーか。予想しているより追いづらいエラーですね。
この状態で,CPU ペーンをアドレス 77F8F45C に移動するとどうなるか。
それと,ソースが全部あるのだからを
- コンパイラ - コード生成 - スタックフレームの作成
- デバッグ - デバッグ版 DCU を使う
を有効にしてもう一度。
0783ure
NGNG0784ure
NGNGhttp://ure.s5.xrea.com/capture/77F8F45C.png
スタックフレームとデバッグDCUをONにした図。
http://ure.s5.xrea.com/capture/debug.png
このばあいも0000の位置だったから77F8F45Cに移動しました。
0785デフォルトの名無しさん
NGNG点の数が多くなると誤った答えが出てしまいます。
たすけてください。
ソースは以下の場所に置きました。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1006237724&rm=100
テスト用ソースもつけてあります。
私のプログラムでは点が 400 個を超えたあたりから
誤った解答が多く見られるようになるのです。
どうすれば改善できるでしょうか。
おねがいです。
凸包とは、以下の条件を満たす多角形の事です。
前提: 平面上にn個の点がある
条件:
1.全ての点が内側に存在する(「内側」には多角形の境界上を含む)
2.頂点には必ず点が存在する(つまり、点を結んでできる多角形)
3.凸型多角形である
これはつまり、板に打ちつけた釘の集合に輪ゴムを巻きつけたときにできる形です。
0786デフォルトの名無しさん
NGNGあぁ。デバッグ情報こみこみで、呼び出し履歴を見たい。
見ればわかると思うけど、ECX の値に間接ジャンプしているだが、ECX が0.
どこかで、関数ポインタに NIL/NULL/0 の値が入っていて、それをチェックしていないのだ。
0787デフォルトの名無しさん
NGNGRtlUnwind に関連した内部コードだな。
0788デフォルトの名無しさん
NGNGカレントスタックポイントを表す緑矢印が画面の一番下になるところまで
スクロール。
...あまりアセンブラデバッグしたこと無いでしょ > ure
ま、これも経験ということで。
落ちているアドレスはあまりよくないところなので、原因解明の
期待はあまり持たないでください。
0789ure
NGNGよろしければ解説もしていただけるとうれしいです。
CPUウインドウの見方とか。解説ページのポインタでもいいです。
またキャプチャします。
0790ure
NGNGスタックペインを広げた図。
http://ure.s5.xrea.com/capture/dump0.png
逆アセンブルペインをどんどん戻った図
http://ure.s5.xrea.com/capture/dump1.png
http://ure.s5.xrea.com/capture/dump2.png
http://ure.s5.xrea.com/capture/dump3.png
おねがいします。
俺がコンパイルしたバイナリをちゃんと動いた環境の人が使ったらどうなるんだろう。とおもった。
0791デフォルトの名無しさん
NGNG0792デフォルトの名無しさん
NGNG1. 使っているのは Personal ですか?
2. DxCapture.pas l.82 あたりの DVSizeName の定数定義に日本語環境では
正しく処理できない文字が入っていますから,以下のコードに変更。
const
DVSizeName: array [TDVSize] of string =
(
#$CD#$E5#$20#$E8#$EC#$E5#$E5#$F2#$20#$E7#$ED#$E0#$F7#$E5#$ED#$E8#$FF,
#$CF#$EE#$EB#$ED#$FB#$E9#$20#$F0#$E0#$E7#$EC#$E5#$F0,
#$CF#$EE#$EB#$EE#$E2#$E8#$ED#$E0,
#$D7#$E5#$F2#$E2#$E5#$F0#$F2#$FC,
#$31#$2F#$38#$20#$E8#$F1#$F5#$EE#$E4#$ED#$EE#$E3#$EE
);
3. DXCapture.pas l.437 あたりの FreeMediaType の FreeMediaType を
コメントアウト。
こんな感じに。
procedure FreeMediaType(mt: TAM_MEDIA_TYPE);
begin
if mt.cbFormat <> 0 then begin
// CoTaskMemFree(mt.pbFormat); { TODO -cMust undo : Test }
// Strictly unnecessary but tidier
mt.cbFormat:= 0;
mt.pbFormat:= nil;
end;
mt.pUnk:= nil;
end;
これで動作に変化があるか?
0793デフォルトの名無しさん
NGNGいまはもうひとつファイルストリームつくって移してるんですが遅いです。
0794Delフサギコ
NGNG∧,,∧ /
ミ;゚Д゚彡< みんなさん、すごすぎ
ミつ つ \ ・・・・・・
〜ミ ミ.  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
U U あめ猫さまカムバックー
>>773-775
ソースアプ板を使っては?
あと、こんなんもあるみたいですが。
http://homepage1.nifty.com/wizman/app/bt5/index.html
0795デフォルトの名無しさん
NGNG0796デフォルトの名無しさん
NGNGDelフサギコ = Wizman 説があったが、まさか。
>>795
まぎれているとして?どうよ?
0797デフォルトの名無しさん
NGNG意味がいまいち分からん…
不要のなるのはどの部分?
末尾…………話は簡単。TFileStreamのプロパチィよくみてみ。
先頭や中間…面倒。てか漏れも効率的なカット/インサートの方法知りたい。
0798793です
NGNG不特定の場合の処理を速くしたいんです
0799ure
NGNGパーソナル版です。
文字列を直し、コメントアウトして実行しました。
http://ure.s5.xrea.com/capture/commentout.png
あんまり変わってないように見えます。
問題の行にブレークポイントを設定してストップした後トレース実行した図。
http://ure.s5.xrea.com/capture/accessviolation2.png
なにがおこってるのかさっぱり。
0800デフォルトの名無しさん
NGNG「記号摂動法」を使ってみるとか。
誤差の原因が違うところにあるのなら駄目だけど。
って適当なこと書いてますな。すまん。
0801デフォルトの名無しさん
NGNGってまんまやってくれるプログラムを見つけてしまった。
FORTRANだけど(w
参考になれば。
http://www.simplex.t.u-tokyo.ac.jp/~sugihara/opensoft/opensoft.html
0802ure
NGNGこの行でbreakしてselfを監視式で見るとnilになってます。
直前のInitCapFiltersの呼び出し前はnilでは無いです。
InitCapFiltersに入ってそのfunctionの最後までnilではないのですが
帰ってくるとnilになってます。
0803デフォルトの名無しさん
NGNG少し変化が出ることを期待したのですが。
ちと説明。
最後に落ちていることの直接の原因は、アドレス 0 から実行しようとしたため。
アドレス0は読み書き禁止状態になっているので「アドレス0で0を読もうとしてエラー」
がおきました。これは 77F8F45A の CALL ECX が引き金で、確かに ECX は0だ。
ここは NTDLL の RtlUnwind のルーチンで、NT の構造化例外を処理する部分。
それがこけている。
おそらく例外処理中に別の障害が発生しているんでしょう。
ところで。
「Delphi6 Personal 日本語版」であれば、例外発生時のメッセージは
"access violation at ..." ではなく「アドレス ... で読み込み違反が起きました」
って日本語のメッセージが出るはずなんだが、もしかして英語版を混ぜている?
コンポーネントパレットの微妙な部分がいつも隠れているのも、ちーと気になる。
0804ure
NGNG0805ure
NGNGちゃんとうごいた!!
0806デフォルトの名無しさん
NGNG0807デフォルトの名無しさん
NGNGファイルは何でもアリで?
0808デフォルトの名無しさん
NGNGFAT書き換え。
0809785
NGNGどうもありがとうございます… って
ごめんなさい、解読できません…
記号摂動法とはどういうものなのですか?
0810800
NGNGコンピューターで図形処理をするときの誤差を無くす方法なんすけどね。
ちょうど凸包求める問題とかやったんだけどなあ。。。
思い出せたら書きます。
ちなみに記号摂動法に関する本は検索すると出てきます。
0811デフォルトの名無しさん
NGNG0812Delあめ猫にゃ
NGNG今時間無いからゴメン。
前に凸包やった時は
1) 4方・八方のmax min 点を探す=x , yと(±x±x)の最大最小を探して
初期包とする
2)初期包の重心を求める C点
3)残った全部の点に対してC点からの方向を求め
その方向が包の収まるべき位置を探して、その角度方向に
左右の2点より凸なら包に挿入
包のデータに座標の他にc点から見た角度を持たせて、
角度でソートすると考えれば、 検索するのが高速に
0813Delあめ猫にゃ
NGNG0814デフォルトの名無しさん
NGNG0815デフォルトの名無しさん
NGNG0816デフォルトの名無しさん
NGNGOnCustomDrawItem イベントと OnCustomDrawSubItem イベントで出来る
・注意点
リストビューのCanvasに直接色を塗ったり書いたりしないで、
フォントのColorプロパティや、Brushの色を変更すること
0817793です
NGNGジョークだと思いますがFATの書き換えはだめです
0819デフォルトの名無しさん
NGNGPARADOXver7って、Windows2000(もしくはXP)上で動作するのでしょうか。
Delphiにもデータベースデスクトップが付属していたと思うのですが、
正常に動作しますでしょうか。
どなたか情報をください。よろしくお願いいたします。
0820デフォルトの名無しさん
NGNG自分でインストールしてみたら。
動かんかったら諦めるしかないな。
Paradox ってたしか Corel にうっぱらったから
Corel が面倒みてくれるかもしれんが。
ところで俺もParadox7昔使って ObjectPAL でアプリ作ってたけど
ランタイムとか必要で自由に配布できないしいろいろ面倒だったから
Delphi に乗り換えたけど、やっぱ Delphi でDBアプリ組んだ方がいいよ。
BDE 使えば Paradox で作ったテーブルにアクセスできるよ。
0821デフォルトの名無しさん
NGNG自己管理のFAT作ればどうでしょう?
0822デフォルトの名無しさん
NGNG動作するよ。一ヶ所変になるけど対応可能。
0823デフォルトの名無しさん
NGNGOnChangeイベントで可能。
ただし、このイベントは、Selectedなどのプロパティが変化したときにも
発生します。しかも、イベントハンドラに渡される情報だけでは、
どのプロパティが変わったのか判定できません。以前の状態と
比較するとかして、自分で調べる必要があります。
0824819
NGNG事情がございまして、なかなか試すわけにもいかなかったりします。
単にDBのメンテの場合、アプリ作るほど大袈裟なのも・・・。
>>822
すみませんが、変になる個所と対応方法を教えてもらえないでしょうか。
お忙しいとは思いますが何卒よろしくお願いします。
googleとかだともうPARADOXの情報ってエロゲー(なのかな)情報で、
あるいは通販の昔のページとか、サイト制作者の過去の実績だったりとか
探しきれなくて。
0825Delフサギコ
NGNG\,,,,ミ,,゚Д゚彡 < さいきんは画面を見せて質問が
⊂,,,,,,,,,つつ. \ 流行ですか?
WinXPみたい。
なんか、近頃忙しくて....
0826ななしヘタぐらま ◆B18Bks.Y
NGNG移すときのバッファを大きくすれば多少速くなると思います.
1メガバイトくらい取ってみてはいかがでしょうかっ.
(扱っているファイルがデカイので一瞬で終了!とかは期待しないで下さい(笑))
0827デフォルトの名無しさん
NGNGすべては自己責任。
確かに今は Corel の持ち物。parardox 10 も出ているし。
https://iw.nifty.com/iw/nifty/fcorel/mes/9/2794.html
Win2Kで7Jを使う
W2K の CD-ROM の \SUPPORT\TOOLS にあるリソースキットをインストール
すると Application Compatibility Tool がインストールされます。
それで PDOXWIN32.exe に対し NT4 SP5 で動くよう指示を出せば、ちょっと
変な動きをしますがボタンが見えるようになります。
-------------
XP だと最初から,「互換性」タブが exe のプロパティにあるから
そこに NT4 SP5 を指定すればよい。
0828デフォルトの名無しさん
NGNG0829デフォルトの名無しさん
NGNG実行するたびにWindows Installerが起動しちゃいます。
これは、トライアル版の仕様なのかな?
0830デフォルトの名無しさん
NGNGどっかで見たよ。その話。Nifty か?
Windows Installer が古いとそうなるらしい。
再インストールすると直るらしい。
0831デフォルトの名無しさん
NGNGhttps://iw.nifty.com/iw/nifty/fdelphi/mes/18/16316.html
RE:Del6の初回表示ダイアログ
再度、Windows2000(Sp2)でDel6を再installしました。
やはり、結果は変わらずダイアログが表示されます。
Del6ディレクトリのreadme.rtfに記載されている自動修復機能が気にかかります。
・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・
Windows 2000 およびそれ以降 (Windows XP を含む) では,Microsoft Installer
サービスは,常にアプリケーションを監視して破損があれば修復を行う自動修復機能
を提供します。
これを実現する 1 つの方法は,アプリケーションがインストールされたディレクトリ
構造を監視する方法です。Delphi によってインストールされたディレクトリを
削除したりその名前を変更すると,Microsoft Installer はその変更を検出し,
なくなったディレクトリの復元を警告を出さずに試みます。
自動修復機能が知らないうちに実行されることを防ぐには,インストール済みの
Delphi のディレクトリを手動で削除したりその名前を変更してはいけません。
機能を追加または削除する場合は,必ずインストーラアプリケーションを
使用してください。
・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・
OSを変更して再度installしてみるつもりです。
0832829
NGNGレスありがとうございます!
Windows Installerの最新版(2.0)をインストールしてみましたが、
一度目の起動で必ず、Windows Installerが起動されてしまいます。
OSがW2Kなので、>>831さんの説明と同じような理由かな。
そういえば、Personal版インストールしている状態で、
Enter版Trialを一緒にインストールしたら、
なぜかアプリケーションの追加と削除が起動してしまったのが
関係あるかもしれませんね。変な風にアンインストールされてしまったとか。
0833デフォルトの名無しさん
NGNGそれだよ。原因は。
いったん全部アンインストールしてから再インストールしなさい。
0834785
NGNG言われてみれば確かにそうですね。
ご指摘ありがとうございました。改善します。
記号摂動法は一応検索したのですが、なにやら
難しい文献しか引っかからなかったもので…
そういえば、メールエンコード方式(?)で
テキスト化された状態の、ZIP圧縮されたサンプルファイル
があったのですが、WINではどのようにバイナリ化すれば
よいのでしょう。プログラム作ったほうが早いですかね。
#ちなみに、「既に記録済みの頂点は選択しない」という条件を
#入れたら誤回答が少なくなりました。
0835785
NGNG自分で言うのもなんなんですが、よくあのソースコード見ただけで
問題点分かりましたね。コメントつけていたとはいえ、
分かりにくいかと心配していたのですが。
さすがに本職はちがう…
0836793です
NGNG・ストリームでゴリゴリ
・バラして1つ1つファイルにする
・データベーステーブル使う
今回ストリームで行ったわけなんですが、おかげさまでまあなんとかできそうですけど
もっとイイ!方法はあるのでしょうか?
0837793です
NGNG・不特定サイズのデータがいっぱい連なったファイル
・途中のデータを任意に破棄できて、ちゃんとサイズもちぢむ
・データの追加ももちろんできる
0838デフォルトの名無しさん
NGNG0839デフォルトの名無しさん
NGNG特にデメリットが思いつかなければこれにする
0840740
NGNG0841デフォルトの名無しさん
NGNGチェーン情報とインデックス作って、空いた穴に末尾のファイルを埋め直してやれっつうの
0842>841
NGNG0843793
NGNG>チェーン情報とインデックス作って、空いた穴に末尾のファイルを埋め直してやれっつうの
ああそういう事ね、わかったYO。
0845デフォルトの名無しさん
NGNGデフラグとスキャンディスクもちゃんと作れよ(藁
0846793
NGNGここに気がつかなかったです
どうもでした
0847デフォルトの名無しさん
NGNG0848793
NGNGクラスタサイズを小さくすればいいのでは
0849test,test,test,test
NGNG思っているんだけど、どう?
古いC++コンパイラー(C++5.0Jとか古いソフトがパック
になってるやつ)で15000円なんだけど。
とりあえず勉強用に使うんだけど。
0850デフォルトの名無しさん
NGNG商品があるがままの状態で収録されてるらしいから気を付けてね。
ほとんどDOS時代のフリーソフトのような感じだろう。
0851847
NGNG793さんは頭がいいですね。
0852デフォルトの名無しさん
NGNG古いコンパイラーは仕様が古いから、、、
0853>849
NGNGとにかく言語仕様や開発環境が古すぎる。
GUIに興味がなければVCかCygwinのgcc+gdbが良いかも。
0854デフォルトの名無しさん
NGNGその辺は適時ガベージ処理でも走らせればいいんじゃない?
チェーン情報で、次クラスタ以外へのジャンプフラグの発生個数メモっとけば
0855デフォルトの名無しさん
NGNGほかの方と同意見。C として使う。とか、DOS プログラムをしたい。
という理由がない限りは選ぶべきではない。
Borland C++ 5.0J は 1996/8 発売だけど ANSI C++ の仕様が制定されたのは
1998/9 だよ。
0857デフォルトの名無しさん
NGNGもうちょっと追い込みたいんだけどね。
最初はソース単位で最適化の ON/OFF {$O-} ディレクテイブを使う。
差のあるソースが見つかったら大きく半分ずつ {$O-} と {$O+} を入れていって
だいたいの場所を突き止める。っと。
0858デフォルトの名無しさん
NGNG5 Learning→6 professional が約4万か
5買ってアップグレードした方が安いんだなぁ
12/18締め切りか・・・もうちょっと悩もう。
あぁそういや、5PRO → 6PRO のアップグレードの値段っていくらでした?どなたか。
0859デフォルトの名無しさん
NGNGあれってどうやってるの?
0860デフォルトの名無しさん
NGNG税込み25,200円です。
0861百合毛羅ー
NGNGパスカルなんて知らねーよ。
0862デフォルトの名無しさん
NGNG食べる前に水で洗うやつです。
0863デフォルトの名無しさん
NGNGと
VC++(C言語知ってる)
を比べたらどうなんだろうね。
Delphi(Pascal知らない、Cは知ってる)
なら全然問題なくDelphiもできるとおもうけど。
VCLとかほかのコンポーネント、情報の豊富さか、ああ、ガイシュツ!
ボーランドのマニュアルはあんまよくないけど。
あ、MSのツールからDelphiに移ろうとしたひとはマニュアルの悪さで
つまづかされてるのかも。
0864デフォルトの名無しさん
NGNGC→C++よりも、C→ObjectPascal→C++のが移行しやすいyp!
0865デフォルトの名無しさん
NGNG0866デフォルトの名無しさん
NGNG大昔、そういう言語があったんだよ。
マンモスうれp!
0867Delフサギコ
NGNGミ;゚Д゚彡< マンモスうれPって.............
ミ つ目(ミ . \_______________
〜ミ,,O,,,,,,つ
ところで、自分の特殊フォルダ
C:\Documents and Settings\FusaFusa\スタート メニュー\プログラム
を得る方法はレジ(Software\MicroSoft\Windows\CurrentVersion\Explorer)や
Shell(SHGetSpecialFolderPath)を使ってできるのですが
C:\Documents and Settings\All Users\スタート メニュー\プログラム
こういうAllUsersの特殊フォルダを得るのは
レジやShellでどのようにすればいいのでしょうか?
0868デフォルトの名無しさん
NGNGhttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/Shell/Functions/CSIDL.asp
0869Delフサギコ
NGNG,,,,,,,,,,,,,∧,,∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′,,,,,,,ミ,,゚Д゚彡 < >>868さん、ありがと
UU""" U U \_______________
0870Delあめ猫にゃ
NGNGあと、ArcTan2を何度も使ってるけど、上のdx,dyとしたのdx,dyを別の変数名にして
例えば
sDx :=(aDx*LDx+aDy*LDy) ;
sDy :=(aDy*LDx-aDx*LDy) ;
SubAngle:=ArcTan2( sDy, sDx );
とやる方がいいし、 もっというと
,sDx,sDyから領域を4つに別けて判断するのが普通だよ
0871デフォルトの名無しさん
NGNGsDx :=(aDx*LDx+aDy*LDy) ;
sDy :=(aDy*LDx-aDx*LDy) ;
SubAngle:=ArcTan2( sDy, sDx );
これって、成分(aDx, aDy)のベクトルと
成分(LDx,LDy)のベクトルの偏角を求めるときの
手段なんですか?
あと、4つに分けて判断とは
どういうことでしょうか。
0872Delあめ猫にゃ
NGNGそう常套手段ね。元のベクトルで片方を逆転する。
すると、元のベクトルの方向に向いた場合にどっちを向くかが判定出来る
4つに別けて判断は、正負で4象に別けて 必要なの前方右だけだから
sDx :=(aDx*LDx+aDy*LDy) ;
sDy :=(aDy*LDx-aDx*LDy) ;
if sDy <0 then continue;
if sDx <0 then continue;
sDy:=sDy/hypot(sDy,sDx); // ArcTan2で求めた角度でもいいけどこっちが速い
if sDy <= LastError then
begin
LastError := sDy;
Result := APoints[i];
end;
と飛ばしてしまえば、ArcTanやhypotを計算する回数が減るでしょ?
この方法だと、1個もデータが無い場合がありえるから、そういう場合はループ終了
0873Delあめ猫にゃ
NGNGxは負を許さないと 細長い鋭角な場合にダメだ
という事で上の後半はダメダメ。りArcTan2は必要みたい
0874デフォルトの名無しさん
NGNG0875デフォルトの名無しさん
NGNG0876Delフサギコ
NGNG,,,,,,,,,,,,,∧,,∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′,,,,,,,ミ,,゚Д゚彡 < 10倍|1/10してRoundOffという手もあるけど
UU""" U U \小数点以下ならFormatがよろしいかと。
procedure Check(S1, S2: String); overload;
begin
if S1 <> S2 then
ShowMessage('×');
end;
procedure testFormatFloat;
begin
Check('1', Format('%.0f', [1.4]));
Check('2', Format('%.0f', [1.5]));
Check('1', Format('%.0f', [1.49]));
Check('2', Format('%.0f', [1.50]));
Check('1.5', Format('%.1f', [1.49]));
Check('1.5', Format('%.1f', [1.50]));
Check('1.5', Format('%.1f', [1.45]));
Check('1.5', Format('%.1f', [1.54]));
Check('1.4', Format('%.1f', [1.44]));
Check('1.6', Format('%.1f', [1.55]));
Check('1.0001', Format('%.4f', [1.00005000]));
Check('1.0000', Format('%.4f', [1.00004999]));
Check('1.000', Format('%.3f', [1.00005000]));
Check('1.000', Format('%.3f', [1.00004999]));
end;
0877デフォルトの名無しさん
NGNGx := StrToFloat( Format('%.2f', [x] ) );
0878茶碗
NGNGDelphi6 Personal でしたが
データベースと言う物をやってみたくて今日Pro版を買いました。
こんな高いソフト買ったの初めて・・・
データベースに関する知識が全く無くて、これから
勉強しようと思うのですが、過去ログに出ていた
Paradox とか色々あるらしいですが、それらを
使用するのにまた何か購入する必要があるのでしょうか。
予想外の出費に経済危機状態なので心配です。
安く上げる方法を教えてください。
0879デフォルトの名無しさん
NGNGODBC経由で繋げられる。
0880茶碗
NGNG>>879
レスありがとうございます。
PostgreSQL 検索してみます。
標準的なSQLやODBCなど言われてもまだ全く解らない状態ですが
頑張ってみようと思います。
今日ついでにDelphiでデータベースをやる参考書を
見てたのですが、あまり良いのがありませんでした。
Delphiって書籍が少ないですねぇ。
入門に適した書籍やサイトがあれば教えてください。
0881デフォルトの名無しさん
NGNGPro版に付属しているDatabase DesktopはParadoxのサブセットだから
Paradox形式のデータベースはそのまま使えるよ
0882茶碗
NGNGレスありがとうございます。
そうなんですか?
PostgreSQL 調べたんですがなんだかややこしそうなので
そのまま使えるParadoxからやってみようかな。
色々種類があるんですねー。
0883Delフサギコ
NGNGミ゚Д゚,,彡,,,,,,,,,,,,ヾ〜 < InterBaseもフリーDBだと思われ
U U """"UU \_
DBの勉強サイトはAcidFloorとMagicOfDelphi
書籍は
2000/7/7 Delphi 5
実践データベースプログラミング
BDコンポーネントとQuickReportの活用 田中 和明 カット
システム \3,800 ISBN4-87783-025-1
2000/6/24 Delphiデータベースアプリケーション開発ガイド
三原 幸一 秀和システム \2,800 ISBN4-7980-0010-8
この二冊はお勧めですよ。
0884Delフサギコ
NGNGhttp://pc.2ch.net/test/read.cgi?bbs=tech&key=1005897052
∫ _________
∧,,∧ ∬ /
ミ,,゚Д゚彡っ━~ < この際ですから、Delphi書籍の書評
_と~,, ~,,,ノ_. ∀ \ 上記スレで、書きません?
ミ,,,,/~), │ ┷┳━  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ̄ ̄ ̄ .じ'J ̄ ̄| ┃
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ┻
コピペだけど、フサはこの辺りの書籍がお気にです。
Delphiデータベースアプリケーション開発ガイド 三原 幸一 秀和システム \2,800 ISBN4-7980-0010-8
Delphi 5実践データベースプログラミングBDコンポーネントとQuickReportの活用 田中 和明 カットシステム \3,800 ISBN4-87783-025-1
基礎からわかるDelphi5 三原 幸一 秀和システム \2,400 ISBN4-87966-937-7
これで完璧!Delphi5 裏技170選 金井 利美男 エーアイ出版 \2,800 ISBN4-87193-715-1
Delphi4 TECH200 Delphiマガジン編集部 PSネットワーク \2,600 ISBN4-939049-50-7
シェルプログラミング入門DelphiによるCOMの徹底活用 新井 正広 ソフトバンク \3,360 ISBN4-7973-0782-X
Delphi 4プログラミング技法 Vol.1Win32プログラミングテクニック ザビエル・パチェコ+スティーブ・テイクセラ(日向 俊二 訳) プレンティスホール \5,700 ISBN4-89471-082-X
実践Delphiコンポーネントプログラミング 秀和システム出版編集部 秀和システム \2,800 ISBN4-87966-798-6
Delphi 3.1リファレンスガイド 小出 俊夫 秀和システム \2,400 ISBN4-87966-785-4
Delphiオブジェクト指向プログラミング 塚越 一雄 技術評論社 \1,980 ISBN4-7741-0427-2
Delphi 4 プログラミングバイブル Marco Cantu 著篠原 慶 監訳 インプレス \5,680 ISBN4-8443-1273-1
Delphiリファレンスブック(赤い本)がBorlandサイトに見つからないなあ。
0885茶碗
NGNGフサギコさんからレスもらったー!!
ありがとうございます。
探してみます。
しばらく手は洗いません。
0886Delフサギコ
NGNGミ ゚Д゚ミ < 手は洗ってヨシ
(ミ ミつ)ビシッ\_________
〜ミ ミ
∪ ∪
0887俺が正しい
NGNG猫はしゃべらない
0888揚げ足取りにつきsage
NGNG>猫はしゃべらない
猫はしゃべっていない。
よってその指摘は無意味。
キーボード打って書き込んだだけだ。
0889デフォルトの名無しさん
NGNG0890ななしヘタぐらま ◆B18Bks.Y
NGNG私はDelphiでPascal初体験でしたが
Delphi以前にPascal経験があった方って
意外と少数のような気もしますが….
0892ゲィム作りてー
NGNGDelphi5の参考書でも買っとけば役に立つ?
早く覚えてゲィム作りたいよ。
フサギコさん、ズブの初心者でも覚えられるサイト教えてくれぃ!
0893デフォルトの名無しさん
NGNGPostgreSQLもZeosDBOコンポーネントなんかを使えば割合簡単。
ただし、現状だと日本語未対応・・・。
http://www.zeoslib.org/zeos_zdo_main.php
0894
NGNGDelphi初心者(Pascal未経験者)なので
さっぱり分かりません。
今度参考書を買ってみたいのですが初心者
にお薦めの本は有りますか?
0895Delフサギコ
NGNG\,,,,ミ,,゚Д゚彡 < Delphiは下位互換性が非常に高いので
⊂,,,,,,,,,つつ. \ 6専用本 とか必要ないです。
>>894のと
Delphi子育て
http://www.valley.ne.jp/~masaiku/index1.htm
Best Book
http://home1.infonia.ne.jp/~delphian/delphi/history/book.html
Best Book 2
http://home1.infonia.ne.jp/~delphian/delphi/history/bookrank2/book.html
これみて選びんさい。
>>892
Kylix用のゲーム本が最近、出てましたね。
立ち読みしたけど、面白そう。
この際だから、D6で読みこなしてみては?
Delphi用ゲーム本は数冊しか出ていませんので
全部手に入れていいでしょう。
ORAソフトのコーナー
http://home4.highway.ne.jp/ora_soft/main/ora_prog.htm
ここみたりしてがんばーて。
0896 894
NGNG0897デフォルトの名無しさん
NGNGcsvとして保存するためのスマートな方法はないでしょうか。
0898
NGNGCommaText
を使うぐらいしかしらねーな
0899デフォルトの名無しさん
NGNG0900デフォルトの名無しさん
NGNG0901デフォルトの名無しさん
NGNG0902デフォルトの名無しさん
NGNGアイコンを描くのは苦手。。。
0903デフォルトの名無しさん
NGNG0904デフォルトの名無しさん
NGNG0905デフォルトの名無しさん
NGNGDelphiインストールしたらに付いてくるでしょーに・・・
0906デフォルトの名無しさん
NGNGDelphi付属のアイコンはセンスZero。
0907デフォルトの名無しさん
NGNG結局、パーソナル無償配布から新規ユーザーになったぜって人はいるのだろうか。
ほとんどの人はかじっただけで飽きちゃったかな。
0908デフォルトの名無しさん
NGNGDelphiドトネトの発表で覚悟を決めた人が多いのかも。
0909がいしゅつなので
NGNG0910Delフサギコ
NGNG│↓誕生の瞬間 │
│http://piza.2ch.net/mona/kako/973/973021766.html │
│785 名前: ( ´∀`)さん 投稿日: 2000/11/24(金) 21:20.. │
│ │
│ ,,,,,,,,,,,,,,,∧,,∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ │
│〜′,,,,,,,,,,ミ,,゚Д゚彡< 毛ぇ生えたぞゴルァ! │
│ UU"""" U U \_____________. |
└─────────────────────────┘
∩∧,,∧∩ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
゙ミ,,゚Д゚彡ノ < 明日は一周年だゴルァ
ミ ミ \____________
ミ ,, ミ
ノ∪ ∪
これだけあれば、満足してもらえます?(BitBtnアイコン)
http://sunsite.icm.edu.pl/delphi/ftp/d10free/glyphs!.zip
Toolbar2000付属
http://www.jordanr.dhs.org/
Rimrock Software Programming Glyphs
http://www.rimrocksoftware.com/20x20.html
『あいこんコンテスト』
http://member.nifty.ne.jp/koumei/iconian/
Dean's Icons
http://jfa.javalobby.org/projects/icons/index.html
アイコン。。-お色直し工房-
http://hp.vector.co.jp/authors/VA013969/
げんちゃんのお試しページ
http://tokyo.cool.ne.jp/shimagen/
dl_div.htm#glyph
http://www.inner-smile.com/dl_div.htm#glyph
Java look and feel Graphics Repository
http://developer.java.sun.com/developer/techDocs/hi/repository/
IBM-Ease of Use-Icons
http://www-3.ibm.com/ibm/easy/eou_ext.nsf/Publish/648
もらとり庵
http://www.rururu.com/moratorian/
0911デフォルトの名無しさん
NGNG0912デフォルトの名無しさん
NGNG0913デフォルトの名無しさん
NGNGそう。Delphi-ML と同じ。
0914デフォルトの名無しさん
NGNGもうもどれん。
0915デフォルトの名無しさん
NGNG0916はい!はい!はい!はい!はい!はい!はい!はい!はい!
NGNG>結局、パーソナル無償配布から新規ユーザーになったぜって人はいるのだろうか。
>ほとんどの人はかじっただけで飽きちゃったかな。
0917916
NGNGは、いらなかった…。
オレオレ!新規新規!
0918デフォルトの名無しさん
NGNGいつでもPersonal版に戻れます。
0919「はい」は一回!!
NGNG0920デフォルトの名無しさん
NGNGははいはにかいはいってます。
0921茶碗
NGNGdelphi6 personal から delphi6 professional を買いました。
白いご飯を食べられなくなりましたが・・・
年末なので少し自己嫌悪。はやく買って良かったと思えるようになりたい。
仕事で使うとか言う事もなく、全くの個人ユーザです。
>>893
レスありがとうございます。
取り合えず今Paradoxからはじめてます。
作った物は他のPCでも動くんでしょうか。
他のPCでも使って良いんでしょうか。
質問
fileexists や directoryexists を使うと FileCtrl は
使わない方が良いよと出てきて卑屈になりそうなんですが
じゃあ他の方法はあるのでしょうか。教えてください。
0922Delフサギコ
NGNG| ̄ ̄ ̄ ̄ ̄ ̄|
|よろしくフサ−|
|______|
∧,,∧.. .||
ミ,,゚Д゚ミ..|| すいません、このスレ、イッパイイッパイ
ミ づΦ なので....四露死苦って事で...ひとつ.
〜ミ ミ
U''''.U
D6からでしたか。
DirectoryExists は SysUtils または FileCtrl
FileExists は SysUtils
になってますよ。HELPにも載っているようです。
他のマシンからでもDBが見えるなら(LANとかDBインストルするとか)
作ったプログラは動くと思います。
フサはODBCでエイリアス作って接続したことしかないですが
その場合、ODBCでリンクが見えたら何のDBでも何の接続でも
プログラムは動きます。
インスタトラメーンばかり食ってると間違いなく
体は壊すからお気をつけください。
0923茶碗
NGNGフサギコさんおはようございます。
uses節からFileCtrlを外しても使えました。
すいませんでした。
手持ちの本「Delphi Object Pascal リファレンス」
で見たらDirectoryexists が FileCtrl になってたので勘違いしました。
ちなみにこの本は重宝してます。
>インスタトラメーンばかり食ってると間違いなく
>体は壊すからお気をつけください。
ありがとうございます。
吉牛でも行って脳みそをプリオンで刺激してみます。
0924デフォルトの名無しさん
NGNG自動的に連続入力されますよね。それが嫌で、
純粋に「キーが押された瞬間」「キーが離された瞬間」を
取得したいので、
OnKeyDown および OnKeyUp イベントに処理コードを書きました。
ところが、やはりずっとキーを押していると OnKeyDown が
何度も発生してしまいます。何とかならないでしょうか。
OnKeyDown には以下のようなコードを書いています。
case Key of
VK_A: 〜 ;
VK_Z: 〜 ;
VK_K: 〜 ;
VK_M: 〜 ;
end;
※ VK_A は 65 と定義してあります。
VK_B = 66;
VK_C = 67;
...
現在、KeyDown 時にAが押されたら A_Pushed := True
のようにして、対応するキーが True だったら
KeyDownを受け付けないようにしていますが、それでも
やり方が悪いのか上手くいきません。
0925デフォルトの名無しさん
NGNGif Flag then
Exit;
Flag := True;
〜 処理 〜
[OnKeyUp]
Flag := False;
〜 処理 〜
0926デフォルトの名無しさん
NGNG>>925 のように書けばNEC98以外なら巧く動くかもしれませんが
完璧にしようと思えばoff->onの間隔が一定以下なら無視させるしかありませんね
0927デフォルトの名無しさん
NGNG0928Delフサギコ
NGNGたしか、ジョイスティック入力とかも、このAPIじゃなかったかな。
∧,,∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ミ,,゚Д゚ミ < イベント発生したいなら、ちょっと違うけど。
ミ ミ \__
〜ミ,UU_ミ
0929Delフサギコ
NGNGhttp://pc.2ch.net/test/read.cgi?bbs=tech&key=1006602102
∫ _________
∧,,∧ ∬ /
ミ,,゚Д゚彡っ━~ < 新スレたてますた。
_と~,, ~,,,ノ_. ∀ \
ミ,,,,/~), │ ┷┳━  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ̄ ̄ ̄ .じ'J ̄ ̄| ┃
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ┻
もうそろそろ、息切れですかね......
0930デフォルトの名無しさん
NGNG0931デフォルトの名無しさん
NGNG0932Delフサギコ
NGNG/ミ*゚Д゚ミ/\< 萌え・・・
/| ̄∪∪ ̄|\/ \_____
|____|/
,,,,∪∪,,, ,,
0933デフォルトの名無しさん
NGNGどうしたら良いでしょうか?
0934933
NGNGすいません
0935デフォルトの名無しさん
NGNG質問などは次スレによろしくお願いします。
ミ,,゚Д゚彡DelフサギコのフサフサDelphi談話室�A
http://pc.2ch.net/test/read.cgi?bbs=tech&key=1006602102
0936デフォルトの名無しさん
NGNG| ̄ ̄( ゚Д゚) ̄ ̄| < 良い子は寝る時間
|\⌒⌒⌒⌒⌒⌒\ \
| \ \  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
\ |⌒⌒⌒⌒⌒⌒|
\ |_______|
0937デフォルトの名無しさん
NGNG覚悟するヨロシ。
0938デフォルトの名無しさん
NGNG0939Delフサギコ
NGNG∫ _________
∧,,∧ ∬ /
ミ,,゚Д゚彡っ━~ < 漏れは素人童貞ですた。
_と~,, ~,,,ノ_. ∀ \
ミ,,,,/~), │ ┷┳━  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ̄ ̄ ̄ .じ'J ̄ ̄| ┃
 ̄ ̄ ̄ ̄
0940デフォルトの名無しさん
NGNG0941デフォルトの名無しさん
NGNGディスプレイを横に転がせ。
0942デフォルトの名無しさん
NGNG煮詰まってるんだね。
0943Delフサギコ
NGNG∫ _________
∧,,∧ ∬ /
ミ,,゚Д゚彡っ━~ < 漏れは仮性包茎ですた。
_と~,, ~,,,ノ_. ∀ \
ミ,,,,/~), │ ┷┳━  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ̄ ̄ ̄ .じ'J ̄ ̄| ┃
 ̄ ̄ ̄ ̄
0944デフォルトの名無しさん
NGNG| ̄ ̄( ゚Д゚) ̄ ̄| < 内臓出ちゃう
|\⌒⌒⌒⌒⌒⌒\ \
| \ \  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
\ |⌒⌒⌒⌒⌒⌒|
\ |_______|
0945デフォルトの名無しさん
NGNG0946デフォルトの名無しさん
NGNG0947デフォルトの名無しさん
NGNG0948デフォルトの名無しさん
NGNG0949デフォルトの名無しさん
NGNG0950デフォルトの名無しさん
NGNG0951Delフサギコ
NGNG| ̄ ̄( ゚Д゚) ̄ ̄| < 格安ソープまんせー!
|\⌒⌒⌒⌒⌒⌒\ \
| \ \  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
\ |⌒⌒⌒⌒⌒⌒|
\ |_______|
0952デフォルトの名無しさん
NGNG0953デフォルトの名無しさん
NGNG0954デフォルトの名無しさん
NGNG0955デフォルトの名無しさん
NGNG0956デフォルトの名無しさん
NGNG|_|Д゚) ミンナMLでデザパタ論議チュウ
|文|⊂)
| ̄|∧|
0957Delフサギコ ◆zE1iiRdQ
NGNG|_|Д゚ミ Cチャープでは出来るらしいが....
|文|⊂ミ
| ̄|∧|
0958Delフサギコ ◆zE1iiRdQ
NGNG|_|Д゚ミ
|文|⊂ミ IUnknownの実装とか言ってるし...
| ̄|∧| カレもまたDelの腐れCOMInterfaceの
犠牲者か...
0959デフォルトの名無しさん
NGNG0960デフォルトの名無しさん
NGNGどこがどう腐っているんだい?
0961デフォルトの名無しさん
NGNG0962デフォルトの名無しさん
NGNGVCLってパタンの宝庫なのに。
「その実在において、それらに付随している他の考えからそれらを分離する。
これを抽象といい、一般のアイデアはこうして出来ている」
John Locke
0963デフォルトの名無しさん
NGNGとにかくGoF読めって。
0964デフォルトの名無しさん
NGNG生COMコンポーネントすら書けない悲しき無能PG。
0965デフォルトの名無しさん
NGNGんなもん書きたく無い。ML入ってないのでどういう議論かキボーン
0966デフォルトの名無しさん
NGNG特に知らなくても困らないよ<議論
GoFのサンプルをVCLパターンを無視して
とにかく実装してみましょってだけだから。
ともかくDelのinterfaceをJavaのそれと混同して使うなや。
Delは単一継承interface無しで使うのが一番シンプルだよ。
0967デフォルトの名無しさん
NGNG0968デフォルトの名無しさん
NGNG0969デフォルトの名無しさん
NGNG>Delは単一継承interface無しで使うのが一番シンプルだよ。
かっこ閉じ忘れのカキコしてるヤシみてるとLisperの俺は鳥肌立ってくる。
0970デフォルトの名無しさん
NGNG>承interface
の承の右側が開きカッコに見えてしまうという罠。
芯できます。
0971デフォルトの名無しさん
NGNGhalbow氏を叩いているDelフサギコって・・・・・
0972デフォルトの名無しさん
NGNGオマエモナ-
MLにリンク投げてみろや
0973デフォルトの名無しさん
NGNG0974デフォルトの名無しさん
NGNG偽ギコがたてた次スレならこっち
ミ,,゚Д゚彡DelフサギコのフサフサDelphi談話室�A
http://pc.2ch.net/test/read.cgi/tech/1013298748/
0975デフォルトの名無しさん
NGNG0976デフォルトの名無しさん
NGNG0977デフォルトの名無しさん
NGNG0978デフォルトの名無しさん
NGNG0979デフォルトの名無しさん
NGNG ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ (´´
∧,,∧,,,,,, ) (´⌒(´
⊂ミ゚Д゚⊂ `つ≡≡≡(´⌒;;;≡≡≡
""""" (´⌒(´⌒;;
ズザーーーーーッ
0980デフォルトの名無しさん
NGNG0981デフォルトの名無しさん
NGNG ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ (´´
∧,,∧,,,,,, ) (´⌒(´
⊂ミ゚Д゚⊂ `つ≡≡≡(´⌒;;;≡≡≡
""""" (´⌒(´⌒;;
ズザーーーーーッ
0982デフォルトの名無しさん
NGNG0983デフォルトの名無しさん
NGNG0984デフォルトの名無しさん
NGNG0985デフォルトの名無しさん
NGNG0986デフォルトの名無しさん
NGNG0987デフォルトの名無しさん
NGNG ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ (´´
∧,,∧,,,,,, ) (´⌒(´
⊂ミ゚Д゚⊂ `つ≡≡≡(´⌒;;;≡≡≡
""""" (´⌒(´⌒;;
ズザーーーーーッ
0988デフォルトの名無しさん
NGNGおまえにゃ無理だ。
0989デフォルトの名無しさん
NGNG0990デフォルトの名無しさん
NGNG0991デフォルトの名無しさん
NGNG0992デフォルトの名無しさん
NGNG0993デフォルトの名無しさん
NGNG ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ (´´
∧,,∧,,,,,, ) (´⌒(´
⊂ミ゚Д゚⊂ `つ≡≡≡(´⌒;;;≡≡≡
""""" (´⌒(´⌒;;
ズザーーーーーッ
0994デフォルトの名無しさん
NGNG ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ (´´
∧,,∧,,,,,, ) (´⌒(´
⊂ミ゚Д゚⊂ `つ≡≡≡(´⌒;;;≡≡≡
""""" (´⌒(´⌒;;
ズザーーーーーッ
0995デフォルトの名無しさん
NGNG0996デフォルトの名無しさん
NGNG0997デフォルトの名無しさん
NGNG<(゚ω゚) <うっ!
( )\
/'>
0998デフォルトの名無しさん
NGNG(゚ω゚)> <はっ!
/( )
<'\
0999デフォルトの名無しさん
NGNG<(゚ω゚)> <うっ!
( )
/'>
v
(゚ω゚)/ <はっ!
/( )
<'\
10001000
NGNG(゚ω゚)/ \(゚δ゚)<ジーンギスカーン!
/( ) ( )ゝ
<'\ / >
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。