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

ミ,,゚Д゚彡DelフサギコのフサフサDelphi談話室

レス数が1000を超えています。これ以上書き込みはできません。
0001DelフサギコNGNG
            ∫    _________
   ∧,,∧     ∬   /DelphiやBorlandに関する
   ミ,,゚Д゚彡っ━~  <  雑談や質問しながら
_と~,,  ~,,,ノ_.  ∀   \ みなーで、くつろごうや
    ミ,,,,/~), │ ┷┳━   ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ̄ ̄ ̄ .じ'J ̄ ̄| ┃
 ̄ ̄ ̄ ̄ ̄ ̄ ̄  ┻
0002DelフサギコNGNG
  今だ! 2番ゲット!!
   ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
       .∩∧,,∧           (´´
     ,,,,,,,,,,ミ゚Д゚,,彡        (´⌒(´
   ど,,,,      ,,,,,二⊃≡≡(´⌒;;;≡≡≡
      ~''(,,,,,づ゙゙  (´⌒(´⌒;;
    ズザーーーーーッ!!

関連スレ
( ゚Д゚)ノ 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無料版をゲットォォォォ!!!
  ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄
      ∧,,∧          (´´
   \,,,,ミ,,゚Д゚彡      (´⌒(´
  ⊂,,,,,,,,,つつ.≡≡≡(´⌒;;;≡≡≡
           (´⌒(´⌒;;
      ズザーーーーーッ

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デフォルトの名無しさんNGNG
1000
0006DelフサギコNGNG
   ♪        / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\        ♪
♪   ∧,,∧ ♪ <    話題募集中!    > ♪ ∧,,∧  ♪
    ミ,,゚Д゚彡.  ♪\________/♪   ミ゚Д゚,,彡
     ミつ[|lllll]).                      ([lllll|]とミ
   〜ミ  ミ                         ミ  ミ〜
    U U                          U U
0007DelフサギコNGNG
   ∧,,∧      / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ミ,,゚Д゚彡  < 寒い季節になりました。
  ミ つ且~~   \___________
〜ミ,,,,,, ,,ミ

[Delphi:61493..61505] 他のフォーム(フレーム)の表示イメージを別フォームに縮小表示したい

って、TCustomForm.GetFormImageだけで済む問題なのじゃなかったかな。

過去スレが過去スレがと言わずに、もう一度話題にしてあげればいいのに。
0008デフォルトの名無しさんNGNG
新スレ祝い
http://mentai.2ch.net/test/read.cgi/prog/1003035584/110-111
0009デフォルトの名無しさんNGNG
見苦しい
0010Del生徒NGNG
     ∧_∧∩ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    ( ´∀`)/< 先生!あいかわらずHELPのリンクミスが多いです!
 _ / /   /   \
\⊂ノ ̄ ̄ ̄ ̄\   ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ||\        \
 ||\|| ̄ ̄ ̄ ̄ ̄||
 ||  || ̄ ̄ ̄ ̄ ̄||
    .||          ||
0011DelフサギコNGNG
  _____
 /......  .. .../
 ||:::   ∧ ∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 | ̄\ ミ ゚Д゚ミ<  ひええええ、Borconの恐ろしい情報だ
 |   |: ̄U U ̄:|\_________

確かに、金取りすぎとは思っていたが...BorCon

1万円以下ならフサも逝ってもいいんだけどね。

>>10
多くて報告する気もなくなりますね。

ソース置き場にスレつくってHELPのバグを
積み重ねておきましょうか?

HELPといえば、一つの項目調べるのにVCLとCLXの項目が出てくるの嫌っす。
しかも、内容に差がなかったりするし。
0012デフォルトの名無しさんNGNG
某がやばくなったらMSに吸収される前にOpenにして
OpenKylixとかOpenDelphiなんてのが作られたら別にそれはそれでいいんだけど。
無理だろうな。。。
0013Del房NGNG
     ∧_∧∩ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    ( ´∀`)/< 先生!あいかわらずDELスレが多いです!
 _ / /   /   \
\⊂ノ ̄ ̄ ̄ ̄\   ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ||\        \
 ||\|| ̄ ̄ ̄ ̄ ̄||
 ||  || ̄ ̄ ̄ ̄ ̄||
    .||          ||
0014DelフサギコNGNG
     | ̄ ̄ ̄ ̄ ̄ ̄|
     |よろしくフサ−|
     |______|
     ∧,,∧.. .||
    ミ,,゚Д゚ミ..||    Delphiが人気って事かしら?
    ミ   づΦ   あれ、ちがう?
  〜ミ  ミ
    U''''.U
0015Del生徒NGNG
     ∧_∧∩ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    ( ´∀`)/< 人気ありますね! 2chツールもほとんどDel!
 _ / /   /   \
\⊂ノ ̄ ̄ ̄ ̄\   ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ||\        \
 ||\|| ̄ ̄ ̄ ̄ ̄||
 ||  || ̄ ̄ ̄ ̄ ̄||
    .||          ||
0016デフォルトの名無しさんNGNG
Delばかりやっていて、.net や c# には手を出そうとせず、興味すらない私は
新技術にはついていけないダメプログラマですか。
0017デフォルトの名無しさんNGNG
>>16
ドントヲーリー
0018デフォルトの名無しさんNGNG
>>11
>一つの項目調べるのにVCLとCLXの項目が出てくるの嫌っす。
何とか.zip を展開すると VCL だけが出るようになるんだけど
試した?
0019DelフサギコNGNG
試してません。どやるのですか?>>18

常にVCLだけでも困るかな
CLXつかっているときは出てもらわないと。

 ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄
   ∧,,∧   
  ミ,,゚Д゚彡∬
   〃  つ旦O
 〜ミ,,,n,,n[ ̄ ̄ ̄.]
        ̄ ̄ ̄
0020デフォルトの名無しさんNGNG
  ∧ ∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (,,゚∀゚)< マターリしててイイでち
 @_) \________
0021DelフサギコNGNG
         ________
  ,ヘ ヘ   /
  ミ,,゚Д゚ミ< マターリ、日曜洋画劇場を見ますか。
  ミ,,,,,,,,ミノ \
          ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
0022DelヒッキーNGNG
(−_−) セイントだっけ。。Orbital好きだよ。。
0023DelぞぬNGNG
    / ̄ ̄ ̄ ̄\
  /     ●  ●、      _____
  |Y  Y        \   /
  | |   |        ▼ | < 正直、フリーカーソルはどうにかして欲しい。
  | \/      _人.|  \_____
  |       ___ノ
  \    ./
   | | |
   (__)_) アドインでどうにかできるのは知ってるけど。。。
0024DelヒッキーNGNG
(-_-) アドインって。。 http://homepage1.nifty.com/fuu/ これだね。。。
0025デフォルトの名無しさんNGNG

           _____________
   ___   /
 /´∀`;:::\< >>23 テレホマンはフリーカーソル好きょ
/    /::::::::::| |
| ./|  /:::::|::::::| \_____________
| ||/::::::::|::::::|
0026DelフサギコNGNG
  ∧,,∧    /
  ミ,,゚Д゚彡 < フサはフリカソルエディタもノンフリカソルエディタも
  ,;゙  ミ     \普通に使います。慣れたのかな。
 ミ.  ミ      VSでCtrl+↑↓が効かないのや
/゛゛゛゛      ブックマークジャンプが、イマイチつかいにくかったり
           Ctrl+Shift+Rのキーマクロが出来ないのはどうにかして欲しかったり…

 AAの人増えたのかニャー
0027DelフサギコNGNG
         _________
  ∧,,∧   / VC/VBからの乗り換えを支援するのなら
 ミ,,゚Д゚彡<  非フリーカーソルの実現はプライオリチー高め
  ミつ つ  \ じゃないのかニャ
〜ミ  ミ.     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  U U

あのアドインは完璧に非フリカにはならないですし。
(D6に対応してくれたのは大変よいのですが)
VSユーザーがアドインをすぐに知ることが出来るとも思えない
VSユーザーに不便を強いるのはよくなーい。

ユーザーの意見を積極的に反映してもらうためにも
某日NGに匿名で投稿しておきましょうか?
って、匿名でNG投稿する方法わからないや・・・・・・誰か気が向いたらフリカ要望やってちょ。


そういえばJBは非フリカ選択できるのではなかったかな?
技術的には簡単なことじゃニャーか?
0028デフォルトの名無しさんNGNG
DelフサギコさんってDelphiX使うアルか?
堀信者のようにイタク無い事を願うアルよ。。
0029DelフサギコNGNG
    ∧ ∧  ・・・・。
    ミ ゚Д゚彡
  〜ミ,,,,uuミ

 痛くならないように気をつけます。
 でも、某に要望出すのは自由だと思うんだ。
 なるべく多くのユーザーの声が届きますよにっと。

しかし、堀信者って痛いのですか・・・・・

言語は宗教って、ヘジーも逝っておられるようですし(C#スレで見た)
原理主義みたいになってはいけないですよね。
0030デフォルトの名無しさんNGNG
信者は度を超すと対象が何であれ痛いもんだよ。
で堀信者って何?初めて聞いたんだが。
0031デフォルトの名無しさんNGNG
>>30
堀=DelphiXの作者
0032名無しヘタぐらまさんNGNG
ただでさえDelphiスレが多いなか,あえてスレを立てた意図はいかに.> >>1

Delスレの乱立は他のスレを圧迫し,Delユーザーの情報収集を困難にします.
あえて立てるからには「面白いから許可!」「これはこれでいい」と思えないと.
(プレッシャーかけてごめんなさい)

あと,Delモナさんのスレへのリンクがないのですが…?
0033デフォルトの名無しさんNGNG
みんなー
モナースレもよろしく!
http://piza2.2ch.net/test/read.cgi/tech/1003113413/l50
0034DelフサギコNGNG

      ∧,,∧l||l  だから他Delスレが下がっている時に立てたのに…
       ;゙⌒ヽ彡  トホホ
     〜ミ___ミ
    ''" ""''"" "''
0035Del萬年初心者NGNG
>>32
他のDel板は技術的な話をしてるので、Del関係の話題でマターリできるこういう
板があってもいいんでない?
0036デフォルトの名無しさんNGNG
>>32
このスレしか見てないから困難は無い(w
0037DelフサギコNGNG
>>35
ばかぼんパパはこう申しております

 ̄ ̄∨ ̄ ̄ ̄
  ∧,,∧
 ミ,,゚Д゚彡
  ミ つ[ |:3ミ ]). <ソレデイイノダー
〜ミ ,, ミ 
  ∪∪  

関係ないけど、大阪弁2ch、プログラーの息抜きにドゾ
http://www.yorosiku.net:8080/-_-http://www.2ch.net/2ch.html
0038DelフサギコNGNG
C♯相談室 Part2
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1002468050

名無しさん#さんに感謝しつつ

の、258-261のXMLサンプルを移植したいのですが
簡単に同等機能を実装する方法ありますか?
どなたかご存知でしたら教えてください。

   ∧,,∧      / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ミ,,゚∀゚彡  < 素直にCチャープ使えってか。
  ミ つ且~~   \___________
〜ミ,,,,,, ,,ミ

つまりXMLライブラリが欲しいなって事かも。
0039Delあめ猫にゃNGNG
内容見てないけど DelphiEntで無くてXMLなら
XML 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デフォルトの名無しさんNGNG
>>38
OpenXMLでいいんじゃない?
MSXMLもある
あとIBMもDLL公開してたような
QuickRTTIで実行時型情報をXML形式で保存してくれるのがどっかにあった
どれも使ったこと無いので
だれか人URL調べてちょ
0041デフォルトの名無しさんNGNG
何で Delphi 関連のスレは平日に盛り上がるのだろうか。
ポイントをついた解答がすぐつくのも謎。
みんな学生じゃないよね?仕事中に質問するのはわかるけど
回答するひとはどんな立場なんだろう?
0042デフォルトの名無しさんNGNG
>何で Delphi 関連のスレは平日に盛り上がるのだろうか。
業務中の2chスレとDelphi-MLのチェックは
プロのDelphiユーザーの義務です(藁

確かに休日は閑古鳥状態だね
0043デフォルトの名無しさんNGNG
Delphi-ML はもっぱらネタの提供元になっているしねぇ。
こっちの方が生きが良いから好きだ。
0044デフォルトの名無しさんNGNG
休みの日ぐらい違うことしたい
今月のCマガどうだった?
[Part2] Borland DelphiをOpen Tools APIで機能拡張する
買い?
0045デフォルトの名無しさんNGNG
>[Part2] Borland DelphiをOpen Tools APIで機能拡張する
面白そだね。最近Cマガチェックしてないので知らなかったよ。
誰かMLでdelphi media watchスレ立てて
特集記事・連載の解説してくれよ。
0046デフォルトの名無しさんNGNG
>>44
Wizman の記事だね。
0047DelヒッキーNGNG
(-_-) MSXML DOMのサンプルでいいなら。。
     http://homepage2.nifty.com/boheme/delphi/tips/tec1510.htm
     でも C# のサンプルは SAX っぽいね。。。
0048名無しヘタぐらまさんNGNG
>>35
たしかにモナスレも技術的な話になりつつあるので
マターリスレとしての意味はあるかもしれません.了解しました.
>>34
というわけで泣かないで〜(泣).

>>41
ニフティのFDELPHIで相当お世話になったので,
(数時間後に回答というのも珍しくなかった)
困っている方の質問を見てしまうと
仕事そっちのけで(それはマズイけど)
カラダが勝手にレスを打ってしまうのです.
他人に親切にされると自分も他人に親切にしてしまいたくなるのは不思議.
0049デフォルトの名無しさんNGNG
塞ぎ込
0050デフォルトの名無しさんNGNG
マターリし
0051ビル・ジョブスNGNG
今度、ばぐでるわいとやらを使うのでよろしくー
0052 ◆vAhkPfSU NGNG
ひくす in 「ARAHIQS」 on Web
ってなくなっちゃったの?便利だったのに。
0053DelフサギコNGNG
♪聞いてしぃちゃん ちょっと言いにくいんだけど
♪あのねしぃちゃん

今日、初めて蒟蒻畑アロエリーナ喰ろうたら (゚д゚)ウマー
だったの。、アロエのCMがこれだったって初めて知ったの…

聞いてくれてあーりがと しぃちゃん♪
_____  __
       \/
 ∧∧    ∧,,∧ ブラックジンヂャ ハ ノンダコト ナイノ
 (*゚ー゚) ミ゚Д゚,,彡
 ノつ旦) ミ(旦⊂ミ
て  ) )   ミ( (  ミ〜
| ̄∪ J ̄ ̄ιし' ̄| Ψ ソウ オレハ、ショクヨウ
|..             |□


XMLの情報サンクスコ、
今日は書泉グランデでいろいろ立ち読みしてきて
疲れたーYO

>>52
調査してみます。

七味唐辛子といい、BCB系はなんで閉鎖するのでしょう?
大変、便利で感謝しちえるユーザーがいるのに〜〜〜

ちなみに七味は、一時期ファイル日付が完全に狂っていたので
アップ時にファイル更新で作者さんがHomepageデータを誤って全削除した
可能性が高いかと思っているのニャガ....

CマガはWizmanさんの記事以外はDelに冷たいので
買ってやらないのーニャ
0054デフォルトの名無しさんNGNG
え!
Wizman てCマガの筆者だったの!?
0055デフォルトの名無しさんNGNG
C マガ筆者への差別反対!
0056DelフサギコNGNG
 ∩|
 ミ ゙''゙゙゙つ
 ミ∧,,∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ミ;゚Д゚彡 < >>55、いや、別に差別しているつもりは・・・
 U U    \________

OpenToolsAPIの情報はすごく有用なのですが...
もう一押し、前のように中村先生タンの記事があれば買ったかも。

でも、考えてみるとCマガってVBには異常に冷酷っすね
VBの情報は他誌で出ているからCマガで扱う必要性がないと
踏まえて編集されているのでせうか。
0057DelフサギコNGNG
http://www.google.com/search?q=cache:mGqkFgu_mUk:www.biwa.ne.jp/~shinya-/+ARAHIQS&hl=ja
移動中なだけかも。

    ∧ ∧         / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| ̄ ̄ミ,,゚Д゚ミ ̄|   <  おやすみなさいまー
|\⌒⌒⌒⌒⌒⌒\   \
|  \           \    ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
\  |⌒⌒⌒⌒⌒⌒|
  \ |_______|
0058デフォルトの名無しさんNGNG
>>56
ほら、一応 C (言語) マガジンだった過去を背負っているのよ。
0059デフォルトの名無しさんNGNG
    ∧ ∧   /
    ( ゚Д゚)< もちっとペースダウソで夜露氏久
     |つ つ  \
   〜   |
    ∪ ∪

スレ傾向としてヒートアップに向かうのはよろしくないと思う
願わくば肉・野菜・野菜・野菜・肉・野菜・野菜
0060デフォルトの名無しさんNGNG
>肉・野菜・野菜・野菜・肉・野菜・野菜
ワラタ
0061Delあめ猫にゃNGNG
   ∧  ∧ にゃ  。
  /∂⌒∂    。゚。。°
  (( ┃ ┃ ))  ☆ °゜
  彡 ー ミ /   ご挨拶忘れてたにゃ
 O( つ  つ      よろしくにゃ
   (ノ (つ

   ∧  ∧ 。o 0 〇
  /∂⌒∂
  (( - - ))   Λ Λ
  彡 ー ミ   ミ゚Д゚,彡 
 |~~~~~~~~~~~~~~~~~~~~~~~| 
0062ヒキNGNG
フサギコ ッテ フサギコンデル ギコ カト イッシュン オモッタ
0063DelフサギコNGNG
  ∧,,∧    / 前々から山ほどお世話になっている気もしますが
 ミ,,゚Д゚彡 <
Π ̄ ̄ ̄|  \あらためまして、コニャニャチワ
|つご挨拶()  
| |___.|
  ∪∪

あめ猫さんAA、マンセー
0064DelフサギコNGNG
          || ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄||
          ||  フサは    。    Λ,,∧ いいですか?!
          ||フサフサのフサ \ ミ゚Д゚,,ミ
          ||________⊂ ⊂ ,,ミ
  ∧,,∧    ∧,,,∧    ∧,,∧    ...| ̄ ̄ ̄ ̄|
  ミ  ∧,,∧ ミ   ∧,,∧ ミ  ∧,,∧. |教授  .│
〜(_ミ  ∧,,∧ __ミ  ∧,,∧__ミ   ∧,,∧ ̄ ̄ ̄
  〜(_ミ  ∧,,∧_ミ  ∧,,∧_ミ ∧,,∧  はい、教授。
    〜( ,,ミ   ,,ミ〜(,,,,ミ  ,,ミ〜(_ミ   ,,ミ
      〜(___ノ  〜(___ノ   〜(___ノ
0065DelフサギコNGNG
           ∧,,∧    / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
          ミ゚Д゚,,彡 < なんてこったい!
          ⊂ ⊂ミ__   \____________
     / ̄ ̄ ̄ ̄ ̄ /|
    ∧_∧     //|
  / (  ,, )__//┌─────────
 || ̄/    )  ||/ < どうしたの?
 || (_○___)  ||   └─────────

                / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
          ∧,,∧  <  AAを1から収集しなおしなんだぞ!
         ミ゚Д゚,,彡_ \____________
     / ̄ ̄∪ ∪ /|
   /∧_∧    //|
  / ( ;´∀`)_//┌─────────
 || ̄(     つ ||/ <  ほっぺに"ミ"付けただけでしょ
 || (_○___)  ||   └─────────
0066DelフサギコNGNG
          || ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄||
          ||  ほっぺに   。    Λ,,∧ テストにでますよ!
          ||  「ミ」を付ける \ ミ゚Д゚,,ミ
          ||________⊂ ⊂ ,,ミ
  ∧,,∧    ∧,,,∧    ∧,,∧    ...| ̄ ̄ ̄ ̄|
  ミ  ∧,,∧ ミ   ∧,,∧ ミ  ∧,,∧. |教授  .│
〜(_ミ  ∧,,∧ __ミ  ∧,,∧__ミ   ∧,,∧ ̄ ̄ ̄
  〜(_ミ  ∧,,∧_ミ  ∧,,∧_ミ ∧,,∧  はい、教授。
    〜( ,,ミ   ,,ミ〜(,,,,ミ  ,,ミ〜(_ミ   ,,ミ
      〜(___ノ  〜(___ノ   〜(___ノ
0067DelフサギコNGNG
   ,∧,,∧∩  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ミ,,゚Д゚ 彡< 唐突ですが、シツモソです。
__ミ ミ  ミ   \___________________
\,,∪  ̄ ̄ ̄\
||ヽ|| ̄ ̄ ̄ ̄||"
 ...|| ̄ ̄ ̄ ̄||

Delphi6Pro辺りでインタネット経由のIMのような
チャットシステムは簡単に出来ますでしょうか。
なんとなくデキそ で デキナサそ なアンニュイな感じがしています。

IndyのDemoみてもそういうの蜜からニャです。

\Demos\Internet\Chat
こちらは使い方がわかりません。
0068デフォルトの名無しさんNGNG
>>67
あのね。いわゆる IM は、実は Point To Point/ Peer to Peer ではなくて
サーバーを一回経由しているの。だから FireWall の内側同士で会話できるの。
やってることは Web 掲示板を使ったチャットと同じなの。
だから「チャットシステムは簡単に」できるんだけど、プロトコルを決定する必要が
あるの。または既存の IM とつなぐ場合にはプロトコルを解析する必要があるの。

だからプロトコル設計が肝でインターネットコンポは実現のための道具にしか
過ぎないのよ。

.. 探してみるとあるもんだ。

http://www.morphtek.com/
Instant Message Component
Indy を使った D5/D6/Kylix 用、P2P コンポーネント群
0069デフォルトの名無しさんNGNG
あげ
0070DelフサギコNGNG
>>68情報ThanxCo。だけど
         _________
  ∧,,∧   / さっぱりわからニャイ
 ミTДT彡<  何をインストールすればいいかすら…
  ミつ つ  \
〜ミ  ミ.     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  U U  イキナリ ど挫折...


ナ・ナナジウGet〜
0071名無しさん♯NGNG
こんちは。ヽ(´ー`)ノ

>>38
MSXMLを使えば「そこそこ」簡単にできると思われ。
書き込みはSAX、読み込みはDOMという感じで。

でも、C#でサンプル作ろうと思ったらあっさり挫折。(藁
(VB.NETの方がはるかに楽そう。)
DelphiのCOM interopの場合はどうなんだろう...?
0072DelフサギコNGNG
>>名無しさん#さん
      ♪
  ♪           お世話になって
♪  ∩ ∧,,∧   ♪
   ヾミ ゚Д゚彡 フッフフサ フフサ フフサ
    ヾ ⊂ ヾ  フッフフサ フフサ フフサ
     O-、 )〜
       U

          ♪  おりまするー
       ♪
 ♪    ∧,,∧     ♪
     ミ ゚Д゚彡⊃ フッフフサ フフサ フフサ
   ヽ⊂   ミ    フフサ フフサ フッサ〜ル
    ⊂,,,   ミ
       し″

フサはいまいちわかってません。
どなたか、救いの手を...(他力本願マンセー)
0073802NGNG
>>Delふさぎ湖

おまえ実はDellギコそのものじゃないの?
0074デフォルトの名無しさんNGNG
>>73
そのことにふれちゃいけません。
0075第三者ですがNGNG
>>73 まず違う。てかDellギコってだれ?
0076802NGNG
>>75
(゚Д゚)ハァ?
0077名無しさん♯NGNG
>>72
ソース置き場使わせてもらいました。
ということで、MSXMLのサンプル。(VB.NETだけど...。)

 http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1003826049&res=2
0078デフォルトの名無しさんNGNG
Delphiスレがいっぱいあるんですが、それぞれ対象は何(誰)なのか教えてください。
0079デフォルトの名無しさん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
>>79
分かりました。質問は「質問類」のスレですればいいんですね。
ありがとうございました。
0081デフォルトの名無しさんNGNG
>>80
見ている人は全部見ているからあまり気にせんでよいよ。
規則が無いのが 2ch
0082デフォルトの名無しさんNGNG
MSXのMLってやっぱMSXMLなの?(w
0083Delフサギコ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
 TVつまんねー。もう寝よう…
\
   ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄
                ∧ ∧ Zzz...
           〃' ̄(,,-Д-)     モット Delphi ネタ デナキャ
    /| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄.| "めも電卓"クライ ザンシンナ ネタ ガ・・・
   | | | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| |
   | | |                | |
   | | |                | |
   | | |    放  送  終  了    | |
   | | |                | |
   | | |        JOGX-TV    | |
   | | |___________| |
   | |   |             | ・・ロ |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
0091デフォルトの名無しさんNGNG
そんなに暇ならフリーで2wayなUMLモデリングツールでも作ってくれ
0092デフォルトの名無しさんNGNG
    (○)
    ヽ|〃
  _|三三|_  / ̄ ̄ ̄ ̄ ̄
  ヽミ ´∀`ミノ < ガミワヅナツ、ミヤミヒユアネメーハ!
   彡ノノミ    \_____
   丿 >
0093デフォルトの名無しさんNGNG
>>83-90
ワラタ。このスレはマターリ逝きたいですね。
0094DelしたらばNGNG

    ∧,,,,∧/)  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    彡,,・ー・ミ/  < したらば〜
    (  @ ⌒ヽ  \____________
    丶_) ( ⌒"
      ヽ__)

    ∧,,,,∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   彡,・ー・,ミ < よろしくにょら
   ⊂ @ つ   \_____________
   ヽ |   |
     ∪ ∪
0095DelしたらばNGNG

 でる        ふぁい    まん       せー♪

            ∧,,∧     ∧,,∧       ∧,,∧
  ∧,,∧      ∩・ー・ミ)   ミ・ー・彡     ミ・ー・ミ
 ミ・ー・ミ      ) @丿   ⊂@⊂ヽ     |つ@つ
  ( つ@つ    〜|   /      ヽ⊂,,)〜   ⊂,,  丿
  て ) )      (/''(/        ヽJ       ∪ 
0096DelフサギコNGNG
   ∧,,∧   / ̄
@,,,ミ,,゚Д゚彡 < したらば、かわイイd(・∀・)
⊂,,,,,,,,,つつ.  \_

  カワイースギ!
0097デフォルトの名無しさんNGNG
>>94
@はカラータイマーですか?
0098802NGNG
ネタがないなら上げるなあほ。AA はネタと一緒に書けよ。ぼけ。
また煽られるぞ。
0099DelフサギコNGNG
  チコウヨレ  
   ∧,,∧∧∧       / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ミ,,゚Д゚ミ・ー・彡    < しーちゃん、ゴメンネ
_と~,,,  ミ,@⊂|  ∀  V  \______________________
    .ミ,,,/~),(( ノ〜┷┳┷
 ̄ ̄ ̄ .し'J ∪ ̄|.. ┃
 ̄ ̄ ̄ ̄ ̄ ̄ ̄   .┻
  _∧_________
/しーには内緒だぞ。。。




かわいくて作ってしまいました...スマソ>>94-95
したらばが、♂か♀かも知らないのに…

いや、むしろ、かわいければ♂だって♂でも♂しか、むしろ♂の方が、、、

ところで、上沼恵美子似の歌手は
なぜ、つんく♂(ツンクチンコと読むのか?)という名前なの?
0100DelフサギコNGNG
  今だ! 100番ゲット!!
  ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄
      ∧,,∧  
     ミ,,゚Д゚彡      (´´
     ミ つ且~~    (´⌒(´
   〜ミ,,,,,, ,,ミ ≡≡(´⌒;;;≡≡≡
           (´⌒(´⌒;;
      ズザーーーーーッ

●芸能人の「つんく」はどうして「つんく」という名前なんですか?
また、最近つんくさんは語尾に「♂」がついてつんく♂になりましたがそれにはどう言う意味があるのでしょうか?
http://homepage2.nifty.com/yurai/name7a.htm#つんく

>>91
2wayじゃないけど、Delphiのダイアログページでやや満足かと・・・
0101デフォルトの名無しさんNGNG

  |
  |_∧ シタラバ…
  |−゚)
  ⊂|
  | 〜
  |∪
 ̄ ̄ ̄ ̄ ̄ ̄ ̄
0102デフォルトの名無しさんNGNG
よってたかってネタスレか(w
0103デフォルトの名無しさんNGNG
じゃ、まともなネタでも。Delphi6 Only。Borland Community より

コード補完の失われた機能

「新しい 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デフォルトの名無しさんNGNG
program Project1;
uses Windows, ShellApi;
begin
 ShellExecute( 'OPEN', PChar(ParamStr(0)), '', '', SW_SHOW);
end.
0106デフォルトの名無しさんNGNG
>>105
ブラクラ
0107DelフサギコNGNG
>>103 かっこいい!どこからそんな情報が・・・

  ∧,,∧    /
 ミ,,゚Д゚彡 <  ところで、便利なArrowコンポーネントはないですか?
Π ̄ ̄ ̄|  \ 上下左右しか矢印が書けないショボいのとか
|つキボンヌ()    斜めが書けても、TviArrowExくらいしか見つからない。
| |___.|     もっとビクーリするくらい矢印が書きやすいものがありそうかと
  ∪∪      思うの・・・・ないのかな。
0108下手人NGNG
>>103
転載させてもらいました
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1003919990
0109デフォルトの名無しさんNGNG
>>108
あっちにも書いたけど,RegEdit に渡せる形式でなかったことと
Enterprise 版にあるユニットが入っているため下位の版ではうまく動かん。

修正した Enterprise 版のファイルをあっちにアップしておきます。
0110下手人NGNG
直リンです
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/lounge/file/1003919990_3/D6CmpltEnt.reg
0111デフォルトの名無しさんNGNG
>>107
どんな矢印を書きたい?
希望する機能を全て書いてみてよ。
つくってあげる…かも。
0112DelフサギコNGNG
   |
電 |
   |∧,,∧
柱 ミ,,゚Д゚彡 <ちょっと無茶っぽいこと言っていいかしら>>111さん
  ⊂ ミ
   |, ,,ミ
   |∪
, ' , ; ' ;

最理想はD6ダイアグラムページの矢印なのだけど
捕まえグリッド(マウスでつかめる黒い点)の
実装がかなり手間ですのでそれはあきらめて

TShapeのようなクラスを3つ用意して

TArrowOrigin(始点)
TArrowLine(線)
TArrowEndPoint(終点)

これらがそれぞれをpropertyで関連づいて
任意の"角度"で三角形やらひし形やら丸やら四角を
枠と中身を任意の色やStyleで描画できるようにしておくと

RADのみで
かなり自由度の高い矢印がかけるのではないでしょうかと
思ったりしています.

TArrowContactPoint(接点)を用意して

始点-線-接点-線-接点-線-終点

と組み合わせたら折れ線も書けそう。

良く知りませんがベジェ曲線みたいな拡張も可能かも...

組み合わせ時にコンポーネント同士の位置関係に気配りが必要。
連動して動くといい感じですね。
0113DelフサギコNGNG
         _________
  ∧,,∧   / それより、TImageを継承して
 ミ,,゚Д゚彡<  設計時クリックした2点間に指定した形の始点終点で
  ミつ つ  \ 矢印描画したほうがいいか。
〜ミ  ミ.     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  U U
      我ながらよい設計は思いつきませんが...
0114デフォルトの名無しさんNGNG
米国テロの影響で配送が滞っていたThe Delphi Magazine Vol.73がやっと届いたので
読んでいたら、こんなのが紹介されてた。
Bold for Delphi
http://www.boldsoft.com/products/bfd/index.html

ビジネスソフト開発用だけど、DelphiアプリをUMLでデザインできるみたい
試してないけど。
0115デフォルトの名無しさんNGNG
>>113
http://www.devexpress.com/products/vcl/exforlib1.asp
の
dxfConnector
は?
0116デフォルトの名無しさんNGNG
>>114
... 白い粉,まざってない?
0117デフォルトの名無しさんNGNG
>>116
フケとか?
0118デフォルトの名無しさんNGNG
>TShapeのようなクラスを3つ用意して

>TArrowOrigin(始点)
>TArrowLine(線)
>TArrowEndPoint(終点)

>これらがそれぞれをpropertyで関連づいて
>任意の"角度"で三角形やらひし形やら丸やら四角を
>枠と中身を任意の色やStyleで描画できるようにしておくと

? コントロール矩形に内接するひし形、三角形、楕円、長方形、正方形、円を 任意の境界色、スタイル、塗りつぶし色、塗りつぶしスタイルで描画できるって事かな。

矢印は、矩形の辺に平行、対角線のどちらかを選ぶって事か。
でも気を付けないと矢印の”棒”は描けても、スペースが足りなくて”矢じり”が描画できないことってあるよね…
0119Delあめ猫にゃNGNG
>>118
GrapihcControlは 親のDCハンドルを貰って描くから ハミダシテも描けるよ
はみ出していいかどうかは別にして
0120Delあめ猫にゃNGNG
しまった。 TGraphicControl でも  IntersectClipRect されて渡されるから外には描けないや
0121デフォルトの名無しさんNGNG
>107
もと
http://community.borland.com/article/0,1410,27913,00.html

ボブさんちはBorland系の最新情報をまとめてチェックできるから良いぞ。
http://www.drbob42.com/
kylix2の話もでてるな。
0122Delあめ猫にゃNGNG
という事で、
TMyArrow = 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デフォルトの名無しさんNGNG
質問です
procedure Tjotai_real.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
 文
end;
上の文をFormCreateで呼ぼうと思っImage1MouseDown(Sender,mbLeft,ssShift,0,0);
をしたのですが「TshiftStateとEnumerationには互換性がありません」って警告が
出ます。
どうしたら良いでしょうか?
0124デフォルトの名無しさんNGNG
TshiftStateとEnumerationには互換性がないんですよ。
0125デフォルトの名無しさんNGNG
>>123
あら?Delphi6 じゃないね?
0126デフォルトの名無しさんNGNG
>>123
TShiftStateは集合型。
ssShiftはTShiftStateの要素の列挙型。
集合型として書くには、 [ssShift] として ssShift要素だけが
ある集合にする必要がある。

言語ガイドで集合型あたりを読むこと。
0127デフォルトの名無しさんNGNG
列挙型じゃね?
[ssShift]
0128デフォルトの名無しさんNGNG
>>127
ssShift の方が列挙型
[ssShift] として集合型にする必要がある。
0129123NGNG
すいません。
Kylixです。
0130123NGNG
img1MouseDown(Sender,mbLeft,[ssShift],0,0);

これで解決しました。
ありがとう御座います。
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でチャレンジしたけどしんどかったの。)

の。
0135DelフサギコNGNG
>>134
  ∧,,∧ ──────
 ミ゚Д゚,,彡 < >>4のリンック先みてチョー
 ⊂⊂ ミ──────
    ヾ ,,ミ〜 ────
     し じ ─────
0136111=118NGNG

ためしにちょっとつくってみた。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1003826049
の4に KShape.pas が置いてあるから、インストールしてみて。
Saw.enabled プロパティを有効にするとなんだかバぐるので
注意してね。
再描画に問題あり。どうやって解決するんだ?
0137デフォルトの名無しさんNGNG
>>136
再描画されないし。
こんな程度の腕でつくってあげるなんてぬかすな
0138DelフサギコNGNG
   ∧,,∧      / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ミ,,゚Д゚彡  <  >>137厳しいでござるな
  ミ つ且~~   \___________
〜ミ,,,,,, ,,ミ

>>132
ナイスな情報ありがとございます。

>>133
それは暗に、UMLツールを作れという指令ですか?。。。。。。。。。。。。。゚Д゚;;;

>>136サンクスです。試してみます。
矢印コンポといえば、
昔の日経ソフトの連載で出ていたり
D4プログラミングバイブルに載っていたりしますので
その辺りを調査するのもいいかもね。

あと、DSPやTorryで探せば二つくらいみつかりますよ。
0139デフォルトの名無しさんNGNG
>>137
まあ落ち着きなさいって。世の中にはコンポすらつくれないDELプログラマが何人いることか…
0140横レススマソNGNG
>何人いることか…
たった何人なのか(w
微妙なフォローにワラタ
0141Delあめ猫にゃNGNG
 ソースUpするの 恐いにゃ〜

http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=999294620&res=25

マウス左で矢印の先と尻尾をドラッグ移動出来るかの実験コンポだから
 範囲外にドラッグしようとしたらとか考えてない

それとマウスで動かした時にプロパティエディタを更新する方法が判らん
0142デフォルトの名無しさんNGNG
Delphi 6 ドキュメントアップデート・ダウンロードサービス
http://www.borland.co.jp/delphi/del6docup.html

IBX のヘルプ、pascal 化されとる。
0143デフォルトの名無しさんNGNG
>142

http://piza2.2ch.net/test/read.cgi/tech/1001442200/l50

某の人がここ読んだんじゃない?
0144デフォルトの名無しさんNGNG
>141
published
property Source: TWinControl;
property Destination: TWinControl;
property Space: Integer; default 4;
が欲しいかも
0145デフォルトの名無しさんNGNG
>>143
>某の人がここ読んだんじゃない?

読んでるのは事実でしょ。こないだもあっという間に誤字が直ったし。
けど、これは関係ないでしょ
0146DelフサギコNGNG
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| あめ猫さん。すっげーーーー!!!
\___  _________
      ∨
♪   ∧,,∧ ♪    すばーらし!
    ミ*゚Д゚彡  ♪
    ミつ[|lllll]).
   〜ミ  ミ   ツカイヤスイ!!!
    U''U

>>141 別にOE更新しなくてもGetが正しければ
よいと思いますよ。
>>141のリンク先のソースはHTMLソースから
取得するとヨシ。

あとは
       │\
 ┌───┘  \
 │          \
 │          /
 └───┐  /
       │/
やら

             |\
 /\         |  \
 \/  ̄ ̄ ̄ ̄ ̄ |  /
             |/

こんなのをサポートしてほしいっす!
前後に端点がつかない単なる線だけも欲しいし
LineのWidthとか点線とかサポート
とか。わがままいってしまいますニャ。

あと矢印の端点捕捉のマウス認識範囲はもう少し広いのがよいいです!


いや、やれといわれりゃやりますが。

うーん。CanResizeとかああやっているのかなるほどなあ。

function TMyArrow.DesignProc(var Message: TMessage):boolean;
をを。なんだこりゃ。。。
0147デフォルトの名無しさんNGNG
Indyの最新β(9.0.2)、インストールできなくない?
日本語版のパッチは判別してくれないのかな…。
0148下手人NGNG
3時間程CGIのメンテしますので、少々お待ちくださいませ
0149デフォルトの名無しさんNGNG
>>147
そうじゃなくて.

D6 付属のものは Ver8
"A patch is now available for Indy 9.0.2" は
9.0.2-B に対するパッチ。ということ。まず最初に 9.0.2 を落とさないと。
0150DelフサギコNGNG
      ∩,,,,,,,,,,,∩ ,,,_ >>146
   〜⊂`'''''''''ミ。Д。ミ⊃  アボオーン
      `'''''''''''∨ ∨

 OE⇒OIだった。オブジェクトインスペクタでOEって間違うなんて…
0151デフォルトの名無しさんNGNG
これは何に使うの?>矢印
0152147NGNG
>>149
ごめん言葉がたらなすぎた。
Indy9.0.2をインストールしようとすると、Delphi6のアップデートをしてないとインストールできませんよ
というメッセージが出る。
すでにアップデートパッチを当てているのに。
なので日本語版のアップデートは認識してくれてないのかな、と。
0153147NGNG
と、数日前にはインストール失敗していたんだけど今やったら出来た。
すいません。 152とかは無視して。
0154147NGNG
たびたびすまん。やっぱり失敗。
Indy9.0.2-Bをインストールしようとすると、
"This installation requires Borland Delphi Service Pack 1 ..."
とのメッセージが。
とりあえず9.0.1を使っていますが。
0155sageNGNG
>151
>これは何に使うの?>矢印
フサギコがDel用2wayUMLツールを作ってくれるそうです
0156デフォルトの名無しさんNGNG
おぉ〜、フサギコマンセー
完成した暁には、プラスチックの下敷きで、ナデナデしてあげよう
0157デフォルトの名無しさんNGNG
>>156
warata
0158DelフサギコNGNG
  _____
  ±±±±±
   ̄ ̄ ̄ ̄ ̄
    ∧M∧  ・・・・。
    ミ ゚Д゚彡
  〜ミ,,,,uuミ

作"れ"ません。

(作"り"ませんに非ず)

矢印は矢じるしたい時に矢じってください。
0159136NGNG
シクシク
俺のは誰も評価してくれないのか…
評価してくれたのは1人
それも煽り…
0160デフォルトの名無しさんNGNG
>>154
インストーラーの問題かな?
ソースコードキットを使って,ビルドしたら?
0161下手人NGNG
>>159
  --------∧ ∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜□□ □□ ( ゚Д゚)< そんな時もあるさ。精進せぇよ
 U U U U U U-U   \__________
0162Delあめ猫にゃNGNG
>>146
ええと、設計時に動かせるかどうか試したいだけだったから
 あめ猫はこのまま拡張する気はないにゃ。ひとつのキャラクタ
を一つのコンポにする方法だと複数のキャラクタが重なった時に
操作させるには、結局操作点を別の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
>>163

長方形と三角形のリージョンつくってOR結合するとすごく簡単だよ
0165デフォルトの名無しさんNGNG
長方形でないグラフィックなコンポなら、
Delギコの得意なフックで書けばいいんじゃないの?
0166デフォルトの名無しさんNGNG
sage進行見っけ
0167デフォルトの名無しさんNGNG
>>164-165
 サンプルコードきぼーん
0168DelフサギコNGNG
      ∧,,∧l||l  昨日道に倒れてた交通事故にあった猫を介抱してた(リアルワールドで)
       ;゙⌒ヽ彡  頭を打って脳がやられちゃったみたい。
     〜ミ___ミ    鬱だ。まじ鬱だ。今は動物病院....
    ''" ""''"" "''  後遺症がひどく残るようなら保健所逝きになるかも........まだ子猫なのに。


>>159さん、作ってくださってありがとね。
最初に評価したけど
いきなりIDEごとハングする処理はせめて混ぜないで欲しかった。

あと、矢じるし系とShape系を混ぜるのは
クラスの分類として混乱しそう。

それとああいうUIだと矢じるしの端が消えた時に
それを見せるための操作が非常に面倒だという事が
改めてわかりました。

>>162あめ猫さん
> 複数のキャラクタが重なった時に
> 操作させるには、結局操作点を別のcontrolにしてZオーダ上げたり
> させなくちゃいけない。
使っていくうちにその不便さが身にしみました。
見せてもらって初めて問題点が浮き彫りに

まるで仕様をろくに決めていない顧客みたいだ>俺

> どうせやるなら >>133 みたいに複数のキャラクタを一つのコンポ
> 内で操作出来るコンポを作りたいにゃ

ドウイニャー

ああいう操作の形がありだと知っただけでも
非常に勉強になりました。感謝感謝。

>>164-165
非短形コンポって見たことないでした。作れないって。
0169164NGNG
>>167

procedure 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
>169 ? それどうやって回転するの? リージョン回転するAPIあったっけ?

>163 は任意方向むくよ
0171164NGNG
>>170

リージョンを回転させるAPIはあるけど、Win9X ではダメ。
保持しているリージョンを回転させるのではなく、リージョン
を定義している点の座標を回転による変換で作り直すわけ。
163のコードでもこれは同じでしょ。
でも、任意回転のこと考えたら確かにリージョンを使うメリットは
減るね。うーむ、164 でのOR合成によるリージョンでの描画は撤回。
163 で計算された座標をもとにポリゴンリージョンを保持することを
提案。リージョンを保持することの利点は、

1) 一度作ってしまうと、再描画のたびに計算する必要がない
2) 特定の点がリージョン内にあるかどうかをすぐに判断できる

くらいかなぁ...。
0172DelフサギコNGNG
   ∧,,∧     / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ミ,,゚Д゚彡  < 矢じるしコンポ。どうりで標準で用意されていない
  ミ つ且~~   \&有名なのがない、わけですね。
〜ミ,,,,,, ,,ミ

>>171
>1) 一度作ってしまうと、再描画のたびに計算する必要がない
再描画ごとに計算するのは
やり方さえ工夫すればリージョン使わず描画する時も必要ないのでは?

任意角度のプリミティブ図形(△やら□などのことだったよね)
の描画計算にそれほど時間がかかると思えないです。

>2) 特定の点がリージョン内にあるかどうかをすぐに判断できる
ゲームじゃないし....必要になるかな。マウスドラッグはしやすくなりそうだけど

あめ猫さんのものを拡張して
TArrowsPaintみたいなのを用意して
複数のArrowを動的配置できるようにできたらいいですのにね。
そうすればコンポーネントの重なりも無視できるし

インスペクタ連動するためには
TCollectionとTCollectionItemが必要になるか....ますますフサには不可能だ。
0173164NGNG
>>172

171 の 1) については、確かにポリゴンの座標を配列で持っていれば
リージョンを使わなくても簡単に再描画できるね。

でも 2) については結構重要だと思うよ。とくに斜めに矢印が描画さ
れている時は、それを囲む矩形領域がコンポの領域になるわけだろう。
ユーザが図形をマウスでドラグしたくなったとき、ほんとに選択したい
図形が判断できるのは重要なのでは。とくに、他の図形コンポと重なり
あっているときには。

あとリージョンでは
3)それを囲む外接矩形領域が簡単に取得できる
ことも重要だと思わないか。コンポーネントの領域に反映させるために。
0174デフォルトの名無しさんNGNG
>>173
それを囲む外接矩形領域が簡単に取得できる
ってのは、頂点のリストがあるのなら
単に最大・最小を走査するだけで出てくるんでは?
0175164NGNG
>>174

あのね、リージョンじゃなきゃできない、と主張してるんじゃないんだよ。
172 や 174 のコメントの内容は、「リージョンをつかわなくてもこう
すればできる」という内容だよね。リージョンを使えばもっと簡単だよ、
ということを主張してるのよ。おれもリージョンに固執するわけでもな
いが、ちょっとでも便利ならリージョンを使う、という選択もありだろ。

一般論として、ベジェ曲線や弧などを輪郭の一部としてもつ図形では、
スキャンして外接矩形は求められんだろ。今回の矢印の場合でもAPI
一つで取得できる方がスキャンして求めるより簡単だろ。

なぜリージョンを使う、ということを避けたがる?
0176174NGNG
>>175
別に避けたがってるんじゃないよ。
ポリゴン形状前提の場合、外接矩形を得るのに
リージョンのメリットの補強にはならないって思っただけ。

ポリゴンに限定しないのなら、システムにやってもらったほうが
いいのは間違いないけどね。
0177DelフサギコNGNG
全く経験がないからわからないのですが
設計時にリージョンを使うと矢印図形の描画領域外の余白部分の
向こう側にある矢印を選択できるのでしょうか。
(変な形のボタンコンポーネントなどはどうなっているのかな。
 そんなの使ったことないからしらにゃい)
だとしたら便利ですね。

でも出来ないのなら"矢印"というものは
単なる2点間指示なわけなので
外接領域が必要になることはすくなさそう。と思うてます。

一つのTGraphicCtrlに複数の矢印を描画することと
一つのTArrowsMyPanel上に矢印リージョンな子Windowを
動的生成するのと同じことなのかな。

>なぜリージョンを使う、ということを避けたがる?
そういうわけではないのですが

必要無いときには使わないですし。
"描画"が必要なのと"Window"が必要なのとは違うし。

いろいろな可能性を模索がいいですね。

 ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄
   ∧,,∧    クチ バッカ デ ゴメン ヨ
  ミ,, ゚Д゚彡
   〃  つ旦~~
 〜ミ,,,n,,n[ ̄ ̄ ̄.]
        ̄ ̄ ̄
0178164NGNG
>>176
> 別に避けたがってるんじゃないよ。
> ポリゴン形状前提の場合、外接矩形を得るのに
> リージョンのメリットの補強にはならないって思っただけ。

わかった。そのとおり、ポリゴンの場合は補強にはなってないね。
すまぬ。

>>all

市販のドローソフトが描く矢印を見てると、矢印の方向だけでなく
「やじり」部分の大きさや形を選ぶことができるよね。単純な三角
だけでなく、曲線の入ったヤツとか。ああいうふうにするには、
しつこいようだが、リージョンを使えば簡単なんだがね。ネックは
170 が指摘しているように、Win9X 系では、リージョンを回転させる
APIが使えないことなんだよ。だれか、一般的な方法でAPIを
使わずに任意角度にリージョンを回転させる方法を教えてくれないだ
ろうか? ポインタだけでもOK。よろしくお願いします。
0179DelフサギコNGNG
   ∧,,∧   / ̄
\,,,,ミ,,゚Д゚彡 < なるほど、リージョン自体と
⊂,,,,,,,,,つつ.   \ SetWindowRgnとは違うのですね。

フサは良く知らなかったので、同じ機能かと思ってた...スマソ

読んでいたはずの、D4プログラバイブルの矢印コンポーネントでは
矢印の三角形部分クリックの判定にリージョン使ってた。

そんで、気になる所ですが
設計時コンポーネントにSetWindowRgnを適応することはできるのだろうか…

>>178
ようやく話が見えてきました。確かにリージョ使うと簡単ですね。

>任意角度にリージョンを回転させる方法
思いっきり単純計算でリージョン作り直すとか?
これなら労力さえあれば何とかできるでしょうが…
0180164NGNG
>>177
>必要無いときには使わないですし。
>"描画"が必要なのと"Window"が必要なのとは違うし。

リージョンは、ペンやブラシ、フォント、と同じGDI オブジェクト
だぞ。Window とは関係ない。ただ、リージョンを使ってウィンドウ
にクリッピング領域を設定できる、ということだよ。

> 一つのTGraphicCtrlに複数の矢印を描画することと
> 一つのTArrowsMyPanel上に矢印リージョンな子Windowを
> 動的生成するのと同じことなのかな。

これは見かけだけが似てるけど、コーディングするほうでも、
ウィンドウズのリソースの面からみても全く違うでしょ。
リソースのことを考えなければ、矢印ウィンドウというのが
コンポーネントとしては実装が一番簡単そう。
設計時はともかく、実行時には、<その形>のままでマウス
メッセージに応答できるよね。
0181164NGNG
>>179
>>任意角度にリージョンを回転させる方法
>思いっきり単純計算でリージョン作り直すとか?
>これなら労力さえあれば何とかできるでしょうが…

リージョンを構成するプリミティブを作成するときの座標を
っかいてんさせれば、リージョンも回転できそうに思うのだが
そうではないんだよ。これが悩みの種なんだ。
たとえば、単純な楕円リージョンを作ったとして、それを中心
を原点にして20度傾けるにはどうしたらいい?外接矩形の座標を
傾けてもできないんだよ....。
0182デフォルトの名無しさんNGNG
>>181
ベジェ曲線なら制御点リストを回転/変形させるだけで
生成される曲線もそのとおりに回転/変形するから便利だよね。
0183デフォルトの名無しさんNGNG
楕円を使いたい時はベジェで描けって事か・・・
0184Delフサギコ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
無理にリージョン側を回転させる必要ありますかね?
回転角度覚えてるんなら、リージョンの中心座標とカーソル座標使って
カーソルの座標側を回転させられない?
最初に生成したリージョンだけで判定できると思うが
0186164NGNG
>>185
全く理解できない。カーソル座標って何だ?
カーソルの座標を回転するって何の事だ?
簡単なサンプルコードを頼む。
0187デフォルトの名無しさんNGNG
184みたいに使う時はリージョン回転が必要でしょう。
0188Delあめ猫にゃNGNG
自己レス

>141 それとマウスで動かした時にプロパティエディタを更新する方法が判らん
やっとみつけた
GetParentForm(Self).Designer.Modified;
0189Delあめ猫にゃNGNG
どうもCM_MOUSELEAVE が設計時に貰えないにゃ
これが無いとドラッグしたままエリア外に動かしてしまうと困った事に
0190下手人NGNG
>>186

クリック位置からどのリージョン選択するか判定する時は、リージョン回転無しでできないスカ?って事ッス

例えば45度回転してるなら、図形の回転軸(X,Y)からクリック位置(x1,y1)の相対距離(X-x1,Y-y1)と逆正接で
角度と距離を得て、図形の回転量(45)を引くと。
で再度、正接と距離で座標に変換してリージョンとの衝突判定すれば
判定計算軽くならない?

FireWall-1でモメてるんでソースは勘弁(w
0191Delあめ猫にゃNGNG
>>172
今考えている 複数のキャラクタが表示出来るコンポは
 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で持たせるという方式です。

これなら簡単でしょ?
0192164NGNG
>>190
>クリック位置からどのリージョン選択するか判定する時は、リージョン回転無しでできないスカ?って事ッス

返信ありがとう。
クリック位置からの判定とリージョンの回転はなにか関係あるんですか?
同じ座標系なら PtInRegion() API ですぐに分かるんでは?
0193下手人NGNG
   ||
 Λ||Λ
( / ⌒ヽ
 |下手人
 ∪ / ノ
  | || リージョンが回転済ならその通りです...>>192
  ∪∪
0194Delフサ2ネコNGNG

 ∧ ∧∩  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ミ@゚Д゚@ミ < 楕円など、回転して変になる奴はリージョンをかけない方向は?
 (| 2ネコ |   \真円とかポリゴンとか認めないでいたら?
〜| _ |
  し'  `J  リージョンの使い方を自分で限定してしまえばいいかもね。

ところで、あめネコ氏はどうしてそんなに百戦錬磨っぽいの。
>>191 そんなの普通思いつかないYO.発想がすごいや。

矢印を含むキャラクタ名を追加したら
内部で動的にオブジェクトを追加しておくってことでしょ。

で指定したいオブジェクトのIndex値orキャラクタ名をOIで指定すると
そのオブジェクトのプロパチがOIで指定できるって事かな。

出来たらすごい。
0195164NGNG
>>194
>楕円など、回転して変になる奴はリージョンをかけない方向は?

うん、これならいいよね。
ポリゴンみたいに、複数の点だけで完全にリージョンを記述できれば
回転は簡単だよね。例の三角と長方形の矢印だったら7点の座標を
保持すると、回転は外接矩形の中心を原点にして任意にできるね。
ちょっとトライしてコンポーネントつくってみる。
みんな、ありがとね。
0196Delあめ猫にゃNGNG
>>194
 いや、あの・・・・オブジェクトインスペクタにいちいち登録したら
 逆にうっとうしいと思う。

 あめ猫の考えてるのは単に TStrings 用のエディタで編集するだけです
 LINE ,10,10,100,200 みたいにね
 これをマウスで移動とか出来るようにすれば便利かなと
 この土日には雛型作ってみるから、 便利そうだったら誰か
 拡張して、プロパティエディタとか作って欲しいなと・・・


ところで、今、線分と点の距離とか
ttp://www.infoeddy.ne.jp/~tensyo/prog/linealgo.htm
ここ見てるんだけど、ここに 楕円をベジェで描く方法とかもあるよ
0197デフォルトの名無しさんNGNG
>196
いいページ!Viva!あめ猫もViva
0198DelフサギコNGNG
    ∧ ∧  ・・・・。
    ミ ゚Д゚彡  拾ったネコ、あまり調子が良くニャイ。
  〜ミ,,,,uuミ   ご飯も飲み物もなんも食べないナー
          元気になってくれるのかな。
0199164NGNG
>>198
その猫、元気になるといいね。
陰ながら祈ってるよ。
Delフサさん、あとの経過報告も頼むよ!
もう帰る....。
0200164NGNG
>>196
おっと、帰る前に、
いいページ紹介してくれて、ありがとう。
役に立ちそうだ。ベジェから直接リージョンは
作れないんだけれど、パスを通せばつくれそう。
やってみるよ。
0201デフォルトの名無しさんNGNG
質問。

フリーカーソルや、予約語機能をつけた
エディタコンポーネントがありますね。
あれは、すべて自前のコードで実現してるんですか。

つまり、キー入力に応じてカーソルを移動、
カーソルの点滅や文字入力、削除、上書き、選択時の挙動にいたるまで
すべて自分でコードを書かないといけないのですか。
0202デフォルトの名無しさんNGNG
>>201
多機能なエディタの多くはそうです。
0203デフォルトの名無しさんNGNG
>>201
他人の褌を使っているうちはろくな事はできないと思われ。
0204通りすがりNGNG
>>203
それはWin標準のコントロールだとダメってこと?

>フリーカーソルや、予約語機能をつけた
>エディタコンポーネントがありますね。

関係ないけどエディタコンポすごいよな。
これ使った良質なソフトがどんどん出てきてるんだもの

Delphiのコンポ作者←→ソフト作者(コンポ使用者)の分業が
ものすごくうまくいってる感じだよな。
0205デフォルトの名無しさんNGNG
ListViewコントロールでエクスプローラーからのファイルのドロップを受け付けたいんですが、
「DragAcceptFiles()が未定義だゴルァ(゚Д゚)」と怒られます。
uses Windowsはしてあるんですが‥‥
どうやるんでしょうか。Win32API呼べないのでお手上げ状態です。
0206デフォルトの名無しさんNGNG
ShellApiじゃないの?
0207デフォルトの名無しさんNGNG
Delphi 6 ドキュメントアップデート #1 でたけど。
がいしゅつだよね?
0208ななしヘタぐらまNGNG
>>201
Edit程度でフォント幅固定ならそれほど難しくないのですが….
カーソル(キャレット)の処理は場所と大きささえ指定すれば
点滅はWindowsが勝手にやってくれます.
フォントがプロポーショナルだったり
さらに色つき,大きさ違いなどの修飾がつくと
飛躍的に難しくなりますけど.
0209DelフサギコNGNG

  ,,,,,,,,,,,,,∧,,∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′,,,,,,,ミ,,゚Д゚彡 < 201さんじゃないのですが
  UU""" U U    \_______________

キャレットってどうやって表示するのでしょうか。

テキストビュワーなら自前で作ったことあるので
そこにキャレットが表示できると
簡単なエディタになると思うのです。

プロポショなどは抜きで簡単なやり方を紹介してほしー
0210DelフサギコNGNG
    ∧ ∧  ・・・・。
    ミ ゚Д゚彡
  〜ミ,,,,uuミ
 えっと、MLで話題になっているチャットプログラムって
 >>67-68で出てる要望を見たせますかニャ?
0211201NGNG
>>208
> カーソル(キャレット)の処理は場所と大きささえ指定すれば
>点滅は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
LINE , 10,10,100,100 と入力 すると線が表示されるにゃ
そこにマウスを持ってゆくと 色が変わるから ドラッグするにゃ

線なら全体移動、○まら端だけ移動
0214デフォルトの名無しさんNGNG
キャレットは(好きな言い方じゃないんだけど)CreateCaret, ShowCaret, SetCaretPos
をヘルプで見てください。めちゃ簡単です。
追伸:キャレットはウィンドウに対して作ります。
0215DelフサギコNGNG
  ∧,,∧∩  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ミ,,゚Д゚彡 < IDesigner がニャーです>>212
  U  ミ   \____________
  ミ  ミ
 ノ∪∪
0216201NGNG
>214
どうもありがとうございます!
ウィンドウにカーソルを表示することが出来ました。

質問ついでに。
日本語変換のときに、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はやいなー。ネコにもわかるように教えてくれにゃ。
簡単なサンプルなど、、キボンヌ...
0218201NGNG
Form1 上に Button1 を配置し、OnClick イベントに以下のように書きます

CreateCaret(
 Handle, // 表示先 Window ハンドル。例えば Panel1 に表示するならば Panel1.Handle とする
 0, // キャレットに使う Bitmap ハンドル。ビットマップを使用しない場合は 0.
 2, //キャレットの横幅
 16 // キャレットの高さ
);

ShowCaret( Handle ); //キャレットを表示
SetCaretPos( 20, 30); // キャレットを移動(キャレットの左上座標(多分)を指定

…キャレットとカーソル、どちらがただしいのでしょう。
自分はカーソルのほうがしっくり来るんですけど。
0219デフォルトの名無しさんNGNG
imeの表示位置はちょっと面倒かも
http://www2.big.or.jp/~osamu/Delphi/Tips/key.cgi?key=10
にサンプルがあるけど(BCB用だけど)
0220201NGNG
あのう…大変な事に気がついてしまったのですが、
キャレットの表示にウィンドウハンドルがいるということはですよ、
TWinControl を継承したコントロールに対してのみキャレット表示が可能という事ですよね。

TGraphicControl を継承して文字を描画しようと思ったのですが、
もしかして不可能ですか。

キャレットを表示しつつ、文字描画をも行うには
なんのコントロールを利用すればよいですか。
0221デフォルトの名無しさんNGNG
>>220
キャレット表示は基本的にフォーカスを持っていることを
示しているのだから TWinControl 継承が必須です。

TCustomControl はどうでしょうか?
0222201NGNG
>>219
どうもありがとうです。参考にして試してみたら、
キャレット位置に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フサギコNGNG
>>222、サンクスですよくわかりました。
uses IMMが追加で必要っすね

   ∧,,∧   /
(,,,,,,,ミ,,゚Д゚彡 < PanelなどだとTABSTOP=True
⊂,,,,,,,,,つつ.   \にする必要があるのですね。

VCLのCanFocusはあてにならないし

どうしてButtonはTabsとp=Falseでも
クリックしたらフォーカスを他Ctrlから
奪えるのにPanelはだめなのかしら

PanelClickイベントに
Panel1.SetFocusと書いたら
出来たけど...
0224Delあめ猫にゃNGNG
>>217
   ∧  ∧
  /∂⌒∂
  (( × メ ))   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  彡 ヘ ミ  <  ありゃD5 で試してたにゃ
  (    ⊂)   \__________
  ◯(⌒Y⌒)
 結局 中間変数を使わない事にしたにゃ
 折線の時に便利かと思ってわざわざ複数選択が同時に出来るようにしてたにゃ
 結局全体移動の時は複数選択出来ないように変更したにゃ

関数型のメソッドのinherited のやり方判らなくなったから procedure に直してるにゃ

で、便利そうかにゃ?
0225Delあめ猫にゃNGNG
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=999294620&res=31

1、ARROW2 >>163 の追加
2、>>224
3、矢印の端をドラッグして矢の大きさを変えられる
0226Delあめ猫にゃNGNG
225をD6パーソナルで試すと、
 なぜか編集中ドラッグしてると画面表示されないにゃ
D5だと問題無いし、TMyDraw.IsDesgine:=True にして実行すると問題ない

どうやら PropModified を呼び出すといけないみたいだ・・・
まあ Linesプロパティだけだから呼び出す必要ないかもにゃ
0227デフォルトの名無しさんNGNG
http://www2.big.or.jp/~osamu/Delphi/Tips/key.cgi?key=10
関係ないけどさ、JAVAスクリプトでのみ、リンクさせてるサイトって
殺したくなるんだよな。 俺JAVA切ってるから。
0228デフォルトの名無しさんNGNG
殺すなよ。殺人になるから(藁
0229下手人NGNG
  --------∧ ∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜□□ □□ ( ゚Д゚)< pasファイル添付もしてくれると嬉しいぞゴルァ>>225
  (O)----(O)U-U) \__________
0230デフォルトの名無しさんNGNG
>>227
気持ちはわかる。
手元で動的生成して、結果は単なるHTMLにするのがスマート。
0231デフォルトの名無しさんNGNG
印字可能な文字 はどのように定義されますか。

function IsPrint(C:Char):Boolean;
begin
 result := C in [#20..'Z']; //でOKですか

end;
0232>>231NGNG
あなたのところでは、日本語の印字は不可なのですね。
0233デフォルトの名無しさんNGNG
”半角”で印字可能な文字は

function IsPrint(C:Char):Boolean;
begin
 result := C in [' '..'~'];
end;

ただし半角カナ除く。
0234下手人NGNG
  --------∧ ∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜□□ □□ ( ゚Д゚)< 添え付けってなんだゴルァ(w
  (O)----(O)U-U) \__________
0235Delあめ猫にゃNGNG
>>234 了解にゃ
  これでいいかにゃ

http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=999294620&res=33

MyDraw.Pas として貼付したにゃ

自分で使ってみた感じ、
 けっこういい。
  後、マウスの右ボタンで
  コピーや追加ボタンが出ると嬉しいけど、あめ猫はこれで満足

これ以上便利にするにはちゃんと設計しないと・・・・
0236DelフサギコNGNG
  ∧,,∧   実行時も考慮すればDRAWツールの完成じゃないですか。
 ミ,,゚Д゚彡  いいものを見せてもらいました。
 ミつ[|lllll]).
〜ミ  ミ    感謝でございます。
  U''U
0237デフォルトの名無しさんNGNG
TCustomControl 継承してコンポ作ってますが、なぜか
キーを押しても、オーバーライドした KeyDown が反応しません。
MouseDown はちゃんと反応してくれますが。
KeyDown 内にブレークポイント設定してみたところ、
ブレークポイントの無効をしめす色に変わっていました。
コンポのコンパイル時に、オプション→コンパイラ→デバッグ情報
をONにしたのですが、結果は同じです。

どうすればよいですカ。
0238デフォルトの名無しさんNGNG
すいません。
キーが押されたら KeyDown メソッドが呼ばれるんじゃなくて、
KeyDownメソッドを呼ぶことによってキーダウンイベントが発生
するんですね… 逝ってきます。
0239デフォルトの名無しさんNGNG
やっぱり逝かなくていいですね。
キーが押される→ DoKeyDown → KeyDown → OnKeyDown の順で
呼び出されるから、キーが押されたときの処理内容を
KeyDown に書くのは間違ってはいませんね。
0240デフォルトの名無しさんNGNG
>>237
MouseDownが呼ばれたときなどにSetFocusメソッドを呼びだして
フォーカスを取得しないとキーイベントは発生しないですよ。

>>238
>キーが押されたら KeyDown メソッドが呼ばれるんじゃなくて、
これで合っています。コントロールがフォーカスを持っているときに
キーが押された場合、KeyDown メソッドが呼ばれます。
0241Delあめ猫にゃNGNG
>>236
そうまとめないで、作ってね
0242237NGNG
うーん、フォーカスは取得しているはずなんです(;´Д`)
0243デフォルトの名無しさんNGNG
>>242
普通のアルファベットのキーとかが認識できないのか?
それとも特殊なキー(ALTとかカーソルとか)が認識できないのか?
0244デフォルトの名無しさんNGNG
調べるのにちょっと手間取った。

>>243の続き。

もし>243の通りなら、
procedure CMWANTSPECIALKEY(var Msg: TMessage); message CM_WANTSPECIALKEY;
をpublicに追加、実装はResultに1を入れてみるがよい。


外してたらスマソ
0245DelフサギコNGNG
>>241
         ∧,,∧ ガビーン
        ミ゚Д゚,,彡
        ⊂ ⊂ミ  そそそそ
       ⊂゙゙ 〃  そんな、ご無体な
       /(/″
0246デフォルトの名無しさんNGNG
Delあめ猫さん鋭すぎ(w
0247237NGNG
どうやらキーニュー力部ではなく。その後の処理の仕方に問題があるようなんですが、いかんせん >>237(後半)の状態で
ステップ実行すらできないのです…
0248デフォルトの名無しさんNGNG
>>247
まさか実は override していなかったとか無い?
ブレークポイントを置けないというのはそうとしか考えられない。
0249Delあめ猫にゃNGNG
>>246  あめ猫の今回の動機は、
 設計時にドラッグとか出来るようなDrawグラフィカルなコンポって
 出来るのかなって疑問だけだったから、まあだいたい出来るって
 結論出たら、それ以上やる元気が出ないんだよね
 マウスの右ボタンでメニュー出したりは普通の処理だから出来る
 の判ってるしさ

・・後メニューを付けたりアイテムを増やすのは、手間はかかるけど
 そんなに難しい処理じゃないと思うけどなあ・・・
0250Delあめ猫にゃNGNG
>>235で距離を計算するルーチンにバグがあって
 長さ0の線分が入っていると必ず選択状態になってしまう。
 修正分はソース置場と
 参考にさせて貰った元のソースがあった
http://pc.2ch.net/test/read.cgi/tech/1003559977/
に置きました
0251237NGNG
なぜかブレークポイントは無効ですが、なぜかステップ実行はできました。
とりあえず一件落着です。さて…

キャンバスを持った簡易メモコンポ@バグたくさん です。
文字を描画するイベントがあるので、イベント内で独自の文字を描画する
事が可能になっています。袋文字描画のサンプルコードが入ってます。
感想聞かせてください。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=999294620&res=36&fi=no
0252デフォルトの名無しさんNGNG
>>249
それは、きっと使う人が追加してくれるでしょうニヤソ
0253デフォルトの名無しさんNGNG
そして、きっと追加した人が公開してくれるでしょうコジキスマソ
0254下手人NGNG
>>251
移転しました
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1004273797&res=2

1ネタ1スレで結構ですのでヨロシコ
0255237NGNG
>>244
>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デフォルトの名無しさんNGNG
>>255
inherited呼び出した?
呼び出したあとにResultに値入れるのが吉。
0257256NGNG
あ、気が付いたら $100 ゲットw

んと、要は inherited; して、メッセージのパラメータ見て
必要ならResultに1いれて、それで終了。
だったハズ。
大分前にいじったから少し忘れてる。
なので確証はない…スマソ。
0258デフォルトの名無しさんNGNG
procedure TKCustomMemo.cmWantSpecialKey(var Msg: TMessage);
var
 Key:Word;
begin
 inherited;
 Msg.Result := 1;
 Key := Msg.WParam;
 KeyDown( Key, [] );
end;

としたら、カーソルキーとエンターが3回カウントされるようになりました(;´Д`)
0259デフォルトの名無しさんNGNG
ん、「必要なら」とはどういうことでしょう。
KeyDown イベントで無事処理を終えた場合はパラメタに
何かの値が入っているから、そうでない値(=処理できなかった)
場合に限って result := 1 ; をせよ、という事ですか?
0260デフォルトの名無しさんNGNG
Javaってメモリの自動解放って有りますがDelphiにはそのような物が有るのでしょうか?

全くの未経験なので、、

あったら凄く便利なんで。
0261ねこまNGNG
標準ではありませんが,実現しているコードライブラリがあります.
0262256NGNG
>>258-259
説明不足スマン。
今一度よくコード見てみた。

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
    ∧∧    で。BorConは大丈夫なの?
  ⊂ミ,,゚Д゚彡つ
  ∩∧_∧∩
  ヽ( ´∀`)ノ タカイタカーイ
   (    )
   | | |
   (__)_)
0265デフォルトの名無しさんNGNG
>>263
実体をとった後に TAutoObjRef に関係付けなきゃいけないところがダメ。
それができるくらいなら開放コードを書くよ。
0266DelフサギコNGNG
  _____
 /......  .. .../
 ||:::   ∧ ∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 | ̄\ ミ ゚Д゚ミ<  ダメとか言われても知らん
 |   |: ̄U U ̄:|\_________

 ガベコレがあればうれしいけどね。
 なくてもそうは困らない。
0267デフォルトの名無しさんNGNG
>>266
混ざると悪夢をみるよ...
0268DelフサギコNGNG
      ∧∧____   / ̄ ̄ ̄ ̄ ̄
    /ミ;゚Д゚ミ ./\< インターフェースが
  /| ̄∪∪ ̄|\/  \なんか変
    |____|/   うーん。COMを引きずらないで
     ,,,,∪∪,,, ,,    Java並にまともなインターフェースを
             実装してほしかった。

QueryInterface
_AddRef
_Release
のないインターフェースがなぜ作れなかったのだろう。
0269デフォルトの名無しさんNGNG
VCLからも使われない、COMも使えない
インターフェースなんてDelではそんなに使い道ないだろ。
0270デフォルトの名無しさんNGNG
おれはD6使ってないんだけど、IInterfaceっていう素のInterfaceが
出来たんじゃなかったっけ?違った?
0271デフォルトの名無しさんNGNG
>>268
つまり参照カウンタ管理機能の無い、単なるメソッドテーブルと化した
インターフェースが欲しいって事?

あればあったで便利かもしれない。
0272DelフサギコNGNG
 いつのまにかIUnknownからIInterfaceになったのかと思えば

メモ IInterface は IUnknown と同等です。
一般的には,プラットフォームに依存しないアプリケーションには
IInterface を使用し,
Windows に依存する部分があるプログラムには
IUnknown を使う必要があります。

ですって。ダメダメです。前と同じ。

どうして素のInterfaceを用意していないのか
聞いてみたい。小一時間。

 ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄
   ∧,,∧    ホエホエ
  ミ,, ゚Д゚彡
   〃つ旦O
 〜ミ,,[ ̄ ̄ ̄.]
      ̄ ̄ ̄
   デザパタやりにくいやんか。
  どうしてInterface変数を破棄するときに
  オブジェクトの破棄命令が動作するの。しなくていいっつの。
0273デフォルトの名無しさんNGNG
カウンタいじるんじゃいけないの?
0274デフォルトの名無しさんNGNG
QueryInterface
_AddRef
_Release
を空実装すればいいのでは?
0275DelフサギコNGNG
         _________
  ∧,,∧   / さんぷる書いてみますね。
 ミ,,゚Д゚彡< 
  ミつ つ  \ ちこっとまっとくれ。
〜ミ  ミ.     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  U U
0276デフォルトの名無しさんNGNG
TListViewに5500個ほどアイテム突っ込むのに4分ほどかかるんですが
こんなに時間かかっていい物なんですか?
ふつうにリストからデータ引っ張り出してListViewに入れてるだけなんですが‥‥
0277DelフサギコNGNG

  ∧,,∧    / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ミ,,゚Д゚彡 < 婆ちゃんListViewを使うのじゃないかな?
  ,;゙  ミ     \_____________
 ミ.  ミ
/゛゛゛゛

よくしらなーい。
Virtual と ListViewって単語で検索してみてくださいな。



眠い・・・・サンプルは明日になります。スマソウ
0278ななしヘタぐらまNGNG
>>276
っていうか5500個って多すぎませんか?
プログラムがサクッと動いたとしても
使い勝手が激しく悪そうな気がするのですがどうでしょう.
0279デフォルトの名無しさんNGNG
>>278
ファイラー作ろうとか思ったら、そうなってしまうこともたまにあるかもしれない。
てことじゃないのかな。
0280デフォルトの名無しさんNGNG
やっぱOwnerDataをTrueにして、OnDataイベントで見えてる範囲だけ追加の方向で
0281デフォルトの名無しさんNGNG
えとですね、おそらくループでまわして5500個入れてるとおもうのですが、
単に add してるだけだと、1個アイテムを入れるたびに再描画するのですよ。

BeginUpdate してから5500個入れて EndUpdate.

それでも足りなかったら

Items:=TListItems.Create して5500個入れ、最後に TListView.Items.Assign( Items ) する。
0282Delあめ猫にゃNGNG
あめ猫も矢印アイテムをインターフェースで書こうと思ったけど
  TStringsのObjectsにインターフェース綺麗に入れらないから止めちゃった

 でも後から考えたら インターフェースの動的配列作って、TStringsを継承して
 外からはTStringsに見えるようなの作ればよかったかも・・・・
0283デフォルトの名無しさんNGNG
>>282
インタフェースのドラフト晒してみれば、良い知恵出ないかな?
0284DelフサギコNGNG
  ∧,,∧∩  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ミ,,゚Д゚彡 < インターフェースのしつもーソをアゲました。
  U  ミ   \____________
  ミ  ミ
 ノ∪∪

インターフェースがわからない
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1004423652

長くなってしまいましたが
非常に簡単なことしかしてません。

質問を二つ書いています。


インターフェース変数の使い方、教えてくださいな。

あの使い方であっているものかどうかもイマイチ自信なし。
優れた正しいやり方を氏ってましたら
指摘してくださいな。

「インターフェースって何?」
って方も動作させてみると面白いかもね。
あまりなじみがないものですし、わからなかったら
質問してくださいな。
0285デフォルトの名無しさんNGNG
>>284
インターフェースの中身はメソッドテーブルって事は知っているよね?

そのメソッドテーブルはオブジェクトのインスタンス毎に生成されています。
インスタンスを廃棄した場合、メソッドテーブルも同時に廃棄されます。

インターフェースの参照を解放する前にインスタンスを廃棄してしまった場合、
_Releaseメソッドなどを呼びだそうとすると既に存在していない
メソッドテーブルを参照しようとしてメモリアクセス違反が起きます。

これは回避不可能なので、あらかじめ nil を代入しておき _Release メソッドの
自動呼び出しを抑制するほかありません。
0286DelフサギコNGNG
         _________
  ∧,,∧   /
 ミ;゚Д゚彡< ゼンゼンんしらにゃー。
  ミつ つ  \>>285さん、ありがとう。
〜ミ ,, ミ.     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ∪∪  

> インターフェースの中身はメソッドテーブルって事は知っているよね?
知りませんです。
なんとなく、そんな気はしますが。


> そのメソッドテーブルはオブジェクトのインスタンス毎に生成されています。
> インスタンスを廃棄した場合、メソッドテーブルも同時に廃棄されます。

なるほどなるほど。
つまり、インターフェース変数にはメソッドテーブルが入るという事ですね。


> インターフェースの参照を解放する前にインスタンスを廃棄してしまった場合、
> _Releaseメソッドなどを呼びだそうとすると既に存在していない
> メソッドテーブルを参照しようとしてメモリアクセス違反が起きます。

えーーーー!!!

nilが入っていないとメソッドテーブルの実体はなくなっているのに
インターフェース変数の参照が消える時にメソッドテーブルにアクセスしようとするわけですね。

> これは回避不可能なので、あらかじめ nil を代入しておき _Release メソッドの
> 自動呼び出しを抑制するほかありません。

にゃんじゃって〜〜〜!

こんな実装した奴どこの誰ジャー−−

      ∩,,,,,,,,,,,∩ ,,,_
   〜⊂`'''''''''ミ。Д。ミ⊃ ギャフーン
      `'''''''''''∨ ∨
0287DelフサギコNGNG
気を取り直して....暗い話題でも。
         _________
  ∧,,∧   /
 ミ;゚Д゚彡< D6UP1でもTToolbarのCustomizeがバグったままだと
  ミつ つ  \思うのですが・・・・・・
〜ミ ,, ミ.     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ∪∪   バグなのか、仕様なのか・・・
0288デフォルトの名無しさんNGNG
http://www.vector.co.jp/vpack/browse/pickup/pw4/pw004591.html
こういう風に、アクティブウインドウのタイトルバーに
張りつくプログラム作りたいんですけれども、
どうすればよいか分かる方いらっしゃいませんか?
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;
0291288NGNG
ごめんなさい。問題点をはっきり書くべきでしたね。

えとですね、今考えてる手順は

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
確かWM_ACTIVATEかWM_ACTIVATEAPPだった記憶が
拾ってみなされ
0295293NGNG
>>294
あう。。。
もしかしたら、それやろうとしたら、サブクラス化しないといけないですか。。
サブクラス化はまだ勉強中っすー。
0296デフォルトの名無しさんNGNG
>>294
どうやってひろう?
システムグローバルなフックでもインストールする?
うん、これが一番美しいかなぁ。

>>295
サブクラス化は関係ないと思う。
0297下手人NGNG
苦渋をなめた経験的には、Delフサギコのタイマー駆動が一番無駄なく期待通り(w
誤動作も無いしデバッグもしやすい
0298デフォルトの名無しさんNGNG
つまりストーカーするならゴミの日にゴミ箱漁るより、監視カメラを仕込む方が確実ということですか(´Д `)ハァハァ
0299下手人NGNG
>>297=>>298 ジサクジエンデシタ!!(・∀・
0300296NGNG
>>297-299
タイマーで監視は簡単かもしれないが、PGとしては心痛まない?
ゴミの日でもないのに、1秒ごとにゴミ置き場を見に行くんだぜ。
フックでメッセージを捕まえられれば、ゴミの日に収集車から電話
で直前に知らせてもらうのと同じだぜ。他の事に専念できるし、
寝ててもいいし。
0301276NGNG
ちと遅レスになってしまいましたが。

>>277
sampleディレクトリの中にあったんでソース覗いてみます。

>>278
一括置換用のツールの操作対象ファイルの一覧です。
(特定ディレクトリ以下で特定条件を満たしたファイルを除く全ファイルに対して複数の置換処理(Webページのヘッダ部分書き換えとか)をバッチ処理するツール)
たまたまテストしたディレクトリ(Apacheのドキュメントルート)にPHPのマニュアル(約2500ファイルw)とかがあっただけなんですが異様に遅かったのでどこか不味かったかな?と思ったんで。

>>281
こっちのほうが簡単そうなのでとりあえずこっちで様子を見てみます。
0302デフォルトの名無しさんNGNG
>300
グローバルフックも結構コストかかるような気がするけど(´Д `)
0303ねこまNGNG
慣れると OwnerData モードのほうが簡単です

そういえば ownerdata とかで google で検索してもあんま出てこないんですけど
検索のしかたが悪いんでしょうか?
0304デフォルトの名無しさんNGNG
>>286
COMインターフェースは基本的にリファレンスカウンタを持つから
そういう実装になるのは当然だよ。

Delphi 2 では、インターフェースは言語でサポートされておらず
class 宣言を使って擬似的にインターフェースを定義していた。
参照カウンタも AddRef,Release メソッドを呼びだして自分で
管理する必要があったんだよね。

俺は言語レベルでリファレンスカウンタを自動的に管理してくれる方が
良いが、単なるメソッドテーブルとしてインターフェースを使いたい場合
それが邪魔になるということだね。
0305デフォルトの名無しさんNGNG
★解決した問題はこちらへ★

2chで解決したDelphi質問をFAQ収集するスレ
http://pc.2ch.net/test/read.cgi/tech/1004501183/
0306Delあめ猫にゃNGNG
メッセージフックによるフォームに矢印とかを表示する増やすサブクラス化の実験

http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=999294620&res=37

前回作った複数矢印コンポと同じアイテムを使います

貼り付けると、まるで矢印コンポがあるかのように見えるけど、
 アイテムは TObjectから継承してるのでコンポではありません。

Win2000では ほぼ巧く動きました
0307デフォルトの名無しさんNGNG
256色BMPの保存および読み込みを独自関数で行いたいと思っています。
(パレットを独自で管理したいと思っているので)
ご存知の方がいましたら、教えていただきたいです。
よろしくお願いします。
0308デフォルトの名無しさんNGNG
>>307
質問の内容がまったく分かりません。
我々は何を答えれば良いのでしょう。
0309Delあめ猫にゃNGNG
>>306 は リンク先msg38 の修正をしてからインストールして下さい。
修正しないと Destroy でミスしてるので困った事になります
0310デフォルトの名無しさんNGNG
>>307
すみません。そのとおりです。
もう一度質問させてください。

256色BMPの保存および読み込みの方法を教えていただけないでしょうか?
または、パレット管理のよい方法が知りたいです。

Delphi標準のだと256色BMPの保存、読み込みは出来るのですが
パレットで躓いてしまいます。

1)BMPを読み込み、パレットを取得
2)BMP編集後、上記1で取得したパレットで256色で保存
3)BMPを読み込み、上記で1)取得したパレットで表示

というような処理をしたいのです。

よろしくお願いします。
0311デフォルトの名無しさんNGNG
Delphi思いっきり逝って善し。死言語デス
0312DelフサギコNGNG
>>304さん、レスサンクス

インターフェースも継承できるのだから
COMに依存しないインターフェースを作って
そこからIUnknownを派生させればいいのにと思うニャ。

というかクロスプラットホーム環境でまで
なぜCOM的なリファレンスカウンタ実装しなきゃならないのか
納得いかない。

TObject以下のクラス変数=ポインタは
DelphiPascalの利点だったけど

このインターフェース変数の実装は
明らかにJavaに劣る欠点だと思うニャ

 ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄
   ∧,,∧   
  ミ,, ゚Д゚彡
   〃つl⌒|⌒l
 〜ミ,,[ ̄ ̄ ̄.]
      ̄ ̄ ̄
0313デフォルトの名無しさんNGNG
>>312
それは Delphi は Java では無い。から。です。
0314DelフサギコNGNG
  ____
 /......  .. .../
 ||:::   ∧,,∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 |: ̄\ ミ,, ゚Д゚ミ<  と、過激に言ってはみたものの
 |:   :|: ̄U U ̄:|\_________
 |:   :|:     .:|

   _____
 /:\._____\  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 |: ̄\ ミ ゚Д゚ミ < ちょっと後悔
 |:   :|: ̄U U ̄:|  \_________

 .______
 |:  :\.    \  隠れとこう
 |:   :|: ̄U U ̄:|


インターフェース変数に入れた時は
オブジェクトを開放しないように気をつける
という対処方法でよいかニャ
0315Delあめ猫にゃNGNG
うぅ〜ん〜 JAVAに劣るってのがよくわからにゃいな・・でもこの話題に触れると
荒れそうだから放置

デストラクタ Destroy 以外の名前に出来るけどやらないでしょ?

オブジェクトの削除方法は共通の方がいいに決まってる。
だから、インターフェスじゃデストラクタを最初から用意したってだけのことでは?
0316デフォルトの名無しさんNGNG
>>310
普通にTBitmapで256色BMPをロードしてきたら、Paletteプロパティにパレットハンドルが入ってて、GetPaletteEntriesのAPIでパレットの内容を取って来たり、SetPaletteEntriesのAPIでパレットの内容を変更したりできるはずでえす。
0317デフォルトの名無しさんNGNG
>>310
それでも独自処理の方を望むなら、ぐーぐるとかで BITMAPFILEHEADER を引けば、BMPファイルの構造を教えてくれるので、自分で1バイトずつ読みながら必要な情報を取り出したり、保存するときは1バイトずつ書き込んでBMPファイルを作り上げれば良いです。
0318デフォルトの名無しさんNGNG
>>312
どうしても 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デフォルトの名無しさんNGNG
★解決した問題はこちらへ★

2chで解決したDelphi質問をFAQ収集するスレ
http://pc.2ch.net/test/read.cgi/tech/1004501183/
0320デフォルトの名無しさんNGNG
>>319
解決する問題と
解決しそうにもない問題を切り分ける能力くらい持ってくれ。
0321デフォルトの名無しさんNGNG
おれってバカだから。

★解決した問題はこちらへ★

2chで解決したDelphi質問をFAQ収集するスレ
http://pc.2ch.net/test/read.cgi/tech/1004501183/
0322Delあめ猫にゃNGNG
>>306 >>309 のコンポは
Linesプロパティに
RTEXT,39,138,164,218,34,TEST漢字

みたいに定義すると斜めのラベルを貼ったように使えます
 けっこう面白いのですが、ドラッグでサイズ指定する時が、
なんか格好悪いのです。 何か巧い方法はないでしょうか?

 今は四隅をドラッグするとサイズ指定になっています
0323デフォルトの名無しさんNGNG
>>318のやつは面白いねぇ。たぶん使わないけど(笑)
0324Delあめ猫にゃNGNG
306 移動しました
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1004530597

どうも 斜め文字を描く時に、サイズを得るのに HDC が必要な為、 Paintメソッドが呼ばれた
時についでにサイズを変更してるのが良くない感じ・・・・

 しかし、アイテムはWinHandleを持っていないから HDCが簡単には手に入らないし・・・
 sysytem.Handleから HDC 作ってもいいのかな?
0325Delあめ猫にゃNGNG
×sysytem.Handle
○Application.Handle ・・・鬱
0326DelフサギコNGNG
               \   テケテケ      /
___.___.  ∀     ̄ ̄∨ ̄ ̄ ̄ ̄ ̄
       .   .| ┷┳━    ∧,,∧,,,,,,,,,,,,,,,
 ̄ ̄ ̄ ̄ ̄ ̄ ̄|... ┃    ミ゚Д゚,,彡,,,,,,,,  ゙〜
 ̄ ̄ ̄ ̄ ̄ ̄ ̄   .┻       U U """"UU

            ∫    _________
   ∧,,∧     ∬   /
   ミ,,゚Д゚彡っ━~  < ただーいま。..
_と~,,  ~,,,ノ_.  ∀   \
    ミ,,,,/~), │ ┷┳━   ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ̄ ̄ ̄ .じ'J ̄ ̄| ┃
 ̄ ̄ ̄ ̄ ̄ ̄ ̄  ┻

いろいろ教えてくださってサンクスコ。
話が複雑すぎてついていけない、恭子の語呂
0327デフォルトの名無しさんNGNG
>>325

GetDC(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デフォルトの名無しさんNGNG
Delあめ猫のレヴェルの高さに、舌を巻いてる奴は多いと思われ(w
0331DelフサギコNGNG
そいえば、MLでも出ていたのでご紹介。
UMLスレでおもしろいツールが紹介されてました。

http://www.osk.3web.ne.jp/~shino/dev/DICON/DICON.html
どうですかねー>>各位

 ̄ ̄∨ ̄ ̄ ̄
  ∧,,∧
 ミ,,゚Д゚彡
  ミ つ[UML]).
〜ミ ,, ミ 
  ∪∪  

MLの人たちはD6のダイアグラムページは
無視しているのだろうか....
ガムバッタラUMLのクラス図かけなくはないだろうに…

>>330 (W
コード書くの早すぎ...
0332Delあめ猫にゃNGNG
>>327 了解にゃ・・・ありがと

>>330 なんか かいかぶりすぎ
 GUI用の計算ソースはあのページからカッパラッたもんだし
 回転関係は普段良く使うから慣れてるだけだにゃ
0333デフォルトの名無しさんNGNG
○interfaceってGUIDなくてもいいのかニャ?
いい。省略可能。
○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
    ∧ ∧  >>333
    ミ ゚Д゚彡  すごすぎ
  〜ミ,,,,uuミ

なぜにsage進行・・・・ageとくかしら
0335DelフサギコNGNG
>>333(サンサンサン)さん、サンクスコ(「さん」がイパーイ)
         _________
  ∧,,∧   /ようやく
 ミ;゚Д゚彡< 理解はできたのですが
  ミつ つ  \ こういうアダプターを作る方法が
〜ミ ,, ミ.    いいのか悪いのか…
  ∪∪  

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
integerとExtendedに互換性がないって出ました
解決法は無いですか?
0337デフォルトの名無しさんNGNG
ありますよ。 丸め関数を呼べばOK 例えば Roundとか
Extended に integer を代入はOK
0338デフォルトの名無しさんNGNG
あ、Roundがあったんですね。
どうもです。
0339デフォルトの名無しさんNGNG
なんつーかマイナーだな<Round
0340デフォルトの名無しさんNGNG
>>339
同意。漏れはTrunc呼んじゃう。
0341DelフサギコNGNG
      ∧,,∧l||l  腹をこわした。
       ;゙⌒ヽ彡 
     〜ミ___ミ
    ''" ""''"" "''

          クワッ
       ∧,,∧l||l  Delphiの悪口言ったら
       ;;゙ミ゚Д゚彡  バチあたったんか!
     〜ミ___ミ
    ''" ""''"" "''


      ∧,,∧l||l  あた、、あたたたた。(TДT
       ;゙⌒ヽ彡 
     〜ミ___ミ ))
    ''" ""''"" "''
0342デフォルトの名無しさんNGNG
>フサギコさん
お大事に。猫は元気ですか?
0343DelフサギコNGNG
       ∧,,∧l||l  彼女は病院に入院中です。
       ;;゙ミ゚Д゚彡  名前はトラギコかトラしーちゃんにしようか...検討中
     〜ミ___ミ     いま一つ体調はよくならないのです。点滴うってもらってます。
    ''" ""''"" "''

      ∧,,∧   そうそう。彼女の痛みに比べりゃ
       ;゙⌒ヽ彡  この腹の痛みなど、大したことないよな。
     〜ミ___ミ
    ''" ""''"" "''   ♀の子だから、トラしーちゃんかな…ヤパシ
0344デフォルトの名無しさんNGNG
杞紗がいい。
0345デフォルトの名無しさん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
いえ。単に、2回も3回も同じ場所を検索しているから
非効率的だと思っただけです。
0349DelフサギコNGNG

   .∧,,∧     ∧,,∧   ∧,,∧     ∧,,∧   ∧,,∧    .∧,,∧
  ミ,,゚Д゚彡   ミ,,゚Д゚ミ  ミ,,  彡  ミ,,  ミ  .ミ゚∀゚,,彡   ミ゚∀゚,,彡 アヒャ
  ⊂  つ   〃 つつ  〃 つ   ⊂  つ  ⊂ミ⊂ ミ   ⊂  つ
   0  ミ〜 〜 ,, つ   〜 ,,つ   〜  ,つ  .⊂  ミ〜   0,  ミ〜
    ,` J    (/      (/´       し´      ,`J      `J

>>344読めません。
>>345時には出会います
>>346フサが自作しているのはワイルドカードマッチを
無視して全検索するものなので、知恵はでてこないです。
0350DelフサギコNGNG
  ∧∧              / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (*゚−゚)⊃∧         < 最近シツモソが少ないねー
__| つミ,, ゚Д゚ミ,,,,/~つ_     \______________
  と_)ヽ,,,つ,,,,,,,ノJ  | ━┳━
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|... ┃
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄  .┻
   聞くは一時の恥、聞かぬは一生の恥ぞよ
   何でも聞いてみましょうな。
0351デフォルトの名無しさんNGNG
>>348
 他の方法は FileListBox を非表示で作成して temsを見る方法が思いつくけど

そういうの追いかけてもしょうがないと思うよ。
   それがメインの物作ってるなら別だけど
   その方法でも、そんなに待てない程は遅くないでしょう
0352デフォルトの名無しさんNGNG
>>350
まぁマターリいこうや
0353346NGNG
うーん、いくらかばかりでも
盛り上げようと
問題提起をしてみたのですが(内容に問題があったか)
無理か…
0354DelフサギコNGNG
  ∧,,∧     />>353そでしたか、サンクスコ
 ミ,,゚Д゚彡  < そもそも、ワイルドカド使うファイル検索って
  U  U    \多用します?
〜ミ  ミ
  ∪∪

フサはワイルドカドなしファイル検索で十分なので
必要性を感じないのだけど...
0355デフォルトの名無しさんNGNG
みんな悩んでおおきくなった
0356デフォルトの名無しさんNGNG
まあ、正直なところ
ワイルドカードよりも、任意の拡張子の
ファイルを探す事 "しか" ありませんね。

*.txt

こういう風にしか使わない…
0357デフォルトの名無しさんNGNG
Delの作業ファイル消すときに
*.~*;*.DCUとかで使ったぐらいかなぁ
0358DelフサギコNGNG
  ∧,,∧   トラしーちゃんが
 ミ,,  彡  亡くなったってさ。
 ミ   ミ 
 ミ〜,, ミ
  ∪ ∪
0359199NGNG
>>358

そうですか。残念でした....。
Delフサさん、元気出してね。
0360デフォルトの名無しさんNGNG
C++Builderで検索パスの設定に$(BCB)て書くとBuilderをインストールしたパスが
展開されたんだけどそういうのないの?
0361デフォルトの名無しさんNGNG
インターフェースを使うと何が便利になるのですか?
0362デフォルトの名無しさんNGNG
$(DELPHI) で良いのでは。
$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デフォルトの名無しさんNGNG
>>363
Project.exe と Library.dll が逆のような気がするけど、THoge を
作成したときに参照カウンタをあらかじめ一つ増やして置いてください。

そうしないと >>363 の Library.dll 側で IHoge が必要なくなったときに
THoge が自動的に解放されてしまいます。

Hoge := THoge.Create;
Hoge._AddRef;

こんな感じです。
0365ななしヘタぐらま ◆B18Bks.Y NGNG
>>346
Del5Proには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デフォルトの名無しさんNGNG
TListView を仮想リストビューで使うとき、
OnData で表示する TListItem を作るわけですが、
同様のリストビューが複数必要なので、
TListView を継承したコンポーネントを作成しようと思いました。
モデルのクラスは固定です。

この場合、OnData や OnDataFind を定義した上で
外部から変更できないようにするのがいいでしょうか?
それとも UpdateAction メソッドをオーバーライドして作れる?
0368ねこまNGNG
複数っていくつ必要なのか知りませんが,
そういう場合私だったら普通にイベントハンドラを使い,
なるべくコメントでわかりやすくするようにこころがけます.
0369デフォルトの名無しさんNGNG
>>365
>Del5ProにはMatchesMaskがない(はず)なので私も同じ方法ですが
あるよ・・・。
0370デフォルトの名無しさんNGNG
インターフェースを使って、他の言語で作成されたモジュールとやり取りする場合、
WideString型の引数や戻り値を使っても大丈夫なのですか?

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;
0372371NGNG
わかりましたすみません (汗
0373デフォルトの名無しさんNGNG
_AddRefと_Releaseを書き換えるやり方はどうなのでしょうか?

type
 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名無しNGNG
>>284 のDelフサギコさんのやつをいじっているのですが

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;
エラーになりません
なぜでしょうか?
0375デフォルトの名無しさんNGNG
Ver1のインターフェース
 IHoge = 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フサギコNGNG
同じ事で悩んでらしゃーる
Delマガを読むのがいいと思います。
他に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の記述してあるメモリ領域が存在しないと
思った方がいいかも。

って、のであってるかな。
0377373NGNG
>>284のリンク先にあったよ・・・。
0378名無しNGNG
>>376
マジデスカっ!?
何度やっても全然エラーが出ないです・・・
MemCheck にもひっかからないです・・・
コワ〜
0379デフォルトの名無しさんNGNG
INodeData;
TNodeComponent;
が何なのか解らないから、答えようがないのでは?
0380名無しNGNG
>>371 のTestをNodeと読み替えてください
ややこしくてすみません
0381デフォルトの名無しさんNGNG
NodeComp.Free; 後に
NodeIntf._Releaseが呼ばれて、その中で
NodeComp.Destroyが実行されるって事?
0382DelフサギコNGNG
>>371
> 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デフォルトの名無しさんNGNG
エラーは出ないけど、デストラクタは二回呼ばれています。

type
 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はとりあえず必要ないです。
0385371NGNG
>>383
>エラーは出ないけど、デストラクタは二回呼ばれています。

呼ばれなくなりました!
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
>>383コードのままだと
  ,,,,,,,,,,,,,∧,,∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′,,,,,,,ミ,,゚Д゚彡 < フサの環境では「無効なポインタ操作」例外でます
  UU""" U U    \_______________

>>383のコードから
// Hoge.Free;
Freeをコメントアウトするとちゃんと動作します。
0387デフォルトの名無しさんNGNG
CreateしたものはFreeしないと気が済まないの。
0388Delフサギコ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
>>375
一度仕様が公開されるなどしたインターフェースは互換性を維持するため、
定義を二度と変更してはならないのです。新しいバージョンで新たなメソッドが
追加されるなどしたときは、新しいインターフェースを定義するのが普通です。

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;
0390371NGNG
>>385 にしめすように無事に、自分で破棄できるオブジェクトができました
以下がまとめのソースです (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;
0391371NGNG
(implementation 部)

{$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
定義を変更できないのは困ります。
これじゃ、気軽に公開出来ません。

ユーザーからの要望に応じてインターフェースのメソッドを
増やせないのか・・・。
0393デフォルトの名無しさんNGNG
>>392
だからメソッドを増やしたいときは、>>389に書いてあるように
新しいインターフェースを作ってしまえば良いのでは?
0394デフォルトの名無しさんNGNG
TWebBrowser だって Navigator2 とかじゃん
0395デフォルトの名無しさんNGNG
>>382
>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;
0396392NGNG
>393
その都度インターフェースを作っていたら、
インターフェースだらけ
 IHoge, IHoge2, IHoge3, IHoge4,....
になるのですが。
これは避けたい。
0397DelフサギコNGNG
   ∧,,∧   / ̄
\,,,,ミ,,゚Д゚彡 < 371=>>391さん
⊂,,,,,,,,,つつ.   \確かにコードは動きますね。

>  Button1.Caption := NodeIntf.ColumnText[0];
>  NodeComp.Free; // 自分で破棄できました。
>  // Destructor も1回だけです
> end;

…うーん。NodeCompo.Freeの後にNodeCompo._Releaseが動作しても
いいものなのだろうか?
0398デフォルトの名無しさんNGNG
再定義した _Release が -1 しか返さないのでいいと思います
0399デフォルトの名無しさんNGNG
>>397,398
インスタンスが廃棄されたあとはインターフェースの内容は不定になるので
やっぱり_Releaseを呼びだしてはいけないと思います。

>>391 のケースでは、メモリが破壊されなかったとかなどでたまたま
うまく動いただけじゃないかな?

バグの原因になるのでやめた方がよいと思いますが…
0400デフォルトの名無しさんNGNG
_Release を class function には出来ないのかな・・・
0401DelフサギコNGNG
    ∧ ∧ 
    ミ ゚Д゚彡 >>400  同じ事、思った。
  〜ミ,,,,uuミ
0402371NGNG
いろいろ考えた結果、やはり >>390 じゃだめなような気がしてきました (^^;
おっしゃるようにたまたまっぽいです。
もうすこし考えてみます
0403デフォルトの名無しさんNGNG
こんなコードも動作しますが、いいのでしょうか?

function 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;
0404371NGNG
う〜ん、どうもわたしは自分がやりたい事を見失っていたようです
私はただ永続的な Interfaced クラスを作りたいだけでした
別に _Release で破棄されるならそれでいいや
nil を代入しなければならないってのも慣れの問題かも
0405371NGNG
>>402 は
「だめなような気がしてきました」というか
よくみると「絶対だめ」でしたね
0406デフォルトの名無しさんNGNG
質問でゴワス。
MDIアプリケーションで
MDIチャイルドを表示させたときに、メインウィンドウのメニューを

メインウィンドウのメニュー + チャイルドフォーム用のメニュー

というように、混ぜたいのです。いまは、チャイルドフォーム用のメニューにわざわざ
メインメニューと全く同じメニュー構造+チャイルドフォーム用の
メニューを付け加えるという、無駄とも思える作業をしています。

もっと楽な方法はありますか。
0407DelフサギコNGNG
あまりMDIのことは知らないけど
...Delphi6\Demos\Doc\TextEdit\textedit.dpr
これみるといいっすよ。>>406
┏━━━━━┯━━━━━
┃          |
┃          |
┃       ∩∩
┃       ∧ ∧
┃      ミ,,゚Д゚ミ
┃       ミ  ミ フゥ…
┃       ミ  ミ
┃       ミ  ミ ミノムシ ミタイ ダナ
┃       ..U..U
┃        
┃ ぶら下がり倦怠期

基本はほとんど全部作らなければいけないけど
DemoではWindowメヌーが重なってますね。
0408DelフサギコNGNG
  ,,,,,,,,,,,,,∧,,∧   /
〜′,,,,,,,ミ;゚Д゚彡 < BorConでオフ会の話とか出ないけど
  UU""" U U   \ニンヅウ大丈夫なのか?>>Bor

 フサはBorConのお金払えないから
 2chプログラム板オフに出ることにしたんだけど
 デルファーの人だれかきます?
 ハミゴになったらヤダナ。
0409デフォルトの名無しさんNGNG
ベクトル画像を扱いたいので WMF 形式を扱ってみたいのだけど、
TMetaFile って使い方が良く分からないのよ。
というか、 WMF 形式自体を、見た事が無い。
線を書き込んだり、テキストデータを埋め込むにはどうすればよいのでしょう。
というか、そもそもWMFにテキスト及び
フォント情報を埋め込むことはできるので消化。
0410ななしヘタぐらま ◆B18Bks.Y NGNG
>>409
TMetafileはTBitmapと違ってそれ自身でデータを作ることができません.
TMetafileCanvasというクラスを使ってデータを作ります.
まずはヘルプをご参照ください.
TMetafileCanvasのCreateメソッドの説明から例を見られます.
この例にはありませんがテキストを書き込むこともできます.
フォントの埋め込みはたしかなかったと思いますが….

注意点としてTMetafileはいくつか問題を抱えています.
私も彼の不可解な行動に振り回されましたが
この問題については中村拓男氏のサイト『中村の里』で
詳しく説明されていますのでそちらをご覧下さい.
Delphiマガジンの過去の号にも同氏の記事があったのですが号は失念.すいません.
0411ななしヘタぐらま ◆B18Bks.Y NGNG
>>408
そんなオフが開催されるのですね.
2chのオフ関係は関心が無かったのですが
職場が東京都下なのでBorCon会場付近ならいけないこともないなぁ.

#しかしOff会板を見たもののそれらしきスレは見当たらなかったのですが….
0412ななしヘタぐらま ◆B18Bks.Y NGNG
>>369
ぐぉ.ツッコミありがとう.
0413デフォルトの名無しさんNGNG
>>411
マ板見れ
0414デフォルトの名無しさんNGNG
_AddRefと_Releaseが-1を返すやり方はマニュアルに載っていますよ。
0415名無しNGNG
interface で定義するメソッドは stdcall を付けないとだめなのですか?
Delphi でだけ使えればいいのなら付けなくていいよっていうもの?
0416デフォルトの名無しさんNGNG
>415
Delphi only なら stdcall はいらない。
0417名無しNGNG
クラスを順序型にする良い方法はないでしょうか?
case ClassType of
TButton:
end;
こういう事がしたい

if (ClassType = Txx) then XX else
if (ClassType = Txx) then XX else
  :
こういうのは嫌

今は自分で番号を決めてやっています
0418415NGNG
>>416
わかりました thx!
0419名無しNGNG
TComponent は _AddRef, _Release で -1 しか返さないんですね〜
(VCLComObject が nil である限り)
昨日知ったです
0420デフォルトの名無しさんNGNG
>417
ないな・・・。
逆は出来るんだけどね。
0421417NGNG
>>420
そうですか・・・ レスthxです

ヘルプ眺めてたら ClassID ってのを見つけて「おぉっ!?」と思ったんですが
TComObjectFactory.ClassID
property ClassID: TGUID;

だめじゃん・・・
0422名無しNGNG
TList に色々な型のオブジェクトを追加しておいて1つずつ取り出してはインターフェース変数に代入したいのですが、
TList から取り出すと 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名無しNGNG
TInterfaceList で解決しました
0424名無しNGNG
でももし Pointer 型から戻せる方法があるのなら教えてほしいです
よろしくお願いします
0425デフォルトの名無しさんNGNG
頼むから半角カタカナはやめてくれ。
0426デフォルトの名無しさんNGNG
>>425
??
半角カナは悪ではないよ。
0427デフォルトの名無しさんNGNG
>>424
参照カウンタのことを完全に理解していないのなら、Pointer型を
介して使うのは大変危険です。

ただ単にキャストすればいいだけなんだけど、
 ptr := Pointer(intf);
と
 IUnknown(ptr) := intf;
は動作が違う。前者はptrにただ代入するだけだが、後者は
代入に加えて参照カウンタをもインクリメントする。

前者はきちんと参照カウンタをデクリメントしないとメモリリークするし
後者はインターフェースが勝手に廃棄されることがある。
0428427NGNG
>>427
書き込んだ瞬間に誤り見つけた…

(訂正版)
後者はきちんと参照カウンタをデクリメントしないとメモリリークするし
前者はインターフェースが勝手に廃棄されることがある。
0429デフォルトの名無しさんNGNG
マカーハ ヨウズミ
0430デフォルトの名無しさんNGNG
シツモソ
現在の時間を取得するのに一番時間のかからないやつってなんでしょう
いくつか方法あるけど・・・
ドウナンショ?
0431デフォルトの名無しさんNGNG
NowTime := Now;

って、そんなに時間かかるんですか。
0432デフォルトの名無しさんNGNG
横槍
ミリ秒まで正確に測りたいときは
どうすんだろ
TZtimerでも使うのかな
0433デフォルトの名無しさんNGNG
_rsdtc
0434424NGNG
>>427 さん
知りたいのはポインタ→インターフェースなのです
以下がテスト用のコードです。
メモリリークはしないはずだと思いますので皆様よろしくお な が いします。

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;
0435424NGNG
一つ加えておくと
intf := TXComponent(p^);
これは当然できます。
やりたいのはクラスがわからないという場合の話です

TObject(p^).ClassType という話になって
>>417 >>422 へとリンクされてしまいます
0436デフォルトの名無しさんNGNG
>>434
TObject にいったんキャストして、GetInterface メソッドを呼び出す。
使い方は TInterfacedObject.QueryInterface の実装を参考に。

as 演算子はこの場合、使用不可。
0437436NGNG
>>434
で変なところがあるな。

p := @obj; って変数自体へのポインタを得てどうするの?
関数抜けたら無効なポインタになるっしょ。

p := obj; として TXComponent にキャストするときは
TXComponent(p) とするべき。
0438デフォルトの名無しさんNGNG
プログラマを目指すなら、ActiveX や
Interface は知っておいたほうがいいかな。
ActiveXはいまだに動作原理…というか
何の目的で使うのかが良く分からないし、
Interface に関してはここの議論を見ても
???だし…
0439デフォルトの名無しさんNGNG
>438
必要になれば分かるよ。
Delphiのって限定じゃないInterfaceは理解すると良いかも。
JavaとかC#で。
0440434NGNG
>>436 さん
>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; って変数自体へのポインタを得てどうするの?
>関数抜けたら無効なポインタになるっしょ。
あっそうか!なるほど

世界が広がったーよ
0441434NGNG
Supports ってここで使うのか!
0442434NGNG
〜 >>441の続き 〜
と思ったら、多分 >>395 の理由で IUnknown が無いと False しか返さないんですが
やはりこういう場合 class に定義追加しておかないとどうしようもないんでしょうか?
0443デフォルトの名無しさんNGNG
どうしようもない
Supports使わないって事で終わり
0444デフォルトの名無しさんNGNG
>>441
GetInterface の戻り値をチェックすればいいんじゃないの?
0445DelフサギコNGNG

  ∧,,∧    / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ミ,,゚Д゚彡 < ちょっと用事があって、2chきてなかったす
  ,;゙  ミ     \_____________
 ミ.  ミ
/゛゛゛゛
スマソ。貴重な情報みなさんサンクスです。
プログラミングバイブルのD6版とか出ないかな。
インターフェースについて体系的に知りたいことが山ほど...

Javaのデザパタ初心者本(デザパタスレで調べてください)
にInterfaceの例がイパーイのっているので
Javaも覚えたいと思っている人は
読んでみるといいよ。

インターフェースの使い道もわかります。
0446デフォルトの名無しさんNGNG
うえーん Personalのヘルプのカスタマイズが無いモナー

 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
            Λ_Λ
          ( ´Д⊂ヽ
          ⊂    ノ
           人  Y
          し (_)
0447デフォルトの名無しさんNGNG
このスレうざいんで早くつぶしちゃって下さいね
0448デフォルトの名無しさんNGNG
>>446
OpenHelpの事?
手動で出来ると思うのだが。
0449デフォルトの名無しさんNGNG
うえーん oh.exeがやっぱり見つからないモナー

 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
            Λ_Λ
          ( ´Д⊂ヽ
          ⊂    ノ
           人  Y
          し (_)
0450デフォルトの名無しさんNGNG
>>446
oh.exe ってない?
0451デフォルトの名無しさんNGNG
ヘルプファイルがあるディレクトリに、それッポイテキストファイルがあるので、
直接書き換えればいい。
0452デフォルトの名無しさんNGNG
TFrameでOnCreateイベントを使いたいけど、いい方法ありませんか?
0453デフォルトの名無しさんNGNG
delphiスレも消えかかってきましたね。
自然淘汰ですか。

さて。

OpenPictureDialog で独自の画像フォーマットを開けるように、
フィルタにマイ拡張子を追加してありますが、
このファイルを選択すると「毎回表示できませんエラー」が出てきます。

標準でない拡張子を選択した場合に、エラーを回避する方法はありませんか。
0454453NGNG
X 回避する方法はありませんか
○ 回避するにはどうすればよいですか。
0455デフォルトの名無しさんNGNG
>>454
その画像フォーマットを登録してしまえば済むと思うのだが?
0456デフォルトの名無しさんNGNG
とうろく?
OpenPictureDialogに?
それとも、単に拡張子を関連付けるって事?
0457DelフサギコNGNG
  ∧,,∧    / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ミ,,゚Д゚彡 < TGifImageをusesしたら
  ,;゙  ミ     \
 ミ.  ミ     ダイアログでもGif表示できたような…
/゛゛゛゛
画像登録ってそう言うこと?
0458デフォルトの名無しさんNGNG
extras の jpeg.pas より
>TPicture.RegisterFileFormat('jpeg', 'JPEG イメージファイル', TJPEGImage);
0459デフォルトの名無しさんNGNG
TPicture に登録して、その情報はPictureDialogに反映されるの?
0460DelフサギコNGNG
         _________
  ∧,,∧   / >>452
 ミ,,゚Д゚彡<  Frameのコンストラクタは?
  ミつ つ  \
〜ミ  ミ.     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  U U
0461DelフサギコNGNG
  ホーイ シツモン
   ∧,,∧∩  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ミ,,゚Д゚彡 < ヘジルスバーグ氏って
   U  ミ   \カタカナでフルネーム
 @ミ  ミ      なんて呼べばいいのですか?
   ∪ ∪
0462デフォルトの名無しさんNGNG
ストリームからnバイトの文字をstringに入れるにはどうやればいいんでしょうか。
0463デフォルトの名無しさんNGNG
ストリームって、TStream型の事ですか?
0464名無しヘタぐらま ◆B18Bks.Y NGNG
>>452 >>460
私はフレームを使いまくっているので以前悩んだことがありますが,
やはりコンストラクタのオーバーライドで対処しています.

フレームのpublic部に次のメソッド(コンストラクタ)を追加して
constructor Create(AOwner: TComponent); override;
実装部に必要な処理を書きます.
0465462NGNG
>>463
そーです。
今回はTFileStreamです。
0466デフォルトの名無しさんNGNG
泥臭い方法もあるけど、
TStringStream経由するのが正統的かな?
ss := TStringStream.Create;
ss.CopyFrom( filestream, n );
ss.DataStringで文字列として取れる
0467462NGNG
>>466
ありがとさん。
Str?Copyとかその辺使うのかと思ってたけどちがかったわ。
0468デフォルトの名無しさんNGNG
SetLength(S, n);
Stream.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
>>468
いつもそう書いてるYO
0471デフォルトの名無しさんNGNG
>>469
うーむ、
 MS2 := TMemoryStream.Create;
で失敗したら、MS1.Freeが呼ばれませんが、
どうしましょう?
0472DelフサギコNGNG
   ∧,∧     ,::  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ミ,,゚Д゚彡っ━'~  | 適当なサンプルだから
  ミ∪  ~,ノ    < 勘弁してよ。
   ミ  '' ミ       \____________
   し'~し'
0473デフォルトの名無しさんNGNG
適当なサンプルでも考えさせられます。
最初にnilで初期化するか、try-finallyブロックをネストするか。
0474わりこんでごめんだけどNGNG
よくこんなエディタでやってられるな。>del使い
VB⇒VC⇒java(秀丸)と触ってきたが一番使い辛いぞ。
フリーカーソルなんぞはツールで克服すつとしても、それ以前の基本機能である
window分割とかできんし、なんだかストレスが溜まってしかたない俺はdelさわるなってことか?
0475デフォルトの名無しさんNGNG
>>474
ウィンドウの「分割」はできないけど,同じエディタバッファを複数のウィンドウで
同時編集できますが?
0476DelフサギコNGNG
         _________
  ∧,,∧   /
 ミ;゚Д゚彡< 慣れですから。
  ミつ つ  \
〜ミ ,, ミ.     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ∪∪  

別の編集windowを開けて上下に配置して
デスクトップ位置保存をしてみるとよかれ。

あと、ツールに
エディタを登録して実行引数を$EDNAMEにでもすると
開いているテキストが他のエディタで開けるから
それをつかってちょ。
0477デフォルトの名無しさんNGNG
>>474
これでどう? http://www.gexperts.org/
0478デフォルトの名無しさんNGNG
>>474
弘法筆を選ばず.
0479デフォルトの名無しさんNGNG
良く出てくるフリーカーソルって、
フルスクリーンエディタの事?
N88-BASICとかと同じ。
0480デフォルトの名無しさんNGNG
>>477
それを入れると何がどう変わるのか、軽く触りだけでも教えてもらえたり
なんかすると、厨房なボクとしては凄く感激だったりするんだけど、教え
てみたりなんかしてみない?
0481デフォルトの名無しさんNGNG
ここに絵付きで一覧がある
http://www.gexperts.org/tour/html/

エディタの拡張とかgrep検索とかVCっぽくしたりもできる
どのあたりが気に食わないのかわからないけど
GExperts は D2 の頃から開発されつづけてるからだいたい何でもあると思う
オープンソースだ

オレはフリーカーソルじゃないと嫌だけどなぁ
0482デフォルトの名無しさんNGNG
>>479
フリーカーソルってのは、行の終わりよりも右にカーソルを置ける機能のこと
0483デフォルトの名無しさんNGNG
おれもフリーカーソル派だけど、
フリーカーソルは宗教論争的なので、話題にするのは危険。
0484デフォルトの名無しさんNGNG
的じゃなくて、完全に宗教論争
0485DelフサギコNGNG
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| はい、ありがとうございます!
| 某landサポートセンターです!
\_____ _______
         ∨
       ∩_∩ D
      ( ´∀`)○    ___
      (    )D……/◎\
=============================
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
|  Delphiを作った人は
|  アンダースヘジルスバーグさんって
|  お呼びすればいいのでしょうか?
\_____ _______
         ∨
         C∧,,∧
   ___    ○ミ゚Д゚,,彡 ハツオン ワカラン
 /◎\……Cミ  ミ
=============================
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| ・・・・・・・・・・・・・・・・・・・・
|   インシデント減りますがお調べいたしましょうか?
\_____ _______
         ∨
       ∩_∩ D
      (;´∀`)○    ___
      (    )D……/◎\
=============================
0486デフォルトの名無しさんNGNG
>>485
実話?
0487デフォルトの名無しさんNGNG
>>485 ワラタ
     漏れも実話か気になる、教えてくれ。
0488DelフサギコNGNG
  ∧,,∧     / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ミ;゚Д゚ミ  <  実話なわけないっしょ
 (ミ  ミつ)ビシッ\_________
〜ミ  ミ
  ∪ ∪

ホントにやったら、Borlandから目をつけられるという
諸刃の剣ですね。
0489デフォルトの名無しさんNGNG
実際に試してみてよ。
同じ質問を「C# を作った人は...」に置き換えて、MS に聞いてみて、
対応を比較するのも一興。
0490474NGNG
むむ、有益な情報皆様ありがとう。
弘法は筆を選ばないが、厨房なので筆を選んでしまいます。
ま、とりあえずGExperts入れてみます。つーヵdelだけの人って
MSDNとかネットでみてんの?
0491DelフサギコNGNG
  ∧,,∧  >>490 そだよ。
 ミ,,゚Д゚彡
 ミつ[|lllll]).  >>489 やだよ。
〜ミ  ミ
  U''U
0492デフォルトの名無しさんNGNG
>>490
筆おろしした?
0493デフォルトの名無しさんNGNG
>>490
当然。常時接続だし。
0494デフォルトの名無しさんNGNG
MSDN Professional購読してるが
値上げしたので次の延長時期が来るのが怖い…
0495DelフサギコNGNG
    ∧ ∧  D6対応β時点でCtrl+Alt+CとUが効かなかったのですが
    ミ ゚Д゚彡 治ってます?>Gエキスパ
  〜ミ,,,,uuミ

 だーれか。日本語化してほしなーー。

http://hp.vector.co.jp/authors/VA003525/jmysoft.htm#6
もあるしー。exeScopeのライセンス料の2000円あげるからGエキスパの日本語化
だれかしない?って、誰もやらないか....
0496462NGNG
Anchorsを指定してフォームのリサイズに応じてコントロールもリサイズ、移動
するようにしてる場合、画面のプロパティでフォントの大きさを変えると
レイアウトが崩れます。回避するにはどうすればいいでしょうか
0497DelフサギコNGNG
 ∩|
 ミ ゙''゙゙゙つ
 ミ∧,,∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ミ,,゚Д゚彡 < ニュートンのリサイズキットなど・・・・・・・
 U U    \________

http://www.newtone.co.jp/produc11.html

GetPixelPerInchアピとかでフォントサイズ取得できたっけ?
0498462NGNG
フォームにPixelsPerInchていうプロパティありますが、
触ればどうにかなりますか?
0499デフォルトの名無しさんNGNG
>>495
CVS でソース公開しているけど、それじゃだめなんか?
0500デフォルトの名無しさんNGNG
ふむ。GExperts 日本語化プロジェクトを始めようか。
0501474NGNG
ふむ、なかなかdel使いってのは苦労してるんですな。ADSLならいいだろうけど、
MSDNなんてめちゃめちゃ時間かかるじゃん。む?まさかPlatformSDKをダウンロード?
そんな不便を補って余りある利点がデルにはあるのかな。 ま、どっちにしろ500に
期待ってとこか。
0502デフォルトの名無しさんNGNG
厨房が一人混ざっているようだな。あえて番号は伏せるが。(w
0503デフォルトの名無しさんNGNG
delの最大のメリットは膨大なMLの過去ログにあります。
過去ログ検索すれば分からない事はありません(藁
0504デフォルトの名無しさんNGNG
>>501
親切に教えてあげようね。
Platform SDK をダウンロードしなくても,必要なところだけ読めるようになっているんですよ。
0505デフォルトの名無しさんNGNG
PlatformSDKってどこでダウンロードするの?
0506デフォルトの名無しさんNGNG
Delphi を勉強し始めたのですが、コーディングガイドラインとか変数の命名規則で、
標準的なものとか推奨なものがあれば、載っている本とかサイトを教えて下さい。

よろしくお願いします。
0507>506NGNG
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvsgen/html/hunganotat.asp
0508デフォルトの名無しさんNGNG
>>506
「コーディングガイドラインとか変数の命名規則」は識別子に短い名前しかつけられなかったり
型管理が弱い言語において、楽をするための方便です。

C++ や Pascal などの型情報をちゃんと処理できる言語では、言語仕様に型情報を管理する機能が
入っているので、変数名に型情報を盛り込むのは二度手間になります。
暗号のような名前を使うよりは、その物ずばりの名前をつけたほうが確実です。
0509デフォルトの名無しさんNGNG
>>506
http://community.borland.com/article/0,1410,10280,00.html
0510506NGNG
>>507 さん
Hungarian Notation ですか。うーん。

>>508 さん
一応、Java では
Writing Robust Java Code とか、
http://ObjectClub.esm.co.jp/ のコーディング標準などを見てたんです。
で、Delphi でもそういったものはないのかな、と。

ということで、>>509 さんのをこれから読んでみます。
0511デフォルトの名無しさんNGNG
フサギコって、C#スレで自爆したDelギコなの?
0512デフォルトの名無しさんNGNG
どんも。IMEの郵便番号辞書つかって
郵便番号->住所の変換をやりたいんですけど
ImmGetConversionListの使い方おしえてください。
変換の一覧が欲しいのです。
DelphiMLのサンプルじゃ動かんし。
自分でもやったけど、わけ・わか・らん。

ちなみに WinNT4+Delphi5+IME97です。
0513474NGNG
>>504
もちろんオンラインで見れるけども、それはVSのMSDNを見るのに比べ著しく
動作が遅く、非効率ではないだろうかってことだったんですが。まぁ回線切らずにお勉強サイト
逝ってきます
0514>512NGNG
変換候補はImmGetCandidateListですが。
0515DelフサギコNGNG
     ∧,,∧   /おぉ!>>499-500
    ミ,,゚Д゚彡< 期待していいでしょうか!
   'ミ つ旦)~~ \ わかりやすいから英語でもOKのトコ多いですが
  ⊂ミ",, ,,ミ つ    細かいオプションはやぱり日本語がいいですよね。

>>498
スマソ、わかりませんん。MLのログみたら解決に近ずく方法はあるかも

>>511
>>84-90みてね。
ジ…自爆したかなあ....名無しさん#さんにはお世話になってます。

C#スレみたけど、Gridにオーナードローってないのかな。

命名則はフィールドにFつけるくらいかな。

>>512
それって何か市販のコンポーネントがあった希ガスる。
大昔Delマガに広告載ってなかったかな。
MLのサンプルってせめてURL出して聞こう!
0516デフォルトの名無しさんNGNG
ImmGetConversionListは読み方やな。
0517DelフサギコNGNG
   ∧.,,∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ミ.,,゚Д゚彡<  あったあった。
  ミ つ目(ミ . \_______________
〜ミ,,O,,,,,,つ

新郵便番号⇔住所 高速相互検索
http://www.lerx.to/lereaux/postal.html
安いし、買いでは?

ルロー氏はDelマガで採算が取れてるのかニャ。
まさかシャキーンばかりが増えてる事が無い事をお祈りしまする。
0518デフォルトの名無しさんNGNG
Delphi6 Personal を使ってプログラム始めたんですが
インストーラ「ExePress」を使ってインストーラを
作った場合「アプリケーションの追加と削除」に
登録されないのを教えて欲しいのですがスレ違いでしょうか。
マニュアルは見たのですが参考になるURLなどを教えて欲しいです。
0519デフォルトの名無しさんNGNG
>At the Microsoft PDC last summer, I heard it as "HIGH-ls-berg" and
>"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 ̄:| \__________
 |     |:      :|
0521512NGNG
即レス多謝
>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なのよねぇ?
どうしたらいいんでしょうか?
052228NGNG
ファンです。フサギコさんがんばれ!
0523DelフサギコNGNG
    ∧ ∧  ア...アリガトゴザイマス>>521
    ミ ゚Д゚彡
  〜ミ,,,,uuミ   でも、何をがんばりましょう・・・・?


>残念ながらコンポーネント案はだめなのよ。
なぜでしょう。
自前で出来るにこした事はないと思いますが。
0524518NGNG

>>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)"
これをアンインストールしたらぞろぞろと今までのが表示される様になりました。
0525518NGNG
上の訂正

iアプリ作成用にNTTより配布されている
もとい
iアプリ作成用にNTTドコモより配布されている
です
0526デフォルトの名無しさんNGNG
( ゚д゚) ( ゚д゚) ( ゚д゚)
0527デフォルトの名無しさんNGNG
てっきり「ExePress」というインストーラー作成ソフトで
「アプリケーションの追加と削除」に登録しない方法を
聞きたいのかとオモターヨ。
0528デフォルトの名無しさんNGNG
>>521
http://plaza27.mbn.or.jp/~satomii/design/imm/imm7.html
を見ると、いつでも使えるAPIではないようです。
0529518NGNG

読み返してみれば・・・なるほど
書き方が悪かったようです
0530518NGNG

ちなみに他のインストーラでも同様の影響が出る事が
あるようです。ご注意を
0531ななしNGNG
インラインアセンブラって、どんなときにつかうのですか?
0532デフォルトの名無しさんNGNG
>>496
フォームのScaledをfalseにして、
フォームのFontのHeightを正の値にしてみたり。
0533デフォルトの名無しさんNGNG
>>531
その1・Pascalで書くと遅いのでもっと高速化してみたいとき(出来るとは限らない)
その2・特殊な命令(cpuidとか)を実行したいとき
その3・アセンブラを使えと強要されたとき
0534512NGNG
>523 データまで配れねぇし。お客の要望なの。
Var
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デフォルトの名無しさんNGNG
BCB5でCGI作ってるんですけど、 Delphiな人達教えて下さい。
IISではRequest->QueryFields->Textに値が入るけど、
Apacheでは値が入らないなんてことありますか?

Apacheだと、ブラウザで入力された値が取れないよー。
0536535NGNG
違ってた、Request->ContentFields->Textの値がおかしー。

なんか、行末がCRLFになるべきところが、CRCRLFになったりする?
0537DelフサギコNGNG
 ∩ ∩
 ミ ゙''゙〜
 ミ∧,,∧  / CGIはわからないですが
 ミ,,゚Д゚彡 < 改行コードを普通にするのはAdjustLineText
 U U   \________
       
0538535NGNG
ギコちゃんアリガトウ。それ使ってみるYO!

事実の方も誰かから聞きたいな...
0539535NGNG
また違ってた!
Request->ContentFields->Text
が途中で切れてるんだけど、Apacheって制限があるんだね。
識者解説キボン。
0540462NGNG
AdjustLineTextをF1で検索しても見つからない。
なんでこんなにマニュアルの出来がわるいの?
0541535NGNG
それは自分はわかったYO!>>540

AdjustLineBreaksだ!
0542DelフサギコNGNG
   _____
 /:\._____\  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 |: ̄\ ミ,,゚Д゚ミ  < ごめん、まちがえてた
 |:   :|: ̄U U ̄:|  \_________

 .______
 |:  :\.    \   隠れろ
 |:   :|: ̄U U ̄:|
0543デフォルトの名無しさんNGNG
>>542
フサ君や、手がはみ出ておるぞ。
0544452NGNG
>>460
>>464
できました。
constructor, destructor は
ここでも使えるのですね。
0545デフォルトの名無しさんNGNG
>>534
ヒドイ。
0546デフォルトの名無しさんNGNG
とりあえずループの中は
 ListBox1.Items.Add(PChar(Integer(lpCand) + C[I]));
だけでOK。
0547デフォルトの名無しさんNGNG
ユニコード対応コントロールってどういうコントロールなのですか?
0548DelフサギコNGNG
         _________
  ∧,,∧   /
 ミ;゚Д゚彡< >>54 どういうっていわれても困るけど
  ミつ つ  \
〜ミ ,, ミ.     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ∪∪  
CLXのEditコントロールはFontのCharaSetをUniにできます。
Editの中に♥マークが表示できるね(IEからコピペしたりしたら)
0549512NGNG
>Delフサギコ,564,その他デフォルトななしぃ

あんがとぉぉ。無事、仕組み完成。
ご協力感謝します。
0550デフォルトの名無しさんNGNG
RichEdit で、「目的の行」を表示したい
(つまり、指定した行が一番上に表示されるように
スクロールしたい)のですが、
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
>550
他のメッセージは?
0552デフォルトの名無しさんNGNG
最後の行にカーソルを置く+EM_SCROLLCARET
   ↓
目的の行にカーソルを移動+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
0555550NGNG
あああ
EM_LINESCROLL どうりでうまくいかないと思っていたら、
メッセージの第一引数にスクロール量を
指定していました(;´Д`)

逝ってきます
0556DelフサギコNGNG
  ,,,,,,,,,,,,,,,,∧,,∧   /
〜′,,,,,,,,,,ミ,,゚Д゚彡 < APIヘルプEM_LINESCROLL みても
  UU"""" U U    \Lパラ Wパラ の意味はわかるニャリ
 カンチガイ ノ リョウガ ケイケン ニナルカモ
0557デフォルトの名無しさんNGNG
あの、ついでに聞きいちゃいます。
キャレットが移動された事を知りたいのですが、

EM_CaretMoved

みたいなメッセージはありませんか?
0558デフォルトの名無しさんNGNG
>>531
>>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デフォルトの名無しさんNGNG
アタシlParam。あの小さかったwParam君が久しぶりに会ったらアタシと長さになってたわ。
0560DelフサギコNGNG
    ネムイ    ∫    _________
   ∧,,∧     ∬   / マウスとキーボードの入力で
   ミ-Д-彡っ━~  <  SelStartの位置を監視するとよし
_と~,,  ~,,,ノ_.  ∀   \ >>557
    ミ,,,,/~), │ ┷┳━   ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ̄ ̄ ̄ .じ'J ̄ ̄| ┃
 ̄ ̄ ̄ ̄ ̄ ̄ ̄  ┻
0561書き損じるとカコワルイネNGNG
アタシと長さ?
0562DelフサギコNGNG
  ∧,,∧,,,,,,,,,,,,,,,      / ̄
 ミ-Д-彡,,,,,,,,,,,,ヾ〜  <  RichEditならOnSelectionChangeがあるようです
   U U """"UU     \_
procedure TCustomRichEdit.CNNotify(var Message: TWMNotify);
で
 EN_SELCHANGEを監視してるのですね。

 なんでTMemoにはないんかな。
0563デフォルトの名無しさんNGNG
まる〜(*´ρ`*)
0564557NGNG
どうもありがとう。とりあえず解決しました。

そして…
目的の行を表示させるのは良いのですが、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デフォルトの名無しさんNGNG
あ、なるほど。

function 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デフォルトの名無しさんNGNG
>>566
JIS(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デフォルトの名無しさんNGNG
OnCloseQueryを使う
0571デフォルトの名無しさんNGNG
Delphiには抽象的な多分木クラスとかってありませんか?
ツリービューのビューがないヤツ、みたいな。
0572デフォルトの名無しさんNGNG
>>571
TComponent がそれ。
0573デフォルトの名無しさんNGNG
>>571

自作するとか。

そのレコード自身のポインタを管理するTListとかもって。

っていうかTTreeNodeは?
0574571NGNG
結局多分木は必要なくなってしまった。
けど参考になりました。ありがとう。
0575ねこまNGNG
>>568
OnDestroy は必ず発生するはず
しなかったらバグもしくは異常終了してる
しかし OnDestroy で保存などやってはいかん!

>>571
リストにリスト突っ込んで自作
面倒ならネット探せばあるよ

>>573
TTreeView が無いと使えないよ.
まあ隠して使えばいいんだけど
>ツリービューのビューがないヤツ、みたいな。
この要望にそぐわないのでは
0576デフォルトの名無しさんNGNG
>>575
(1)タスクバーのシャットダウンを選択してOSをシャットダウン。
(2)キーボードのスリープボタンを押してOSをシャットダウン。

(1)は、OnDestroyが正常に動くんだけど、
(2)は、ダメ。OnDestroyが動かない。
ちなみに、コンパネの電源オプションでスリープボタンを電源OFFにしています。
OSは2000。

>>570 氏のいっている、OnCloseQueryにして試してみる。
0577デフォルトの名無しさんNGNG
>>575
>しかし OnDestroy で保存などやってはいかん!

なぜ? 保存には OnDestroy がもってこいだと思うが。
俺は OnClose, OnCloseQuery のような表示に関わるイベントは
保存のタイミングに使うには信頼性が無いと思っている。
0578デフォルトの名無しさんNGNG
>>573

TTreeNodeのインスタンス生成すれば使えませんか?
0579デフォルトの名無しさんNGNG
OnDestroyが発生しないって事は、デストラクタが呼ばれていないって事?
つまり、Ownerである、Application も Free されない。
よって、finalization が実行されない。

OnCloseQueryが発生するのは、WM_QUERYENDSESSIONに応答しているから?
0580デフォルトの名無しさんNGNG
>>568
WM_QUERYENDSESSIONをフックして、
Haltを実行しては?オレはそうして
る。
0581デフォルトの名無しさんNGNG
>>579
場合によってはね。
デストラクタよばれず、アプリが強制終了されてOSが落ちることはあるよ。

OnCloseQueryでやるのが無難。
0582DelフサギコNGNG
>>568
  ,,,,,,,,,,,,,∧,,∧   /
〜′,,,,,,,ミ,,゚Д゚彡 < こんなのでどのイベントが発生しているか
  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デフォルトの名無しさんNGNG
TMEMO か TRICHEDIT で、
Shift+Tab で逆タブを実現するにはどうすればいいですか
0584デフォルトの名無しさんNGNG
OnMouse〜でTabコード(+Shift)を拾って消すのは?
0585584NGNG
訂正、OnKey〜ですね。
0586デフォルトの名無しさんNGNG
Delphi6でのパレットについて質問します。

以下のような関数を作りたいです。

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デフォルトの名無しさんNGNG
この辺、参考になりませんかね。
TBitmap.Palette
0588デフォルトの名無しさんNGNG
>>587
いちおうこのヘルプは読んでみたのですが・・・分かりませんでした。
この例にあるのはシステムパレット(?)を取得しているようなので
そこを変えてやってみたのですがうまくいきませんでした。

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デフォルトの名無しさんNGNG
ずーっと前からこの板でパレットについて聞いてる人?
0590587NGNG
適当に答えたかも。。。

よく知らないけど
CreateCompatibleDC(Null) でコンテキストを作って、
SelectObject でBitmapと関連付け、
GetDIBColorTable で読めるらしいです。
0591199NGNG
>>588

こんな感じかな。

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
>>588
もし画面を256色モードでやってるなら、それだと色が出ません。
ハイカラー以上でやりませう。
って、そういう基本的なことではなかった?
0593デフォルトの名無しさんNGNG
586(588)です。

>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;
0594591NGNG
>>593
>早速やってみましたが、うまくいきませんでした。
>現象としては、まずBMPが正しく表示されません。
>なんか、変な色になります。肌色のキャラが黄色になります。
>8bit,24bitのBMP両方ともなりました。
>それに、パレットもうまく表示できませんでした。

そうですか。こちらでは全くうまくいっていますけど。

そもそも pf24bit の画像を pf8bit に減色するのですから
変な色になるのは当然です。また、パレットは pf8bit 以下の
色分解能であるときのみ有効です。もともと256色の画像を
591 のようにやって変な色になるとしたら、実行環境のビデオ
ドライバがおかしいか、そもそも256色以下の環境である可能性が
あります。

>592
>フルカラーでやっています。グラフィックツールを作っていて
>256色の絵を書きたいと思っています。

たんに256色以下の色数を使えば、描画後、TBitmap の PixelFormat を
pf8bit にすると自動的に256色の絵になりますけど。はじめから
使用できる色をパレットとして用意しておくのは、無意味です。
0595ななしヘタぐらま ◆B18Bks.Y NGNG
>>586
目的が256色モードでの画像表示,ではなくて256色データの作成なら
中村拓男さん作の TnkDIB を使うっていうのはダメでしょうか?
はずしていたらごめんなさい.
0596デフォルトの名無しさんNGNG
>>594
>たんに256色以下の色数を使えば、描画後、TBitmap の PixelFormat を
>pf8bit にすると自動的に256色の絵になりますけど。はじめから

そんな事はありません。単にハーフトーンパレットになるだけです。
0597DelフサギコNGNG
    ∬   ∧,,∧      / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
     ~━っミ ゚Д゚彡,,    <  >>583 がんばる。
    ∀._(,,,~  ,,,~⊃_   \____________________
━┳┷ |. ,(~ヽ,,,ミ.
  ┃...| ̄ ̄し'J.  ̄ ̄ ̄  パレットはわからなー
  ┻ ヽ ̄ ̄ ̄ ̄ ̄ ̄ ̄
0598591NGNG
>>596
>そんな事はありません。単にハーフトーンパレットになるだけです。

パレットの話ではない、ということを言いたかったんですよね。

フルカラーで実行してハーフトーンパレットになる理由はなに?
DDB→DIB変換のVCLの実装についてのおはなしですか?
そもそも256色であることに相違ないとおもいますが。
0599デフォルトの名無しさんNGNG
>はずしていたらごめんなさい.

この免罪符嫌い
0600596NGNG
>>598
591 で「たんに256色以下の色数を使えば…」と書いてあることから
24bit画像に256色以内の色数を使って描画すれば、8bitに減色したときに
理想的な減色が行われると言っているように思えたんだが違うのか?

実際はハーフトーンパレットを使って適当に減色が行われる。
0601DelフサギコNGNG
   |
電 |
   |∧,,∧
柱 ミ,,゚Д゚彡 <はずしたらゆるさねー
  ⊂ ミ   と書いてみてはDO?
   |, ,,ミ
   |∪    そういえば、昔PC98Doって機種があって....
, ' , ; ' ;  98と88のソフトが動いただよ。
0602DelフサギコNGNG
気が付いたら、BorCon明日明後日なのですが

なぜになんも話題にならないの?

 ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄
   ∧,,∧    ウラグチ カラ ハイリタイ
  ミ,,゚Д゚彡∬
   〃  つ旦O
 〜ミ,,,n,,n[ ̄ ̄ ̄.]
        ̄ ̄ ̄
0603591NGNG
>>600
>591 で「たんに256色以下の色数を使えば…」と書いてあることから
>24bit画像に256色以内の色数を使って描画すれば、8bitに減色したときに
>理想的な減色が行われると言っているように思えたんだが違うのか?

違わないが、「理想的な減色」とはいっていない。元質問者は256色
の絵を描くツールを作っているわけで、予めパレットを設定しておくこ
とにどれほどメリットがあるだろうか?しかも256色以内の使用色
でも固定のハーフトーン色に減色されるんですか。だとしたら、実装が
ボロいということですね。

>実際はハーフトーンパレットを使って適当に減色が行われる。

これは知らなかった。VCLの TBitmap はいい加減なんだね。
減色のアルゴリズムはいろいろあるけど、PSP Pro みたいに
使用色のヒストグラムをとって頻度の多い方から採用する、とか。
そもそも256色以内の使用色で減色するのが間違いだと思う。
使用色そのものをパレットに採用するだけだと思うが。

いろいろ教えてくれてありがとう。>>596
0604デフォルトの名無しさんNGNG
>>599
あなたのほうが健全な心の持ち主だと思う。

また、2ch への誘導メール出してみようか
0605デフォルトの名無しさんNGNG
>>601
PC98Do 持っていたよ。V30に毛が生えたようなCPUなのに、286より少し遅いくらいだった。
拡張スロットが1個しかなくて苦労したけど。
88モードは殆ど使わなかったけど
って関係ないからsage
0606デフォルトの名無しさんNGNG
BorCon行くような人はここにはいないのでは
オレモナー
0607デフォルトの名無しさんNGNG
>>604
ヤメレ
0608デフォルトの名無しさんNGNG
ComboBoxとListBoxのリスト内容を同期させたい(内容及び、選択されている項目を同一にしたい)のですが、一般的にはどのような方法を取っているのでしょうか。以下のようなコードを書きましたが、うまくいきません。

property 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デフォルトの名無しさんNGNG
>>608
ItemsとLinesでassignは?
0610デフォルトの名無しさんNGNG
スマン、Memoと勘違いしてた。
LinesじゃなくてItems同士だ、逝ってくる
0611デフォルトの名無しさんNGNG
delphiだけは平和だねw
Javaは血で血を洗う内紛
OOはアンチと信者の抗争。
RubyはHSPに当り散らしてるし。
0612デフォルトの名無しさんNGNG
>>611
初心者スレはそうでもないよ。
0613DelフサギコNGNG
  ∧,,∧    / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ミ,,゚Д゚彡 < リアルワールド(米)で飛行機が墜落して大変だ。
  ,;゙  ミ     \_____________
 ミ.  ミ
/゛゛゛゛
>>605 V33でしたっけ?
0614デフォルトの名無しさんNGNG
>>603
MSの減色だって(ピー)でしょう
0615デフォルトの名無しさんNGNG
>>613
V33AはDo+
0616デフォルトの名無しさんNGNG
samplesタブにあるShellTreeViewを使うとメモリリークするのは、
おいらのDelphi6が逝ってるからなのだろうか。
鬱だ
0617デフォルトの名無しさんNGNG
WinGのサンプル(牛だったとおもう)は奇麗な減色だったような気がします。
はずしていたらごめんなさい。
0618>616NGNG
Delphi MLにその話題あったよ
0619名無しヘタぐらま ◆B18Bks.Y NGNG
>>614
マッキントッシュは特に何にもしなくても
OSが全部そこそこきれいにディザリングしていたような。
0620デフォルトの名無しさんNGNG
>>593です。

>>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
>>593です。
申し訳ありません。出来ました。こちらのミスでした。
ロード用のBMPにロードしたものを編集用のエリアにコピーしていたのですが
そのときに、パレットがコピーされないのが原因でした。
お手数をかけて大変申し訳ありませんでした。

どうも、ありがとうございました。
0622デフォルトの名無しさんNGNG
マジでキレイな減色したいなら、Optpix、Padie等の専用ソフトを使うことをお勧めします。
Optpixはシェアウェアで、ゲームのFFなんかでも使われた実績があります。
Padieはフリーですが、開発は終わっていたと思います。
昔はPag1テトラへドロンというディザなしでの性能が恐ろしく高いソフトが
のもありましたが、作者が特許を抱え込んだままサポートを止めてしまっていて残念。
とは言え、作者様のサイトやテトラへドロンのヘルプは、減色を理解するのにかなり役立ちます。
なお、自作する場合は、減色は圧縮と同じで特許に固められているので注意が必要です。
Cマガのバックナンバーにもいくつか参考記事があるので参照してみてください。
0623デフォルトの名無しさんNGNG
>>622
減色ですか。きれいな減色が出来ればよいのですが(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;
0624591NGNG
>>620

>DataImage.Picture.Bitmap.PixelFormat := pf8bit;
>というのをすると、BMPが変な色になります。
>コメントアウトすれば普通に表示されます。
>フルカラーのBMPでなるのなら分かるのですが、
>256色のBMPでもなってしまいます。

596 が教えてくれたところによると、TBitmap では256色でも
そうなるみたいです。まったく、いい加減ですね。

>256色の固定パレット(もちろん編集は可能)を用意して、
>そのパレットを使うBMPを複数枚書くのを目的としています。

そこで、上記のことをするためには、まず TBitmap のインスタンス
を作って初期化し PixelFormat := pf8bit; に設定してから
こちらで任意の256色の論理パレットを作成して、それに設定する。
そして、そのパレットから色を選んで描画する。ということでは
どうでしょうか?

うーむ、試してみたいが時間がないのでごめん。
0625591NGNG
>>620

>今の自分が使っている画面の設定は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
>>624
>うーむ、試してみたいが時間がないのでごめん
とんでもないです!ヒントをいただけるだけで十分です。
わざわざ時間を割いて解答していただきありがとうございます。

>>625
マジですか!早速再起動することにします。
本当に基本のようなことが分かっていなくて申し訳ないです。
ありがとうございました。

現在皆さんから教えていただいたことを参考にいろいろ試しています。
ありがとうございます。
0627596NGNG
>>626
念のため言っておくけど、>>625の内容は嘘です。
再起動してもどうにもならないでしょう。

>>625
知識も無いのに適当な事言っているんじゃねーよ。
0628625NGNG
>>627

>>>625
>知識も無いのに適当な事言っているんじゃねーよ。

おい、おい、その言い草はないだろう。
自分の環境で試した結果だけど、なぜ嘘だと決めつける?
0629デフォルトの名無しさんNGNG
>>627
えっ!嘘なの!本当なの?でもどっちにしろ良くないことには違いないので
再起動しました。状況は変わってないですけど・・・。
0630625NGNG
ハイカラー(16ビット)環境下で以下のコードを試して見て下さい。
設定色と取得色が一致するのは稀であることが分かります。

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デフォルトの名無しさんNGNG
JavaとDelphiを行ったり来たりするとややこしいことになるよね
0632DelフサギコNGNG
   ∧,,∧∩  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ミ,,゚Д゚彡 < BorConの様子はどうですか?
   U  ミ   \____________
 〜ミ  ミ
   ∪ ∪ ダレモ イッテナイ?
0633デフォルトの名無しさんNGNG
RPGとかのゲームもある程度簡単に作れる?
0634デフォルトの名無しさんNGNG
>>633
簡単なゲームならある程度簡単に作れるが、
CやC++で作られているちょっとしたものを作ろうとするなら手間は一緒
0635デフォルトの名無しさんNGNG
質問って程じゃないですが
WideStringに対応した文字列操作関数って限られてますよね
例えば、検索するのもPos関数だけ
PWideChar使えるやつもないし
結局、みんな自作してるもんなんすか?
0636デフォルトの名無しさんNGNG
AnsiPos 関数
注意 この関数はマルチバイト文字セット(MBCS)をサポートします。
0637testNGNG
test
0638デフォルトの名無しさんNGNG
すいません、どなたか教えてください。

TListViewで、項目が長すぎて途切れて表示されているとき、
ツールチップみたいな表示でポップアップして表示したいん
ですが、どうやったらいいのでしょうか?
0639デフォルトの名無しさんNGNG
http://www.zdnet.co.jp/enterprise/0111/13/01111305.html
0640デフォルトの名無しさんNGNG
Kylix2/JBuilder6/Borland Enterprise Server同時発表か・・・
すごすぎ!
JBuilderは少し早すぎるな・・・JDK1.4対応してるかな?
0641 NGNG
>>640
JBuilderってJDK選ばないことで有名じゃなかったか?
0642デフォルトの名無しさんNGNG
>>641
Personalでマウススクロールして欲しいのよ。標準で。
そのほうが初心者受けいいでしょ。
0643 NGNG
>>642

ってことはあなたは初心者?
0644デフォルトの名無しさんNGNG
MBCSはウニコードじゃないでしょう。
0645 NGNG
〜W系のAPI呼んだら?
0646デフォルトの名無しさんNGNG
MBCSってなんすか?
0647デフォルトの名無しさんNGNG
>646
ハァ?
0648デフォルトの名無しさんNGNG
Managed Business Consultancy Service
Member British Computer Society
Meteor Burst Communications System
0649デフォルトの名無しさんNGNG
UTF-8
0650625NGNG
STEP1

Image1 の 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;

任意の色を設定してもカラーテーブルのどれかの色に
マッチングされるのが分かる。
0651625NGNG
STEP2

Image1 の 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;

やはり任意の色指定でもグレースケールにマッチングされるのが
分かる。
0652625NGNG
STEP3

Image1 の 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;
0653625NGNG
652 の続き


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;

やはり任意の色指定でもカラーテーブルのいずれかの色にマッチング
されるのが分かる。
0654635NGNG
>MBCS
要はSJISですよね
WideStringは2バイトのみのUTF-16

>>645
APIで文字列操作ってどういうのでしょ?(スレ違いか・・・)
0655デフォルトの名無しさんNGNG
>>654
CharLower, 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
0656625NGNG
色の操作と解析では、以下のサイトが非常に役に立つ

http://www.efg2.com/Lab/
0657625NGNG
STEP4

256色のビットマップを 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;
0658625NGNG
訂正です

657 で

NumPalEntry := GetPaletteEntries(Picture.Bitmap.Palette,0,255,PE);

のところの 255 を 256 にしてください。
0659635NGNG
>>655
馬鹿ストレートに聞き返しちゃってすいません
レスありがとうございます
0660デフォルトの名無しさんNGNG
Nという形をした部品があって、ある法則にしたがって結合していくと
Nの集合が、またNと同じような形になって…

というフラクタルはありませんか。いちばん簡単なのは単なる
三角形や四角形だと思うけど…
0661デフォルトの名無しさんNGNG
ジュリア集合やマンデルブロの方がプログラムは簡単>>660
0662デフォルトの名無しさんNGNG
>>661
でも>>660の条件に当てはまるかどうかは微妙。
つか完全には自己相似してないんじゃないか?
(拡大すると似たような形はでてくるが)
数学板で聞いたら?>>660
0663デフォルトの名無しさんNGNG
いや、完全な自己相似は無限の大きさが無い限り無理ですよ

コッホ曲線 シェルピンスキー なんかで検索するといいでしょう

例:
http://www.tennoji-h.oku.ed.jp/tennoji/suriken/SURIKEN.HTM
0664( ´∀`)NGNG
ちょっとおもろいプログラム作ってみたのん。
http://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
>>660
レプタイル(rep-tile)も簡単です。
┌─┬─┐
│┌┴┐│←これ系
├┤┌┴┘
│└┤
└─┘
0667デフォルトの名無しさんNGNG
>>665
アルゴリズム辞典に載ってたのと変数名が一緒だYO!
0668DelフサギコNGNG
         _________
  ∧,,∧   /
 ミ;゚Д゚彡< >>667だって、買ったんだモン
  ミつ つ  \
〜ミ ,, ミ.     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ∪∪  
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
DelフサはBorCon逝かなかったのか・・・

正直BorCon高い。
今日の最後のセッション1.5hみっちり宣伝だったし(w
0674デフォルトの名無しさんNGNG
つか、BorConて何ですか。ボコンて。
0675デフォルトの名無しさんNGNG
http://www.watch.impress.co.jp/pc/docs/article/20011113/bor12.jpg
杉タンですか?
0676某管NGNG
小一時間ほど自問自答してみたが
BorConは某管でOK?
0677DelフサギコNGNG
    ∧ ∧  ・・・・。
    ミ ゚Д゚彡
  〜ミ,,,,uuミ  で、KylixのC++版の名前は?
0678某管NGNG
>>677
(期待してたが)その辺の話は全然なかったな。
BCB6とかもちょっとふれただけ。
Delはまったくっていう位なかった(w
0679デフォルトの名無しさんNGNG
>>658
詳しい解説ありがとうございました。STEP3まで試してみて、
これからSTEP4に入ります。
ありがとうございました!
0680デフォルトの名無しさんNGNG
初心者スレで質問したのですが返事が無く、
スレ自体が終わりそうなのでここにも書かせていただきます。
誰か教えてください。

> FireBirdにIBXで接続するISAPIアプリケーションを作っています。
> IBDatabaseをひとつのクライアント(WEBブラウザ)
> が開いてしまうと、他のクライアントが開けなくなってしまいます。
> 複数クライアントの同時接続はできないのでしょうか?
> Win2000+Delphi6Pro+IIS5.0です。

よろしくお願いします。
0681625NGNG
>>679

追伸です。657 でやっていることは Graphics.pas にある
CopyPalette() 関数を使うと簡単にパレットを同等にできます。
もし、ソースを参照できるようでしたら、この関数の実装コード
は参考になりますので見ることをお薦めします。

しかし、元質問のようにパレットを自前で用意したり、編集可能に
したり、表示したりするには、地道にパレットエントリを取得して
おかなければなりません。
0682デフォルトの名無しさんNGNG
>>680 FireBirdって何?
0683デフォルトの名無しさんNGNG
「「Delphi .NETを提供する」,米Borlandの副社長が語る」
ちょっとショックです。
http://itpro.nikkeibp.co.jp/free/NSW/NEWS/20011115/2/
0684680NGNG
>>682
http://firebird.sourceforge.net/
本当のところはよくわかりませんが無料で使えるDBMSで、
INTERBASEと基本的には同じようなものです。きっと。
DelphiのIBXで接続できますし。
0685デフォルトの名無しさんNGNG
>>684で思い出した。
NetscapeとMozillaの関係みたいなものだ。

本題のほうはわからないのだが。すまそ。
0686DelフサギコNGNG

  ,,,,,,,,,,,,,∧,,∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′,,,,,,,ミ,,゚Д゚彡 < >>685 俺もどこかで聞いたな。
  UU""" U U   \_______________
InterBaseのオプソ版が火の鳥なんでしょうか?

>>683
めっさ気体!
インターシモソ輻射長…伊達に太ってないな。ウンウン
0687DelフサギコNGNG
         _________
  ∧,,∧   /
 ミ;゚Д゚彡< なななんか、今確認したらDelphiMLが
  ミつ つ  \信者獲得大作戦みたいになってる…
〜ミ ,, ミ.     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ∪∪  

D6ならTryStrToIntを使うべきでは?>>VBのInNumeric
0688デフォルトの名無しさんNGNG
信者って何の信者?(w
0689デフォルトの名無しさんNGNG
中村教。
0690デフォルトの名無しさんNGNG
過去ログ教。
0691DelフサギコNGNG
|
|,,∧
|Д゚彡 ジー   (す)ギタンからメール届いたYO
⊂ミ
| ミ
|´
http://www.borland.co.jp/borcon2001/report/

|
|、  サッ
|彡彡   >>690 信者は一人?
|
|
|
0692kalaNGNG
数年前に拾って来たDelphi4 Proが手元にあるんだけど、
消そうかどうか迷っている。Delphi6 Personalが無料で
手に入る今、二世代遅れのProfessional版を持っていて
何かメリットがあるんだろうか。どう思われますか?
0693デフォルトの名無しさんNGNG
Del4とDel6の違いよりも
Personal版とProfessional版の違いの方が大きいんじゃない?

趣味でやるだけでDBも使わないというのなら話は別かも知れんけど
0694デフォルトの名無しさんNGNG
オブジェクトを手続き内だけでなくグローバル変数のように使うには
どこで生成して破棄したらいいんですか?

それと、動的配列は破棄しなくてもいいんですよね?
0695デフォルトの名無しさんNGNG
>>694
ユニットのinitialization節とfinalization節。
>それと、動的配列は破棄しなくてもいいんですよね?
基本的に長い文字列と扱いは一緒。
0696デフォルトの名無しさんNGNG
2Byte moji utenai node korede kanben site ne.

Aru 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;
0697695NGNG
しかし、singletonパターンを使えば、最初に必要になった時に
生成されるようにも作れるよ。実際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デフォルトの名無しさんNGNG
type TDynamicTPointArray = array of TPoint;
function GetPolygon(var APoints:TDynamicTPointArray);
begin
…
みたいにする。
0699デフォルトの名無しさんNGNG
function GetPolygon(var APoints: array of TPoint; ACount: Integer): Boolean;
0700699NGNG
>>698 あ、そっか
0701デフォルトの名無しさんNGNG
成る程、大変参考になりました。
0702kalaNGNG
>>693
なるほど。データベース関連など省かれている機能があるわけね。
腐ってもProfessionalてなわけか。
まあ使うかは分からないけど取っておくとしよう。
Delphi6 Enterpriseが見つかるまで(お

※一部フィクションです。
0703デフォルトの名無しさんNGNG
盗品を使っているうちは二流。
0704デフォルトの名無しさんNGNG
ある程度は移行できるのでは?
0705DelフサギコNGNG
   ∧,,∧   / ̄
@,,,ミ,,゚Д゚彡 < >>697 ナイス
⊂,,,,,,,,,つつ.   \_

>>703
3流かも
0706Delフサギコ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デフォルトの名無しさんNGNG
Delphiで印刷関連のプログラム作るのですがうまくいきません

moji1  moji2  moji3  moji4
aaaa  aaaa  aaaa   aaaa
aaaa  aaaa  aaaa   aaaa
aaaa  aaaa  aaaa   aaaa
aaaa  aaaa  aaaa   aaaa
------------------------------
以降何行続くかはデータにより変わる。
横向き印刷でやりたいのですがどうしたらいいでしょうか?

Orientation := poLandscape;を指定するとプリントアウトされなくなっちゃうんです。
データじたいはメモリ上に持ってます。
Gridに張り付けて印刷しようとか色々考えましたがダメでした。
こうしたら良いよって言うのがあったら教えて下さい。
0709デフォルトの名無しさんNGNG
>>708
>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デフォルトの名無しさんNGNG
>>710 そのロックしてるアプリを無理やり強制終了させるか
  CreateFileを置換させるDLLを食べさせるか
0712デフォルトの名無しさんNGNG
>>710
なに考えてるんだ?
0713デフォルトの名無しさんNGNG
BitStreamを扱えるライブラリかコンポーネントってないですか?
Read(Buff, 3)で3bit読み込んだりしたいんだけど・・・・
0714デフォルトの名無しさんNGNG
はぁ?
0715デフォルトの名無しさんNGNG
>>710
そんな方法が仮にあったとして、
今度、自分がファイルをロックしたくなったとき困るよ。
0716デフォルトの名無しさんNGNG
>>713 こんな感じですか…テストはしてませんよ

TBitStream = 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
Delphi6のTActionList使っています
標準アクションのTEditCut,TEditCopyなどEditのアクションを
使っているのですが、TCustomEditから継承されたものしか
機能しないとヘルプに載っていました
これをTComboboxでも使用したいのですが、どうすればいいでしょうか
0718713NGNG
>>716
レス感謝です。
とりあえず、参考にしながらザクっと一回組んでみます。
0719DelフサギコNGNG
http://homepage1.nifty.com/wizman/component/coolaction/index.html

     ∧,,∧   / ̄ ̄ ̄ ̄ ̄
     ミ,,゚Д゚彡< >>717 これ使うといいんじゃない?
     ./つ=||||  \_____
   〜ミ \_/
0720ureNGNG
他のスレでも書いたのですが。

http://www.delphi-jedi.org/DelphiGraphics/jedi-index.htm
ここのDirectShowの動画キャプチャのサンプル(TCapture)が動かないんです。
これが使えれば自分好みの「TVを見るプログラム」が作れるなと。
DirectShowだとwmvで録画も出来そうだしさ。
Delphi6でやってます。どなたか動作した方いらっしゃいますか?

http://www.delphi-jedi.org/ってなんかすごぞう。
Indyもここのサブプロジェクトみたいだし。
0721茶碗NGNG
Delphi6 personal を使ってます。
色んなページのTipsなどを見ながら勉強する毎日ですが悩んでいます。
他アプリのChildのSysListView32 classのリスト文字列を取得したいのです。
今はこんな感じでやってますがだめです。

SendMessage(WND,WM_GETTEXT,256,longint(pch1));

// WND はSysListView32のハンドルです。

何か良い方法は無いものでしょうか。
0722デフォルトの名無しさんNGNG
LVM_GETITEMTEXTかListView_GetItemTextを使うんだけど、
いろいろ面倒なんだよね。
OSはなに?
0723茶碗NGNG
>>722
ありがとうございます。
OSはWinMeです。
かなり面倒なのでしょうか。
今からGoogleで検索してみます。
参考になる所をご存知でしたら教えてください。
0724デフォルトの名無しさんNGNG
>723
基本的には、CreateFileMapping(INVALID_HANDLE_VALUE,...
で共有メモリを作って、SendMessageで渡す構造体は(文字バッファも)
共有メモリ上において置くってかんじかなあ。
0725茶碗NGNG
>>723
ありがとうございます。
難しいですね。むーん
0726デフォルトの名無しさんNGNG
>>720
いつの日か,日本にも Jedi のような真の Delphi User Group が育つ日を夢みつ…
0727デフォルトの名無しさんNGNG
>>710
セクタ直接書き込みとかできないの?
0728ureNGNG
720のやつ誰かやってみてください。
自分好みのテレビソフト作りたくない?
0729デフォルトの名無しさんNGNG
>>719
どうもありがとうございます
これでコンボボックスの切り取り貼り付けも出来そうです。
0730デフォルトの名無しさんNGNG
>728
作りたくない。
ソースが付いているのよね?
なら、デバッグ可能でな?
0731ureNGNG
>730
ソース追いかけるとCPUウインドとかに入ってAccessViolationする。
俺の環境が悪いのかなとおもってどうなのかなって。
0732デフォルトの名無しさんNGNG
Delphi6personalでシューティングゲームをつくりたいんですけどキャラクターを
たくさんだしたり消したりってどうすればできるんでしょうか?

TImageを実行中につくれればできるのかな、と素人考えしています。
0733デフォルトの名無しさんNGNG
1、キャラクターのデータをリストで複数持っておく
2、リストしたキャラクターの数分だけ、画面に描画
でOK。
実際には、データは構造体でもクラスでもいいし、リストは動的配列でもTListでもいい。
描画は、あらかじめ設計時にTImageに貼り付けておいた画像から転送してもいいし、
もちろん、実行時にTImageに読み込んで転送してもいい。

さらにゲームよりの話ならこちらの方がいいかも↓
http://game.2ch.net/test/read.cgi/gamedev/1005038203/
0734デフォルトの名無しさんNGNG
>>733
なんとなくイメージがわいてきました。
ありがとうございます。

そっちの板だと板違いカエレとかいわれそうでしたので……。
0735デフォルトの名無しさんNGNG
別にここだっていいんじゃねーの?
0736DelフサギコNGNG
         _________
  ∧,,∧   / Delphiソース文字列からコメントを削除する関数つくったけど
 ミ,,゚Д゚彡<  どうも、リファクタリングがうまくいかないので
  ミつ つ  \ もっとエレガントに書けないものかな?
〜ミ  ミ.     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  U U
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1006076016

>>734
いいんじゃないっすか。ブロック崩しスレも結構面白いし。
フサも学びたいっす。
0737デフォルトの名無しさんNGNG
>>736
複数行にまたがるコメントのこと,考えた?
0738DelフサギコNGNG
  ∧,,∧     /
 ミ,,゚Д゚彡  < テストコード見てよ>>737
  U  U    \
〜ミ  ミ
  ∪∪
0739DelフサギコNGNG
  ,,,,,,,,,,,,,∧,,∧   />>731
〜′,,,,,,,ミ,,゚Д゚彡 < D6Personalでパッチはあてました?
  UU""" U U   \_______________

  ,,,,,,,,,,,,,∧,,∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′,,,,,,,ミ,,゚Д゚彡 < >>729 TComboBoxではProtectedで
  UU""" U U   \EditHandleが存在するので、それを継承して可視して
            メッセージを投げてもCut&Paste&Undoなどが出来ます

  ∧,,∧,,,,,,,,,,,,,,,      / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ミ゚Д゚,,彡,,,,,,,,,,,,ヾ〜  <  やっと二日酔いから脱したぞぅ
   U U """"UU     \_
0740デフォルトの名無しさんNGNG
>>736
ざっとリファクタリングして書き込んでみたよ。
test code信用してパス確認しただけ。
0741名無しの初心者NGNG
ゲーム作りたいんですが、Delphiでも十分可能ですか? 可能ならさっそく買いたいと思ってます。 ちにみにプログラム経験ゼロです(汗
0742740NGNG
つーかテストコード穴あるじゃん(´д`;)
文字列も消してしまうものにしてしまった。すり抜けてる。
0743デフォルトの名無しさんNGNG
>>741
熱意があれば十分
0744DelフサギコNGNG

  ,,,,,,,,,,,,,∧,,∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′,,,,,,,ミ,,゚Д゚彡 < >>742ん??
  UU""" U U   \_______________
Preタグで投稿すると改行がコピーできない...
0745740NGNG
修正して書いたよ。
0746740NGNG
>>744
あら、preがチェック入ってたのに気づかなかった。すまん
0747下手人NGNG
>>744
誰か良案授けてくださぃ

preあり:SPACEとかTAB対応
preなし:改行対応

特にTAB
0748DelフサギコNGNG
  ,,,,,,,,,,,,,∧,,∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′,,,,,,,ミ,,゚Д゚彡 < >>745、センキューセンキューセンキュスコ!
  UU""" U U   \_______________
コード書くのお早いですね〜

>>747
意味がちょっとわかんないです。
コピペしたらそのまま動作するのがいいな。
AAも綺麗に表示されるともっといいな
0749名無しの初心者NGNG
熱意は十分あります! というわけで買ってきます、Delphi6Pro。 一緒に買った方が良い本は何が良いですか?
0750740NGNG
>>748
test firstでやってるとテストを通れば完成なので、コード書くのは速くなる。

そのかわりテストをきちんと書かないと今回みたいな羽目になるので
仕様をきっちりtestできるようにしないとね。

ほかにも(テストしていない)曖昧な仕様としては
閉じていないコメントを残すのか消すのかってのがあるね。
とりあえず消すほうで書いたけど、あくまでも未定義動作だな。
テストを書いて明文化したいね。
0751デフォルトの名無しさんNGNG
ウィンドウを常に再背面にする命令はありませんか。
SetWindowPos( Handle, HWND_TOPMOST , 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE );
のちょうど逆のような。
0752デフォルトの名無しさんNGNG
>>751
HWND_BOTTOM
0753デフォルトの名無しさんNGNG
それって、実行したときしかBOTTOMにならないでしょ。
たとえウィンドウがアクティブになっても
BOTTOMでいてほしいのです
0754デフォルトの名無しさんNGNG
>>753
アクチブになる時にBOTTOMにすればいいじゃん
0755デフォルトの名無しさんNGNG
WinInet使って2chのスレに書き込むにはどうすれば
いいんでしょうか?Indyとかのコンポーネントは使わないで。
Monazilla見たんですが、WinInet使った方法は書いてないみたいです。

Delphi4 pro + Win2k
0756755NGNG
なんとなく、

/bbs.cgi? の後ろにbbs= &key= みたいにくっつけたアドレスを送ればいいんでしょうか?
0757デフォルトの名無しさんNGNG
スレ違い
0758デフォルトの名無しさんNGNG
>>731
AV出る前からトレース。
0759ureNGNG
>758
追い詰めたんだけどわかんないよー
0760デフォルトの名無しさんNGNG
追いつめたコードをここに載せて!
0761ureNGNG
DXCapture.pasの710行目
710: if FWantPreview then begin
711: BuildPreviewGraph;
712: StartPreview;
713: end;
FWantPreviewを読むところでCPUウインドに入ってしばらくすすむと
「同時に複数の例外が発生しました」でとまる。
0762デフォルトの名無しさんNGNG
710行以上711行未満でエラーなの?
FWantPreviewは Boolean型のフィールドだから、、、

ん〜、エクスプローラーから実行したらどぉなるの?
0763ureNGNG
>762
なにも起こらずにプログラム終了。
エラーダイアログもでない。
0764デフォルトの名無しさんNGNG
>>761のDirectShow系のDLLなんかが古いってオチじゃねぇだろうな
0765デフォルトの名無しさんNGNG
>>751
>ウィンドウを常に再背面にする命令はありませんか。

http://nt.sakura.ne.jp/~miwaki/progtips/wndpos/alwaysbackground.shtml

Delphi でもテスト済みです。
0766デフォルトの名無しさんNGNG
>>749
遊びのレシピ
0767ureNGNG
>764
DirectX8を入れた2000とXPでやったけど同じとこで駄目。
0768デフォルトの名無しさんNGNG
DirectX8.1 のアップデートをした XP で、無事にサンプル動きました。
カメラは Logitech/Logicool QUickCAM-express.

プログラムを IDE から動かすと、4-5 回 Break がかかるけど無視して先に進めば
動き出すよ。
0769ureNGNG
>768
www.microsoft.com/japan/directx/
DirectX 8.1 は Windows XP に含まれていますので、
Windows XP のユーザーは DirectX 8.1
をダウンロードする必要はありません。

ってかいてあるけども?
0770デフォルトの名無しさんNGNG
すまん。家の W2K と間違えた...
きにせんといてくれ。
0771デフォルトの名無しさんNGNG
WMPのバージョンとか
0772DelフサギコNGNG
>test firstでやってるとテストを通れば完成なので、コード書くのは速くなる。
なるべくfirstでしたいのですが
ついついいいかげんになって途中で、煮詰まってからtestを書くこともあります。
ちゃんとFirstでやらないと。

XPの流れですかね。すごい優れたコーディング技法っすね。

>とりあえず消すほうで書いたけど、あくまでも未定義動作だな。
>テストを書いて明文化したいね。
おっしゃるとおりです。
test外の動作では頭の中では考えていたんだけど、ちゃんとテストしないと
いけませんね。
         _________
  ∧,,∧   /
 ミ,,゚Д゚彡<  XPバンザイニャ
  ミつ つ  \
〜ミ  ミ.     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  U U

>ウィンドウを常に再背面
って不思議な仕様ですね。

それにしても、JBのUML化とUnitテスト統合が
エンプラ版だけってのは納得がいかんです…
DelではPro版にも乗っけてほしいな。
0773デフォルトの名無しさんNGNG
ある事情によりDEL6が起動できなくなりました。
変わりにDEL5で作業を続けているのですが、以前DEL6で保存するときに
レジストリ弄るのを忘れたため、dfm のテキストが全て異なる
文字セットで記録されています。これを一括変換したいのですが、
どのようなアルゴリズムで変換できますか?
0774OKNGNG
>>773
これあげる。汚いけど動いてはいる。レジストリで解決できるようになってお蔵入りした奴。
もとのソースを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つづきNGNG
psEndUtf: // End of Utf string
case 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 は「引数が整数表現かどうかを判定する関数」
でいいんですよね。
0777ureNGNG
おれのハードかドライバが駄目なのかな。
www.kuroutoshikou.com/products/tvcuner/bt878a.html

でもプログラムがとまるところはdirectxに関係なさそう
なんだよね。。。
0778デフォルトの名無しさんNGNG
>777
プログラムが止まる所より前で問題が発生しているのでしょう。


どこまでわかるか不明だが、
エクスプローラーから実行時、ファイルにログを書きながら、どこまで実行されたか調べるとか。
ソースをコメントアウトしていくとか。

あと、DirectXに自己チェックツールついていませんでしたか?
0779デフォルトの名無しさんNGNG
>>777
乗りかかった船。

画像アップ版の存在は知っているよね?
ソースを「追わないで」IDE の中から Run して落ちた時の
画面コピーとかどこかにアップできませんか?
CPU ペーンの状態をみてみたい。
あと,Call Stack / 呼び出し履歴も。

チェック OS は W2K を希望。
0780ureNGNG
>>778,779
ありがとう。
とりあえずキャプチャした。

ソースを「追わないで」IDE の中から Run して落ちた時
http://ure.s5.xrea.com/capture/accessviolation.png

そのときの呼び出し履歴とスレッド
http://ure.s5.xrea.com/capture/yobidashithread.png

ちなみにamcap.exeというdirectxのサンプルは正常に動きます。
0781デフォルトの名無しさんNGNG
>>780
Windows Media Playerのバージョンは?
0782デフォルトの名無しさんNGNG
>>780
0000 で 0000 の Read エラーか。予想しているより追いづらいエラーですね。

この状態で,CPU ペーンをアドレス 77F8F45C に移動するとどうなるか。

それと,ソースが全部あるのだからを
- コンパイラ - コード生成 - スタックフレームの作成
- デバッグ - デバッグ版 DCU を使う
を有効にしてもう一度。
0783ureNGNG
メディアプレイヤーは7.01.00.3055だって。最新です。
0784ureNGNG
77F8F45C に移動した図。
http://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
>>784
あぁ。デバッグ情報こみこみで、呼び出し履歴を見たい。

見ればわかると思うけど、ECX の値に間接ジャンプしているだが、ECX が0.
どこかで、関数ポインタに NIL/NULL/0 の値が入っていて、それをチェックしていないのだ。
0787デフォルトの名無しさんNGNG
違うなぁ。構造化例外処理のコードの断片だ。
RtlUnwind に関連した内部コードだな。
0788デフォルトの名無しさんNGNG
次にダンプするときには、スタックペーンのもう少し上のほうまで見せて
カレントスタックポイントを表す緑矢印が画面の一番下になるところまで
スクロール。

...あまりアセンブラデバッグしたこと無いでしょ > ure
ま、これも経験ということで。


落ちているアドレスはあまりよくないところなので、原因解明の
期待はあまり持たないでください。
0789ureNGNG
うん、まったくない。
よろしければ解説もしていただけるとうれしいです。
CPUウインドウの見方とか。解説ページのポインタでもいいです。
またキャプチャします。
0790ureNGNG
>>788

スタックペインを広げた図。
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デフォルトの名無しさんNGNG
>>785 あめ猫さんが帰ってくるのを祈りましょう
0792デフォルトの名無しさんNGNG
>>790

1. 使っているのは 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
100メガのファイルをファイルストリームで開いて、途中の10メガが不要になったと仮定したとき不要な10メガを埋めて90メガにするのに高速な方法ありませんか?
いまはもうひとつファイルストリームつくって移してるんですが遅いです。
0794DelフサギコNGNG
         _________
  ∧,,∧   /
 ミ;゚Д゚彡< みんなさん、すごすぎ
  ミつ つ  \ ・・・・・・
〜ミ  ミ.     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  U U   あめ猫さまカムバックー

>>773-775
ソースアプ板を使っては?
あと、こんなんもあるみたいですが。
http://homepage1.nifty.com/wizman/app/bt5/index.html
0795デフォルトの名無しさんNGNG
pCode氏あたり絶対まぎれてる(w
0796デフォルトの名無しさんNGNG
>>794
Delフサギコ = Wizman 説があったが、まさか。

>>795
まぎれているとして?どうよ?
0797デフォルトの名無しさんNGNG
>>793
意味がいまいち分からん…
不要のなるのはどの部分?

末尾…………話は簡単。TFileStreamのプロパチィよくみてみ。
先頭や中間…面倒。てか漏れも効率的なカット/インサートの方法知りたい。
0798793ですNGNG
最後ならSizeプロパティ変更すればいいのはわかってるんですが・・・
不特定の場合の処理を速くしたいんです
0799ureNGNG
>>792
パーソナル版です。

文字列を直し、コメントアウトして実行しました。
http://ure.s5.xrea.com/capture/commentout.png
あんまり変わってないように見えます。

問題の行にブレークポイントを設定してストップした後トレース実行した図。
http://ure.s5.xrea.com/capture/accessviolation2.png

なにがおこってるのかさっぱり。
0800デフォルトの名無しさんNGNG
>>785
「記号摂動法」を使ってみるとか。
誤差の原因が違うところにあるのなら駄目だけど。
って適当なこと書いてますな。すまん。
0801デフォルトの名無しさんNGNG
>>785

ってまんまやってくれるプログラムを見つけてしまった。
FORTRANだけど(w

参考になれば。
http://www.simplex.t.u-tokyo.ac.jp/~sugihara/opensoft/opensoft.html
0802ureNGNG
if FWantPreview then begin
この行で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 ..." ではなく「アドレス ... で読み込み違反が起きました」
って日本語のメッセージが出るはずなんだが、もしかして英語版を混ぜている?

コンポーネントパレットの微妙な部分がいつも隠れているのも、ちーと気になる。
0804ureNGNG
最適化をOFFにしたらコンパイルできた!
0805ureNGNG
コンパイルできたじゃないや。

ちゃんとうごいた!!
0806デフォルトの名無しさんNGNG
WM_QUERYENDSESSIONって終了するとは限らないのでは?
0807デフォルトの名無しさんNGNG
>>793
ファイルは何でもアリで?
0808デフォルトの名無しさんNGNG
>>793
FAT書き換え。
0809785NGNG
>>801
どうもありがとうございます… って
ごめんなさい、解読できません…

記号摂動法とはどういうものなのですか?
0810800NGNG
記号摂動法って大学の演習でチラッとやったんだけど、スマヌ、ほとんど忘れた(w
コンピューターで図形処理をするときの誤差を無くす方法なんすけどね。

ちょうど凸包求める問題とかやったんだけどなあ。。。
思い出せたら書きます。
ちなみに記号摂動法に関する本は検索すると出てきます。
0811デフォルトの名無しさんNGNG
リストヴューのチェックボックスを反転したときのイベントって取得できる?
0812Delあめ猫にゃNGNG
>>785
 今時間無いからゴメン。
   前に凸包やった時は
 1) 4方・八方のmax min 点を探す=x , yと(±x±x)の最大最小を探して
   初期包とする

 2)初期包の重心を求める C点

 3)残った全部の点に対してC点からの方向を求め
   その方向が包の収まるべき位置を探して、その角度方向に
   左右の2点より凸なら包に挿入 

包のデータに座標の他にc点から見た角度を持たせて、
  角度でソートすると考えれば、 検索するのが高速に
0813Delあめ猫にゃNGNG
いけない・・・・細長い格好になると3)を単純にやるとダメでゴチャゴチャやった記憶が・・・
0814デフォルトの名無しさんNGNG
TListViewで特定の行やセルのみ文字色変えられますか?
0815デフォルトの名無しさんNGNG
OwnerDrawくぁ?
0816デフォルトの名無しさんNGNG
>>814
OnCustomDrawItem イベントと OnCustomDrawSubItem イベントで出来る
・注意点
リストビューのCanvasに直接色を塗ったり書いたりしないで、
フォントのColorプロパティや、Brushの色を変更すること
0817793ですNGNG
いろいろなサイズのデータが連続しているファイルなのです。
ジョークだと思いますがFATの書き換えはだめです
0818Delあめ猫にゃNGNG
>>785  見たよ。
 原因は終了条件の問題と複数の点がある場合の問題

終了条件は
 始点と同じとなってるけど、y座標が同じ点が複数あると終了しない
0819デフォルトの名無しさんNGNG
1に「Borlandに関する・・・」とあったのでこちらで質問させていただきます。
PARADOXver7って、Windows2000(もしくはXP)上で動作するのでしょうか。
Delphiにもデータベースデスクトップが付属していたと思うのですが、
正常に動作しますでしょうか。
どなたか情報をください。よろしくお願いいたします。
0820デフォルトの名無しさんNGNG
>>819
自分でインストールしてみたら。
動かんかったら諦めるしかないな。
Paradox ってたしか Corel にうっぱらったから
Corel が面倒みてくれるかもしれんが。

ところで俺もParadox7昔使って ObjectPAL でアプリ作ってたけど
ランタイムとか必要で自由に配布できないしいろいろ面倒だったから
Delphi に乗り換えたけど、やっぱ Delphi でDBアプリ組んだ方がいいよ。
BDE 使えば Paradox で作ったテーブルにアクセスできるよ。
0821デフォルトの名無しさんNGNG
>>817
自己管理のFAT作ればどうでしょう?
0822デフォルトの名無しさんNGNG
>>819
動作するよ。一ヶ所変になるけど対応可能。
0823デフォルトの名無しさんNGNG
>>811
OnChangeイベントで可能。
ただし、このイベントは、Selectedなどのプロパティが変化したときにも
発生します。しかも、イベントハンドラに渡される情報だけでは、
どのプロパティが変わったのか判定できません。以前の状態と
比較するとかして、自分で調べる必要があります。
0824819NGNG
>>820
事情がございまして、なかなか試すわけにもいかなかったりします。
単にDBのメンテの場合、アプリ作るほど大袈裟なのも・・・。
>>822
すみませんが、変になる個所と対応方法を教えてもらえないでしょうか。
お忙しいとは思いますが何卒よろしくお願いします。

googleとかだともうPARADOXの情報ってエロゲー(なのかな)情報で、
あるいは通販の昔のページとか、サイト制作者の過去の実績だったりとか
探しきれなくて。
0825DelフサギコNGNG
   ∧,,∧   / ̄
\,,,,ミ,,゚Д゚彡 < さいきんは画面を見せて質問が
⊂,,,,,,,,,つつ.   \ 流行ですか?

  WinXPみたい。

なんか、近頃忙しくて....
0826ななしヘタぐらま ◆B18Bks.Y NGNG
>>793
移すときのバッファを大きくすれば多少速くなると思います.
1メガバイトくらい取ってみてはいかがでしょうかっ.
(扱っているファイルがデカイので一瞬で終了!とかは期待しないで下さい(笑))
0827デフォルトの名無しさんNGNG
>>824
すべては自己責任。

確かに今は 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デフォルトの名無しさんNGNG
環境変数Pathを書き換えて反映させることって出来ますか?
0829デフォルトの名無しさんNGNG
Delphi 6 Enterprise Trialをインストールしてみましたが、
実行するたびにWindows Installerが起動しちゃいます。
これは、トライアル版の仕様なのかな?
0830デフォルトの名無しさんNGNG
>>829
どっかで見たよ。その話。Nifty か?
Windows Installer が古いとそうなるらしい。
再インストールすると直るらしい。
0831デフォルトの名無しさんNGNG
>>829

https://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してみるつもりです。
0832829NGNG
>>830-831
レスありがとうございます!
Windows Installerの最新版(2.0)をインストールしてみましたが、
一度目の起動で必ず、Windows Installerが起動されてしまいます。

OSがW2Kなので、>>831さんの説明と同じような理由かな。
そういえば、Personal版インストールしている状態で、
Enter版Trialを一緒にインストールしたら、
なぜかアプリケーションの追加と削除が起動してしまったのが
関係あるかもしれませんね。変な風にアンインストールされてしまったとか。
0833デフォルトの名無しさんNGNG
>Personal版インストールしている状態で、Enter版Trialを一緒にインストール
それだよ。原因は。
いったん全部アンインストールしてから再インストールしなさい。
0834785NGNG
ああ!なるほど
言われてみれば確かにそうですね。
ご指摘ありがとうございました。改善します。

記号摂動法は一応検索したのですが、なにやら
難しい文献しか引っかからなかったもので…
そういえば、メールエンコード方式(?)で
テキスト化された状態の、ZIP圧縮されたサンプルファイル
があったのですが、WINではどのようにバイナリ化すれば
よいのでしょう。プログラム作ったほうが早いですかね。

#ちなみに、「既に記録済みの頂点は選択しない」という条件を
#入れたら誤回答が少なくなりました。
0835785NGNG
>>818
自分で言うのもなんなんですが、よくあのソースコード見ただけで
問題点分かりましたね。コメントつけていたとはいえ、
分かりにくいかと心配していたのですが。
さすがに本職はちがう…
0836793ですNGNG
不特定サイズのデータがいっぱい連なったファイルを使いたい場合みなさんどうするものなんでしょうか?
・ストリームでゴリゴリ
・バラして1つ1つファイルにする
・データベーステーブル使う
今回ストリームで行ったわけなんですが、おかげさまでまあなんとかできそうですけど
もっとイイ!方法はあるのでしょうか?
0837793ですNGNG
仕様はこんなの
・不特定サイズのデータがいっぱい連なったファイル
・途中のデータを任意に破棄できて、ちゃんとサイズもちぢむ
・データの追加ももちろんできる
0838デフォルトの名無しさんNGNG
「不特定サイズのデータがいっぱい連なったファイル」による。
0839デフォルトの名無しさんNGNG
>・バラして1つ1つファイルにする
特にデメリットが思いつかなければこれにする
0840740NGNG
あまりにも漠然としてて何も胃炎
0841デフォルトの名無しさんNGNG
だから手前でストリームを固定サイズで区切って
チェーン情報とインデックス作って、空いた穴に末尾のファイルを埋め直してやれっつうの
0842>841NGNG
ファイルシステムの再開発ですな
0843793NGNG
>だから手前でストリームを固定サイズで区切って
>チェーン情報とインデックス作って、空いた穴に末尾のファイルを埋め直してやれっつうの
ああそういう事ね、わかったYO。
0844829NGNG
>>833
アンインストールしたけど、ダメっぽい...。
レジストリにゴミでも残ってるのかな?
レジストリを掃除して、また試してみます。
0845デフォルトの名無しさんNGNG
チェーンが切れたらどうすんだ?
デフラグとスキャンディスクもちゃんと作れよ(藁
0846793NGNG
>空いた穴に末尾のファイルを埋め直してやれっつうの
ここに気がつかなかったです
どうもでした
0847デフォルトの名無しさんNGNG
最小サイズが1バイトで、これがたくさんある場合はどうするのYO。
0848793NGNG
>>847
クラスタサイズを小さくすればいいのでは
0849test,test,test,testNGNG
あのさ、ボーランドから出てるSUITEって奴を買おうかと
思っているんだけど、どう?
古いC++コンパイラー(C++5.0Jとか古いソフトがパック
になってるやつ)で15000円なんだけど。
とりあえず勉強用に使うんだけど。
0850デフォルトの名無しさんNGNG
>>849
商品があるがままの状態で収録されてるらしいから気を付けてね。
ほとんどDOS時代のフリーソフトのような感じだろう。
0851847NGNG
あっ、そうかー!
793さんは頭がいいですね。
0852デフォルトの名無しさんNGNG
勉強用ならフリーの Borland C++ Compiler がタダで良いよ。
古いコンパイラーは仕様が古いから、、、
0853>849NGNG
正直お勧めできない。
とにかく言語仕様や開発環境が古すぎる。

GUIに興味がなければVCかCygwinのgcc+gdbが良いかも。
0854デフォルトの名無しさんNGNG
>>845
その辺は適時ガベージ処理でも走らせればいいんじゃない?
チェーン情報で、次クラスタ以外へのジャンプフラグの発生個数メモっとけば
0855デフォルトの名無しさんNGNG
>>849
ほかの方と同意見。C として使う。とか、DOS プログラムをしたい。
という理由がない限りは選ぶべきではない。

Borland C++ 5.0J は 1996/8 発売だけど ANSI C++ の仕様が制定されたのは
1998/9 だよ。
0856ureNGNG
>>803
親切にありがとうございました。テレビ見てます。

結局Delphiの最適化がよくないってことだったのか?バグ?
0857デフォルトの名無しさんNGNG
>>856
もうちょっと追い込みたいんだけどね。

最初はソース単位で最適化の ON/OFF {$O-} ディレクテイブを使う。
差のあるソースが見つかったら大きく半分ずつ {$O-} と {$O+} を入れていって
だいたいの場所を突き止める。っと。
0858デフォルトの名無しさんNGNG
いつのまにかアップグレード優待の案内がきていた
5 Learning→6 professional が約4万か
5買ってアップグレードした方が安いんだなぁ

12/18締め切りか・・・もうちょっと悩もう。
あぁそういや、5PRO → 6PRO のアップグレードの値段っていくらでした?どなたか。
0859デフォルトの名無しさんNGNG
デスクトップアイコンのフォントを書き換えるツールってよくあるけれど、
あれってどうやってるの?
0860デフォルトの名無しさんNGNG
>858
税込み25,200円です。
0861百合毛羅ー NGNG
Delphiてさ、簡単だって言うけど
パスカルなんて知らねーよ。
0862デフォルトの名無しさんNGNG
>>861
食べる前に水で洗うやつです。
0863デフォルトの名無しさんNGNG
Delphi(Pascal知らない)
と
VC++(C言語知ってる)

を比べたらどうなんだろうね。
Delphi(Pascal知らない、Cは知ってる)
なら全然問題なくDelphiもできるとおもうけど。

VCLとかほかのコンポーネント、情報の豊富さか、ああ、ガイシュツ!

ボーランドのマニュアルはあんまよくないけど。
あ、MSのツールからDelphiに移ろうとしたひとはマニュアルの悪さで
つまづかされてるのかも。
0864デフォルトの名無しさんNGNG
>>863
C→C++よりも、C→ObjectPascal→C++のが移行しやすいyp!
0865デフォルトの名無しさんNGNG
yp?
0866デフォルトの名無しさんNGNG
>865
大昔、そういう言語があったんだよ。
マンモスうれ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デフォルトの名無しさんNGNG
CSIDL_COMMON_STARTMENU

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/Shell/Functions/CSIDL.asp
0869DelフサギコNGNG

  ,,,,,,,,,,,,,∧,,∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′,,,,,,,ミ,,゚Д゚彡 < >>868さん、ありがと
  UU""" U U   \_______________
0870Delあめ猫にゃNGNG
>>835 確かに読み難い。 コメントはアルゴリズムを先に説明してよね

あと、ArcTan2を何度も使ってるけど、上のdx,dyとしたのdx,dyを別の変数名にして
例えば
  sDx :=(aDx*LDx+aDy*LDy) ;
  sDy :=(aDy*LDx-aDx*LDy) ;
  SubAngle:=ArcTan2( sDy, sDx );
とやる方がいいし、 もっというと
 ,sDx,sDyから領域を4つに別けて判断するのが普通だよ
0871デフォルトの名無しさんNGNG
>>870
sDx :=(aDx*LDx+aDy*LDy) ;
sDy :=(aDy*LDx-aDx*LDy) ;
SubAngle:=ArcTan2( sDy, sDx );
これって、成分(aDx, aDy)のベクトルと
成分(LDx,LDy)のベクトルの偏角を求めるときの
手段なんですか?

あと、4つに分けて判断とは
どういうことでしょうか。
0872Delあめ猫にゃNGNG
>>871
 そう常套手段ね。元のベクトルで片方を逆転する。
 すると、元のベクトルの方向に向いた場合にどっちを向くかが判定出来る


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あめ猫にゃNGNG
ありゃ、ダメダメ
 xは負を許さないと 細長い鋭角な場合にダメだ

という事で上の後半はダメダメ。りArcTan2は必要みたい
0874デフォルトの名無しさんNGNG
数字を少数第2位で丸める方法って無いですか?
0875デフォルトの名無しさんNGNG
100倍してtruncして100でわる。
0876Delフサギコ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デフォルトの名無しさんNGNG
じゃあこうして。

x := StrToFloat( Format('%.2f', [x] ) );
0878茶碗NGNG

Delphi6 Personal でしたが
データベースと言う物をやってみたくて今日Pro版を買いました。
こんな高いソフト買ったの初めて・・・

データベースに関する知識が全く無くて、これから
勉強しようと思うのですが、過去ログに出ていた
Paradox とか色々あるらしいですが、それらを
使用するのにまた何か購入する必要があるのでしょうか。

予想外の出費に経済危機状態なので心配です。
安く上げる方法を教えてください。
0879デフォルトの名無しさんNGNG
PostgreSQL、タダだよ。SQLもわりと標準的なので良いよ。
ODBC経由で繋げられる。
0880茶碗NGNG

>>879

レスありがとうございます。
PostgreSQL 検索してみます。
標準的なSQLやODBCなど言われてもまだ全く解らない状態ですが
頑張ってみようと思います。
今日ついでにDelphiでデータベースをやる参考書を
見てたのですが、あまり良いのがありませんでした。
Delphiって書籍が少ないですねぇ。
入門に適した書籍やサイトがあれば教えてください。
0881デフォルトの名無しさんNGNG
>>878
Pro版に付属しているDatabase DesktopはParadoxのサブセットだから
Paradox形式のデータベースはそのまま使えるよ
0882茶碗NGNG
>>881
レスありがとうございます。

そうなんですか?
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フサギコNGNG
推薦図書/必読書のためのスレッド in プログラム板
http://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揚げ足取りにつきsageNGNG
>>887
>猫はしゃべらない
猫はしゃべっていない。
よってその指摘は無意味。

キーボード打って書き込んだだけだ。
0889デフォルトの名無しさんNGNG
遊ぶDelphiは読んでおいて損なし
0890ななしヘタぐらま ◆B18Bks.Y NGNG
>>861
私はDelphiでPascal初体験でしたが
Delphi以前にPascal経験があった方って
意外と少数のような気もしますが….
0891 NGNG
うん。Delphi3.1でPascalを知った。
ポインタの扱いに癖がある以外はすばらしい言語だ。
0892ゲィム作りてーNGNG
Delphi6Pro買ったけど、6に関する参考書なし。
Delphi5の参考書でも買っとけば役に立つ?
早く覚えてゲィム作りたいよ。
フサギコさん、ズブの初心者でも覚えられるサイト教えてくれぃ!
0893デフォルトの名無しさんNGNG
>>882
PostgreSQLもZeosDBOコンポーネントなんかを使えば割合簡単。
ただし、現状だと日本語未対応・・・。
http://www.zeoslib.org/zeos_zdo_main.php
0894    NGNG
Delphiのフリー版をもっていますが
Delphi初心者(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    894NGNG
フサギコさん感謝です。
0897デフォルトの名無しさんNGNG
StringGridの文字列を
csvとして保存するためのスマートな方法はないでしょうか。
0898 NGNG
StringText
CommaText
を使うぐらいしかしらねーな
0899デフォルトの名無しさんNGNG
booleanの値を反転させるのに 半年間もif文を書いていた・・・鬱だ
0900デフォルトの名無しさんNGNG
実数の負の記号−を▲に変えて表示するにはどうしたらいいの?
0901デフォルトの名無しさんNGNG
S:=AnsiReplaceStr(S,'-','▲');
0902デフォルトの名無しさんNGNG
ToolBarで使用できるアイコンを配布しているサイトって、ありませんか?
アイコンを描くのは苦手。。。
0903デフォルトの名無しさんNGNG
IE,Officeのをパクれ
0904デフォルトの名無しさんNGNG
DelphiのをパクるのはOK?
0905デフォルトの名無しさんNGNG
>>902
Delphiインストールしたらに付いてくるでしょーに・・・
0906デフォルトの名無しさんNGNG
>>905
Delphi付属のアイコンはセンスZero。
0907デフォルトの名無しさんNGNG
Delスレの活気がずいぶん減ってきたような。
結局、パーソナル無償配布から新規ユーザーになったぜって人はいるのだろうか。
ほとんどの人はかじっただけで飽きちゃったかな。
0908デフォルトの名無しさんNGNG
>>907
Delphiドトネトの発表で覚悟を決めた人が多いのかも。
0909がいしゅつなのでNGNG
ログ漁るとフリーのアイコン・ビットマップ集へのリンクが出てくるよ
0910Delフサギコ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デフォルトの名無しさんNGNG
神様、Delフサギコ様、仏様、感謝します。
0912デフォルトの名無しさんNGNG
休みの日は下がるけど職業プログラマが職場から書き込んでるのか?
0913デフォルトの名無しさんNGNG
>>912
そう。Delphi-ML と同じ。
0914デフォルトの名無しさんNGNG
今日、professionalへのアップグレードを頼んだ。
もうもどれん。
0915デフォルトの名無しさんNGNG
だれか>>806を教えて。
0916はい!はい!はい!はい!はい!はい!はい!はい!はい!NGNG
>Delスレの活気がずいぶん減ってきたような。
>結局、パーソナル無償配布から新規ユーザーになったぜって人はいるのだろうか。
>ほとんどの人はかじっただけで飽きちゃったかな。
0917916NGNG
>ほとんどの人はかじっただけで飽きちゃったかな。
は、いらなかった…。
オレオレ!新規新規!
0918デフォルトの名無しさんNGNG
>>914
いつでもPersonal版に戻れます。
0919「はい」は一回!!NGNG
 
0920デフォルトの名無しさんNGNG
はいはいっかい!!
ははいはにかいはいってます。
0921茶碗NGNG
>>907

delphi6 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
>>922
フサギコさんおはようございます。

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デフォルトの名無しさんNGNG
[OnKeyDown]
 if Flag then
  Exit;
 Flag := True;
 〜 処理 〜

[OnKeyUp]
 Flag := False;
 〜 処理 〜
0926デフォルトの名無しさんNGNG
>>924キーボードに使われてるマイコンのファームの方がキーリピートをやっています
>>925 のように書けばNEC98以外なら巧く動くかもしれませんが
 完璧にしようと思えばoff->onの間隔が一定以下なら無視させるしかありませんね
0927デフォルトの名無しさんNGNG
KeyDown は何度も来ますが、対する KeyUp は1回だけです。たしか。
0928DelフサギコNGNG
GetAsyncKeyStateとか使う方法はだめなのでしょうか。
たしか、ジョイスティック入力とかも、このAPIじゃなかったかな。

  ∧,,∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ミ,,゚Д゚ミ < イベント発生したいなら、ちょっと違うけど。
  ミ   ミ   \__
〜ミ,UU_ミ
0929DelフサギコNGNG
ミ,,゚Д゚彡DelフサギコのフサフサDelphi談話室�A
http://pc.2ch.net/test/read.cgi?bbs=tech&key=1006602102

            ∫    _________
   ∧,,∧     ∬   /
   ミ,,゚Д゚彡っ━~  < 新スレたてますた。
_と~,,  ~,,,ノ_.  ∀   \
    ミ,,,,/~), │ ┷┳━   ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ̄ ̄ ̄ .じ'J ̄ ̄| ┃
 ̄ ̄ ̄ ̄ ̄ ̄ ̄  ┻
もうそろそろ、息切れですかね......
0930デフォルトの名無しさんNGNG
機種依存文字萎え
0931デフォルトの名無しさんNGNG
とりあえずDelフサは>>930にブチ切れるとみた(w
0932DelフサギコNGNG
      ∧,,∧___   / ̄ ̄ ̄ ̄ ̄
    /ミ*゚Д゚ミ/\<  萌え・・・
  /| ̄∪∪ ̄|\/  \_____
    |____|/
     ,,,,∪∪,,, ,,
0933デフォルトの名無しさんNGNG
imageコンポーネントに表示されてる画像を90度回転させたいのですが
どうしたら良いでしょうか?
0934933NGNG
次スレあったのね
すいません
0935デフォルトの名無しさんNGNG
このスレは終了しています。
質問などは次スレによろしくお願いします。

ミ,,゚Д゚彡DelフサギコのフサフサDelphi談話室�A
http://pc.2ch.net/test/read.cgi?bbs=tech&key=1006602102
0936デフォルトの名無しさんNGNG
    ∧ ∧         / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| ̄ ̄( ゚Д゚) ̄ ̄|   < 良い子は寝る時間
|\⌒⌒⌒⌒⌒⌒\   \
|  \           \    ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
\  |⌒⌒⌒⌒⌒⌒|
  \ |_______|
0937デフォルトの名無しさんNGNG
このスレはいただいた。
覚悟するヨロシ。
0938デフォルトの名無しさんNGNG
糞スレあげ
0939DelフサギコNGNG

            ∫    _________
   ∧,,∧     ∬   /
   ミ,,゚Д゚彡っ━~  < 漏れは素人童貞ですた。
_と~,,  ~,,,ノ_.  ∀   \
    ミ,,,,/~), │ ┷┳━   ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ̄ ̄ ̄ .じ'J ̄ ̄| ┃
 ̄ ̄ ̄ ̄
0940デフォルトの名無しさんNGNG
>>939はキチガイ
0941デフォルトの名無しさんNGNG
>>933
ディスプレイを横に転がせ。
0942デフォルトの名無しさんNGNG
>941
煮詰まってるんだね。
0943DelフサギコNGNG

            ∫    _________
   ∧,,∧     ∬   /
   ミ,,゚Д゚彡っ━~  < 漏れは仮性包茎ですた。
_と~,,  ~,,,ノ_.  ∀   \
    ミ,,,,/~), │ ┷┳━   ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ̄ ̄ ̄ .じ'J ̄ ̄| ┃
 ̄ ̄ ̄ ̄


0944デフォルトの名無しさんNGNG
    ∧ ∧         / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| ̄ ̄( ゚Д゚) ̄ ̄|   < 内臓出ちゃう
|\⌒⌒⌒⌒⌒⌒\   \
|  \           \    ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
\  |⌒⌒⌒⌒⌒⌒|
  \ |_______|
0945デフォルトの名無しさんNGNG
あは〜ん
0946デフォルトの名無しさんNGNG
イミフメAA貼るだけなら書き込むなや>ギコ
0947デフォルトの名無しさんNGNG
age
0948デフォルトの名無しさんNGNG
いや〜ん
0949デフォルトの名無しさんNGNG
ばか〜ん
0950デフォルトの名無しさんNGNG
そこはだめよ〜
0951DelフサギコNGNG
    ∧ ∧         / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| ̄ ̄( ゚Д゚) ̄ ̄|   < 格安ソープまんせー!
|\⌒⌒⌒⌒⌒⌒\   \
|  \           \    ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
\  |⌒⌒⌒⌒⌒⌒|
  \ |_______|


0952デフォルトの名無しさんNGNG
偽必死ダネ
0953デフォルトの名無しさんNGNG
>>951=952
0954デフォルトの名無しさんNGNG
http://isweb34.infoseek.co.jp/play/gbcgbaus/god.html
0955デフォルトの名無しさんNGNG
あげ
0956デフォルトの名無しさんNGNG
|  | ∧
|_|Д゚) ミンナMLでデザパタ論議チュウ
|文|⊂) 
| ̄|∧|
0957Delフサギコ ◆zE1iiRdQ NGNG
|  |,,∧  とりあえず、IteratorはForEachで使えないと....
|_|Д゚ミ Cチャープでは出来るらしいが....
|文|⊂ミ 
| ̄|∧|
0958Delフサギコ ◆zE1iiRdQ NGNG
|  |,,∧  halbow氏が壊れ初めてる...
|_|Д゚ミ 
|文|⊂ミ  IUnknownの実装とか言ってるし...
| ̄|∧|  カレもまたDelの腐れCOMInterfaceの
      犠牲者か...
0959デフォルトの名無しさんNGNG
過去ログ見なさい
0960デフォルトの名無しさんNGNG
>>958
どこがどう腐っているんだい?
0961デフォルトの名無しさんNGNG
CでもOOP出来ると言い張る人みたいになってるな・・・
0962デフォルトの名無しさんNGNG
どうしてVCLからパタンを発掘ってアプローチを取らないんだろ?
VCLってパタンの宝庫なのに。

「その実在において、それらに付随している他の考えからそれらを分離する。
これを抽象といい、一般のアイデアはこうして出来ている」
John Locke
0963デフォルトの名無しさんNGNG
またわけの分からん発言を...
とにかくGoF読めって。
0964デフォルトの名無しさんNGNG
Delフサギコ ◆zE1iiRdQ はクラスライブラリ無しでは
生COMコンポーネントすら書けない悲しき無能PG。
0965デフォルトの名無しさんNGNG
>生COMコンポーネントすら
んなもん書きたく無い。ML入ってないのでどういう議論かキボーン
0966デフォルトの名無しさんNGNG
>>965
特に知らなくても困らないよ<議論
GoFのサンプルをVCLパターンを無視して
とにかく実装してみましょってだけだから。

ともかくDelのinterfaceをJavaのそれと混同して使うなや。
Delは単一継承interface無しで使うのが一番シンプルだよ。
0967デフォルトの名無しさんNGNG
キタ━━(゚∀゚)━━━!!!!!
0968デフォルトの名無しさんNGNG
?
0969デフォルトの名無しさんNGNG
>>966
>Delは単一継承interface無しで使うのが一番シンプルだよ。
かっこ閉じ忘れのカキコしてるヤシみてるとLisperの俺は鳥肌立ってくる。
0970デフォルトの名無しさんNGNG
と思ったら、
>承interface
の承の右側が開きカッコに見えてしまうという罠。
芯できます。
0971デフォルトの名無しさんNGNG
MLで言えばいいのに、2chでコソコソと
halbow氏を叩いているDelフサギコって・・・・・
0972デフォルトの名無しさんNGNG
>>971
オマエモナ-
MLにリンク投げてみろや
0973デフォルトの名無しさんNGNG
次スレはどこ逝った?
0974デフォルトの名無しさんNGNG
>>973
偽ギコがたてた次スレならこっち


ミ,,゚Д゚彡DelフサギコのフサフサDelphi談話室�A
http://pc.2ch.net/test/read.cgi/tech/1013298748/
0975デフォルトの名無しさんNGNG
ども
0976デフォルトの名無しさんNGNG
キタ━━(゚∀゚)━━━!!!!!
0977デフォルトの名無しさんNGNG
なにが?
0978デフォルトの名無しさんNGNG
Delフサギコが。
0979デフォルトの名無しさんNGNG
今だ!1000ゲットォォォォ!!
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄       (´´
     ∧,,∧,,,,,, )      (´⌒(´
  ⊂ミ゚Д゚⊂ `つ≡≡≡(´⌒;;;≡≡≡
       """""  (´⌒(´⌒;;
      ズザーーーーーッ

0980デフォルトの名無しさんNGNG
なかなか1000行かないね。
0981デフォルトの名無しさんNGNG
今だ!1000ゲットォォォォ!!
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄       (´´
     ∧,,∧,,,,,, )      (´⌒(´
  ⊂ミ゚Д゚⊂ `つ≡≡≡(´⌒;;;≡≡≡
       """""  (´⌒(´⌒;;
      ズザーーーーーッ
0982デフォルトの名無しさんNGNG
すべりこみアト19回。
0983デフォルトの名無しさんNGNG
ごめんアト17回
0984デフォルトの名無しさんNGNG
1000!
0985デフォルトの名無しさんNGNG
すみませんageないでいただけますか・・・
0986デフォルトの名無しさんNGNG
ageたいよおおおおおおおおおおお!!!!!!!!
0987デフォルトの名無しさんNGNG
今だ!1000ゲットォォォォ!!
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄       (´´
     ∧,,∧,,,,,, )      (´⌒(´
  ⊂ミ゚Д゚⊂ `つ≡≡≡(´⌒;;;≡≡≡
       """""  (´⌒(´⌒;;
      ズザーーーーーッ

0988デフォルトの名無しさんNGNG
>>987
おまえにゃ無理だ。
0989デフォルトの名無しさんNGNG
さっさと埋めちまおう。
0990デフォルトの名無しさんNGNG
埋め
0991デフォルトの名無しさんNGNG
埋め 
0992デフォルトの名無しさんNGNG
埋め
0993デフォルトの名無しさんNGNG
今だ!1000ゲットォォォォ!!
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄       (´´
     ∧,,∧,,,,,, )      (´⌒(´
  ⊂ミ゚Д゚⊂ `つ≡≡≡(´⌒;;;≡≡≡
       """""  (´⌒(´⌒;;
      ズザーーーーーッ
0994デフォルトの名無しさんNGNG
今だ!1000ゲットォォォォ!!
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄       (´´
     ∧,,∧,,,,,, )      (´⌒(´
  ⊂ミ゚Д゚⊂ `つ≡≡≡(´⌒;;;≡≡≡
       """""  (´⌒(´⌒;;
      ズザーーーーーッ
0995デフォルトの名無しさんNGNG
埋め  
0996デフォルトの名無しさんNGNG
埋め    
0997デフォルトの名無しさんNGNG
       v
     <(゚ω゚) <うっ!
      (  )\        
      /'>
0998デフォルトの名無しさんNGNG
       v
      (゚ω゚)> <はっ!
     /(  )        
       <'\
0999デフォルトの名無しさんNGNG
       v
     <(゚ω゚)> <うっ!
      (  )        
      /'>

       v
      (゚ω゚)/ <はっ!
     /(  )        
       <'\
10001000NGNG
     v       w
    (゚ω゚)/ \(゚δ゚)<ジーンギスカーン!
   /(  )    (  )ゝ
     <'\    / >

10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。