5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

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

1 :フサギコ:02/05/16 22:15
  ,,,,,,,,,,,,,,,∧,,∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′,,,,,,,,,,ミ,,゚Д゚彡<  DelphiやBorlandについて熱く語ろうや
 UU"""" U U    \_________


2 :フサギコ:02/05/16 22:16
前スレ

ミ,,゚Д゚彡DelフサギコのフサフサDelphi談話室A
http://pc.2ch.net/test/read.cgi/tech/1013298748/l50

3 :フサギコ:02/05/16 22:18
<関連スレ>
Delphi相談室その4
http://pc.2ch.net/test/read.cgi/tech/1018211735/l50

Delphiで小さな実行ファイルを作ろう
http://pc.2ch.net/test/read.cgi/tech/1009080085/l50

4 :フサギコ:02/05/16 22:19
今だ!4ゲットォォォォ!!
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄
     ∧,,∧,,,,,, )    (´;;
  ⊂ミ゚Д゚⊂ `つ  (´⌒(´
       """""

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/


5 :デフォルトの名無しさん:02/05/16 22:19
チャンコロは小一時間ほど逝ってよしと思われ

6 :デフォルトの名無しさん:02/05/16 22:21
Delフサギコじゃなくてただのフサギコなのか。

7 :フサギコ:02/05/16 22:24
  ,,,,,,,,,,,,,,,∧,,∧ 
〜′,,,,,,,,,,ミ,,゚Д゚彡
 UU"""" U U   

本当は、これで4のはずなんだけどなぁ。
でもAがあったんだからBができてもよかろうに・・・
まぁ、マターリとしていこうや。

8 :デフォルトの名無しさん:02/05/16 22:26
本スレ

ミ,,゚Д゚彡DelフサギコのフサフサDelphi談話室B
http://pc.2ch.net/test/read.cgi/prog/1012435004/

9 :デフォルトの名無しさん:02/05/16 22:31
>>8
マ板にあるからだろうけど
すっかりネタスレになっちゃってるし
本スレというのは、もはやふさわしくないな〜

10 :デフォルトの名無しさん:02/05/16 22:54
>>9
禿同

11 :デフォルトの名無しさん:02/05/16 23:04
僕のDelphiはタスクバーにアイコンが表示されません。(タイトルのみ表示)
みんなはどうですか?

12 :デフォルトの名無しさん:02/05/16 23:05
>>11
説明書読めばわかるがプロジェクトで設定。

13 :デフォルトの名無しさん:02/05/16 23:06
DelphiXって死にましたか?
http://415.teacup.com/hori/bbs

14 :11:02/05/16 23:07
あ、Delで作ったソフトじゃなくてDel本体だよ。

15 :デフォルトの名無しさん:02/05/16 23:10
みんなはどうですか?

16 :デフォルトの名無しさん:02/05/16 23:44
教室のみんなはどうですか?

17 :デフォルトの名無しさん:02/05/17 00:11
だいじょ〜ぶで〜す

18 :デフォルトの名無しさん:02/05/17 00:12
Delphiは実際の開発現場では使われているんですか?
またDelphiで作られた代表的なソフトを教えてください。

19 :デフォルトの名無しさん:02/05/17 00:13
>>18
かちゅ〜しゃ

20 :デフォルトの名無しさん:02/05/17 00:14
>18

delphiで作られた有名ソフトって何がある?
http://pc.2ch.net/test/read.cgi/tech/990056026/l50

21 :デフォルトの名無しさん:02/05/17 00:46
>>18
個人プレーで仕事してる人や
パッケージソフトを作ってるところでは
結構使われてるみたい

チームプレー重視のところだと「建前」でM$にせざるを得ないけど
そうじゃなければ効率重視だもんね

22 :デフォルトの名無しさん:02/05/17 01:26
>>13
Delphi使いって変態さんの集まりですか?

23 :デフォルトの名無しさん:02/05/17 02:05
>>22
プログラミングなんていう面倒な行為を好んでやる俺たちが
多少なりとも変態であることは認めるにやぶさかでない

24 :デフォルトの名無しさん:02/05/17 15:52
23はキティガイ

25 :デフォルトの名無しさん:02/05/17 16:54
ども、Delphi/Kylixなスレを立てたいのでご相談に参りました。

CLXを使ったクロスプラットフォームに関するスレを立てたいのです。
具体的には、、、

ネットで検索すればVCLを使ったフリーで素晴らしいコンポーネントが山ほど見つかりますが、
しかしKylixで使えるようなコンポーネントは中々無く、またあったとしてもクロスプラットフォームで
無いものばかりです。
もし、優れたクロスプラットフォームなコンポーネント(あるいはクラス・関数)が数多くあれば、
マジでWindows←→Linuxなことが出来るのでは?
そんなわけでがんばって作ってみますです…

みたいなスレを立てたいのですが…

26 :25 ◆U3XM4e82 :02/05/17 17:06
25です。
厨国語の使用&長文レススマソです。

実際問題、僕自身コンポーネントを作ったことが無い厨なので、
これから3日〜1週間ほどの間、こちらのスレのほうで何かしら
お邪魔させてもらってもよろしいでしょうか?
スレ違いでしたらモナスレか本家(?)相談室の方で
やっていこうと思うのですが…

27 :デフォルトの名無しさん:02/05/17 17:27
>>26
いいんじゃねぇの

28 :デフォルトの名無しさん:02/05/17 19:32
新スレ記念age

29 :Delフサギコ ◆zE1iiRdQ :02/05/17 21:30
ミ ゚Д゚彡>>25
**をCLXで作ってくれなら
手伝えるかも。

LinuxのAPIとか知らんけど…

たぶん、Kylixで使えないコンポの中には
Kylixはもっていないので動作確認してないだけ。
とかいうのも、かなりあるかも。
....そでもないかな。

GUIが絡まなければ、クロスは容易なはずだけどね。

30 :デフォルトの名無しさん:02/05/17 21:37
  ,,,,,,,,,,,,,,,∧,,∧ 
〜′,,,,,,,,,,ミ,,゚Д゚彡 <Delフサギコさんの登場ですか。
 UU"""" U U  

31 :デフォルトの名無しさん:02/05/17 21:39
>>29
>LinuxのAPIとか知らんけど…

どっちのAPIにも依存しないのがCLXだと思われ。
だからCLX+標準手続き以外は使えないっす。

32 :Delフサギコ ◆zE1iiRdQ :02/05/17 21:44
QtのAPIを理解するのが先だったか…

  ,,,,,,,,,,,,,,,,∧,,∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′,,,,,,,,,,ミ,,゚Д゚彡 < よー、わかりまへん
  UU"""" U U[大阪弁]_______________

Linux(or Qt)とWinと両方のコードを用意するのも
クロスの宿命かと.....

33 :デフォルトの名無しさん:02/05/17 21:46
>>32
.NETとの兼ね合いもあるし某国としても解決は茨の道ですな。

34 :デフォルトの名無しさん:02/05/17 23:44
Linux.Free;

35 : ◆VB6.V49. :02/05/18 01:10
かおりん祭り来ないね

36 :デフォルトの名無しさん:02/05/18 02:34
Personal使っているのだけれど、
デバッグの時に、ActiveXのバリアント型は評価できないの?
あと、IDLやらタイプライブラリを参照してどんなインターフェースやメソッドが
あるのか見ることはできないのでしょうか。VBのオブジェクトブラウザや、
入力支援機能みたいに。(入力支援はDelにもついてますけど、COMのクラスや
インターフェースについて)

それと、素朴な疑問なんだけど、ActiveXをインポートしてカプセル化して使う
ようですが、これってつまりはDispインターフェースを使ってないバインド方式
をつかってるってことなのでしょうか。VBで使うCOMは確かデュアルで作れって
MSDNで書いて書いてあったので、VBはDispインターフェースを使っているのだと
思っていたのだけど。 (VBはコンパイルすると早いバインドをするのでしょうか?)

以上、よろしくお願いします m(_ _)m

37 :デフォルトの名無しさん:02/05/18 08:31
>>36
 ActiveX取り込み時にTLBが出来ているはずです。 それを見て下さい。
 デバック時も、Delのオブジェクトとしてデバック可能です

OLEVariantでアクセスした場合の話は別の話です

例えば
var nm,obj:OLEvariant;
begin
obj:=WebBrowser1.OleObject;
nm:='http://pc.2ch.net/test/read.cgi/tech/1021554929/';

として obj.Navigate2(nm); とすれば当然VBと同じような方式の呼び出し方になります
普通は WebBrowser1.Navigate2(nm); とします

38 :かおりん祭り◇IidAAeuI :02/05/18 10:59
\( ^▽^)/新スレおめでとうございまーす♪

39 :デフォルトの名無しさん:02/05/18 21:36
フサギコ(Delじゃない)に期待age

40 :25 ◆U3XM4e82 :02/05/18 21:59
どもです、25です。
ヘルプ&Del4プロバイのコンポーネント作成に関するドキュメントを
軽く読んだだけけですが、コンポーネント作るのかなり大変ですね…

エディタでゴリゴリ作らなきゃならない、Object Pascalの文法を
ほぼ完璧にわかってないといけない、ある程度クラスライブラリについて
理解して無いといけないなどなど…
Delphian Worldで公開してる方々僕からしてみれば神だ…

スレ立ての承認ありがとうございます。
せめてTButtonから継承し、単純なプロパティやメソッドなどを
ひとつずつ持っているだけ…みたいな物ぐらい作れるようになったら
立てようかと思います。

41 :デフォルトの名無しさん:02/05/18 22:02
>>40
(*
エディタでゴリゴリ作らなきゃならない、Object Pascalの文法を
ほぼ完璧にわかってないといけない、ある程度クラスライブラリについて
理解して無いといけないなどなど…
*)

いや、普通・・・。
まぁ、がんばろう。

42 :25 ◆U3XM4e82 :02/05/18 22:39
29−32の流れを見て思ったんですが、
CLXの中で普通にWinAPI使っているような気が…
(Delphi6-Source-ClxのQDialogs.pasとか…。)
コンパイラ指令使って、MSWINDOWS用とLINUX用の処理書いてやれば大丈夫かと…
ただ、ひとつの.pasファイルにWin用とLinux用の処理混在させるとソースが汚くなるし、
かといって2つに分けると、作るときに二度手間な箇所が増えてキツイ…

43 :営農ギコ:02/05/18 23:03
簡単な処理はCLXでやったほうがいいと思いますね。
速度が欲しいならプラットフォーム毎に書けばいいし。

44 :Delフサギコ ◆zE1iiRdQ :02/05/19 02:44
     コンポ作成方法は

 ∧,,∧ このあたりを、さらっと読めばサラサーティー
ミσ゚Д゚ミσ


●基礎からわかるDelphi5
三原 幸一 秀和システム \2,400 ISBN4-87966-937-7

これの6がでてる

●実践Delphiコンポーネントプログラミング
秀和システム出版編集部 秀和システム \2,800 ISBN4-87966-798-6

●Delphi 4 プログラミングバイブル
Marco Cantu 著篠原 慶 監訳 インプレス \5,680 ISBN4-8443-1273-1

これも6がでてる。

45 :25 ◆U3XM4e82 :02/05/19 03:05
おお!Delフサさんありがとうございます。
現在Del4プログラミングバイブルは図書館からのレンタルで手元にあり、
6版もすでに書店で注文済み(しかし到着予定2週間後…)
実践〜の方はコンポマターク作ったこと無い僕でも(とりあえずな)コンポ作れそうなヨカーン…
本買い過ぎて金無いんで、また近所の図書館に全部注文かけときます。
それまで頑張ってDel4プロバイの4部を読まねば…

ちなみにこんなの採取しますた
ttp://www.migaro.co.jp/rad/support/toptext.htm
このメルマガの第三回からコンポの作り方の入門程度を扱った連載してるデス。

46 :デフォルトの名無しさん:02/05/19 07:58
>>41
そうしなくても普通には使えると思われてる言語なのかね、Delphiは。
いいのかわるいのか、微妙だ・・・。

47 :デフォルトの名無しさん:02/05/19 09:43
Delphiでのおすすめ書籍は?

48 :デフォルトの名無しさん:02/05/19 09:48
>>46
まぁ、フリーのVBだと考えて入ってくると痛い目を見るぞと。


49 :デフォルトの名無しさん:02/05/19 10:17
しかし、痛い目を見ないと人は学習しないという罠

50 :デフォルトの名無しさん:02/05/19 10:20
>>49
しかも勉強しないと本当の良さはわからない罠。


51 :デフォルトの名無しさん:02/05/19 10:28
>>47
ちと古いがコレが参考になる。
http://home1.infonia.ne.jp/~delphian/delphi/history/bookrank2/book.html

Del6Personalが出てきてからDelphi本が増えてきているみたいだから、
もう一度ランキングやってもいい気がするな


52 :デフォルトの名無しさん:02/05/19 10:43
中村さんとこのも上げておくか
http://www.asahi-net.or.jp/~HA3T-NKMR/books.htm

53 :デフォルトの名無しさん:02/05/19 10:46
>>44
>●実践Delphiコンポーネントプログラミング

これって今でも手に入る?
コンポの作り方だけじゃなくて、オブジェクト指向の勉強にもなるって言うから
けっこう気になってて前から探してるんだけど、見つからないよ・・・

漏れはコンポの作り方は、基本だけどDelphi2.0付属の「コンポーネント開発者ガイド」を
何度も読んだ。愛想はないけど読みながらいろいろやってると、だんだんわかってくるよ。
これも最近のDelphiにはついてこないのだろうか・・・・?

54 :デフォルトの名無しさん:02/05/19 11:18
>>47
この本なんかいいんじゃない?
http://www.ascii.co.jp/books/detail/4-7561/4-7561-4002-5.html

55 :デフォルトの名無しさん:02/05/19 12:10
  ,,,,,,,,,,,,,,,∧,,∧ 
〜′,,,,,,,,,,ミ,,゚Д゚彡 <Borland Delphi6オフィシャルコースウェア好きだなぁ。
 UU"""" U U  

56 :デフォルトの名無しさん:02/05/19 14:07
>>37
レスありがとうございます。 返事が遅くなってスマソ。

OLEVariantを使ってるとDispインターフェースで使うことになるわけですかぁ。
VC++のスマートポインタみないなもんなんだろうか。

ところで、新しい疑問なのだけれど、
Dispインタフェースを使ってDispインターフェースを使えますか?
つまり、OLEVariantは内部的にDispインターフェースの利用をインプリメント
してあって、ドット演算子(?)をオーバーライドしてあるわけですが、

このOLEVariantからGetIDsOfNamesなどを呼び出せるのでしょうか?

ATLだと、確かIDispatchは純粋仮想な親クラスなので自分で実装しない
限りは不可能なように思えますが、OLEVariantをDelのas演算子などで
キャストしてDispインターフェースを呼ぶこと等は可能なのでしょうか。


57 :デフォルトの名無しさん:02/05/19 14:16
>>56
>Dispインタフェースを使ってDispインターフェースを使えますか?
この質問、よく考えたらおかしいです。
うまいことGetIDsOfNamesなんかを呼び出す方法を教えてください。

58 :デフォルトの名無しさん:02/05/19 14:19
Borland が一瞬 Imprise になった夢を見たんですが、
あれは何なんですか?

59 :デフォルトの名無しさん:02/05/19 14:42
気分を変えてみたのです。

60 :デフォルトの名無しさん:02/05/19 16:05
ヘジルスバーグがMSにいる夢を見たのですが・・・・・

61 :デフォルトの名無しさん:02/05/19 17:00
>>58

Inprise

はい、URLを打ち間違えたことのある人は挙手すること。

62 :デフォルトの名無しさん:02/05/19 17:17
>>60
夢ではありません

63 :デフォルトの名無しさん:02/05/19 17:55
>>60
おかげでC#Builderとも言える製品が私たちの元へ。

64 :デフォルトの名無しさん:02/05/19 18:38
>>56
OleVariant型変数からIDispatch型変数へ代入できませんでしたっけ?
あるいは直接キャストでもいけた気が。最悪TVarDataへキャストして中身を取るとか。

65 :営農ギコ:02/05/19 20:24
>>61
BorlandをBolandと間違えたことあるっす

66 :デフォルトの名無しさん:02/05/19 21:03
       冫─'  ~  ̄´^-、
     /          丶
    /             ノ、
   /  /ヽ丿彡彡彡彡彡ヽヽ
   |  丿           ミ
   | 彡 ____  ____  ミ/
   ゝ_//|    |⌒|    |ヽゞ
   |tゝ  \__/_  \__/ | |    ________________
   ヽノ    /\_/\   |ノ  /
    ゝ   /ヽ───‐ヽ /  / >>65 そんなあなたにVisualBasic.NET
     /|ヽ   ヽ──'   / <  
    / |  \    ̄  /   \
   / ヽ    ‐-            ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄


67 :デフォルトの名無しさん:02/05/19 21:11
>>65
Rolandみたいだ。

68 :デフォルトの名無しさん:02/05/19 22:27
漏れに言わせればBorlandは、Oralce程ボッタクッてはいないと思う。

69 :デフォルトの名無しさん:02/05/19 22:36
むしろ商売下手…

70 :デフォルトの名無しさん:02/05/19 23:04
ま、オラクルはCEOがあれだからね、

71 :デフォルトの名無しさん:02/05/19 23:07

TActionManager と
TActionMainMenuBar を使ってメニューを作っていますが
分割線を作れません。

TMainMenu だと、Caption を - にするとできたのですが。
教えてください。


72 :デフォルトの名無しさん:02/05/19 23:34
ウニ死す

73 :デフォルトの名無しさん:02/05/19 23:53
>>71
オブジェクトツリー上で新規作成してそいつのキャプションをハイフンにするとか

74 :デフォルトの名無しさん:02/05/20 00:06

一応、Captionはハイフンになっているのですが、
表示が分割線にならずハイフンで表示されてしまうんですよ。

ActionMenuBar や、ActionToolBar使うなって事ですかね。

75 :デフォルトの名無しさん:02/05/20 00:14
>>74
プロパティくらい全部見てから物言ってくれ。

76 :デフォルトの名無しさん:02/05/20 00:19
スローなブギにしてくれ。

77 :デフォルトの名無しさん:02/05/20 00:20
>>74
そういう事です。

78 :デフォルトの名無しさん:02/05/20 00:50
Buttonの Styleを

79 :25 ◆U3XM4e82 :02/05/20 01:07
ttp://freeclx.sourceforge.net/
このfreeCLXって結局何なんでしょう?
やっぱりやっぱりクロスプラットフォームな事よりも
Linux環境をPascalで扱うためのプロジェクトなのかなぁ…

#しかしスレ立てるのホントにどうしよ?
#ム板の状況から判断する限り、これ以上スレ立てるのは本当に危険かも…
#この際自由にDelの話題を扱えるサイトを作った方がいいかなぁ…

80 :デフォルトの名無しさん:02/05/20 01:36
>>79
このスレには方向性が存在しないので
新スレたてるよりはこのスレを乗っ取るのがよいかと。

81 :QQQ:02/05/20 03:07
Delphiの勉強ができるいいサイトとかないですか?
できれば、DirectXをDelphiで使うみたいなやつですが?

82 :25 ◆U3XM4e82 :02/05/20 03:08
>>80
マジですか
何はともあれ即興でサイト作ってしまいました
(痛い文章になってる事には触れないでホスィ…。今日はもう眠いっす)
ただ、無駄にトップページにアクセス解析張ってしまったので、気になる方は
串でも刺してくださいデス…

ttp://members.tripod.co.jp/utuboku/

今考えているのは、
@CLXでテキストエディタの作成(機能も見た目もまだ全然駄目駄目。)
Aもし@の機能がそこそこ納得できるものにできたら、それを元に多機能なMemoコンポーネントの作成。

もちろんLinuxでも動くようにしたいっす…

83 :デフォルトの名無しさん:02/05/20 03:18
>>81
知ってるかもしれないけど、DelphiでDirectXを扱うコンポーネント
ttp://www-fu.magma.ne.jp/~hayase/dddd/

これ使ったゲームは結構あるみたいだから…
Help見てよくわからなかったら、検索かけて入門サイトとか探してほしい…

84 :デフォルトの名無しさん:02/05/20 09:31
>>81
サイトではないけど、
DelphiXの解説本。
ttp://www.shuwasystem.co.jp/books/wwwsrch/cgi-bin/content/952/index.htm
と、そのサイト
ttp://linux.yks.ne.jp/~hori/
ただし、DelphiXは、Delphi6ではそのままでは動かないので、少し修正の必要あり。

ところで、そこのDelphiX 掲示板って、ずいぶん前から死んでるよね?
「Delphiビジュアルプログラミング 秘密のテクニック150」って本の後ろのほうに、
堀さんからDelphi6対応版のアナウンスがあった。って書いてあるけど、
どこであったんだろう?

85 :デフォルトの名無しさん:02/05/20 09:33
>>84
異色童子さんが移植してたような。


86 :Delフサギコ ◆zE1iiRdQ :02/05/21 15:59
    質問ですー
    ∧,,∧    /Webアプリの 
  _ ミ,,゚Д゚彡_<  ASPオブジェクトSessionとApplication
.=| |==U==U=| |= \の扱いはどうですか?
 | |@ミ  ミ .| |
 | | ∪''∪ | |  Session.OnStartとかある?
 | |      | |  Sessionに自作クラスを入れたりとかは?

 どとNETに移行考え中なんだけど
 VCL実装を知っておきたいのです。

87 :デフォルトの名無しさん:02/05/21 17:17
http://www.amazon.co.jp/exec/obidos/ASIN/4822216888/ref=sr_aps_d_1_1/249-3401496-0487504
俺現在これで勉強中。

88 :デフォルトの名無しさん:02/05/21 17:39
http://www.google.co.jp/search?hl=ja&q=%90%B3%82%B5%82%A2%83I%83i%83j%81%5B%82%CC%8Ed%95%FB
漏れ現在これで勉強中

89 :デフォルトの名無しさん:02/05/21 20:28
>>88
(・∀・)カエレ!

90 :名無し~3.EXE:02/05/21 21:53
HSPからの移行なんですが、あれのコマンドリファレンスみたいに
詳しく分かりやすく紹介されたページってないですか?
例えば、
「画面に文字出力」→「ShowMessage」みたいな

91 :デフォルトの名無しさん:02/05/21 22:08
>>88
とても参考になりました。

92 :デフォルトの名無しさん:02/05/21 22:21
>>89 漏前は1件目のタイトルに惹かれなかったとでも言うのか!

>>91 (*^ー゚)b だろ?

>>90
大雑把だけど、とりあえずこんなのもあるよということで
・ヘルプ目次→・VCLリファレンス→・ルーチン一覧(カテゴリ別)
目的のページが見つかるまでこれでがまんしる

93 :90:02/05/21 23:10
>>92
ありがとうございます。
でもやっぱこのHELP意味不明ですね・・
理解できるよう勉強します!

94 :デフォルトの名無しさん:02/05/23 18:00
そういえばDelフサギコさんは、エディタ何使ってる?
いや、何となく気になっただけなんですけど。

95 :デフォルトの名無しさん:02/05/23 18:06
Delphiなら普通IDEのエディタな気が

96 :Delフサギコ ◆zE1iiRdQ :02/05/23 20:27
 /      ‖   /Delphiじゃコードはかけても
       ∧,,∧  <  AAはかけんぞゴルァ
二二二二ミ,,゚Д゚彡  \     
       ミつ/\ヘ      ということで、
 ̄ _∬__ ̄ /  //  ̄\   EmEditorっす・これでAAもバチシ
  &____ノ   \//     \  
                 \  自分でPlugIn作って
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|   Em文字列とDelphi文字列を
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄   置き換えたりするライブラリ整備で急がしかりけり
      でもDelphiでPlugIn作るとDLLがでかくなって
      エヂタの起動が遅くなる罠に陥りかけっす。

    Emは行ごとに
    Modify情報をもつから、そのあたりのコード
    プログルマ泣かせです。
            かなりコッテリしぼられたよ。

97 :マイケルU世:02/05/23 23:19
Delフサギコ登場記念age

98 :デフォルトの名無しさん:02/05/24 07:09
>>97
それは晒しageか?w

99 :デフォルトの名無しさん:02/05/24 20:52
質問です。
TTreeNodes や TTreeNode は TTreeViewなしで使えるのでしょうか。
TTreeView はアプリとしては利用したいのですが、表示したいTree構造を
必要に応じて Assign して入れ替えて使いたいと考えております。
Assign でやらないで、View に Tree のポインタを渡して再描画ってのが
理想なのですが、Delphi初心者なのでどんな方法が適切なのかわかりません。

具体的に実装部を以下のようにして見ましたが、これで問題ないでしょうか?
サンプルを探してみても、TTreeViewに付いてくるのを使っているものしか見
つかりませんでした。 (TreeNds:TTreeNodes;Node:TTreeNode)

TreeNds := TTreeNodes.Create(nil);
Node := TreeNds.AddChild(nil,'root');

100 :デフォルトの名無しさん:02/05/24 20:57
>>99
使えるよ。

101 :デフォルトの名無しさん:02/05/26 11:16
>>100

Node := TreeNds.AddChild(nil,'root');

でエラーがでて停止します。

TreeNds := TTreeNodes.Create(nil);

この式を実行後 TreeNds の中身を評価すると、'()'になってました。
ではオブジェクトが生成されていないような気がするのだけど。
ん〜。 なんでだろう。


102 :デフォルトの名無しさん:02/05/26 11:31
>表示したいTree構造を必要に応じて Assign して入れ替えて使いたいと
>考えております。
これはTTreeNode"だけ"でやるべきだろ
木構造を表すのはTTreeNodeよ?

103 :デフォルトの名無しさん:02/05/26 11:45
>>102
んー。TTreeNodesはTTreeNodeのコレクションですか。
確かに使う目的がちがいそうですね。

今TTreeNodeをCreateしようとしているのですが、成功しません。
TreeNds := TTreeNode.Create(nil);
とやっているのだけれど。

TTreeNodeはCreateの引数にTTreeNodeがあって、
TTreeNodesはCreateの引数にTCustomTreeViewがあるんですね…


104 :デフォルトの名無しさん:02/05/26 11:54
>>103
TTreeNodeはCreateの引数にTTreeNodeがあって

TTreeNodeはCreateの引数にTTreeNodesがあって

105 :デフォルトの名無しさん:02/05/26 12:03
>>103
TTreeViewのLoadFromStreamとSaveToStream使うとかは?

106 :デフォルトの名無しさん:02/05/26 12:07
>>105
うーん、でもそれだとロードされていない間はデータにアクセスできないです。
やっぱりTTreeViewを使わないとTTreeNodeは使えないんだろうか。
Webで探しても全然例がみつからん。


107 :デフォルトの名無しさん:02/05/26 12:09
非表示のTreeViewを作って
TreeView1.Items.Assign(TreeView2.Items);
ってやるしかないかも。

108 :デフォルトの名無しさん:02/05/26 12:18
>>107
そうすると、このツリー構造のデータを扱うモジュールをフォームから
切り離せなくなるんだよなぁ。 おとなしくツリークラスを作るか…

109 :デフォルトの名無しさん:02/05/26 12:29
その方がいいよ。 木構造はTComponent継承すれば勝手にやってくれるから、必要な項目持たせるだけだし

110 :デフォルトの名無しさん:02/05/26 12:46
>>109
ありがとう、TComponentを調べて、ツリークラスを作ってみるよ。

111 :デフォルトの名無しさん:02/05/26 12:51
TreeNodesはほとんどのメソッドがOwnerを必要としているから
OwnerにTreeViewを指定しないわけにはいかないんだな。

112 :デフォルトの名無しさん:02/05/26 14:53
>>111
Ownerにnil渡しても問題ない罠。

113 :デフォルトの名無しさん:02/05/26 14:58
>>112 それやって使ってみた?ソース見たら問題ないとはとても思えないが。

114 :デフォルトの名無しさん:02/05/26 15:35
Ownerにnil入れると・・・
NodeをAddするとあぼーん
Count見てもあぼーん
何してもあぼーん

115 :デフォルトの名無しさん:02/05/26 16:44
あぼーんくらい大したこと無い。

116 :デフォルトの名無しさん:02/05/26 16:55
( ´,_ゝ`)プッ

117 :ダックソンU世:02/05/26 17:23
CNU + Cygnus + Windows = Cygwin (・∀・)イイ!

118 :デフォルトの名無しさん:02/05/26 18:36
>>117
CNU's not UN*X.


119 :デフォルトの名無しさん:02/05/26 18:47
CNU's?

120 :ダックソンW世:02/05/26 20:35
GNU + Cygnus + Windows = Cygwin (・∀・)イイ!

121 :デフォルトの名無しさん:02/05/26 23:01
age

122 :デフォルトの名無しさん:02/05/27 00:18
GNU=グニュッ

123 :デフォルトの名無しさん:02/05/27 00:18
>>122
正解。

124 :デフォルトの名無しさん:02/05/27 00:22
GNU=グニュッ!メリメリッ ズポッ!リュッリュッ!ドピュッ!ドクドクドク…

125 :デフォルトの名無しさん:02/05/27 00:26
つ *
  Y

126 :デフォルトの名無しさん:02/05/28 00:21
なあ、なんでDelはコンパイル早いの?
漏れはコンパイラの仕組みはよくわからないが、
うるさい程の厳密な文法が早さの秘密なのか?

127 :デフォルトの名無しさん:02/05/28 00:22
>>126
PCの中にちっちゃいオッサンが200人ほど入り込んで処理するからです。
VBは16人くらいです。

128 :デフォルトの名無しさん:02/05/28 00:27
ヘッダファイルが無いからだよ。
SHARPポケコンPC-G850のBASICインタプリタならコンパイル時間ゼロ秒ですが何か?

129 :デフォルトの名無しさん:02/05/28 00:31
しょんべんちびりました

130 :デフォルトの名無しさん:02/05/28 00:32
インタプリタ言語がコンパイル時間0なのはごく正常です。
ただし本当に0なのかは分かりませんが。

131 :デフォルトの名無しさん:02/05/28 00:36
>>130
一行書き込むごとにその行を中間言語へコンパイルしてるんでしょ

132 :デフォルトの名無しさん:02/05/28 07:11
>>131
字句解析−構文解析−意味解析−実行

コンパイラで言う中間コードは存在するか微妙だね。
JITとインタプリタの差がかなり曖昧。

133 :デフォルトの名無しさん:02/05/28 07:30
コンパイラでなかった頃のVBは 実行させると最初にフォームが表示されるまで
同じくらいの規模のDelphiの何倍も時間がかかりました。
C++はメシが喰える程の頃でしたが、VBでもコーヒが飲めました

インタプリタであっても、しっかりしたモジュール化がサポートされていないとサイズが
大きくなるとサイズに比例以上の速度で遅くなるようです。

134 :デフォルトの名無しさん:02/05/28 07:46
>>126
通常のC++のコンパイラ等と違い、Pascalは1パスでコンパイル可能だから。
後は、コンパイル速度を著しく落とすような極端な最適化をやっていないから。
とか(ごめん、かなり適当)。

Borlandのコンパイラの速度は昔から速いことで有名だね。

135 :デフォルトの名無しさん:02/05/28 08:12
通常のC++のコンパイラは インラインアセンブラを使う場合
  C++ => プリプロセッサ => コンパイラ=>アセンブラ => OBJ  でこれをリンカーが処理します
 ヘッダが一つでも違うと、全てを再コンパイルからやりなおす必要があります

Delphiはこれらの工程を一挙に行います
 また、pascal言語は先読する必要がありません
 まるでアセンブラのように、1行解釈しては翻訳してゆけば良いのです

たとえば C言語だと、一つの関数でも 全部読まないと必要なスタックフレームのサイズが判り
ません。 だから昔のコンパイラだと、先頭で JMP文を吐いておいて、スタックフレームを一番
最後に作って先頭にJMPするなんてコードを吐いてました。
 pascalだと beginの前に必要なスタックのサイズが判ります


136 :デフォルトの名無しさん:02/05/28 12:07
function isShiftJIS(s:string;var p:PChar):boolean;
var siz:Integer;
begin
p:=PChar(s);
siz:=Length(s);
while Siz>0 do begin
  dec(Siz);
  case p^ of
  {ShiftJisの第一バイト}
  #$81..#$9F , #$E0..#$EF: begin
   inc(p); //次の文字が {ShiftJisの第2バイト}でなければ
   if p^ in [#$40..#$7E,#$80..#$FC ] then inc(p)
   else begin Result:=false;Exit;end;
   end;
  {EOF }
  #$1A:
  begin Result:=True; exit; end;
  #0:
  begin Result:=false; exit; end;

  #$09,   {TAB}
  #$0d,#$0a,{改行}
  #$20..'~': inc(p);
  else begin Result:=false;Exit;end;
  end;
end;
end;
function MojiTest(s:string):string;
var p:PChar;
var isMoji:Boolean;
begin
isMoji:= isShiftJIS(s,p);
if isMoji then if p^ = #$1A then
isMoji := (Integer(p)-Integer(PChar(s))) <5;

if isMoji then Result:='たぶん文字' else
Result:=IntToStr(Integer(p)-Integer(PChar(s)))
+'文字目が$'+IntToHex(Ord(p^),2)+'だから変';
end;
var w:String;
begin
w:=Memo1.Lines.Text;
Memo2.Lines.Add( MojiTest(w));
w[random(Length(w)-1)+1]:=Char(random( 7));
Memo2.Lines.Add( MojiTest(w));

end;


137 :136:02/05/28 12:08
ゴメンスレ間違った

138 :Delフサギコ ◆zE1iiRdQ :02/05/29 01:21
  ∧,,∧   SJISのはとりあえず、サンクスコ
 ミ,,゚Д゚彡  
  ミつ[|lllll]) SJISに限らず、テキストとバイナリが区別つけられないかしら? 
〜ミ  ミ     
  U U.  

それはさておき、とある、EmEditorPlugInのDLLを
つくってまして、
usesからunitをはずして
チューニングしexeサイズを減らしてたら
そのPlugInがやたら不安定になってしまって

---------------------------
EMEDITOR.EXE - アプリケーション エラー
---------------------------
"0xff6400bf" の命令が "0xff6400bf" のメモリを参照しました。メモリが "read" になることはできませんでした。


プログラムを終了するには [OK] をクリックしてください
プログラムをデバッグするには [キャンセル] をクリックしてください
---------------------------
OK キャンセル
---------------------------

---------------------------
アプリケーション エラー
---------------------------
EAccessViolation がモジュール rtl60.bpl の FF63F0BF で発生しました。

アドレス FF6400BF でアドレス FF6400BF に対する読み込み違反がおきました。.

---------------------------
OK
---------------------------

こんなエラーが妙なタイミングで頻発するようになってしまいました。

rtl60絡みなので
D6UP2のせいかとおもって
D6アンインスコし、D6サイインストしたりしたのですが
症状、一緒ですた。
なんかぜんぜん直りません。

これって、何がどう悪くなってしまったのでしょうか。。。
ああ、もうさっぱり。

139 :デフォルトの名無しさん:02/05/29 01:30
>>138
>SJISに限らず、テキストとバイナリが区別つけられないかしら? 

前も書いたがEUCはWindowsではバイナリ扱い。
何をもってテキストファイルとするか決めないとまとまらない。
EUC SJIS JIS ASCII unicodeくらいか、最近使われてるのは。

140 :デフォルトの名無しさん:02/05/29 05:12
>>138
> usesからunitをはずして
> チューニングしexeサイズを減らしてたら

これがいかんだろ。必要なunitまで削ったと思われ。
元に戻すべし。


141 :Delフサギコ ◆zE1iiRdQ :02/05/29 09:34
    ∧,,∧  >必要なunitまで削ったと思われ。
   ミ,,゚Д゚彡   コンパイルエラ-が出ると思われ
    ミ つ旦)~~   なんですが......
  〜と,,,~),,~)   
           一休さんみたいに一休み一休みして
           落ち着いて調べてみたらいいアイデア出るかな。

あと、isEUC,isJIS,isASCII,isUnicode
関数があったらええなー,,,

142 :デフォルトの名無しさん:02/05/29 10:17
たまたま同名の関数が複数あったってオチとか?
同じユニット名のソースがあちこちにあって別のユニットがリンクされてたというオチとか?

143 :Delフサギコ ◆zE1iiRdQ :02/05/29 10:24
|,,∧  とりあえず、その問題は
|Д゚彡  ヒトヤツミヒトヤツミしながら考えます
| U
| ミ   雑談スレという事で
| U   適当なカキコしてみるです。

別スレで話題になっていたので
C#と比べてDelphiの弱点とか
気になる点を言ってみるです。

・構造体?Object型?の扱いが中途半端
C#では構造体にもメソッドが使えるようになっているらしい?だっけ?
忘れたけど。

・名前空間の扱いが変、というか機能不足
自作でTComboBoxExとか作ってたとしたら
D6から標準搭載されてるから、どしたらいいの?
IndyだってTIdXXXって名前なんか変だよ。

・ファイル列挙が弱すぎ
俺は自作してるからいいけど
FindFirst、FindNextでループ回すコードが
きれいなわけない。

・Drag&DropがVCL標準で実装されてないとはトホホ。
IndyみたいにOLEDrag&Dropコンポーネントの権利ゆずってもらえ。

144 :デフォルトの名無しさん:02/05/29 10:24

厨な質問ですいません。
Delphi6 自体はWindows XPでの動作を保証していないですよね。
互換モードで動かせってボーランドに書いてあったし。

では、Delphi6を使って作ったアプリケーションについてのWindows XPでの
動作というのはどうなるんでしょうか??
何かまずいところあるのでしょうか?
Windows XPでの動作をさせるための方法や留意点はありますでしょうか?

ちなみにデータベースデスクトップでParadoxを使ってのアプリケーションを考えています。
データベースデスクトップについて詳しく書いてあるサイトや本もご教授願えればと思います。

よろしくお願いします。

145 :Delフサギコ ◆zE1iiRdQ :02/05/29 10:32
・コンポーネントインストールの仕組みがややこしい
[環境オプ]にファイルパス通さなきゃいけないやり方は変だし
わかりにくいし、使いにくし
従来のIDEにインストールのやり方もいいけど
旧VBのようにプロジェクト毎に取捨選択
出来てしかるべきだと思われ。

・インターフェースがちょっと使い方、わからなさすぎ。
VCLで普通に使われてないから、
どうやってインターフェースつかったらいいかわかりにくい。
身近じゃない感じ。

・XML.
俺はいらんがいる人もいるみたいだから
エンプラ版じゃなくても簡単に使えるようにしてくれい。

・Webアプリ
シャルロット?
スクリプト言語に手を出すのが遅すぎた。
DelのWebアプリ開発
誰も使ってないから、ネットで情報を得ることも出来なくて
誰も使いはじめようとしない悪循環に入っている気がする。
どうしても、.NETやASPに比べて使おうという気力が沸かない。

・Formのサイズ制限の実装がいまだに変
結局WM_GETMAXMININFOで自作する必要がある。
些細な所で気になるよ。
当然.NETのWinFormはそんなことないし。

・ApplicationForm
今時…いいかげん昔のVCLの仕様を
引きずる必要ないだろうに。
.NETじゃ当然そんなのもないし。

|,,∧   C#と比べない所でも
|Д゚彡 もっと、便利な機能が
⊂ミ   イパ^イホスイ
| ,;゙
|´  IDEエディタ部のソース公開とか
   IDEダイアログページの部品のVCL化とか

146 :デフォルトの名無しさん:02/05/29 10:44
そういや JAVAランタイム上で走るコードが吐けるDelphiってどうなったの?
開発してるってアナウンスあったよね?

 まあ 素直にJAVA使った方がいいの当然だから辞めたのかな

147 :Delフサギコ ◆zE1iiRdQ :02/05/29 10:49
     ∧,,∧
     ミ,,゚Д゚彡  <XPで試し厨、ルナはOFFってますが。
     ミ つ且~~  
     ミ,,__ ヾ    モチカシシテ rtl60系エラーは
 ⊂二二二UU二二⊃ XPでコンパイルしてるからかしら?
              まさか…

  とりあえずフサの環境では
  Delphi6自体の動作は安定してるようです

>Windows XPでの動作をさせるための方法や留意点はありますでしょうか?
あんまし聞いたことはないっすね。

148 :デフォルトの名無しさん:02/05/29 11:16

>>141
>必要なunitまで削ったと思われ。
>コンパイルエラ-が出ると思われ
>なんですが......
そんなことないよ。
unit MyUnit;
interface
implementation
uses YourUnit;
initialization
 YourUnit.ChangeSettings(...);
end.
このMyUnitをusesするとYourUnitの挙動が変るけど
usesしなくてもエラーにはならない。

149 :デフォルトの名無しさん:02/05/29 11:23
>>143
まあそうは言っても・・・
標準でアレもコレもついてないから、
 作ろうという意欲も湧くし
 作れば愛着も湧くし、
 そうこうしてるうちに作っても簡単ってレベルになれるし、

全〜部標準で、組み合わせるだけって、なんか楽しくないかもね


150 :デフォルトの名無しさん:02/05/29 11:23
>>148 ああそういや JPEGもそんなふうに後追加方式だったよね

151 :144:02/05/29 11:37
フサさんどうも。楽しい話題中割り込み失礼しました。

152 :デフォルトの名無しさん:02/05/29 12:36
>>143
ほぼ同意。
名前空間はすぐにでも何とかしてほしい。

ついでをいえばコレクションとかイテレータとかマップとか
Javaまでとはいわんがもうちょっと何とかしてほしい。

153 :デフォルトの名無しさん:02/05/29 13:22
.netになるついでに
JAVAやC#のいいところを取り込んだ言語仕様にへんこうしてほしい。

154 :Delフサギコ ◆zE1iiRdQ :02/05/29 13:33
           _____________
   ∧,,∧∩  /
  ミ,,゚Д゚彡 < 同意してもらえますた。
   U  ミ   \____________
 @ミ  ミ
   ∪''∪

イテレータといえば、
.NETでは
イテレータインターフェースを備えたものに対して
ForEach文が有効になるのかな。
その仕様も入れて欲しいです。

>>149さん
標準でアレコレついた方がRADとしては
いいんではないでしょうか。

全部標準でついてきても、その標準を超えてみるとか
違ったアプローチで実装してみるとか
たのしみはいくらでもありだと思うです。。

それに、.NETでは標準なのに
VCLでは海外コンポを使わなければダメ
っつのは、うれしくはないっす。

155 :Delフサギコ ◆zE1iiRdQ :02/05/29 13:41
             _______________
  ,,,,,,,,,,,,,∧,,∧   /
〜′,,,,,,,ミ,,゚Д゚彡< VCL標準でないから抑止欄
  UU""" U U   \_______________

そもそも、マップとかハッスってなんですか?
  …また聞いても使わなきゃ忘れちゃうけど…
HashStringListはあるはずです。
  が使ってないので、有用性がわからん。

Vectorは似動的配列というのは
この前教わったから
わかったようなわからないような感じ。

スタックやキューはD5から搭載だったかな。

156 :デフォルトの名無しさん:02/05/29 13:45
誤爆ハッケソ

157 :デフォルトの名無しさん:02/05/29 13:51
>>155
mapは簡単に言うと連想配列。というか検索しれよ。

158 :Delフサギコ ◆zE1iiRdQ :02/05/29 13:59
  ,,,,,,,,,,,,,,,,∧,,∧      / ̄
〜′,,,,,,,,,,ミ;゚Д゚ミつ ))) < ご、ごめんなスマソ
  UU"""" U         \_
誤爆じゃなくて、誘導してみたんですが。
わかり肉買ったすか。

連想配列…ググって検索しても使わないとすぐ忘れる罠に,,,,
  あ・・・アボーン扱いですな。こりゃ。
  連想配列が役に立つ場面を想定しなければいかんですのね。

159 :デフォルトの名無しさん:02/05/29 14:02
気付かずスンマソ

160 :デフォルトの名無しさん:02/05/29 14:21
map
http://www-ise2.ise.eng.osaka-u.ac.jp/~iwanaga/stl/map.html

161 :デフォルトの名無しさん:02/05/29 14:27
STL見て 
アルゴリズムのライブラリなんて標準にしちゃったら、
確かに初心者には優しいかもしれないけど、それでいいのか?

と漠然と不安を持ってた。
しかしまあパソコンの性能は有り余ってるんだからそれでいいんだろうとも思った。
お仕事はそれでいいとも思った。

でも、Delphiが好きだったのは、そういうのを自分で作る楽しみがあったからかもしれない。
C++やJAVAでそういうの自作してたら笑いもの扱いだものね

162 :デフォルトの名無しさん:02/05/29 15:09
しばらくC#使ってたんだが、ライブラリが整いまくってるのはいいね。
DelphiもXMLやら正規表現やら標準ライブラリにあってもいいくらいだよ。

163 :デフォルトの名無しさん:02/05/29 15:37
>>161
初心者に優しいのではなく可搬性が上がる。
STLは初心者に優しいとは思えんが。

164 :デフォルトの名無しさん:02/05/29 15:47
>>155
HashStringList。。。
某はこのあたりは中途半端だね。

>>162
そう、正規表現が標準なのには驚いた。やっぱあると便利だよね。

165 :デフォルトの名無しさん:02/05/29 16:07
既存の有名VCLにサポートを投げつけてる気も。。。


166 :デフォルトの名無しさん:02/05/29 16:17
>>162
でも、ひとたびライブラリにない問題にぶち当たると面倒に感じる罠。

167 :Delフサギコ ◆zE1iiRdQ :02/05/30 01:58
 はぁ〜〜
  ∧,,∧    /WinXPとD6で問題なさそうって言ったけど
  ミ  ,,ミ  < うそでした。問題大有りだよ、この糞OS。
  し   ミ  \
   ミ 〜ミ
   ∪''∪

どうやらVCLの内部で例外がたくさん発生して
それをさばききれなくなっているらしい。

IDEからデバッグ起動したら
こんなメッセージがでますた。

同じDLLでWin2000なら問題なし。
XPの互換モードも効果なし...

---------------------------
情報
---------------------------
プロジェクト C:\Program Files\EmEditor3\EMEDITOR.EXE で一度に多数の例外が発生しました。
'access violation at 0xff6400c9: read of address 0xff6400c9'
プロセスは停止しています。再開するにはステップ実行または実行を選択してください。
---------------------------
OK ヘルプ(H)
---------------------------

でもって、XPのプログラムの落ち方がダメダメで
2000みたいにOSはなんとか落ちないって状態にならずに
D6が落ちたとたんに
タスクマネージャがGUIの足ひっぱって
全GUI道連れにしておちまする。。。。。

ダサダサOSだ。。開発にはまったく使えない。

168 :デフォルトの名無しさん:02/05/30 02:09
ひょっとして…EmEditorのプラグインDLLを、VCL使って、しかもパッケージを使う設定で作ってます?
いや、ダメとは言いませんけど…
折角DelphiはVCL(Classes.pas)使わなければ非常に軽くなるのに…
メモリーが勿体ないと思う時代は過ぎ去ったのですね…

Delphiで作られた.dllの例外を、別の言語で作られたEmEditor.exeがさばけないのは当然のような気が。
(例外そのものはWin32の機構ですけど、ObjectPascalのクラスにすぎないExceptionを経由して情報を渡しているから)
片っ端からtryで囲って.dllの中で例外を表示させてみるとか。

169 :デフォルトの名無しさん:02/05/30 02:10
>>167
XPが悪いんじゃなくて、XPに対応してないDelphiが悪い。

170 :デフォルトの名無しさん:02/05/30 02:16
Delphiで作ったアプリはXPで動きません。

171 :デフォルトの名無しさん:02/05/30 02:19
>>170
まじかよ!!
でるふぁい駄目じゃん!

172 :デフォルトの名無しさん:02/05/30 02:19
プラグインとか使う場合はVCL使うのは感心できないね。

173 :デフォルトの名無しさん:02/05/30 02:19
プラグインとか使う->プラグインとか作る

174 :デフォルトの名無しさん:02/05/30 02:26
>>170
こういう拡大解釈も最近よく見るな…>>171も釣られなさんなって…

「Delphi.NETにランタイムが必要」というのもこの類の拡大解釈ではないかと最近思ってきました。
写真でusesにBorland.Vcl.〜と書いてあったのは事実ですが、スタティックリンクできないなんてどこにも書いてません。
記事を探しましたが大した事は書いて無かったし。
Delphi.NETで作られたアプリにはBorland.Vcl.〜.dllが必須と明記された記事があるなら教えてください。
事実無根ならBorlandを信じることにします。
( …これで実際に裏切られたら本気でC#に移行を考えないと…w )

175 :デフォルトの名無しさん:02/05/30 02:29
なんかプラグインにVCL使ってる方がいるみたいなので聞きたいのですが、
VCL使ったDLL呼び出すとメモリリークする問題とか、
TThread使うとメモリリークする問題とかあったと思いますが、
それらはもう直ったんでしょうか?

176 :デフォルトの名無しさん:02/05/30 02:30
>>174
釣られてるのはあなたじゃないんですか?

177 :デフォルトの名無しさん:02/05/30 03:11
>>174
.NETでスタティックリンクってどういう意味?答えてみ。

178 :デフォルトの名無しさん:02/05/30 03:25
.NETだろうがスタティックリンクはスタティックリンク。ライブラリ込みでexeを作ること。

C#でも csc A.cs B.cs でひとつのexeにくっつくじゃないですか。
dccilコンパイラがusesで書かれた先(.NETの名前空間やdllとは限らず、dcu相当の独自中間ファイルかもしれない)
をどう処理しようが別に構わないわけで。

まあ夢想でしかありませんけど。

179 :デフォルトの名無しさん:02/05/30 03:44
http://community.borland.com/article/images/28649/Delphi.jpg

これを見ればわかると思うけど、ConvertIt.exeの中にBorland.〜ネームスペースの
クラスが一緒に入ってるよ。だからDLLは別途不要。

180 :デフォルトの名無しさん:02/05/30 03:55
>>175
直ってないよ。

181 :デフォルトの名無しさん:02/05/30 03:57
おお!ありがとうございます。
Borlandを信じていてよかったと思えた瞬間…

Microsoft.VisualBasic.dllだけでなくMicrosoft.VisualC.dllすら存在する状況下で
全く専用のdllが要らずmscorlibとSystem.〜にしか依存しないというのも
それはそれで疑問が…やっぱり巨大exeは健在か?(w

182 :デフォルトの名無しさん:02/05/30 04:03
ML見たら久々にpcodeハケーン!


183 :デフォルトの名無しさん:02/05/30 05:36
>>182
書き込み自体は久々ではないんだけどね...

184 :Delフサギコ ◆zE1iiRdQ :02/05/30 09:36
とりあえず
Classes.pasはPluginによって
使ったり使わなかったりです..
StringListで処理させたい時もあるし,,,
             __________
   ∧,,∧      /とりあえずClasses重すぎ....
  ミ,,゚Д゚彡  <  クラスとか
  ミ つ且~~   \_詰め込みすぎじゃないかしら
〜ミ,,,,,, ,,ミ  TStringList自作しても
       結局TListは使うから..Classes使うのは同じなのかな。。

パケージってのは
実行時パッケージのことすか?

メモリがさすがにもったいなくなったので
usesのものは極力減らしてまするんですが
PlugInのモノによっては
PopupMenuを使いたくて
DataModuleに貼り付けて動的生成したりしてるもんすから…

>Delphiで作られた.dllの例外を、別の言語で作られたEmEditor.exeがさばけないのは当然のような気が。
じゃ…なんでWin2KはOKでWinXPはだめなんだろか..トホホ

>VCL使ったDLL呼び出すとメモリリークする問題とか、
はみつつです。(w
キシュツですか?

185 :デフォルトの名無しさん:02/05/30 09:57
>>175 & >>180
情報源きぼーん



186 :デフォルトの名無しさん:02/05/30 13:26
>>185
Delphi MLとかC++BuilderMLとか
その他多数。すげえ有名。

187 :デフォルトの名無しさん:02/05/30 13:29
この点C++Builderだと、
TStringListはstd::stringとvectorかlistで簡単に自作できるから強いね。

188 :デフォルトの名無しさん:02/05/30 13:43
>>187 
 あ、それはDelphiでもSaveToFileを手で書けば解決するでしょう


189 :デフォルトの名無しさん:02/05/30 13:44
>>188
VCL無しでですか?

190 :デフォルトの名無しさん:02/05/30 15:03
気になってしょうがないんだが…
次に出るDel7では少しだけ.net対応になるんだろ?
少しだけってどれくらいなんだ?
そしてKylix3にC++Builder混入疑惑…
某板のコロスケ刷れでも話題だが、どこまで扱えるんだろう・・・?

191 :Delフサギコ ◆zE1iiRdQ :02/05/30 15:13
どれくらいかっていうと
 イヤーン 少しダケヨーン
   ∧,,∧  
  ミ゚Д゚*ミ
  ミ⊃ ⊂ミ
 〜ミ ▼ ミ
   U U  〜●・●〜

それぞれ名前は忘れたわ
Del7ではコンパイルしたとき
.NET用のバイナリも出力できわ
 >>だからWinCEとかでも動いたり動かなかったりするらしいわ

Del.NETでは
.NET用クラスライブラリをDelphiから使えるわ
VB<>C#<>Delphi相互のクラス利用が可能のようよ

って認識。違うかしら

Kylix3はLinux版Delphi+BCBだと思われよ

192 :デフォルトの名無しさん:02/05/30 19:54
>>191
>.NET用クラスライブラリをDelphiから使えるわ
>VB<>C#<>Delphi相互のクラス利用が可能のようよ

俺はフォームデザイナがWindows.Formsに対応できてないだけと睨んだけど。
Pascal.NETとしては使えるが今のC#SDKのような悲しい環境で。
っていう話だと理解してた。

193 :デフォルトの名無しさん:02/05/30 20:17
>>192

そんなもんつかうやついるはずないよ。
君の理解はまちがい


194 :デフォルトの名無しさん:02/05/30 20:21
>>193
Delphi.NET

->従来のDelphiソースを.NET用にコンパイルできるミラクル環境。

195 :デフォルトの名無しさん:02/05/30 20:24
>>194
だったらBorlandマンセーなんだけど
VB6とVB.NETみたいな悲しい関係になってほしくないなあ

196 :デフォルトの名無しさん:02/05/30 20:26
俺は別にTComponent 継承のさえ移植できればいいや

197 :デフォルトの名無しさん:02/05/30 20:27
>>195
VB.NET -> .NET対応を重視 -> 従来ソースとの互換性が・・・。
Del.NET -> VCL対応を重視 -> .NETとの互換性が・・・。

行き着く先はC#なのさ。
言語開発スレの新言語が.NET対応になったらもしかすると・・・。

198 :デフォルトの名無しさん:02/05/30 20:39
VCLが変更されてもそんなに困らないけど?

従来のソース資産は普通、関数とかせいぜいTObject継承でしょ?


199 :デフォルトの名無しさん:02/05/30 20:45
>>197
.NET対応を重視するとすべての言語がC#の文字面を変えただけのものになってつまらん。
ぜひともVCLとの互換性を重視してほすぃ

200 :Delフサギコ ◆zE1iiRdQ :02/05/30 22:06
            ∫    _________
   ∧,,∧     ∬   /プレゼンから想像するのも
   ミ,,゚Д゚彡っ━~  <  ファンならではの楽しみ
_と~,,  ~,,,ノ_.  ∀   \ ですね
    ミ,,,,/~), │ ┷┳━   ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ̄ ̄ ̄ .じ'J ̄ ̄| ┃
 ̄ ̄ ̄ ̄ ̄ ̄ ̄  ┻
http://homepages.borland.com/aohlsson/BorCon2002/RAD1115.html
Pascal.NETじゃないし
VCL互換は保持するでしょう。
.NETでもAPIは使えるんだし。
VCLソースをCILコンパイラってのを通せばいいだけかも。

201 :デフォルトの名無しさん:02/05/30 22:31
>>200

>Also included in DCC32 compiler in Delphi 7

>・Nested types
…classの中でさらにclassが宣言できる?

>・Namespaces
…Borland.Vcl.StdCtrlsみたいにunit名が階層化できる?(ネイティブのときも使えると嬉しいですね)

>・Garbage collection
…流石にCLR上で動かす場合だけでしょ…ネイティブの時は恐らく無関係?

>・Class properties and fields
…今まで書けなかったclass propertyが書けるようになる?

Delphi for .NETの方に100% CILと書いているということは
Delphi 7 の.NET対応はWindows依存の部分が残っているということでしょうか

Windows.pasがそのまま使えたら、API宣言付きC#みたいなもので最強かも

202 :Delフサギコ ◆zE1iiRdQ :02/05/31 00:36

               _____________
   ∧,∧     ,::  /
  ミ,,゚Д゚彡っ━'~  | コンパイラ切り替え式じゃないかしら?
  ミ∪  ~,ノ    < Delphi for Winと for .NETは別Exeになるかもね。
   ミ  '' ミ       \____________
   し'~し'

203 :デフォルトの名無しさん:02/05/31 00:48
     ____
   _i'__`i   
    ミ,,゚Д゚彡
    (ミ Hip ミつ やってきたぞ!Delphi最強!片っ端から投げ散らすぞ!
     ミ Hop ミ
     ∪ ∪ イエーイおまえらシコシココード書いてますかぁ?イエーイ

204 :デフォルトの名無しさん:02/05/31 01:05
先生!!ネタハッケソしますた
ttps://sourceforge.net/projects/delphinet/


205 :144:02/05/31 11:44
>>167
げええ。Delphi6でWindowsXPで動くアプリケーションを作ることになっているのですが
やめた方がいいの??? 業務用アプリだからやばいよなぁ。。。

206 :デフォルトの名無しさん:02/05/31 12:31
>>205
いやそんな書き込みだけ見て判断してはいけないよ。

DLLをプラグインとして使う場合、内部で例外が出ても、それを
   DLL内部でキャッチしてDLL外に出さないようにしないとダメとか

そういう細かい当然やるべき事をやってる上での事かどうかとかそういう情報と込みで見ないと


207 :Delフサギコ ◆zE1iiRdQ :02/05/31 12:58
>そういう細かい当然やるべき事をやってる上での事かどうかとかそういう情報と込みで見ないと

  ∧,,∧   やり方がわかりません鬱
  ミ,,  彡 鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱
 ミ   ∪ 鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱
 ミ〜,, ミ  鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱
  ∪ ∪  鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱

208 :デフォルトの名無しさん:02/05/31 13:01
>>207
try catch

209 :デフォルトの名無しさん:02/05/31 13:14
>>207
 俺はそのエディタのプラグインの事は判らないんだけど
 EMエディタから呼ばれる関数・手続きがあるだろ? それを hoge とする

procedure hoge( dt:THogeData);
begin
 try
except
  // 出来ればここで、キャッチしたエラーをデバック中はログに吐くとか
  // (ログに吐くのはVCLを使わずにAPIでやらないと意味がないけどね)
  // せめてメッセージを出すとか
   on E:Exception do MessageBox(0,PChar(E.Message), 'HogeDLLでエラー', MB_OK );
    else MessageBox(0,'鬱・・何だか判らん', 'HogeDLLでエラー', MB_OK );
 end;
end;

Delphiの例外は、APIの構造化例外で処理されてるから
こういうふうに、全部例外をDLL内で処理しないと exe側でキャッチされてしまう
 で、exe側でキャッチしても、当然例外オブジェクトの扱いが違うから
 鼻から悪魔が出る事もあると

そういや DLLの作成時にUNITのinitialization 節が 実行されない不具合直ってるみたいだ

210 :デフォルトの名無しさん:02/05/31 13:16
もちろん try exceptの間に書きたい処理を書くんだよ・・
基本的にこういうのは別のメソッドにしとくといい


211 :デフォルトの名無しさん:02/05/31 13:19
Delphi使っててほんとに例外処理知らんのか?

212 :デフォルトの名無しさん:02/05/31 13:28
>>211
そんなことはわかってると思うよ。
例外処理をしたってそのDLLがWindowsXPでは正常に動作しないことには
なんら変わりがないと思うが。落ちないだけで。違うのかな?

213 :デフォルトの名無しさん:02/05/31 13:37
一度に多数の例外が発生出たって事だと
何かDLL側の潜在的なバグで例外が出てるのに
エディタ側は構造化例外をキャッチしてないのだと思うけどな


214 :デフォルトの名無しさん:02/05/31 13:44
他のいろんなところ探しても
windowsXP上でDelphi作成アプリを動かすと問題があるって
話は見つからないよね?大丈夫なのかな?

215 :デフォルトの名無しさん:02/05/31 15:14
>>214
VisualStyleを使用しなければ基本的に問題ない。
ただし某のサポートは受けられない。

216 :デフォルトの名無しさん:02/05/31 19:31
delphi5ってどこかで落とせないんですかねえ?
pascalならあるんですけど授業と食い違うんですよ

217 :デフォルトの名無しさん:02/05/31 20:01
>>216
6なら落とせる。

218 :デフォルトの名無しさん:02/05/31 22:00
Delphiを授業に使ってるガッコがあるんだ・・・へえ〜

219 :デフォルトの名無しさん:02/05/31 22:11
大卒には必須の知識ですが?

220 :デフォルトの名無しさん:02/05/31 22:59
>>219
>大卒には必須の知識ですが?
取りあえず鉱石学部の奴に謝れ。

221 :デフォルトの名無しさん:02/06/01 01:43
>>216
まぁDelphiはPascalじゃなくてObjectPascalだからなぁ。
でもdcc32使って、{$APPTYPE CONSOLE}しとけば、
いわゆるガッコウでやるようなPascalとほとんどかわらんだろ。

かわるとしたらファイル入出力とかかな?

標準Pascal
Reset -> Read or Readln -> Close
Rewrite -> Write or Writeln -> Close

ObjectPascal
AssignFile -> Reset -> Read or Readln -> CloseFile
AssignFile -> Rewrite -> Write or Writeln -> CloseFile

だったかな?

222 :デフォルトの名無しさん:02/06/01 02:07
旧来のText/Assign/Closeという名前でも使えますよ。
TFormにこれらのプロパティやメソッドがあるから別名としてTextFile/AssignFile/CloseFileもあるだけで。

223 :デフォルトの名無しさん:02/06/02 00:11
>>201
しかしこれ見るとdel6にはほとんどいいとこねーな…
ウリだったCLXも使ってる人は少数派だろうし

224 :デフォルトの名無しさん:02/06/02 00:25
>>223
俺はPersonalで初めてDelphiに触れたんで、FreeのDel6Personalは
大きな意味があった。

ありがとう、Borland。

225 :いさかじゅうぞう:02/06/02 00:30
>>224
同じく。

226 :デフォルトの名無しさん:02/06/02 00:31
http://uk.geocities.com/korea_it2002/20020531_13_003.jpg

227 :デフォルトの名無しさん:02/06/03 00:14
フサギコはだいじょうぶなのかな?

タカラ、ギコ猫を商標登録していた!
http://news.2ch.net/test/read.cgi/newsplus/1023008632/

★ギコ猫略奪!強欲、極悪企業タカラに対抗処置を!
http://school.2ch.net/test/read.cgi/shikaku/1023008580/

スマソ モウシマセン。

228 :デフォルトの名無しさん:02/06/03 00:20
。・゚・(ノД`)・゚・。

http://aa.2ch.net/test/read.cgi/mona/1023024788/

229 :営農ギコ:02/06/03 00:23
>>223
CLXは「今後」使う人が多くなるでしょ。

早くBCBのLinux版キボンヌ[w

230 :デフォルトの名無しさん:02/06/03 00:33
CLXイラナーイ
Linuxイラナーイ

231 :デフォルトの名無しさん:02/06/03 00:52
Delフサギコもタカラに転職ですか・・・

232 :デフォルトの名無しさん:02/06/03 01:23
http://www.2ch.net/

233 :デフォルトの名無しさん:02/06/03 01:25
フサギコは犬だから……

234 :Delフサギコ ◆zE1iiRdQ :02/06/03 13:17
T |
A | ・・・・イヌTAKARA・・・・
K |彡   
A ⊂ミ
R |ミ
A |J

235 :デフォルトの名無しさん:02/06/03 13:45
まぁここで書くのもアレで申し訳ないが…

顔文字/AA板出身の俺としては『宝頃すけ』だ。
一人寂しく宝鯖にDoS攻撃スクリプトでアタックしてるよ…
逮捕されても良いさ

#スレ違い書き子スマソ
#(逮捕されに)逝って来ます

236 :デフォルトの名無しさん:02/06/03 16:06
タカラは特許取り下げしたよ。

237 :Delフサギコ ◆zE1iiRdQ :02/06/03 16:31
 | T |
 | A |∧,,∧ 正直.フサもアタク
 | K ミ*゚Д゚ミ したかたかも。
 | A |⊂ ミ
 | R |  ミ
 | A |゙゙∪  
   

238 :Delフサギコ ◆zE1iiRdQ :02/06/03 16:34


      ●∩∧,,∧  アタックNoワン
        ミ゚Д゚,,ミ       ↑犬だから
        ミ   ,つ 
 ̄  ̄   ミ゙゙_  ミ〜 ト  ̄  ̄  ̄
       ∪゙ヽ ミ   オ
       /  ∪  \
  /       :    オ
     /    || .   ォ  \
     /     | :   ォ  \
    /       .
           | .   ォ


あたっく〜〜♪  あたっく〜〜♪

なー♪、んばー♪ わーーん♪

♪   ∧,,∧ ♪
    ミ,,゚Д゚彡  ♪
    ミつ[|lllll]).
   〜ミ  ミ
    U''U  記念カキコ

239 : ◆Pc9801rE :02/06/03 18:39
ギコたん大丈夫 よかったね。
http://dailynews.yahoo.co.jp/fc/entertainment/toys/

240 :西村博之 :02/06/03 23:59
「タカラは、ギコ猫がインターネットのコミュニティーで生まれて広まったものであることを
考慮すべきで(事実上の作者である)ネット利用者の気持ちも分かるはずだ。
これまでもアスキーアートを使ったグッズや書籍などが生みだされている。
そういった自由にキャラクターを育て、自由に使える状況を存続させていきたい」

241 :デフォルトの名無しさん:02/06/04 00:12
>>236
トッキョじゃなくてショウヒョウだと思われ。

242 :Delフサギコ ◆zE1iiRdQ :02/06/04 09:48
Linux向けの .NETツールを開発している――米BorlandのCEOが語る
http://itpro.nikkeibp.co.jp/free/NSW/NEWS/20020603/2/
             _______________
  ,,,,,,,,,,,,,∧,,∧   /
〜′,,,,,,,ミ,,゚Д゚彡< Monoっぽいのが出来るかな?
  UU""" U U   \_______________

243 :デフォルトの名無しさん:02/06/04 10:43
>>242
>アピール材料は十分仕入れてきたようだ。
だって (w

Delphi 生き残れんのかな〜?
Kylix もいまいちのような気がするし...
(これは Linux とも絡むが)
Delphi 1.0 発表時の「これだ!」っていう衝撃がない。
なんとかせ〜 > Borland。 信で下さい > MS。

244 :デフォルトの名無しさん:02/06/04 10:49
MSに氏ねというより、某が頑張るべきだと思うべ。
最近のバージョンアップは不満。

245 :デフォルトの名無しさん:02/06/04 10:49
>>243
MSが氏ぬとBorlandも氏にます。

246 :Delフサギコ ◆zE1iiRdQ :02/06/04 11:32
>MSに氏ねというより、某が頑張るべきだと思うべ。
>最近のバージョンアップは不満。

ミ ゚Д゚彡、同意同意.
MSの著しいVerUpをみせつけられたら
某何やってんのかと思われ
(Kylixに足はひっぱられたんだろうが)

リファクタリングとかJBで取り入れてるくせに
XP的ユーザーの意見反映が
ちっともなされてなくて鬱。

247 :243:02/06/04 11:34
>>245
不覚にもワラタ..... 現実を直視するとコワイ。
Win 止めて Linux へ行きます。 誰か仕事くれ〜。
でも Kylix2 へはバージョンアップしないぞ!
Kylix4 まで待ちだな....

248 :デフォルトの名無しさん:02/06/04 11:39
delphi初めて3年。
C#に移ります。delphiさようなら。



249 :デフォルトの名無しさん:02/06/04 11:45
>>245
 どうだろう? Win32APIは十分に枯れているから
 今現在、 windows互換OSを作るのは難しい事じゃないだろうし
 それが間に合うまで、とりあえず緊急にはWIN95のUpdateキット
 でも出せばライセンス数的には十分だろう

 今MSが潰れて泣くのはXPユーザと、C#に期待してる人売業者
 だけだろう。


250 :デフォルトの名無しさん:02/06/04 11:48
また馬鹿が紛れ込んできたよ。(w

251 :デフォルトの名無しさん:02/06/04 11:54
>>242
またQtで作るのかな?
だったらGNOMEマンセーのXimianとはうまく棲み分けられそうだけど。
問題は、Monoの成果を搾取してまたBlackdownの悲劇を繰り返さないことだけ。

252 :デフォルトの名無しさん:02/06/04 11:57
Borlandは成果の搾取対象についても中立です。(嘲笑激藁

253 :デフォルトの名無しさん:02/06/04 13:03
>>252
消えろ

254 :デフォルトの名無しさん:02/06/04 13:06
>>253
上げんなカス。(嘲笑激藁

255 :デフォルトの名無しさん:02/06/04 13:26
Borlandってオープンソースの成果盗みまくり。
TAKARAみたいな企業だ。(嘲笑禿藁

256 :デフォルトの名無しさん:02/06/04 13:31
>>255
>Borlandってオープンソースの成果盗みまくり。
企業が使っちゃいけない理由はなし。

257 :Delフサギコ ◆zE1iiRdQ :02/06/04 13:33
むしろ、積極的に取り込まなさ杉タン

ミ ゚Д゚彡 もっとユーザーサイドコンポーネントを
      標準コンポとして利用しる

258 :デフォルトの名無しさん:02/06/04 13:38
>>255
MSのソフトがgzip使ってたってお話聞いたことない?


259 :デフォルトの名無しさん:02/06/04 13:54
>>258
MSはユーザーに貢献してるから許されるんだよ。

260 :デフォルトの名無しさん:02/06/04 20:21
MS
マイクロソフト
マイク ソフト
マイ クソフト
マイ クソ太〜

261 :デフォルトの名無しさん:02/06/04 20:58
>>257
DelギコはC使えますか?
Delphiスレなのに関係ない質問御免!
でもぜひ聞いてみたい・・・

262 :デフォルトの名無しさん:02/06/04 21:17
誰でも使えると思うが?

263 :デフォルトの名無しさん:02/06/04 21:33
>>261 が言いたいのは、ポインタを駆使し、もう誰にも
原因を特定することさえ不可能だと思われるメモリリークを
自ら作り込んだ後に、軽やかな、しかししなやかな演出で
自らリークを解消し周囲の絶賛を受けることができるのか
ということ。




264 :デフォルトの名無しさん:02/06/04 21:39
そもそもCが使えなきゃBCB使えないだろ。

265 :デフォルトの名無しさん:02/06/04 22:21
Del厨もCを勉強しておくと何かと役に立ちますよ。


266 :デフォルトの名無しさん:02/06/04 22:51
CゲンガーもCOBOLを制覇しておくとろくな事ないですよ

267 :デフォルトの名無しさん:02/06/04 23:24
>>265
安心しろ、Del系の書籍が少なすぎ&Helpが初心者向けじゃないから
大方のDelを使う奴は他のオブジェクト指向言語をある程度は使える。
ついでに言うとKylixを使用している奴の場合、何かとC・C++の知識は必要。

とネタにマジレスしてみるテスト

ところで今現在Kylix使っている奴いる?
色々な理由でKは小物ツールを作るには向いてないような気がするんだけど…
みんなはどんなの作ってる??

268 :デフォルトの名無しさん:02/06/04 23:29
>ついでに言うとKylixを使用している奴の場合

そんなヤツいないよ(沙

269 :デフォルトの名無しさん:02/06/04 23:32
> 大方のDelを使う奴は

>>265の言うDel"厨"はそれ以外の少数派のことだろうな。

270 :デフォルトの名無しさん:02/06/04 23:34
kylixってネタでしょ。
本気でやるならclxなんてヘボイ形式作んないで、
既存のDelphiアプリがコンパイルすればLinuxで動くようにするだろうし。

271 :267:02/06/04 23:34
>>268
わかってるよ、散々各所で調べてきたんだから…
誰か漏れ以外に使っている、もしくは某の口車にまんまと騙されてKを買ってしまった奴居ないかなぁ…

272 :デフォルトの名無しさん:02/06/04 23:39
>>271
無料版インストールして、HelloWorld動かして、おー動いた動いた。
で、それっきり触ってない。

273 :デフォルトの名無しさん:02/06/04 23:40
LinuxでX立ち上げる事自体ほとんど無いもんなあ…
kylixってdaemonとかcgiとか作れるの?

274 :デフォルトの名無しさん:02/06/04 23:46
>既存のDelphiアプリがコンパイルすればLinuxで動くようにするだろうし。


               爽 快 に 必 死 だ な 。


>既存のDelphiアプリがコンパイルすればLinuxで動くようにするだろうし。

275 :デフォルトの名無しさん:02/06/04 23:48
>>271
買ったよ。
Kylixに限ったことじゃないんだがどうもdbExpressが好きになれないんだよなー。
あと、Enterでプロパティエディタがアクティブにならない点。

276 :デフォルトの名無しさん:02/06/05 00:01
Kylixイラナーイ
Linuxイラナーイ

277 :デフォルトの名無しさん:02/06/05 00:02
学校ナイシー

278 :デフォルトの名無しさん:02/06/05 15:21
VS.NET付属のWinDiffって進化してるの?

279 :デフォルトの名無しさん:02/06/05 21:17
(゚Д゚)ハァ?

280 :デフォルトの名無しさん:02/06/05 23:22
日経ソフトウェアのムック「カンタン!Delphiプログラミング」買った人いますか。

「付属CD-ROMに収録したプログラムやデータなどは、著作権法により保護されていますので、
特別の表記が無い限り改変や再配布はできません。」と書いてあるのですが。
これはマジでしょうか?

再配布ができないのは良いとして、付属のサンプルコードを改変してはいけないとは悲しい。

281 :デフォルトの名無しさん:02/06/05 23:41
買った。だが、
わ ざ わ ざ 流 用 す る ほ ど の 物 で も な い
が漏れの感想。

282 :デフォルトの名無しさん:02/06/06 00:19
あなたは、「文字列検索」でUpperCase派?そりともLowerCase派?
どうもオレはその時の気分でゴッチャになる(分裂気味?)。
どっちがいいとかあるんだろうか?

283 :デフォルトの名無しさん:02/06/06 00:21
>>280
「改変して、『by オレ・作』はダメアルヨ」って意味じゃないの?

284 :283:02/06/06 00:26
追加
改変して、『by オレ・作』にして、それを公開する(ネットでとか)のはダメアルヨってこと。

285 :デフォルトの名無しさん:02/06/06 00:32
>>282
LCMapString派

286 :280:02/06/06 01:20
>>281 >>282-283
スクリーンセーバーを作ってみたかったのです。
コピぺせずに一から作るなんてできないよー。

まあ参考書にソースコードが付属している場合、再配布、または改変しての再配布について
禁止しているのは珍しくないですけど。
でも個人的にソースをいじって試してみることについても禁止しているように見えたので。
使えねー本だ。ウワーン

結局他でサンプルソースコードをゲットしました。
すいません。ちょっと愚痴を言ってみたかっただけでした。

287 :Delフサギコ ◆zE1iiRdQ :02/06/06 01:24
 ∧,,∧
ミσ゚Д゚ミσ 常識の範囲内で対応シル

       そんな意味不明な使用許諾?
       守らなくていいだろ。

     守らなければ訴えられる時だけ
     気をつけれ。

288 :デフォルトの名無しさん:02/06/06 01:28
>>286
ああ、「Delphi で作るスクリーンセーバー制作講座」か。
あそこのソースは「どうぞご自由に」って書いてあるもんな。
「ソースアーカイブの2次配布はいかなるかたちであれ禁止」だそーだが。

289 :280:02/06/06 02:34
>>287 >>288 愚痴を聞いてくれてありがとう。フサギコタンニ レスシテモラエテ ウレチイ
結局使ったのはBorland Developer Network(旧 Borland Community)の記事とCode Centralにある
ソースです。

せっかく作った(実際はほとんどソースをコピぺなんですけど)スクリーンセーバーが
配布できないのに気づいたのでやつ当たりしちゃいました。
まあそれが普通なんですよね。日経ソフトウェアさんごめんなさい。

290 :デフォルトの名無しさん:02/06/06 02:43
>>289
謝る必要は無いと思うが…
むしろ雑誌・書籍についてあるソースを改変不可にするなんて、まともな出版社のすることじゃないと思われ。

291 :デフォルトの名無しさん:02/06/06 10:12
>>282
SameText派

292 :デフォルトの名無しさん:02/06/09 01:32
サメテキスト?

どちらかといえば UpperCase 派です。

293 :デフォルトの名無しさん:02/06/09 02:22
>>292
セイムだろ…
http://dictionary.goo.ne.jp/cgi-bin/dict_search.cgi?sw=0&MT=same

ねただったらスマソ

294 :デフォルトの名無しさん:02/06/09 02:24
ageちまった
鬱出汁脳


295 :デフォルトの名無しさん:02/06/09 02:28
(´-`)。o ○ (もちろん、ネタだろ…かわいそうに…マジツッコミ
入れられちゃって…)

296 :デフォルトの名無しさん:02/06/09 05:14
>>282は「検索」って言ってるんで、文字列をUpperCase or LowerCase
で揃えてPos関数とかを使うって意味じゃないの?
SameTextで検索ってどうやんの?

297 :Delフサギコ ◆o7ab2ChY :02/06/09 09:55
/  、      \
       |_____G_|__     / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
       川|川 / 臭 \|ノ〜  <   VBマンセー! \(^〇^)/
       川川  ◎---◎|〜    \________________
       川川     3  ヽ〜  彡.| ̄ ̄ ヽ
       川川  ∴) A(∴)〜 :  . |G5  /
       川川     U  /〜     | ; ;/彡
       ;川川     ダッラ〜     |  /
     /  ̄\\;;;;;;;;;;ノ\____⊃⊆
    /   /  \ Vノ    //  .  ̄| ⊆
    |二二|  GI AヽヽNTSヽ/----- <_ヽ
    ヽ  |     ヽヽ  5 ヽ
     ヽ  ヽ     ヽヽ   )
      \ \    _)_) ノ
      / ヽ \g8gg& ;;\ 
     /;; ; ヽ  つ二3;; ; \          /
    ( ;; ; ;/\(;;;);;)\   )         .
::     \∴ヽ  しっっ彡|;∴;/
       \;;;\    /;;;/
       /   )   (  \
       UUUU    UUUU


298 :デフォルトの名無しさん:02/06/09 10:18
>>296 部分文字列を比較すればできるだろ。俺はしないけど。

if SameText(Copy(Text1, Pos, Len), Text2) then

299 :デフォルトの名無しさん:02/06/09 10:49
>>298
アホですか?
Pos が分かってたら苦労はありません。

300 :デフォルトの名無しさん:02/06/09 10:52
>>299 検索だろ?Posをforでまわすんだよ。

301 :デフォルトの名無しさん:02/06/09 10:56
>>300

サメテキスト派って、頭悪いんですね。

302 :デフォルトの名無しさん:02/06/09 10:57
煽りか?「俺はしないけど」と書いてるが。

303 :299:02/06/09 11:01
>>298 = 302

あのね、298 のコードでは Pos が回ってません。
それから 298 は サメテキスト派 ではないことは分かっています


304 :デフォルトの名無しさん:02/06/09 11:06
>>303
>>298のPosは検索位置、Lenは比較する文字列の長さを表す。
読み取れないか?

305 :デフォルトの名無しさん:02/06/09 11:09
>>299
こういう使い方をすれってことだろ

 Len1 := Length(Text1);
 Len2 := Length(Text2);

 for i := 1 to Len1 do
  if SameText(Copy(Text1, i, Len2), Text2) then

306 :サメテキスト派:02/06/09 11:10
プ

307 :305:02/06/09 11:12
ああ、>>305は2バイト文字が考慮されてないとかのツッコミはなしね。
簡単な例だから。

308 :デフォルトの名無しさん:02/06/09 11:15
>>305
2バイト文字が考慮されてないからダメじゃん(藁

309 :299:02/06/09 11:15
>>304

読み取れる。失礼した。
282 の質問では、「大文字・小文字」を区別しない検索だよね
この場合、SameText() でやるより、明らかに UpperCase()
か LowerCase() でどちらかに揃えて、Pos() というのが
一般的だよね。オレの Delphi は古いので SameText() という
関数がないのだが、あえて SameText() を使うとすると、どんな
メリットがあるのでしょうか?


310 :デフォルトの名無しさん:02/06/09 11:20
>>299
無知を露呈する前にヘルプでも読み耽ってくれよ。

311 :デフォルトの名無しさん:02/06/09 11:21
>>309
そのメリットは>>291に聞かないとわからんな。
俺(>>298)は>>296

> SameTextで検索ってどうやんの?

に答えただけだから。>>298に書いたように実際に使ったことは無いので。

312 :299:02/06/09 11:24
>>310

310 はヘルプでも読み耽ってるんですか。暇なんですね。
わたしが無知だとどうしてわかるんですか?

313 :デフォルトの名無しさん:02/06/09 11:29
アフォほどよく吠えるって知らないんですか?

314 :デフォルトの名無しさん:02/06/09 11:31
ギスギス キタ━━━━━(゚∀゚)━━━━━!!!!

315 :デフォルトの名無しさん:02/06/09 11:31
煽りが混じってるな

316 :デフォルトの名無しさん:02/06/09 11:32
>>313 アフォ

317 :デフォルトの名無しさん:02/06/09 11:35
メリットってシャンプーですたっけ?

318 :デフォルトの名無しさん:02/06/09 11:36
最初にアフォと言い出したのは>>299だったりする

319 :デフォルトの名無しさん:02/06/09 11:37
「>299=>316=アフォ」でいいですね?

320 :デフォルトの名無しさん:02/06/09 11:38
>>318 それ以前に使ったひとはいないのですか。
それはすごいですね。サメテキストも変ですが

321 :デフォルトの名無しさん:02/06/09 11:41
バカという奴がバカと同じだな。

322 :デフォルトの名無しさん:02/06/09 11:41
>>321 同じだな

323 :デフォルトの名無しさん:02/06/09 11:41
>>320
必死ですね(プ

324 :デフォルトの名無しさん:02/06/09 11:42
del厨の程度の低さ

325 :デフォルトの名無しさん:02/06/09 11:43
>>323 同じだな(プ


326 :デフォルトの名無しさん:02/06/09 11:44
>>324 同じだな


327 :デフォルトの名無しさん:02/06/09 11:45
> 読み取れる。失礼した。

ここだけ口調が違います

328 :デフォルトの名無しさん:02/06/09 11:46
たかだか「比較する前に大文字(or小文字)に揃える」か
「大文字・小文字の区別無しに比較する」かの違いだろ。
なんで引っかかるんだ?このアフォ(>>299)は

329 :299だが:02/06/09 11:49
>>328 なんで引っかかるんだ?

なんにも引っかかっていませんが。どこのことでしょう?

330 :デフォルトの名無しさん:02/06/09 11:50

みんな暇を持て余してたんだ。


331 :デフォルトの名無しさん:02/06/09 11:51
じゃあ黙れよ(プ

332 :デフォルトの名無しさん:02/06/09 11:52
日本戦をはやく始めてくれ

333 :真性299だが:02/06/09 11:53
328 はアフォよばわりして逃げですか?

334 :デフォルトの名無しさん:02/06/09 11:54
もげそうだよ・・・

335 :デフォルトの名無しさん:02/06/09 11:55
>>328 引っかかるというか、SameTextで比較する方法を考えることができなかったんだろうな。

336 :デフォルトの名無しさん:02/06/09 11:56
アフォに加えて粘着だし(藁

337 :デフォルトの名無しさん:02/06/09 11:57
祭ですか?

338 :真性299だが:02/06/09 11:57
>>355 SameTextで比較する方法

検索だってこと分かってます?

339 :355:02/06/09 11:59
検索するとき一度も比較しないんですか?>アフォ

340 :デフォルトの名無しさん:02/06/09 12:00
>>338 本当にアホか?検索するための比較だろ?
    読解力無い奴だな。(298からの流れでわかりきった事だが)

341 :デフォルトの名無しさん:02/06/09 12:01
比較だけで検索できますか >アフォ

Pos() の実装はともかく、コード上では比較しないよ。

342 :デフォルトの名無しさん:02/06/09 12:02
>>299
天然ですか?藁

343 :デフォルトの名無しさん:02/06/09 12:03
>299=>341
ぁ〜ぁ、こいつやヴぁw

344 :デフォルトの名無しさん:02/06/09 12:07
>>341(=299?) SameText使った検索の話に、なんでPos()の実装が出てくるんだ?

345 :デフォルトの名無しさん:02/06/09 12:09
>>342 人工です

みなさん、お付き合いありがとね!

346 :デフォルトの名無しさん:02/06/09 12:10
・゚・(ノД`)・゚・。
さようなら・・・アフォな人・・・

347 :デフォルトの名無しさん:02/06/09 12:12
つまらんことでスレ伸ばすなよ。

348 :真性299だが:02/06/09 12:15
お昼時にたくさん釣れますた!!

349 :デフォルトの名無しさん:02/06/09 12:16
ああ、釣れたと言わなければやってられないよね・・・

350 :デフォルトの名無しさん:02/06/09 13:38
みーんなアフォ

351 :デフォルトの名無しさん:02/06/09 15:40
   ,へ、        /^i
   | \〉`ヽ-―ー--< 〈\ |
   7   , -- 、, --- 、  ヽ
  /  /     i      ヽ  ヽ
  |  (-=・=-  -=・=- )  |  < 読み取れる。失礼した。
 / 彡   ▼    ミミ   、
く彡彡   _/\_    ミミミ ヽ
 `<             ミミ彳ヘ
    >       ___/

352 :デフォルトの名無しさん:02/06/09 15:41
∋oノハヽo∈
 (# `D´)ノ<つぃはてんさいなのれす!

353 :デフォルトの名無しさん:02/06/09 16:16
馬鹿って言うほうが馬鹿の法則は正しかったのね

354 :Delフサギコ ◆o7ab2ChY :02/06/09 16:47
bakaは、死ね

355 :デフォルトの名無しさん:02/06/09 16:48
今更だけどスレタイトルに機種依存文字を使うのは…。

356 :デフォルトの名無しさん:02/06/09 16:50
>>354
本物は ◆zE1iiRdQ なんですけど。

357 :デフォルトの名無しさん:02/06/09 16:51
>>355
Aで、Delphiユーザ=丸付き数字表示可、ということでOKになりますた。

358 :デフォルトの名無しさん:02/06/09 16:58
なかなかの自己厨っぷり。

359 :デフォルトの名無しさん:02/06/09 18:51
>>353
はいはい、馬鹿って言っちゃいけないんだよね。
アフォ はいいけど。

よい子は手を洗って寝ましょうね。

360 :デフォルトの名無しさん:02/06/09 19:06
Delphi関係なく盛り上がってますな。

361 :デフォルトの名無しさん:02/06/09 19:11
俺に絡む>>359はアフォの>>299ですか?

362 :デフォルトの名無しさん:02/06/09 19:18
>>282
case-insensitive boyer-moore

363 :デフォルトの名無しさん:02/06/09 19:26
3人寄れば文殊の知恵 この言葉は正しくありません。
3人寄っても馬鹿は馬鹿。


364 :デフォルトの名無しさん:02/06/09 19:46
incaseだったらkmpの方がよさげ。

365 :Delフサギコ ◆zE1iiRdQ :02/06/09 23:06
AnsiPosのサメテキスト版を作るおうって
意気込みの人は折らんのかえ…
           _____________
   ∧,,∧    /似たようなのを作ってみてるので
  ミ,,゚Д゚彡 <  もっと優れたのに改造スレ
  (ミ  ミ)   \
 〜ミ  ミ       ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ∪''∪
   サッカー勝ったはいいが、俺は仕事だったよ。


範囲で検索AnsiPos
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1023631451&rm=100

366 :デフォルトの名無しさん:02/06/09 23:29
>>365
作るんなら >>362 >>364 のあたりで(笑)

367 :Delフサギコ ◆zE1iiRdQ :02/06/12 00:33
ちょっと遅れ気味だけど
Delphi6プログラバイブ読んで
Interfaceの実装を改めて復習してみてます。

で、ふとした疑問です。

propertyでのインターフェースの実装委譲って
何のために実装されてるんすか?

はっきり逝って、Interfaceって概念自体、
Delphi使いには理解しにくいのに
更に意味不明な領域まで引き込んでくれる
実装委譲って仕組みはInterfaceの学習の際に
わかりにくすぎて学習意欲が一気に萎えてしまうような
変な仕様だと思うのですが、詳しくわかっておられる方、
実装委譲の必要性はなんなのでしょうか。


なんかTAggregatedObjectとかいう聞いたこともないような
クラスもあるみたいだし、、
ほんと、Interface周りはヘジタンの言うようなシンプルさに
程遠い実装だなー。ってなDQNな感想をもってしまったのですが
どうなんでしょう。

プログラバイブの著者さんも、Interface実装と委譲とを混ぜたら
メソッド名のぶつかり問題に遭遇するってのを書いているし。
まじで、Delphiに幻滅する仕様なんですが....

長文スマソ。
           _____________
   ∧,,∧    /なんか、Interfaceに
  ミ,,゚Д゚彡 < いっつも文句言ってるぞ
   U  つ   \オレ...
 @ミ  ミ       ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ∪''∪ もうそろそろ、Delphiにも言語的限界を
       感じちゃうな。

368 :Delフサギコ ◆zE1iiRdQ :02/06/12 00:52
          雑談ばっかですが、

   ∧,,∧    /WinXPでCtrl+Shift+Zで
  ミ,,゚Д゚彡 < 窓のフォーカスが外れるのは
   ミつ つ   \MSの嫌がらせかなあ??
 @ミ  ミ      
   ∪''∪   どんなエディタでもみたいなんだけど,,,,,  


あと、D6ってなんだか
array of Stringに対して
AnsiIndexOfとかで内容を検索できるみたい
StringListは使わないつもりかな?

文字列処理ルーチンをみましたが関数が増えすぎて正直なにがなんだか...

AnsiContainsStr/TextとかAnsiStartsStr/Textとか
AnsiMatchStr/TextとかConcat、DupeString....
AnsiReplaceStr/Text(StringReplaceでいいのでは?
調べてみると,,,,全部いらんし......
(自分で作って3行程度の関数なんてVCLにならんくていいyo...

いったい、誰が製作指揮とってるんだろ?
オレにすら、設計がイマイチ、と思わせる開発されても
正直失望...

369 :素数2:02/06/12 06:40
既存のだと多機能or欲しい機能がないのばっかりなので画像ビューワー作り出したっす。

やっとの事でJpegが表示できるようになった!(Gifその他は無視することに決定。
ビューワーって意外とむつかしいのね。 知識が追いつかないですよ・・・

370 :デフォルトの名無しさん:02/06/12 11:49
       ∧_∧
       /⌒ヽ )
      i三 ∪ ←Del
       |三 |
      (/~∪
     三三

371 :デフォルトの名無しさん:02/06/12 11:51
>>369
Jpeg展開ルーチン実装したのならすごいと思う。
でも、Susieプラグインに対応する方が死ぬほど楽だと思う。


372 :無責任だが:02/06/12 12:08
>>367
implements については VCLでもactiveX関係の実装にしか使われていません

詳細は、ヘルプの
 Delphiプログラマーズガイド
   一般的なプログラミングタスク
     委任した実装の使い方
 前後から読むと良いでしょう


もし、 implements の機能が無ければ、例えばこのヘルプの例で
IRGB8bit のインターフェースの
Red,Green,Blue をいちいち書かなければいけません。
で、それは、メンバーとして持っている FRGB8bit: IRGB8bit;をそのまま
呼び出すだけなの殆ど意味の無いコードを書く事になります


373 :デフォルトの名無しさん:02/06/12 12:29
> はっきり逝って、Interfaceって概念自体、
> Delphi使いには理解しにくいのに

こういうこと書く奴のせいでdel厨とか呼ばれるんだよな…


374 :Delフサギコ ◆zE1iiRdQ :02/06/12 12:35
ミノ゚Д゚彡ノヲオヲ、、コメントありがとございます。>>無責任だがさん

返信もらえて。よかった、
相変わらず詳しいっすね。

>もし、 implements の機能が無ければ、例えばこのヘルプの例で
>IRGB8bit のインターフェースの
>Red,Green,Blue をいちいち書かなければいけません。

いちいち書くのがオーオーピーでのHasAの関係で
それが冗長でもわかりよいコードになるのではないでしょうか?
(HasAには不必要メソドを隠蔽ってのもありますが,,,それはおいておいて)

もしInterface無しで、HasAのクラスに
実装委譲する機能があったと想像すると
そんな機能、混乱を招くだけではないかしら。

>implements については VCLでもactiveX関係の実装にしか使われていません
という事は、implementsは忘却してもよろしそうですね。

375 :デフォルトの名無しさん:02/06/12 12:37
>>373 違うよ。
Delphiに対する批判に過剰反応する奴がいるからDel厨って言われるんだよ。
そういう奴にはDelphiに対する要望すら批判に聞こえるらしい。

376 :デフォルトの名無しさん:02/06/12 12:38
implements重要ですよー。
ObjectPascalが他のOOPLをリードしている点のひとつだと思ってるのですケド。

面倒な委譲メソッドの数を減らせるのはもちろん、
・機能の問い合わせ方法をas演算子に統一できる。
・全てがTObjectから継承という世界観を崩さないまま多重継承(もどき)ができる。

377 :デフォルトの名無しさん:02/06/12 12:38
>>375
夢・独り言
http://life.2ch.net/yume/

378 :デフォルトの名無しさん:02/06/12 12:39
ほらね…

>>377 ハイハイ そっち行きますよ。

379 :デフォルトの名無しさん:02/06/12 12:42
InterfaceはCOMを実装するために作ったad hocな仕様なんでしょう。
implementsはCOMのアグリゲーションそのまんまですね。
静的な設計におけるインターフェイスはInterface型よりもメソッドポインタ
を使ったほうがベターでしょう。

380 :Delフサギコ ◆zE1iiRdQ :02/06/12 12:42
ミ ゚Д゚彡んー
   Delphi使いでInterface使って便利な
   何か機能を実装してるヤシって見たことないんだけど...
 それで、Del使いには理解しにくいって言うのは言い過ぎかな。

D6バイブ読んで初めてしったんだけど
InterfaceにGUIDのある無しで機能が変わったりするらしいね。
そういう仕様のInterfaceはちょっと面倒っすね。

>>376さん、
うっそーんミ゚Д゚;彡多重継承モドキはIntefaceだけで十分じゃないのかしら?
  ,,,あ、そうじゃなくて実装を委譲してしまうから、多重継承に近くなれるのか...
  深すぎて、フサにはわかんない。

381 :Delフサギコ ◆zE1iiRdQ :02/06/12 12:45
ミ ゚Д゚彡
D6バイブの受け売りだけど
>InterfaceはCOMを実装するために作ったad hocな仕様なんでしょう。
いまは違うみたいです。(こじつけかもだが)

>静的な設計におけるインターフェイスはInterface型よりもメソッドポインタ
>を使ったほうがベターでしょう。
それはやり方がわかりませんです。


382 :デフォルトの名無しさん:02/06/12 13:00
インターフェイスの使いどころはOpenToolApiのように実行時に機能を
追加したり外部から機能を呼んだりする時にしっくりきますね。やったことはないですが。
メソッドポインタは
TFireworkInterface = record
Fire: procedure of object;
end;
TUchiageHanabi = class
procedure Fire;
function GetFireworkInterface: TFireworkInterface;
end;
function TUchiageHanabi.GetFireworkInteface: TFireworkInterface;
begin
result.Fire := Self.Fire;
end;
という感じです。

383 :376:02/06/12 13:07
COMを真似るだけならウィザードで委譲メソッドを吐かせれば充分でしょ。

例えば、IObserver/IObservableなんてのを作ったとき、implementsがあると
IObservableの実装を使いまわせます。

OpenToolsAPIのように、機能の問い合わせをひとつのオブジェクトに集中して
個々をasで問い合わせるという作りができます。

アクロバットなアイデアとしては
派生クラスで、幾つか用意された実装クラスのどれかをimplementsするのを当てにして
Self as IXXX なんてのも考えられます(やりすぎと思いますけど

Javaに同様の機能が無いのでデザインパターンに使われていないのが惜しいぐらい

384 :デフォルトの名無しさん:02/06/12 13:12
あーasで引っ張るのは面白いですねえ。

385 :デフォルトの名無しさん:02/06/12 13:22
でもまあDelphiの場合、実行時型情報が強力なので
せっかくinterfaceがあっても、つい実行時型情報を使ってしまわない?

published にさえしておけば、メソッド名から検索出来てしまうんだから
機能を名前で管理出来てしまう

386 :Delフサギコ ◆zE1iiRdQ :02/06/12 13:32
ミ,,゚Д゚彡
...面白さがいまいちわからない...っ酢>>384

>implementsがあると IObservableの実装を使いまわせます。
implementsがなくても記述をバンガレは実装を使いませると思うのだけど、

>>385
それは美しくなさそう,,,コンパイルエラーも出ない?

いま、ふと考えたんだけど
Memo1.Textに'MyObject.MyMethod'という文字列がある場合
ソース中のMyObjectのMyMechodを呼び出すって
事も、RTTIなら出来ちゃうんだろうかしら。

387 :デフォルトの名無しさん:02/06/12 13:36
型チェックが無いと怖い体質(wなので僕は専らinterfaceですけど、
RTTIも駆使すれば色々できそうですね。
詳しくないので幾つか応用例を教えて欲しかったり。

interface/RTTIを駆使したDelphi専用デザインパターンなんてのも
列挙してみれば面白いかも。

388 :デフォルトの名無しさん:02/06/12 13:37
C#ですべてできることを必死で議論してますな。(藁

389 :デフォルトの名無しさん:02/06/12 13:37
MyObjectがパブリッシュなプロパティで MyMethodがそのパブリッシュなメソッドならね

390 :デフォルトの名無しさん:02/06/12 13:39
>>388
>C#ですべてできること

VB.NETでもできますね

391 :デフォルトの名無しさん:02/06/12 13:46
>implementsがなくても記述をバンガレは実装を使いませると思うのだけど、
それが嫌なんですよ〜
IObservable程度なら少しですけど、メソッドが幾つもある巨大な実装ならどうします?
変更時単なる委譲部分まで書き直すのも鬱ですよ。

特に問い合わせ元を集中したばあい、implementsが無いとやってられません
(5つ以上のインターフェースを他にimplementsしているクラスなんてのも作ったことがあります)

>>388, 390
implementsに相当する機能はC#に存在しませんが何か?

392 :デフォルトの名無しさん:02/06/12 13:49
もちろん VB.NET にもないし
でもなあ、 VBで

Interface MyInterface
Function MyFunc1( MyInt As Integer) As Integer
End Interface
とか見ると、なんか ObjectPascalにそっくり


393 :デフォルトの名無しさん:02/06/12 14:05
>>387

別のスレで正規表現をエスケープした名前をメソッド名にして
lexのように処理させるというアイデアが出ていた。

でも、publishedなメソッド名を列挙して
http://www.users.gr.jp/ml/archive/delphi/54178.asp

列挙したメソッド名から引数が一致するかどうか迄判るのだろうか?

394 :デフォルトの名無しさん:02/06/12 20:31
>>379
禿同。
interfaceの仕様って、ObjectPascalの文法の中でかなり浮いてるよな。
他の部分は芸術的とも言えるような言語仕様なのに、interfaceだけは
後からこじつけたような仕様だし、、


395 :デフォルトの名無しさん:02/06/12 20:44

       ∧_∧
       /⌒ヽ )  >>394
      i三 ∪  だって後からこじつけたんだもん。
       |三 |    しょうがないじゃん…
      (/~∪
     三三

396 :デフォルトの名無しさん:02/06/13 07:30
>>394
 そんなふうにいうが、ActiveXやCOMがこれだけ使い易く、しかも同じくらい使い易いVBよりも
 高速に扱えるようにしてしてくれてるのはその interfaceのお陰では?

397 :デフォルトの名無しさん:02/06/13 07:44
こじつけでも、実際役に立っているので構いませんが。
不満があるとすれば、

・GUIDを書かなかった場合は内部で勝手に生成して欲しい
・インターフェースを返す関数の戻り値を受け取らなかった場合
 _Releaseが呼ばれるのが呼び出した側の関数の最後になるのを早めて欲しい(文の直後とかに)

ぐらいです。強いていうなら、
参照カウンタとは無関係な純粋にFreeで解放するモデルの延長としてのinterfaceも欲しかったですね。
折角IInterfaceを設けたのですから、IUnknownをIInterfaceから派生し、
_AddRef, _ReleaseはIUnknownで定義され自動増減もIUnknown(からの派生)として取り扱う時だけ有効、とか。

interfaceに不満しか言わない人は、一度COMとは無関係に、
interfaceを使いまくった設計をしてみるのは如何でしょう?

398 :デフォルトの名無しさん:02/06/13 09:18
5ボタンマウスの余計な2個のボタンに機能を割り当てたいのですが
どうすればよいのでしょうか・・・。
自作ビューワーの 進む、戻る にしたいんですけれども。教えて偉い人!

399 :デルファイの名無しさん:02/06/13 09:39
WM_XBUTTONDOWNをPlatform SDKで調べると幸せになれるかも。
具体的な値はSDKのヘッダーファイルを検索すれば調べられます。
まあ、実は同じことやったことがあるのでコピペしておきます。

const
 WM_XBUTTONDOWN = $020B;
 WM_XBUTTONUP = $020C;
 WM_XBUTTONDBLCLK = $020D;
 XBUTTON1 = $0001;
 XBUTTON2 = $0002;

もっといい方法があれば、教えて偉い人!

400 :デフォルトの名無しさん:02/06/13 11:58
>>398 == hoerinpage

http://messages.yahoo.co.jp/bbs?.mm=GN&action=m&board=2000083&tid=a1zdelphibdibf4bctbcalda53a1bca5ja1bca1z&sid=2000083&mid=115

401 :デフォルトの名無しさん:02/06/13 16:12
>>400は粘着


402 :デフォルトの名無しさん:02/06/13 17:15
インターファイスを使ったよい例がのってるところってある?
そういえばWebServceとかはInterfaceつかってるな


403 :デフォルトの名無しさん:02/06/13 23:14


404 :増田ジゴロウさんの正体が知りたいっ子:02/06/13 23:59
どうもCOMはよく分からん…。
他が分かってんのか?と言われたら自信無いけど(藁
「解放する必要が無い」って読んだ気もするけど、どーなの?
どうも勘違いしてる気がする>オレ

405 :意外と、山崎ホウセイ(字わからん)かもしらん(確証無し:02/06/14 00:20
name only...

406 :デフォルトの名無しさん:02/06/14 00:21
IInterface型は他のPascal文法にあわせて綺麗な仕様として、
その派生としてICOMInterface型を宣言して、そっちはM$仕様の
ばっちい実装にすれば良かったのでは、と最近思う。

407 :デフォルトの名無しさん:02/06/14 00:35
VariantとOleVariantみたいに、oleinterfaceとか、OleWideStringとか作って、
普通のinterfaceはシンプルにまとめ、普通のWideStringはAnsi同様参照カウンタでメモリーの節約を…
とかやって欲しいですね。

408 :デフォルトの名無しさん:02/06/14 01:37
>>407
はげどう。DelphiってMSに歩調を合わせるために、かなり設計思想を犠牲にしてるような。

409 :398:02/06/14 06:33
>>399-400 ありがとおぅ。
何となく簡単そうなむつかしそうな・・・一段落したら試してみるです。

今日やってみようとおもったのだが先にサブフォルダ検索の実装
をやろうと思ったら6時間も掛かっちゃって・・・
苦労して作った割には動作は重いし・・・
フォルダ20個で合計2000ファイルの読み込みに20秒・・・アホな

410 :デフォルトの名無しさん:02/06/14 07:00
インターフェースは仮想メソッドポインタだけの構造体と同じ
 ただ、メモリー管理を楽にして欲しいという要求に答える為に参照カウンタ型の
 メモリ管理機能を組み込もうとした。 その為に仮想メソッドポインタだけの
 構造体という姿勢を崩すよりは、AddRef Releaseををコンパイラが呼び出す
 だけにした方が綺麗だし簡単となったんじゃないの?

その機能のないinterface型を作ってしまうと、Delphiのクラス型はJAVAと違って
自動メモリ管理されないから逆にややこしいし
COM型のインターフェースと共存して混乱してしまう

411 :デフォルトの名無しさん:02/06/14 20:56
 ちょっときーてください。
Delphi6 Personalで、
 「オブジェクト変数の参照」と、「オブジェクト変数」の監視(ポインタ)表示で
値が違ってるんです。
 で、スコープはクラスのメンバにしてあるのに、
そのオブジェクトのインスタンスのポインタを代入したメソッドを抜けると
監視表示できなくなるんです。 

NewTag := TTag.Create(inTag);
SetNewTag(inTag,Ele,NewTag);
TagList[TagMX-1] := @NewTag;

TTagはTComponentの派生、
NewTagはメソッドの頭で宣言したTTag型のオブジェクト変数、
SetNewTagはTagのメンバ変数(プロパティ)を設定(代入)してるだけ、
TagListは^TagList型のこのクラスのパブリックな静的配列、
TagMXは1です。

問題のオブジェクト変数はNewTagで、こいつの監視(ポインタ)表示が
@NewTagと違っていて、メソッドを抜けるとTagList[0]が見えなくなるんです。
インスタンスは破棄していないのに。

どうやったらこのTagList[0]の値を別のこのクラスのメソッドから使えるように
なるか、教えてください。 お願いします。

412 :デフォルトの名無しさん:02/06/14 23:11
誰か答えてやって。読みづらくて。

413 :デフォルトの名無しさん:02/06/14 23:57
>>411
そりゃObjectPascalでは、C++とは違って、オブジェクト変数ってのは
元々ポインタだから、@NewTagってのはポインタ変数のポインタになりますねん。
NewTagってのがメソッドのローカル変数なら、メソッドを抜けたら@NewTagの
値は不定になりますねん。

414 :デフォルトの名無しさん:02/06/15 00:01
>>413
ガーン

ってことは、

@NewTag -> NewTag にすればいいの?


415 :デフォルトの名無しさん:02/06/15 00:02
>>412
ごめん、どの辺が読みづらいか教えて。
ひょっとして改行?

416 :デフォルトの名無しさん:02/06/15 00:07
>>415
http://www.epocaclub.com/bunshou/hiketu.htm

417 :デフォルトの名無しさん:02/06/15 00:08
>>414
>@NewTag -> NewTag にすればいいの?

いや、@NewTag -> pointer(NewTag) だと思ふ。



418 :デフォルトの名無しさん:02/06/15 00:11
>>413
Wow!(泣いている) うまく行きました。 ありがとう。

これで2時間ちょっと悩んでました。
子供の頃から10年以上CやC++をいじってきて、ポインタも解ったつもり
になってたのに、実は才能ないじゃん、中国へでも売られてしまえばいいんだ
なんて思い詰めていました。 やっぱりまだ日本にいることにすます。




419 :デフォルトの名無しさん:02/06/15 00:23
>>417
Pointer型にキャストしろってことですか?
TagList を array[0..99] of TTag にしました。 代わりに。
でも、これでうまくいくんなら TList を使ってPointer型に
キャストした方がシンプルですね。 やってみます。
ありがとうございました。

ところで、オブジェクト変数がポインタってことは、キャスト
すれば継承によらずにどんな変数にでも代入できちゃう
ってことですよね? いや、コンパイル通すだけなら
C++でもできるけど、それで動くようにできちゃうんですね。

ついでですみませんが、いまMSHTMLを使っているのですが、
ActiveXの取り込みで取り込んでも、このクラスが現れません
よね。 VBのオブジェクトブラウザからなどだと見えるように
なるのだけど。 入力支援機能が働かないのでオブジェクト
ブラウザと行ったり来たりでコードを書いてます。
支援機能を使う方法はないのでしょうか?

420 :デフォルトの名無しさん:02/06/15 00:28
>>419
オブジェクトならTObjectの方が美しいけどね。

421 :デフォルトの名無しさん:02/06/15 01:34
uses mshtmlで行けないですか?

422 :デフォルトの名無しさん:02/06/15 14:27
>>419
継承と無関係な型にキャストするのは危険と思われ。
プロパティやメソッドにアクセスしたとき何が起こるか…
第一、コンパイラに怒られなかったけ?

423 :デフォルトの名無しさん:02/06/15 14:36
TClassA = class(TObject)
public
property A: …
end;

TClassB = class(TObject)
public
property B: …
end;

procedure Hoge;
var
Obj: TObject;
begin
Obj := TClassA.Create;
TClassB(Obj).B := x; // どっか〜ん!


424 :デフォルトの名無しさん:02/06/15 15:36
>>422
クラスである前にやつらはポインタって話じゃないの?

425 :デフォルトの名無しさん:02/06/15 22:30
 バージョン情報の、メジャー・マイナー・リリース・ビルドって
皆さんはどんな規則でつけてる?

426 :デフォルトの名無しさん:02/06/15 22:39
初公開が β1
そのあとバグ取りだろうが機能追加だろうがなんだろうが必ず1ずつあがる・・・現在β24だってさ。

427 :425:02/06/15 22:44
 というか、正式なバージョン情報の付け方ってあるんですか?

428 :デフォルトの名無しさん:02/06/16 08:00
自分の場合

メジャー:
 0〜1未満 未完成
 1 一通り完成
 2〜 ガラリと変わる場合(ほぼ1から作り直しぐらい)の時に上げる

マイナー:
 大きな機能追加、修正があった時に上げる

リリース:
 ちょっとしたバグとり、修正の時に上げる

ビルド:
 IDEにより自動更新



429 :デフォルトの名無しさん:02/06/16 08:00
ちなみにUNIX系みたいな、奇数は不安定、偶数は安定みたいなつけ方は特にしてない

430 :デフォルトの名無しさん:02/06/16 09:21
画像ファイルの一覧を作るのにこんな手続き書いてるんだけどサブフォルダがいっぱいあるフォルダを検索したときにやたら遅いです。
なにか高速化のいい手はあるでしょうか? filelist Tstringlist でグローバル変数。 

procedure TForm1.filesearch(ddir:string);
var
sr:TsearchRec;
res:integer;
i:integer;
ext:string;

begin
ListBox1.Items.BeginUpdate;

res:=FindFirst(ddir+'\*.*',faAnyFile,sr);
while res=0 do
 begin
  if not ((SR.Name='.') or (SR.Name='..')) then
   if ((SR.Attr and faDirectory) = faDirectory) then filesearch(ddir + '\' + SR.Name); //対象がディレクトリの場合、自分を再帰呼び出し
  else
   begin //対象がファイルの場合リストに追加
    ext:=LowerCase(extractfileext(sr.name));
     if (ext='.jpg') or (ext='.jpeg') or (ext='.bmp') then filelist.Add(ddir +'\'+sr.name);
   end;
  end;//if end
res:=FindNext(sr);
end; //while end

findclose(sr);

ListBox1.Items.Assign(filelist);
for i := 0 to ListBox1.Count-1 do
begin
 ListBox1.Items[i]:=ExtractFileName(ListBox1.Items[i]);
end;

ListBox1.Items.EndUpdate;
end;


431 :430:02/06/16 09:34
>>430がミスってたので修正&余計なところを削除しました。ごめんささい
filelist は Tstringlist でグローバル変数。 

procedure TForm1.filesearch(ddir:string);
var
sr:TsearchRec;
res:integer;
i:integer;
ext:string;
begin
res:=FindFirst(ddir+'\*.*',faAnyFile,sr);
while res=0 do
 begin
 if not ((SR.Name='.') or (SR.Name='..')) then
  begin
    if ((SR.Attr and faDirectory) = faDirectory) then
      filesearch(ddir + '\' + SR.Name) //ディレクトリの場合再帰
    else
     begin
      ext:=LowerCase(extractfileext(sr.name));
      if (ext='.jpg') or (ext='.jpeg') or (ext='.bmp') then
       filelist.Add(ddir +'\'+sr.name);
    end;//else end
 end;//if end
 res:=FindNext(sr);
end;//while end
findclose(sr);

end;

432 :無責任だが:02/06/16 09:58
>>430
1、 手続きを作る時は出来るだけ依存関係を引数に纏める事
2、 再帰を使う時は関数内関数を使うと格好良く書ける

procedure filesearch(ddir:string;ListBox1:TListBox);
var filelist :TStrings;
 procedure files(ddir:string);
 var sr:TsearchRec;
 ext:string;
 res:integer;
 begin
   res:=FindFirst(ddir+'\*.*',faAnyFile,sr);
   try
    while res=0 do
    begin
     if not ((SR.Name='.') or (SR.Name='..')) then
     if ((SR.Attr and faDirectory) = faDirectory) then files(ddir + '\' + SR.Name) //対象がディレクトリの場合、自分を再帰呼び出し
    else
      begin //対象がファイルの場合リストに追加
       ext:=LowerCase(extractfileext(sr.name));
        if (ext='.jpg') or (ext='.jpeg') or (ext='.bmp') then filelist.Add(ddir +'\'+sr.name);
      end;
    res:=FindNext(sr);
    end; //while end
   finally findclose(sr); end;
 end;
var i:integer;
begin
ListBox1.Items.BeginUpdate;
filelist:=TStringList.Create;
try
  files(ddir);
  ListBox1.Items.Assign(filelist);
 finally filelist.free;end;
for i := 0 to ListBox1.Count-1 do
begin
  ListBox1.Items[i]:=ExtractFileName(ListBox1.Items[i]);
end;
ListBox1.Items.EndUpdate;
end;


433 :無責任だが:02/06/16 10:13
>>431 それはそんなに遅い? それで遅いとなると難しいかも

434 :430:02/06/16 11:21
>>432 ありがつお。関数内に関数を置けるとはしらなんだ。
listboxなどを引数にするなどするのも気がつかんかったけど、確かにこっちの方が管理しやすそうですね。
>>433
同じフォルダを開いたときに
今メインに使ってるビューワーだと3秒で済むのに、俺の作ったのだと20秒掛かるんです・・・

435 :無責任だが:02/06/16 11:39
>>434
ええと、遅いのは ループ中にあった
  ListBox1.Items[i]:=ExtractFileName(ListBox1.Items[i]);

これのせいだと思うよ。 >>432のように再帰ループ中から外して さらに
 assignしてからを止めて

  ListBox1.Items.Add(ExtractFileName(filelist[i]));
と末尾に追加した方がいい

436 :デフォルトの名無しさん:02/06/17 07:10
>>435 おおすごいっす。20秒だったのが5秒掛からなくなりますた。
実用に耐える速度です。感謝です。

関数内関数って宣言が実装を兼ねてるんですねぇ。面白い

437 :デフォルトの名無しさん:02/06/17 16:24
findfirst失敗してもfindclose呼ぶんだっけか?

438 :デフォルトの名無しさん:02/06/17 17:09
>>437
よんじゃ駄目

439 :デフォルトの名無しさん:02/06/17 22:40
えっ・・・findfirstって失敗すること在るのか・・・深い深すぎる・・・

440 :デフォルトの名無しさん:02/06/17 23:27
そりゃ、一致するファイルが見つからなければ失敗するだろう……

441 :デフォルトの名無しさん:02/06/17 23:34
(´-`)。o ○ (「失敗」って、そーゆー意味なのか?)

442 :デフォルトの名無しさん:02/06/18 01:15
FindFirstはファイルが見つかったときは0、
それ以外の場合はエラーコードを返しますですよ。
で、ヘルプに載ってる例では、0返したときだけFindCloseを呼んでます。

443 :デフォルトの名無しさん:02/06/18 06:08
コンポーネントがインストールできない〜

インストールした筈のコンポーネントは
起動時はコンポーネントパレットに表示されてるのに、プロジェクトを開くと消えてる・・・
del6 proですが、こんなことあるんか!

del6インストールし直してみるか・・・

444 :443:02/06/18 06:11
>>443 出てきた!
その時点で使えないコンポーネントは消えるのか・・・ お騒がせする間もないけど済みません。

445 :Delヒッキー:02/06/18 21:09
W杯 日本敗北記念age

446 :デフォルトの名無しさん:02/06/18 23:24
>>443
独り言は日記帳に書いてください。

447 :デフォルトの名無しさん:02/06/19 00:26
TreeNodeで教えてくん!
TreeNodeをTreeView無しで使いたいです。
んで、TreeNodesを作って、TreeNodeをAddChildすると「親ウィンドウがない」って怒ります。
仕方ないので、動的にTreeViewを作ってItems.AddChildしたのですが、これも怒られます。
やっぱ、画面に見えちゃう系のオブジェクトはSelfがnilだと駄目なんでしょうか?
フォーム無しのイケてるアップリケーションでも使いたいよ。


448 :デフォルトの名無しさん:02/06/19 00:35
>>447
寝ろ。

449 :デルファイの名無しさん:02/06/19 00:36
純粋にツリー構造を使いたいなら、自作するべし。データ構造の初歩です。
TComponentあたりを流用してもいいですけどね。

ストリーミングなどでTTreeNodeでなければいけないなら、
TTreeViewはコモンコントロールのラッパーなので、項目も外部で管理されているため
ウィンドウハンドルが必要です。Visible = False で使うしか無いでしょう。

450 :447:02/06/19 00:48
>>449
ありがd。
やっぱ無理か。。
最初は、自分で作ってたんだけど、ノードの移動とかを考えると
MoveToがあるTreeNodeが便利かなあ、と思って使ってみたら
使えなかったよ。。。トホホ。。
なんか代替案考えます。


451 :447:02/06/19 00:56
ギャー!いい案思いついた!
CLXのTreeNodeを参考にして作ればいいんだ!MoveToあるし。
すげー!パオーン


452 :デフォルトの名無しさん:02/06/19 19:38
>>TreeNodeをTreeView無しで使いたいです。

これが一番の謎です。

453 :デフォルトの名無しさん:02/06/19 23:51
アトランティスの謎です。

454 :デフォルトの名無しさん:02/06/20 00:19
里見の謎です。

455 :デフォルトの名無しさん:02/06/20 00:42
コンボイの謎です

456 :デフォルトの名無しさん:02/06/20 00:56
http://www.google.co.jp/search?q=%E3%81%AE%E8%AC%8E&ie=UTF8&oe=UTF8&hl=ja&lr=

457 :デフォルトの名無しさん:02/06/21 01:51
コダックのOCX使って、スキャナ制御してるんですけど、
なぜか色数の指定とサイズ指定ができないんです。
スキャナの制御とかやってるかた、つーかTWAINですな。

なにかいい方法ないでしょうか。

458 :デフォルトの名無しさん:02/06/21 11:54
ttp://www.catenary.com/howto/scansave.html

459 :デフォルトの名無しさん:02/06/22 12:25
Cマガに「delphi7は今年の第2四半期に出る」って書いてあったけど、マジ?

460 :デフォルトの名無しさん:02/06/22 19:52
>459
「今年の第二四半期」ってあと一週間しかありませんケド……

461 :デフォルトの名無しさん:02/06/22 20:27
最近 Delフサギコ見ないけど生きてるか?

462 :デフォルトの名無しさん:02/06/22 23:42
>>461
けど、一度現れると、朝まであらゆる場所で見かけたりするけどな。

463 :デフォルトの名無しさん:02/06/23 00:08
 | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
 |仕事疲れたら出るダロ.|
 |_________|
    ∧∧ ||
    ( ゚д゚)||
    / づΦ


464 :デフォルトの名無しさん:02/06/23 01:36
実は>>463=Delフサギコ

465 :デフォルトの名無しさん:02/06/23 02:44
各Delphiコミュニティの有名人
nifty Delphiフォーラム:
 謎の全知師(最近見ないけど)
 瑠ろう
Delphiメーリングリスト
 中村
Delphiスレ
 Delフサギコ

あと、誰いる?
MLのあの人はあえて出さなかったよ。


466 :デフォルトの名無しさん:02/06/23 08:39
>>465
Delphiスレなら
最近、「無責任だが」氏はなかなかがんばっているようだね
トリップつければいいのに...

467 :Delフサギコ ◆zE1iiRdQ :02/06/23 12:44
            _____________
    ∧,,∧    /激務→出張→缶詰→激務→失恋 
  _ ミ,,゚Д゚彡_<  で、踏んだり蹴ったりで、現実逃避してますた
.=| |==U==U=| |= \
 | |@ミ  ミ .| |     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 | | ∪''∪ | | 何もする気がありませんが何か?
 | |      | |

468 :デフォルトの名無しさん:02/06/23 13:10
>>467
昨年末に、彼女と別れた、とかいっててもう失恋ですか。
もてるんだか、そうでないんだか、分かりませんね。

469 :Delヒッキー:02/06/23 15:29
>>467
苦労してますね・・・

470 :Delフサギコ ◆zE1iiRdQ :02/06/23 15:42
            _____________
    ∧,,∧    /失恋ってっても人妻さんに単なる片思いですし
  _ ミ,,  彡_<  いいことなんて、なんにもないです。
.=| |=ミ   ミ=| |= \"あーきらめましょおー♪あきらめましょー♪"
 | | ミ@ ミ | |     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 | | ∪''∪ | | 近所の猫にオリジン弁当のから揚げを
 | |      | | やったら、なつかれました...
          女の子もなついてくれないかな。

471 :Delフサギコ ◆zE1iiRdQ :02/06/23 15:43
            _____________
    ∧,,∧クルッ / ついでに言うと
  _ ミ,,゚Д゚彡_<  元カノは半ストーカーと化してます,
.=| |=ミ   ミ=| |= \
 | | ミ@ ミ | |     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 | | ∪''∪ | |
 | |      | |.ポリ公には相談に逝きました.....欝だ...
         
もうみずぽですか?みずぽなんですか?
逝きるってなんですか。日曜昼からAA書く事ですか・・・・・・


472 :デフォルトの名無しさん:02/06/23 16:49
>逝きるってなんですか。日曜昼からAA書く事ですか・・・・・・

日曜の昼間も仕事しつつ息抜きに2chすることです・゚・(ノД`)・゚・

473 :デフォルトの名無しさん:02/06/23 17:28
しんでいいよ
にんげんがいきるりゆうなんてなにもないんだから
しんでいいよ

474 :デフォルトの名無しさん:02/06/23 18:12
人生、踏まれたり蹴られたり、沈んだり潜ったり、嫌なことや辛いことがあったり、
忘れたいことや思い出すと錯乱状態に陥ったりすることもあります。けれど、
生きることには何の具体的な希望があるわけではありません。ですから、
地獄の底を這いずるように生きましょう。我々には氏ぬことも許されません。

475 :デフォルトの名無しさん:02/06/23 21:21
>Delフサ
まあ、発泡酒でも飲んでおけ。


476 :Delヒッキー:02/06/23 23:34
>>Delフサ
まぁここでマターリしていきなされ・・・

477 :デフォルトの名無しさん:02/06/24 00:53
  |
  |,,∧
  |д゚彡
  ⊂ノ  2chってたまにヤサシイよな
  |ミ
  |
━━━━━━━━━━━━━━━━


478 :デフォルトの名無しさん:02/06/24 01:06
>>Delフサ
>人妻さんに単なる片思い
オレにも経験がある。つらいよねぇ.....
いい女はだいたい人妻だしね

>逝きるってなんですか。
うーむ、結婚して子供つくると、この答えは自明になる、と思う
適当にみつくろって、身を固めることを勧めたいと思ふ

>現実逃避
2ch は現実逃避の一つだね。たまにはコテハンよして、
「デフォルトの名無しさん 」で書き込んでみるとよいと思ふ

479 :デフォルトの名無しさん:02/06/24 01:34
>>478
>>>Delフサ
>>人妻さんに単なる片思い
>オレにも経験がある。つらいよねぇ.....
>いい女はだいたい人妻だしね
同感です。
くどいけど引用しときますた。 マーフィーの法則にもあるんじゃろか。

>>逝きるってなんですか。
>うーむ、結婚して子供つくると、この答えは自明になる、と思う
>適当にみつくろって、身を固めることを勧めたいと思ふ
犬もいいよ。素直でかわいくて。


480 :デフォルトの名無しさん:02/06/24 01:42
  ∧,,∧     / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ミ,, ゚Д゚彡  < >>478 結局AAでDelフサとわかる罠(w
 ミ つ[|lllll]). \_________
@ミ  ミ
  ∪∪漏れDelフサじゃないよ


481 :デフォルトの名無しさん:02/06/24 02:19
いい男は大抵既婚者かホモだそうですが
独身のホモでもない俺はいい男じゃないんだろうなーいい男ってなんだろうなーいい女もわかんねーや。

最近ファイルのD&Dで起動したときに勝手に変わる作業フォルダの悩みを解決してちょとうれし。

絶対パス指定以外にいい方法はない物だろうか。

482 :デフォルトの名無しさん:02/06/24 02:29
ファイルメモリ
GetTempFolder


483 :デフォルトの名無しさん:02/06/24 09:33
あるファイルが読み取り属性だった場合にそれを解除したいのですが
どうすればよいですか。


484 :デフォルトの名無しさん:02/06/24 09:41
VCLのFileSetAttrかWin32APIのSetFileAttributesをどうぞ。
っつーかヘルプ読んでくれ。


485 :デフォルトの名無しさん:02/06/24 14:45
             __________
   ∧,,∧      /
  ミ,,゚Д゚彡  <  貴様等中村師の御相手して差し上げやがれ
  ミ つ且~~   \__________
〜ミ,,,,,, ,,ミ お世話になってる奴多いだろ?


486 :デフォルトの名無しさん:02/06/24 15:38
猫に小判

487 :デフォルトの名無しさん:02/06/24 16:28
過去ログは全て戸田のものではないかという気もしてしまう今日この頃


488 :デフォルトの名無しさん:02/06/24 22:21
>>487

つまり、使い物にならん、と?

489 :デフォルトの名無しさん:02/06/24 23:08
>>488
それはいくらなんでも過去ログに失礼

490 :デフォルトの名無しさん:02/06/24 23:56
(´-`)。o ○ (うわー… 某所の質問レス、すごいなぁ… えらいことになってるなぁ…
これ、どう答えんのかなぁ…?今まで見た中でdelphiでは最強な初心者質問レスだなぁ…)

491 :デフォルトの名無しさん:02/06/25 00:12
でも本当に鬱なのは、自分が人を傷つけたり
納得できない自分に気がついたときだという罠。
取り返しがつかない。exceptなときだね。

492 :デフォルトの名無しさん:02/06/25 00:15
>>490
>質問レス
質問なのか回答(レス)なのか分からんが?


493 :490:02/06/25 00:21
(´-`)。o ○ (まぁ、「レスポンス」ってことを考えるとおかしいのは間違い無いけど…。
「質問」だけで良かったか…。つーか、広げると怒られそうだ…)

494 :デフォルトの名無しさん:02/06/25 07:13
で、どこの話?ちょっとヒントを。

495 :TeamB/2ch ◆SE69s0c2 :02/06/25 10:07
で、雑談スレはこちらですか?
マ板のスレッドはみんな流れてしまったようで...

496 :Delフサギコ ◆zE1iiRdQ :02/06/25 22:07
  ∧,,∧   鬱ダ
  ミ,,  彡 
 ミ   ∪
 ミ〜,, ミ
  ∪ ∪

   ∧,,∧   あ、TeamBさん、こんばんちは
  ,ミ ゚Д゚彡
  ミ  ∪  
 ミ〜,, ミ
  ∪ ∪

  ∧,,∧   すいませんリアルに鬱です
  ミ,,  彡 
 ミ   ∪
 ミ〜,, ミ
  ∪ ∪
      夜中一人だと大変寂しいので
      もう寝ます。
      サカー見る気も起きません。

497 :Delフサギコ ◆zE1iiRdQ :02/06/25 22:37
   ∧,,∧  とかいいつつ、見ちゃった... 
  ,ミ*゚Д゚彡
  ミ   つ  
 ミ〜,, ミ
  ∪ ∪

498 :デフォルトの名無しさん:02/06/26 01:01
    駄目じゃん
    ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄
         ∩ ∩
        〜| ∪ |         (´´
        ヘノ  ノ       (´⌒(´
       ((つ ノ⊃≡≡≡(´⌒;;;≡≡≡
         ̄ ̄ ̄(´⌒(´⌒;;
         ズコーーー


499 :デフォルトの名無しさん:02/06/26 02:02
>>497
韓国がフツーに負ける様を見て、少しは和みましたか?

500 :デフォルトの名無しさん:02/06/26 23:33
(´-`)。o ○ (Hotkeyタソのソフト(軒並みバグだらけの模様)に、金払った
人いるんだ…。凄いなぁ…)

501 :デフォルトの名無しさん:02/06/26 23:46
(´-`)。o ○ (500 はあの粘着だったんだぁ。キモイ)

502 :デフォルトの名無しさん:02/06/26 23:50
(´-`)。o ○ (粘着は認めるよ(藁 しかし、驚くなぁ…。どんなもんでも
金払うヤツいるんだなぁ…)

503 :デフォルトの名無しさん:02/06/27 00:10
(´-`)。o ○ (まぁ、どんなことにでも粘着するヤツはいるもんだ)

504 :デフォルトの名無しさん:02/06/27 00:13
(´-`)。o ○ (そりゃー、2ちゃんだしな。ここは(藁)

505 :デフォルトの名無しさん:02/06/27 01:26
(´-`)。o ○ (貴様等このAAに粘着しすぎ

506 :デフォルトの名無しさん:02/06/27 04:34
Del厨も早く目を覚まして.NETに移行しよう!

http://www.atmarkit.co.jp/fdotnet/opinion/kawamata/2002_06.html

507 :デフォルトの名無しさん:02/06/27 08:00
>>506
俺、VisualStudio も .NET も普通に使うけど、
川俣はいやだ。オピニオンって感想文とは違うんだけどな。

508 :デフォルトの名無しさん:02/06/27 08:37
>>506
MSマンセーの小デブのいうことなど知らん

509 :デフォルトの名無しさん:02/06/27 08:57
>>506
 なんかその文章の途中からC#をDelphiに置き換えてたら、俺の気持ちとよく会うなあ

Delphiを使うようになってから良くコードを書くようになった。
そして周りとは話が合わなくなった。


510 :デフォルトの名無しさん:02/06/27 09:28
>506
別に。
嫌でも次バージョンのDelphiで.NETはとりこまれるし、
その次でフル対応になるみたいだし。

511 :デフォルトの名無しさん:02/06/27 10:00
常に80%ってのは疑問だなあ
 自分でメモリ管理したい場合はそれなりの手間が必要だし
 インラインアセンブラでSIMDでゴリゴリとかだと0点近いだろし
 サンクとか、ネイテブコードを動的に作るとかコルーチンとか
 そんなテクニックを使いたい奴はどうする?

 自分の作りたいアプリで常に80%程度にしとけや!

512 :デフォルトの名無しさん:02/06/27 12:36
>>506
このデブ、前は「コードはなるべく書くな。」ってほざいてませんでした?

513 :Delフサギコ ◆zE1iiRdQ :02/06/27 13:25
            _____________
    ∧,,∧クルッ /昔、マ板に
  _ ミ,,゚Д゚彡_<  彼のスレが立ってたんじゃないかな
.=| |=ミ   ミ=| |= \
 | | ミ@ ミ | |     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 | | ∪''∪ | |
 | |      | |.

514 :デフォルトの名無しさん:02/06/27 15:38
>>506
読むに値しない駄文ですた。

515 :デフォルトの名無しさん:02/06/29 08:44
フサギコはねほんとはね、いぬなんだよ。

516 :デフォルトの名無しさん:02/06/29 10:55
フサギコはねほんとはね、ねこなんだよ。

517 :デフォルトの名無しさん:02/06/29 11:46
>>515
モナー板に帰る。

518 :デフォルトの名無しさん:02/07/01 09:16
定期age

519 :デフォルトの名無しさん:02/07/01 12:28
あの…
タスクバーもどきを作っているのですが、
タスクトレイに登録されているアプリケーションのハンドルを得るにはどうすればよいのでしょうか。タスクトレイのアイコンと、そのアイコンがクリックされたときの
メッセージを取得してタスクトレイのアプリケーションに送信、というのを実現したいのですが。


520 :デフォルトの名無しさん:02/07/01 18:50
>>519

難しそう。タスクトレイのクラスって、機能が公開されてない

521 :デフォルトの名無しさん:02/07/01 19:04
>519
ここで質問するよりWin32API質問箱に投げるべきだよな、これ。
Delphiには関係ないやん。

とりあえずLiteStepのソースを解析してみることをおすすめする。
ttp://indiestep.sourceforge.net/
これが理解できないなら諦めな。


522 :デフォルトの名無しさん:02/07/01 23:24
マルチポストはかっこわるい?
フサギコは夏の間毛を短くしないの?
暑苦しくないの?
意味不明?

523 :おながいします:02/07/01 23:35
522は放置でおながいします

524 :素人:02/07/02 00:00
>>519
TrayNotifyWnd
SysTabControl32
MSTaskSwWClass
この辺を検索すると、ど…どうにか…な…なるかなぁ…。

525 :デフォルトの名無しさん:02/07/02 18:10
Pちゃんの久しぶりの登場に何故かホッとしているのは自分だけですか?

526 :デフォルトの名無しさん:02/07/02 20:05
あんただけ。でもまだ生きてたのね。

527 :デフォルトの名無しさん:02/07/02 23:05
Pちゃんて、誰?

528 :デフォルトの名無しさん:02/07/03 00:32
>>527
pcode@mail.goo.ne.jp

529 :デフォルトの名無しさん:02/07/03 01:12
Pちゃん相変わらず低段者に優しい
吐田の突き放し過去ログ攻撃とえらい違い


530 :Delフサギコ ◆zE1iiRdQ :02/07/03 01:22
         ├だっちの投稿を見て、
  ∧,,∧   / フト思い出したですが
 ミ*゚Д゚彡< 桜島子宮ってなんか
  ミつ つ  \ やらしい響きがするんですが
〜ミ ,, ミ.  猫の思い過ごしですか?
  ∪ ∪   

531 :Delフサギコ ◆zE1iiRdQ :02/07/03 01:27
         _________
  ∧,,∧   /
 ミ;゚Д゚彡< でもタクちゃんには
  ミつ つ  \ 厳しいみたいだぞっと>>529
〜ミ ,, ミ.     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ∪ ∪   
そういえばpちゃんと言えば
黒い子豚だったような...

532 :デフォルトの名無しさん:02/07/03 01:27
猫?

533 :Delフサギコ ◆zE1iiRdQ :02/07/03 01:31
     アセアセ
   ∧,,∧ っっ
  ミ;,゚Д゚彡 っ   ワッ・・・ワン
   ミ ⊃⊂ミ
   ミ   ミ    
   ∪ ∪  ス デ ワスレテタ....イヌ ダッテ コトヲ

534 :デフォルトの名無しさん:02/07/03 01:39
認知度はいかほどか。彼らは主張を続ける・・・
http://aa.2ch.net/test/read.cgi/mona/1019790685/

535 :Delフサギコ ◆zE1iiRdQ :02/07/03 10:12
              _____________
  ,,,,,,,,,,,,,,,,∧,,∧   /P3とかP4とかセレとかモバP3とか
〜′,,,,,,,,,,ミ,,゚Д゚彡 < CPUの種類を出来る限り
  UU"""" U U    \プログラで求めたいのですが
           どうしりゃいいでしうか?
過去ログですか?

536 :デフォルトの名無しさん:02/07/03 10:29
どっか、CPUのレジスタ見ればPentium以降はわかるはづ
MMX/SSE/SSE2/3DNow/Enhanced3DNowとかのフラグもあるはず
右も左もわからんVB厨房がレスしてスマンコ

537 :埋め立て係 ◆UmeesDJs :02/07/03 10:30
静かにsageで無駄なカキコを大量生産し

538 :埋め立て係 ◆UmeesDJs :02/07/03 10:30
ごめん ゴバークした

539 :埋め立て係 ◆UmeesDJs :02/07/03 10:30
半年位洗ってなかったので、ヤニの塊が付着してますた

540 :デフォルトの名無しさん:02/07/03 10:30
>>535
CPUID 判定
あたりで検索

541 :埋め立て係 ◆UmeesDJs :02/07/03 10:30
二重投稿No〜〜〜〜〜〜〜っ!!

542 :無責任だが:02/07/03 11:40
ふう 暑かった。 閉じこもって仕事してたら昨日朝からクーラ壊れた。
組み込み技術者の意地で今直した所。
修理屋を呼びたかったけど、部屋が散らかりすぎてて恥ずかしくて断念。
2時間かかった。
 原因は過電流検出回路の信号用ダイオードが抵抗に化けていた事
 こんな電流の流れない所のダイオードが壊れるなんて驚き。

さあ後納期は1週間、まだ影しか出来てないけど頑張るぞ・・・・

543 :デフォルトの名無しさん:02/07/03 20:17
質問です。
このスレで毎日コミュニケーションズの「Delphiパーソナルプログラミング」という本を読んだことある方、いらっしゃいますか?
その中で実際ソフトを作る所で、グラフィックパズルとか作ってるんですけど、難しくないですか?
他の部分はほぼ完璧に理解してると思うんですが、実際作る所が理解できません。

544 :デフォルトの名無しさん:02/07/03 20:34
CPUの種類ってアセンブラでこねこねして出すんでしょ?

545 :デフォルトの名無しさん:02/07/03 21:31
そう。>>540のCPUIDで。

546 :Delフサギコ ◆zE1iiRdQ :02/07/04 09:59
自作しようと主タら、CPUIDで検索すると
もっといいソフトがみつかりましたので
作るのやめました。です。DLLもあるようですね
http://homepage2.nifty.com/smallroom/soft/soft.html
             ___________
    ∧,,∧     /
   ミ,,゚Д゚彡 <  ありがd。
   ミ つ日   \___________
 .@ミ,,,,,, ,,ミ

547 :デフォルトの名無しさん:02/07/04 23:57
>>546
そういわずにこれ、お読みなさいな↓
http://appzone.intel.com/scripts-util/download.asp?url=/jp/developer/jpdoc/24547003_j.pdf&title=IA-32+インテル(R)+アーキテクチャ・ソフトウェア・デべロッパーズ・マニュアル、上巻:基本アーキテクチャ&fullpg=3&site=jp
http://appzone.intel.com/scripts-util/download.asp?url=/jp/developer/jpdoc/24547103_j.pdf&title=IA-32+インテル(R)+アーキテクチャ・ソフトウェア・デべロッパーズ・マニュアル、中巻:命令セット・リファレンス&fullpg=3&site=jp
http://appzone.intel.com/scripts-util/download.asp?url=/jp/developer/jpdoc/24547203_j.pdf&title=IA-32+インテル(R)+アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル、下巻:システム・プログラミング・ガイド&fullpg=3&site=jp


548 :デフォルトの名無しさん:02/07/04 23:59
そのものズバリ↓
http://appzone.intel.com/scripts-util/download.asp?url=/jp/developer/jpdoc/24161819_j.pdf&title=AP-485+インテル(R)+プロセッサの識別と+CPUID+命令&fullpg=3&site=jp

549 :デフォルトの名無しさん:02/07/06 11:20
       
  ,,,,,,,,,,,,,,,,∧,,∧
〜′,,,,,,,,,,ミ,,゚Д゚彡
  UU"""" U U

550 :デフォルトの名無しさん:02/07/06 11:23
夏場は暑苦しい

551 :デフォルトの名無しさん:02/07/06 11:32
  ,,,,,,,,,,,,,,,,∧,,∧
〜′,,,,,,,,,,,,彡゚Д゚ミ
  UU"""" U U


552 :デフォルトの名無しさん:02/07/06 12:05
   _____________∧,,∧
o〜′__________(゚Д゚) <床屋行きました
  UU U U

553 :デフォルトの名無しさん:02/07/06 12:05
   _____________∧,,∧
o〜′__________(゚Д゚) <ずれ修正
  UU    U U

554 :デフォルトの名無しさん:02/07/06 14:21
  ,,,,,,,,,,,,,,,,∧,,∧
〜′,,,,,,,,,,,,彡゚Д゚ミ <また生えてきました
  UU"""" U U


555 :デフォルトの名無しさん:02/07/06 15:57
  ,;;;;;;;;;;;;;;;;∧;;∧,
〜′;;;;;;;;;;;彡;゚Д゚ミ <かえって、毛深くなってしまいました
  UU"'"'"'"U U

556 :デフォルトの名無しさん:02/07/06 23:11
Delphi広場がパス付きになりますた?

557 :デフォルトの名無しさん:02/07/06 23:28
VBScriptが壊れますた。

558 :デフォルトの名無しさん:02/07/06 23:58
(´-`).。oO(NT鯖いい加減やめようよ…)


559 :modoki ◆zVn/zRzw :02/07/07 00:46
例えば、スタートメニューの「ファイル名を指定して実行」の
参照ボタンのような、ファイル参照画面を出すのには
どうすればいいでしょうか?

560 :素人:02/07/07 00:53
出すっつーか、opendialogでいいんでないの?
自作しても良し。

561 :デフォルトの名無しさん:02/07/07 01:00
http://www.hidecnet.ne.jp/~sinzan/tips/win/win_tip15.htm
のコードを置き換えれば一応できますな

562 :素人:02/07/07 01:04
>>561
COMで、しかもCですなぁ。アッシはCOMはよく分かってないでやんすが、
559さんは分かってるでやんすかねぇ。

563 :デフォルトの名無しさん:02/07/07 01:07
>559
[Dialogs] の TOpenDialog を Formに置いて

if OpenDialog1.Execute then
  処理

こんなふー。

564 :西安 ◆CYANh33g :02/07/07 01:08
>>559
OpenDialog1.Execute
つーか、HSP から Delphi に転向か?(藁

565 :デフォルトの名無しさん:02/07/07 01:13
>>564
つーか、もう既に二人もこたえてる質問だよ(藁

566 :西安 ◆CYANh33g :02/07/07 01:15
>>565
書く直前にリロードかけてなかったんだよ。
悪かったな(藁

567 :素人:02/07/07 01:16
「スタートボタンのファイル参照ダイアログ」限定の話じゃなかったのか…?
単にopendialog?
どっち?

568 :modoki ◆zVn/zRzw :02/07/07 01:27
procedure TForm1.Button1Click(Sender: TObject);
var OpenDialog1: TOpenDialog;
begin
  OpenDialog1.Execute;
end;
end.
ボタンを作って、こう↑書いてみたんですが
押しても参照ダイアログが出ないですね。

>>563のようにオブジェクトをフォーム上に配置したらうまくいきましたが
こんな感じでやりたいことはすべてフォーム上にあらかじめ配置しておく
というのがDelphiの基本なのかな・・・?
イマイチイメージがつかめないけど勉強します。

569 :デフォルトの名無しさん:02/07/07 01:34
>>568
そりゃ、おぶぜくとをせーせーしてねーから。

var
 od : TOpenDialog;
begin
 od := TOpenDialog.Create(Self);
 if od.Execute then begin
  ほげほげ
 end;
 od.Free;
end;

570 :素人:02/07/07 01:35
>>568
なるほど(^^;。
先に言っておくと「アクションマネージャ」は無いのでチュートリアルは(略)。

571 :西安 ◆CYANh33g :02/07/07 01:35
>>568
そりゃ当然。
OpenDialog1 は変数宣言したはいいけど実体を生成してないし。

procedure TForm1.Button1Click(Sender: TObject);
var
OpenDialog1: TOpenDialog;
begin
OpenDialog1 := TOpenDialog.Create(nil);
OpenDialog1.Execute;
OpenDialog1.Free;
end;

みたいに自分で生成するか、フォームにあらかじめ配置するかしなきゃね。

572 :西安 ◆CYANh33g :02/07/07 01:36
またかぶったー(藁

573 :素人:02/07/07 01:39
ケコーンしませう(藁

つーか、「ポトペタ」って死語なのかねぇ…。

574 :デフォルトの名無しさん:02/07/07 01:40
>>569
と思ったのですが、TOpenDialogをフォーム上に配置したとき、
Unit1.pasのどこにもCreateしている個所が見当たらなかったです。
これは、どこか目に見えないところでDelphiの神様が
生成してくださっているのでしょうか?

575 :デフォルトの名無しさん:02/07/07 01:40
>>572
もうね、はげしくわろた

576 :デフォルトの名無しさん:02/07/07 01:41
>>574
{$R *.dfm}

577 :574:02/07/07 01:44
>>576
ありがとう。この中にその辺の仕掛けが入ってるんすね。
いつか勉強するとして、今日のところはおいときます。

>>572
(゚∀゚)空振りでも、その気持ち受け取った

578 :松ちゃん信者:02/07/07 01:45
>>574
ちっちゃいオッサンが大勢でPCの中でダイアログを一生懸命作っています。
解放するのも彼らです。        

579 :デフォルトの名無しさん:02/07/07 01:46
>>578
Inside Delphi の8章に詳しく載ってる(プロフィールつき)。

580 :デフォルトの名無しさん:02/07/07 01:56
TOpenDialog で、ファイルを選択ではなく フォルダを選択したいときは
どうするのでしょうか?
プロパティではとくに見当たらなかったので、できないということですか?

581 :ほどほどに:02/07/07 01:59
>>>580
569と同一人物ですか?検索しないと怒られますよ。

582 :569=580:02/07/07 02:04
>>581
同一人物です。
ヘルプは 「TOpenDialog フォルダ」 で検索しましたが
とくにそれらしい情報がなかったので。

ファイルを選択して、そこからパスを取得しファイル名部分を削除
という処理でいいのかな。

583 :デフォルトの名無しさん:02/07/07 02:04
>>580
SelectDirectoryをヘルプしてやれ

584 :デフォルトの名無しさん:02/07/07 02:05
>>581
(#・ж・)プンスカプン オコッタゾオ!

585 :素人:02/07/07 02:05
>>582
死ぬほどTIPSですよ。

586 :デフォルトの名無しさん:02/07/07 02:10
>>585
たぶん、死ぬほどFAQですよの間違い。これ、今日のポイントです。

587 :素人:02/07/07 02:12
そうそう。間違い間違い。FAQ。

588 :デフォルトの名無しさん:02/07/07 03:00
>>TOpenDialog で、ファイルを選択ではなく フォルダを選択したい

これって、「洗濯機でご飯を炊きたいんですけど」、という感じ
専用のダイアログを使えよ

589 :デフォルトの名無しさん:02/07/07 03:04

掃除機で洗濯したいですけど、Delphi ではどうしたらいいでしょう
「Delphi 掃除機」で検索しましたが見つかりません。

590 :MFCマソ:02/07/07 03:20
もうWindowsはDelphiでいいじゃないか
なあ。

591 :デフォルトの名無しさん:02/07/07 03:46
>>589
わかり辛いネタですが何はともあれ検索してみました。
http://www.google.com/search?num=50&hl=ja&lr=lang_ja&q=Delphi%20掃除機

あなたが求めているのは「窓の手」付属の「不要ファイル掃除機」でよろしいですか?

592 :デフォルトの名無しさん:02/07/07 03:46
>>589
ヘルプ詠め。

593 :デフォルトの名無しさん:02/07/07 03:47
http://www.google.com/search?num=50&hl=ja&ie=Shift_JIS&q=Delphi+%91%7C%8F%9C%8B@&lr=lang_ja
ごめんアドが変でした

594 :デフォルトの名無しさん:02/07/07 04:20
なんでもいいんじゃないでしょうか

595 :Delフサギコ ◆zE1iiRdQ :02/07/07 04:22
             ___________
    ∧,,∧     /
   ミ,,゚Д゚彡 <  初心者スレで話題にしたネタですが
   ミ つ日   \___________
 .@ミ,,,,,, ,,ミ  

列挙型⇔文字列
集合型⇔文字列の相互変換関数

作りました。
Iniファイルの値保持時などに使うと
キットいい感じ。

列挙型⇔文字列、集合型⇔文字列の相互変換
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1025982772

596 :デフォルトの名無しさん:02/07/07 04:30
めがびはイヤン

597 :デフォルトの名無しさん:02/07/07 05:01
改行コードって \n じゃないの?

598 :デフォルトの名無しさん:02/07/07 07:35
sBreakLine使え

599 :Delフサギコ ◆zE1iiRdQ :02/07/07 10:04
  ∧,,∧
 ミ,,゚Д゚彡 なんで集合型はByteにキャストできるんですの?
Byte0..255符号なし 8 ビット
256パターンしか判別できなさそうなんだけど....

ふと疑問思いました。

600 :デフォルトの名無しさん:02/07/07 10:10
type
 TNumber = 0..512;
 TNumbers = set of TNumber;

こんなのをコンパイルしてみると

「集合型は 256 個以下の要素しか持てません」

なんていうエラーが出ました
だからByte型より大きい型にキャストする必要がないんでない?
ちなみにDel6です

601 :デフォルトの名無しさん:02/07/07 11:58
>>599
そのまんまでしょ。。。

602 :Delフサギコ ◆zE1iiRdQ :02/07/08 01:54
  ∧,,∧
 ミ⊃Д`彡 ウワーン
回答を楽しみに2ch来たのにー...

なんか俺が激しく勘違いしてるのか
質問の意味が通じてないのか、どっちかで
さっぱりワカメだよー


えっと、集合型、set of TNumberは

たとえば
TNumber = (n0, n1, n2, ... , n255); //≒TNumber = 0..255;
って定義されているものを

複数個まとめて

[n0, n1, n2, n5, n100, n254]

とか管理できるもんだと思うのですが

そうすると
256個それぞれに対して集合の中の有る無しを
調べなければならなくて
256個の所にそれぞれ2進数のフラグ値が必要なんじゃないかと....

あ、あ、、、きっと俺が激しく勘違いしてるんだろな。
  ∧,,∧
 ミ⊃Д`彡 ウワーン

603 :Delフサギコ ◆zE1iiRdQ :02/07/08 01:55

  ∧,,∧
 ミ⊃Д`彡 ウワーン、ageてやる

やっばし、激しくわけわかりません。

適当に調べてるさいちうに書いたコード
type
TEnumNumber = 0..7;
TEnumNumbers = set of TEnumNumber;

procedure TForm1.Button3Click(Sender: TObject);
var
EnumNos: TEnumNumbers;
B: Byte;
begin
B := Byte(EnumNos);
end;

このコードはコンパイル通るのに

TEnumNumber = 0..8;

にすると"正しくない肩キャスト"エラが出るんです。

これはなせ?

604 :西安 ◆CYANh33g :02/07/08 02:33
>>603
1byte は 8bit なんだから Byte では 8 パターンの T or F しか表現できないのでは?
すなわち 0..7。

605 :西安 ◆CYANh33g :02/07/08 02:37
>>603
違った、ずれてる。
だから 0..8 だと 8bit で表現できなくて Byte より大きい型でキャストしないといけないのでは?
多分 WORD。

606 :Delフサギコ ◆zE1iiRdQ :02/07/08 02:39
  ∧,,∧  
 ミ⊃Д´> ウワーンニダ

2^8=256でByteで表現できたよー

でも、それだったら
Byteにキャストできるのは
要素が8個の列挙型だけじゃない!

もっとたくさん要素ある列挙型は何に
キャストしたらよいの?

  ∧,,∧  
 ミ⊃Д`彡 ウワーンヤッパワカナイヨ

607 :Delフサギコ ◆zE1iiRdQ :02/07/08 02:48
試したら
Byte8個>>Word16個>>Longword32個
の要素数でキャストできるけど・・・

  ∧,,∧  
 ミ⊃Д`彡 ウワーン、それ以上キャストする肩がないよ-

そんでもって、要素数によって
キャストコード変えなきゃいけなくて、鬱

   ∧,,∧  
  <⊃Д´> ウワーン、某ランドは
         イルポンに謝罪しるニダ

608 :西安 ◆CYANh33g :02/07/08 02:53
type
TEnumNumber1 = 0..7;
TEnumNumbers1 = set of TEnumNumber1;
TEnumNumber2 = 0..15;
TEnumNumbers2 = set of TEnumNumber2;
TEnumNumber3 = 0..23;
TEnumNumbers3 = set of TEnumNumber3;
TEnumNumber4 = 0..31;
TEnumNumbers4 = set of TEnumNumber4;
TEnumNumber5 = 0..39;
TEnumNumbers5 = set of TEnumNumber5;
TEnumNumber6 = 0..47;
TEnumNumbers6 = set of TEnumNumber6;
TEnumNumber7 = 0..55;
TEnumNumbers7 = set of TEnumNumber7;
TEnumNumber8 = 0..63;
TEnumNumbers8 = set of TEnumNumber8;

procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.Lines.Add(IntToStr(SizeOf(TEnumNumbers1)));
Memo1.Lines.Add(IntToStr(SizeOf(TEnumNumbers2)));
Memo1.Lines.Add(IntToStr(SizeOf(TEnumNumbers3)));
Memo1.Lines.Add(IntToStr(SizeOf(TEnumNumbers4)));
Memo1.Lines.Add(IntToStr(SizeOf(TEnumNumbers5)));
Memo1.Lines.Add(IntToStr(SizeOf(TEnumNumbers6)));
Memo1.Lines.Add(IntToStr(SizeOf(TEnumNumbers7)));
Memo1.Lines.Add(IntToStr(SizeOf(TEnumNumbers8)));
end;

結果
1
2
4
4
5
6
7
8

609 :600:02/07/08 04:26
(つД`) ウワァァァン
漏れも激しく勘違いしてたみたいだ
何で256個も要素をもてるのにByte型で十分なんだよー
鬱だし脳

610 :デフォルトの名無しさん:02/07/08 04:33
>>607
64個までならInt64型があるよ

type
 TNum = 0..63;
 TNums = set of TNum;

procedure TForm1.Button1Click(Sender: TObject);
var
 num: Tnums;
 i: Int64;
begin
 i := Int64(num);
end;

これでコンパイル通ったよ

611 :デフォルトの名無しさん:02/07/08 06:31
Delフサギコってしお韓住人だったのか・・・

612 :デルファイの名無しさん:02/07/08 08:17
そもそも、何故整数型にキャストする必要があるのでしょ?
set A は元々 superbitpacked array[A] of Boolean みたいなものだし。

単に集合→文字列変換の関数の引数に総称的に渡したいとかなら
型無しconstパラメータで充分な気が。

613 :デフォルトの名無しさん:02/07/08 11:53
集合はビットの配列で,各ビットはその集合に各要素が含まれるかどうかを示します。集合の要素の最大数は 256 です。 したがって,集合が 32 バイトを超えることはありません。集合のバイト数は次の式で計算します。

(Max div 8) - (Min div 8) + 1

Min と Max は集合の基本型の下限と上限です。特定の要素 E が何バイト目かは次の式でわかります。

(E div 8) - (Min div 8)

そのバイト内で何ビット目かは次の式でわかります。

E mod 8

E は要素の順序値を表します。可能であればコンパイラは CPU レジスタに集合を格納しますが,集合が汎用整数型より大きい場合,または集合のアドレスを取るコードがプログラムに含まれている場合は,集合は常にメモリに格納されます。

614 :デフォルトの名無しさん:02/07/08 18:22
>>607
>ウワーン、それ以上キャストする肩がないよ-

こんなのどうでしょうか。

type
 TNum = 0..255;
 TSetNum = set of TNum;
 TSetCast = array[0..31] of Byte;

function ByteToBitStr(bt:Byte):string;
var
 i:integer;
begin
 result := '';
 for i := 0 to 7 do begin
  if Odd(bt) then
   result := '1'+result
  else
   result := '0'+result;
  bt := bt shr 1;
 end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
 SN:TSetNum;
 SC:TSetCast;
 s:string;
 i:integer;
begin
 SN := [3,8,255];// Test
 SC := TSetCast(SN);
 s := '';
 for i := 0 to 31 do
  s := ByteToBitStr(SC[i])+' '+s;
 Memo1.Lines.Add(s);
end;

615 :デルファイの名無しさん:02/07/08 20:14
>595
Delphi6のTypInfo.pasに、SetToString/StringToSetを見つけてしまったのは気のせいでしょうか

616 :Delフサギコ ◆zE1iiRdQ :02/07/09 01:19
 ∧,,∧  >>615
ミσ゚Д゚ミσ そのソースはすでにしこぶる参考にしてますです。

TypInfoのヤシはどうやらプロパティに限定した
使い方を想定してるみていですね。

 ∧,,∧  >>614
ミσ゚Д゚ミσ byte/word/longwordなどにキャストするのではなく
        array[0..31] of Byte;
        とかにキャストしるってことですね。
        参考にしたいと思います。

 ∧,,∧  >>612
ミσ゚Д゚ミσ 俺のもっとも尻鯛情報を知ってなさるような気がシルニダ<`Д´>
      
 ∧,,∧  >>610
ミσ゚Д゚ミσ サンコスク

617 :デルファイの名無しさん:02/07/09 01:58
function SetToStr(TypeInfo: PTypeInfo; const Value; Brackets: Boolean = True): string;
type
 ByteSet = set of 0..7;
var
 ByteValue: ^ByteSet;
 I, M: Integer;
 ElemTypeInfo: PTypeInfo;
 ElemTypeData: PTypeData;
begin
 Result := '';
 ElemTypeInfo := GetTypeData(TypeInfo)^.CompType^;
 ElemTypeData := GetTypeData(ElemTypeInfo);
 ByteValue := @Value;
 for I := ElemTypeData^.MinValue to ElemTypeData^.MaxValue do
 begin
  M := I mod 8;
  if M in ByteValue^ then
  begin
   if Result <> '' then
    Result := Result + ',';
   Result := Result + GetEnumName(ElemTypeInfo, I);
  end;
  if M = 7 then Inc(ByteValue)
 end;
 if Brackets then
  Result := '[' + Result + ']';
end;

618 :デルファイの名無しさん:02/07/09 02:02
…というわけで整数型を介する必要なんて無いんですね。
Delフサギコさんは某ランドに謝罪して下さい(w

619 :Delフサギコ ◆zE1iiRdQ :02/07/09 06:17
           _____________
   ∧,,∧    /
  ミ,,゚Д゚彡 < StrToSetはどうやって作るのでしょうか?..
   U  つ   \戻り値に肩無しConstは無理だろうし...
 @ミ  ミ       ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ∪''∪ 
           _____________
   ∧,,∧    /
  <ヽ`Д´> < まだまだ謝罪を要求するニダ
   U  つ   \
 @ミ  ミ       ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ∪''∪ 

620 :デルファイの名無しさん:02/07/09 07:36
type
 TMaxSet = set of Byte;
 PMaxSet = ^TMaxSet;

function StrToSet(TypeInfo: PTypeInfo; const Value: string): TMaxSet;

という宣言を持ち

type
 TEle = (e00, e01, …(中略)… e38, e39);
 TRan = e01..e35;
 TSet = set of TRan;
var
 A: TSet;
begin
 PMaxSet(@A)^ := StrToSet(TypeInfo(TSet), 'e10 e20');

という使い方で動作する関数StrToSetを作ることができた、とだけ言っておきましょう…
なんか悔しいので中身は教えてあげない。

ヒント: メモリを破壊する心配は不要。レジスタに収まらない戻り値は、
呼びだし側が確保したバッファのアドレスが渡されるので、使う分だけ書き換えればOK。

( まあこんな事しなくても procedure StrToSet(…, out Result); でいいですけどね )

621 :デフォルトの名無しさん:02/07/09 11:05
FAQのサイトが軒並みダウン

622 :デフォルトの名無しさん:02/07/09 12:36
<ヽ`Д´> < Delフサニダに改名するニダ!

623 :デフォルトの名無しさん:02/07/09 12:40

  ,,,,,,,,,,,,,,,∧,,∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′,,,,,,,,,<ヽ`Д´><  DelphiやBorlandについて熱く語るニダ
 UU"""" U U    \_________


624 :デフォルトの名無しさん:02/07/09 18:14

スレッドクラスから、フォームを表示する方法を教えてください。

procedure TManager.Execute;
var
BForm : TForm2;
begin
{ ToDo : スレッドとして実行したいコードをこの下に記述してください }
BForm := TForm2.Create(Application);
BForm.Visible := true;
end;
end.

と、スレッドクラスでやってもフォームが表示されません。

中身の二行を最初のフォームのボタンのイベントの中に書いたら
表示することができたのに。 なんで?

ちなみに、スレッドの起動は、同じように最初のフォームのボタンのイベント内に
MyThread := TManager.Create(true);
MyThread.Application := Application;
MyThread.Resume;
などと書いております。 よろしくおながいします。

625 :デフォルトの名無しさん:02/07/09 18:38
別スレッドでウィンドウつくってもメッセージループが回っていないのでは。
オレだったらメインスレッドにメッセージ送って From2 を作らせる

626 :624:02/07/09 22:38
>>625
Application.CreateForm(TForm2, Form2);
これをシンクロで呼んだりしてもいいのかな?

デバッガで動作を追ってみると、新しく作ったスレッドからTForm2.Create(Application); を実行するとその次の行のBForm.Visible := true;が実行されていませんでした。
イベントディスパッチャにでも化けてるんですかね?


627 :デフォルトの名無しさん:02/07/09 23:55
ん?Delフサギコがカミングアウトしたのか?

628 :624:02/07/10 00:26
やってみました。 シンクロ。

procedure TManager.Execute;
begin
{ ToDo : スレッドとして実行したいコードをこの下に記述してください }
//BForm := TForm2.Create(Application);
Synchronize(CreateForm);
end;

procedure TManager.CreateForm;
begin
BForm := TForm2.Create(Application);
BForm.Visible := true;
end;

で成功しました。

なぜ?メッセージループってプロセスの共通リソースで管理してるものじゃないの?
新フォームのメッセージループへメッセージをApplicationが振り分けてくれる必要があるとおもうのだけど、これはApplication.Runを実行したスレッドでないと登録してくれないってことでしょうか。
別スレッドでフォームを作ると帰ってこないので、やっぱり新メッセージループを作ってるのでしょうか。
だとすると、Windowのハンドルをなんとか捕まえてVisibleにすれば見えると思うのだけど、そこまで実験できませんでした。
Application.CreateFormとTForm2.Create(Application)の違いもわかりませんでした。


629 :625:02/07/10 01:17
>>メッセージループってプロセスの共通リソースで管理してるものじゃないの?

詳しくは知りませんが、メッセージキューは、ウィンドウを作るスレッドごとに
ウィンドウズによって作られます。ですから、ウィンドウを作って、メッセージ
ループをまわさないスレッドはそこで止まります。これを避けるために、
VCLのオブジェクトをつくるメソッドはメインスレッドで実行するように
TThread.Synchronize があるのですね。こうすると、メインスレッドの
Application.Run の中のメッセージループの圏内に入るのですね。
TWinControl の派生クラスをメインスレッド以外で作るときは、
Synchronize を使うか、Form1 に適当なメッセージ(WM_APP+55とか)
を投げて、そのハンドラに作らせればよいのかな。ウィンドウをつくらない
スレッドにはメッセージキューは割り当てられません。

630 :デルファイの名無しさん:02/07/10 01:26
>620に自己レス。

CPUウィンドウで確認したところ、最適化の状況(Aの割り当てられ方など)によってメモリを破壊する事が判明。
嘘情報書いてしまいました。

やはり、procedure StrToSet(TypeInfo: PTypeInfo; const Value: string; out Result): とするしか無いかも。

631 :625:02/07/10 01:41
>>Application.CreateFormとTForm2.Create(Application)の違いもわかりませんでした

これは TApplication.CreateForm のソースを読むと分かるが、
MainForm(デフォルトでは Form1) 以外のインスタンスを作るときには
ほぼ同じだと思います。

632 :624:02/07/10 13:08
>>629
メッセージキューがスレッドを区別してるわけですか。

既にメッセージキューを持っているスレッドなら、新しいウィンドウのイベントもそのキューを使うわけですね。
で、新しいメッセージのディスパッチルーティンを実行してくれるわけですか。
C++風に解釈すると、ディスパッチルーティンをチェーンできるように関数へのポインタが一つ空けてあって、それを使ってチェーンしていくのかな?

考えてみると、OSはキューにイベントを入れた後、コールバックでディスパッチルーティンを非同期で呼び出す必要があるわけですが、このときにスレッドを指名する必要がありますね。
もし指名できないなら、そのプロセスの全てのスレッドにタイムスライスを与えてみるとか…激しくリアルタイムで無くなりそうですけど。 まさかメッセージループを処理するようなイベントを送ればいいなんて言えないし(w

そういうと、MFCにもメッセージを処理するスレッドと処理しないスレッドがあったような気がします。
忘れていました。


633 :625:02/07/10 21:32
>メッセージキューがスレッドを区別してるわけですか。

まぁ、そうとも言えますが、OSがウィンドウにメッセージをポストするとき
そのウィンドウをつくったスレッドのキューに入れる、ってことですね。

>既にメッセージキューを持っているスレッドなら、新しいウィンドウのイベントもそのキューを使うわけですね。

そうです。動的に TForm2 のインスタンスをつくっても動くのはそのためです。

>で、新しいメッセージのディスパッチルーティンを実行してくれるわけですか。

いえ、ひとつのメッセージキューには、最低ひとつのメッセージループがあれば
よいのです。これは、Delphi の GUI アプリの場合は Application.Run の
中にあります。

>OSはキューにイベントを入れた後、コールバックでディスパッチルーティンを非同期で呼び出す必要があるわけですが

いや、キューにポストして、たんにそのスレッドにタイムスライスを与えてメッセージループ
を回すだけです。メッセージループが、キューからメッセージを取り出して、DispathMessage()
でコールバック関数(ウィンドウ関数)を呼び出します。ですから、GUI アプリの
メインルーチンは、メッセージループだけであり、キューを経由するメッセージはもちろん
SendMessage() で送られたメッセージもすべて、メッセージループのなかの PeekMessage()
または GetMessage() が実行されるタイミングで、メッセージ処理ハンドラが呼び出している
と解釈しても間違いではありません。ハンドラを直接・間接に呼び出しているわけですから、
各ハンドラの処理が終わると、また、メッセージループに制御が戻り、それがまわって
次のメッセージ処理を行なうわけです。


634 :デフォルトの名無しさん:02/07/10 22:15
>>633
×メッセージ処理ハンドラが
○メッセージ処理ハンドラを

スマヌ

635 :デフォルトの名無しさん:02/07/10 22:46
基本的に4行以上は読みません

636 :624:02/07/10 23:25
>>633
>まぁ、そうとも言えますが、OSがウィンドウにメッセージをポストするときそのウィンドウをつくったスレッドのキューに入れる、ってことですね。
あ、スレッドのスタックを使ってるんだ。 ふーん。

>いえ、ひとつのメッセージキューには、最低ひとつのメッセージループがあればよいのです。
メッセージループとディスパッチルーティンを混同しておりました。DispathMessage()とやれば、OSが適切なディスパッチルーティンへ振ってくれるんですねェ。

あと、メッセージループって回りっぱなしなんですね。メッセージなくなったら空回りしてるんでしょうか?
スレッドがサスペンドしてるのかと思ってたのですが。

637 :デフォルトの名無しさん:02/07/10 23:45
>>メッセージループって回りっぱなしなんですね。

無駄に実行することがないように、GetMessage() では、キューにメッセージが
入るまではサスペンデッドになりますね。VCLでは OnIdle を呼ぶために、
PeekMessage() と WaiteMessage() でやはり無駄な実行を防いでいます。

ですから、あまり空回りはしてませんよ。

638 :624:02/07/11 00:01
>>637
なんだ、そうかなとはおもったんだけどね(w

で、スレッドのスタックを使っているって言うことは、
あるスレッドで作ったウィンドウへのディスパッチを別のスレッドのメッセージループから行うって言うのは無理なのかな。
これができれば、ウィンドウの乗っ取りができるようになるんだろうけどなぁ。
OSの管理してる構造体にアクセスする必要があるのかなぁ。


639 :624:02/07/11 00:01
>>637
レスありがとうございます。

640 :Delフサギコ ◆zE1iiRdQ :02/07/11 00:09
 ミ,,゚Д゚彡 新幹線で名護ひゃに足止めされた。。。
       やっと動きだした〜よ
     東京は雨やんでるかしら。到着はいつになるかしら
。。。

641 :デフォルトの名無しさん:02/07/11 00:15
同じ車両か?

642 :デフォルトの名無しさん:02/07/11 00:22
>あるスレッドで作ったウィンドウへのディスパッチを別のスレッドのメッセージループから行うって言うのは無理なのかな。

GetMessage() も PeekMessage() も取り出す先のキューを指定するパラメータ
がありません。暗黙にそのコードが書かれているスレッドのキューを対象にしている
のですね。ですから、別スレッドのメッセージキューを直接覗く手段はありません。
フック関数をインストールするとGetMessege() 直後のメッセージを覗き見することは
できると思います。メッセージを加工することはできませんが。

643 :デフォルトの名無しさん:02/07/11 00:54
pcodeきたじまがまたMLでどうでもいい発言してるんですが
どなたか退会コマンドを代って打って下さい。

644 :デフォルトの名無しさん:02/07/11 02:57
>>643
こんな所で苦情言ってる場合か、
オマエにはオマエにしか出来ない事、
オマエのやるべき事があるだろ
まずそっちを片付けてから出直して来い


645 :デフォルトの名無しさん:02/07/11 10:53
本人?

646 :デフォルトの名無しさん:02/07/11 16:16
んなわけねーよな

647 :チェキナ名無しさん:02/07/11 18:11
>フサギコさんて 
ほの板にも いらっしゃいませんでした?
同じ人ですか?

648 :デフォルトの名無しさん:02/07/11 18:29
遅レスだけど、>>620

もし、
>>620ホントにコード書いたのか?」
って疑ってるヤシが居るかもしれないってのが気になるなら、
PGPとかで暗号化してからコードをカキコ、
パスフレーズをあとから公開って手でちゃんと書いたって
証明できるよ。

とりあえず参考までに。


>>647
Delフサギコと単なるフサギコは別物だと思われ。

649 :デフォルトの名無しさん:02/07/11 20:13
>>647
フサギコはクラスオブジェクトです。


650 :デフォルトの名無しさん:02/07/11 22:30
>>649
インスタンスの一つがDelフサ?

651 :デフォルトの名無しさん:02/07/11 22:52
継承図

AA

2chキャラ

ギコ――――――
↓          ↓
フサギコ     Delギコ
↓          ↓
Delフサギコ  ←



652 :デフォルトの名無しさん:02/07/11 23:33
>>651
ギコ――――――
↓          ↓
フサギコ     Delギコ
↓          ↓
Delフサギコ  ←

なんかやな継承だな・・・。
Delphiをインターフェースとした方がスッキリしそう。

653 :デフォルトの名無しさん:02/07/11 23:48
なんか変なスレになってきたねぇ…

654 :デフォルトの名無しさん:02/07/12 00:35
TGikoHanyan=class(T2chAAChar)
 procedure Itteyosi;
 procedure Golaa;virtual;
end;

TGikoFussell=class(TGikoHanyan)
 procedure Fusafusa;
 procedure Golaa;override;
end;

TDelGikoFussell=class(GikoFussel)
 procedure DelphiOperation;
procedure DelphiNeta;
end;


655 :デフォルトの名無しさん:02/07/12 02:52

  喝!

悪しきマ板の流れを止めよう。
---------------------------------------------

656 :デフォルトの名無しさん:02/07/12 02:55
マ板がどーしたって?

657 :デルファイの名無しさん:02/07/12 06:34
>>648
ありがとうございます。
でも>>630にも書いたのですが、状況によって使えないのであれは無かったという方向で

658 :Delフサギコ ◆zE1iiRdQ :02/07/12 09:35
           _____________
  ∧,,∧    /
  ミ,,゚Д゚彡 < out使っても俺には実装できんがな
  ,;゙  ミ     \_____________
 ミ.  ミ
/゛゛゛゛ なんかAccessVaioが出るの.

659 :デフォルトの名無しさん:02/07/12 15:09
>>654
TGikoFussell.Fusafusaはpropertyだと思われ。
しかし型が何かわからない罠

660 :Delフサギコ ◆zE1iiRdQ :02/07/12 17:10
            _____
   ∧,,∧    /
   ミ;゚Д゚,,ミ < なついあつですねー
   ミ つ つ  \_____
 @ミ   ミ
   (ノ'''''∪

           _____________
    ⌒    /
   /⌒ヽ <  そろそろ衣替えの季節
  ( ヾ''""ツ, \__________
 @| ミ    彡
   (ノミ ゝ ゞミ
    彡,,o,...oヾ 

            _____________
    ∧ ∧   /
   (*゚Д゚) <  すっきりんこ
   ( つ⊂)  \_______
  @|   ,.|,.,
    (ヾ''"_, _,."彡.  
    彡,,,,,o,...o,,..ヾ 

661 :デフォルトの名無しさん:02/07/12 23:36
>>660
Delニダーが出てくると思ってたのに・・・。

662 :デフォルトの名無しさん:02/07/13 01:06
>>652
Delphiでは多重継承はできません。

663 :デフォルトの名無しさん:02/07/13 01:11
>>659

type
TFusafusa = (ffNone, ffShort, ffMiddle, ffLong, ffHuge);

property Fusafusa: TFusafusa read FFusafusa write FFusafusa;

かな?

664 :デフォルトの名無しさん:02/07/13 01:11
  Λ_Λ   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 <=(*゚Д゚) < 俺DelギコだけどDelphiの起源は朝鮮なんだよ
 (    )  \__________
 || |    
 〈_フ_フ


665 :デフォルトの名無しさん:02/07/13 22:41
もしかしたら「フサフサだぞ」という台詞のことかも。

666 :Delフサギコ ◆zE1iiRdQ :02/07/14 12:59
       エットー
     ∧,,∧   いまさらながら質問す..
    ミ,,゚Д゚彡  まだ文字列→集合型の変換で
     ミ つ⊂ミ   out指定しても、うまくキャストできませんです。
     ミ   ミ  
     ∪ ∪   教えてくださいませませ
         
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1025982772&res=5

667 :Delフサギコ ◆zE1iiRdQ :02/07/14 16:09
     ∧,,∧  まさか毛皮を脱いだから
    ミ   彡   答えてもらえないなんて、
    (o   ミ   そんなことないよね..................................
     ミ ν ミ  
     ∪ ∪  暑くなってストリーキングしたくなること
          誰だってあると思うんだ。

|
| ∩
|∀`) < ねえよ
| ⊂)
| /
|/

668 :デルファイの名無しさん:02/07/14 16:27
procedure StrToSet(TypeInfo: PTypeInfo; const Value: string; out Result);
 function NextWord(var P: PChar): string;
 var I: Integer;
 begin
  while P^ in [',', ' ', '[', ']'] do Inc(P);
  I := 0; while P[I] in ['A'..'Z', 'a'..'z', '0'..'9', '_'] do Inc(I);
  SetString(Result, P, I); Inc(P, I);
 end;
type TMaxSet = set of Byte;
var
 ElemTypeInfo: PTypeInfo; ElemTypeData: PTypeData; P: PChar;
 EnumName: string; I, ElemValue: Integer;
begin
 ElemTypeInfo := GetTypeData(TypeInfo)^.CompType^;
 ElemTypeData := GetTypeData(ElemTypeInfo);
 for I := ElemTypeData^.MinValue to ElemTypeData^.MaxValue do Exclude(TMaxSet(Result), I);
 P := PChar(Value);
 repeat
  EnumName := NextWord(P);
  if EnumName = '' then Break;
  ElemValue := GetEnumValue(ElemTypeInfo, EnumName);
  if ElemValue < 0 then
   raise EConvertError.CreateFmt(SInvalidPropertyElement, [EnumName]);
  Include(TMaxSet(Result), ElemValue);
 until False;
end;

669 :デルファイの名無しさん:02/07/14 16:34
で、>>617と併せて、最大である256要素までおっけーな変換関数ということで。
Excludeで必要なとこだけ消しているのが一応ポイントかなあ…

Delフサギコさんのは、いきなりset 0..63固定で空集合を代入しているので、
サイズが異なる変数を渡していると上手くいかないのだと思います。
…正直、Int64にこだわっている辺り、「人のいうこと聞いてねー」思いますた

670 :デルファイの名無しさん:02/07/14 16:38
ついでに、GetEnumName/GetEnumValueがChar/WideCharに対応していないことを発見しました。
tkChar/tkWCharの処理を書き足すだけなのに…

671 :デルファイの名無しさん:02/07/14 16:47
もうひとつ追記(汗

>>617のコードでは、最小値が8以降の集合で誤動作します。
MとByteValueを撤廃し、要素の判定を「if I in TMaxSet(Value) then 〜」に置き換えて下さい。

672 :Delフサギコ ◆zE1iiRdQ :02/07/14 16:51
>>668コードでこんなんしたら、

Enums01A := [0, 1, 7];
StrToSet(TypeInfo(TEnumNumber01), '[0,1,7]', Enums01B);
Check(True, Enums01A=Enums01B);


---------------------------
デバッガ例外が発生
---------------------------
プロジェクト Project1.exe が EAccessViolation クラスの例外を生成しました。
'モジュール 'Project1.exe' のアドレス 00453714 でアドレス 00000000 に対する読み込み違反がおきました。'
プロセスは停止しています。再開するにはステップ実行または実行を選択してください。
---------------------------
OK ヘルプ(H)
---------------------------
           _____________
   ∧,,∧∩  /
  ミ,,゚Д゚ 彡< 先生!!こんなんでました...!
__ミ ミ  ミ   \___________________
\,,∪  ̄ ̄ ̄\
||ヽ|| ̄ ̄ ̄ ̄||"
 ...|| ̄ ̄ ̄ ̄||

           _____________
   ∧,,∧∩  /Delフサギコさんは
  ミ,,゚Д゚ 彡< 「人の言うこと聞いてねー」よりむしろ
__ミ ミ  ミ   \「人の言うことよくわからな」
\,,∪  ̄ ̄ ̄\  になってる、思い素股。
||ヽ|| ̄ ̄ ̄ ̄||"
 ...|| ̄ ̄ ̄ ̄|| 悪気ないんだけど、理解できないの....(スマンコ


673 :デルファイの名無しさん:02/07/14 17:05
引数に渡すのは集合型の型情報です。
TEnumNumber01とやらがリンク先のものだとしたら、TEnumNumber"s"01の方を渡してみて下さいな

674 :Delフサギコ ◆zE1iiRdQ :02/07/14 17:52

♪  .∧,,∧ ♪    >>673のヒントでできました!
   ,ミ,,゚Д゚ミ.  ♪  
   ミ,,つ[|lllll]).    ありがとうです。
 〜 ミ,, ,,,..ミ
    ∪ ∪    集合型の基本形ってこんなして求めるんですね。


>617のコードでは、最小値が8以降の集合で誤動作します。
ってのは、わからないです。
基本形の最小値が8以下ってことでしょうか?
(調べてみまする

675 :Delフサギコ ◆zE1iiRdQ :02/07/14 18:52
>>617を以下のようにしてみました、  ミ゚Д゚,,彡

function SetToString(Info: PTypeInfo; const Value;
Brackets: Boolean = True): string;
type TMaxSet = set of Byte;
var
 ElemTypeInfo: PTypeInfo;
 ElemTypeData: PTypeData;
 I: Integer;
begin
 Result := '';

 ElemTypeInfo := GetTypeData(Info)^.CompType^;
 ElemTypeData := GetTypeData(ElemTypeInfo);

 for I := ElemTypeData.MinValue to ElemTypeData.MaxValue do
 begin
  if I in TMaxSet(Value) then
  begin
   if Result <> '' then
    Result := Result + ',';
   Result := Result + GetEnumName(ElemTypeInfo, I);
  end;
 end;
 if Brackets then
  Result := '[' + Result + ']';
end;

これで動作していますが
無理やり、集合型に範囲外の値を代入した場合
たとえば以下のように。
type
 TMyEnum = (mrOne, mrTwo, mrThree, mrFour);
 TMyEnums = set of TMyEnum;

  Include(MyEnums, TMyEnum(5));
  Check( '[]', SetToString(TypeInfo(TMyEnums), MyEnums) );

このとき、SetToStringの関数内部でEConvertErrorを発生させたいと
思っているのですが、どうやったら、できるですか?

SetToStringに入る直前でヲッチ窓でみると

MyEnums: [(範囲を超えています) 5]

こんな表示がされているので、変な値が入っていることは
確認できるのですが。

676 :Delフサギコ ◆zE1iiRdQ :02/07/15 10:26
  ミ,,゚Д゚ミつ
SetToStringに問題があるのではなくて
無理やり代入できるIncludeの仕様がおかしいと
気が付きますた。

Includeは
Set := Set + [これ,あれ]
より高速っていうのは、ある意味罠かもですのね。

ということで、
   ∧,,∧   ありがdございますた
  ,ミ。_。ミ 感謝感謝.
  ミ∪  ∪  

677 :デルファイの名無しさん:02/07/15 12:29
そう言えばDelphi6からEnum = (e0 = 0, e9 = 9);みたいな宣言が可能になった筈。
この中間の無名の値はGetEnumNameでどう処理されるのだろう…と試してみたのですが。

型情報を持っていないといわれて撃沈しました。

678 :デフォルトの名無しさん:02/07/15 12:31
>>676 それは無理やり代入する方が悪いだろう。
 Includeは単に
  MyEnums or (1 shl ord(5))
 に置き換わるから高速なわけで

必要なら TMyEnum(5)で例外を出せば良いのでは?

182 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)