Delphi相談室その8

このエントリーをはてなブックマークに追加
952ねこま:03/02/19 23:15
PopupList.Window の WindowProc を置き換えれば WM_CLOSE が来ないかなぁ?
試してないけど.
>>952
>WM_CLOSE

それ≒終了するとき

だと思われ。
954sage:03/02/20 00:33
ShellListViewでクリックしたファイル(フォルダ)のファイル名を取得したいのですがどのようにすればよいでしょうか?

if (ShellListView1.Selected <> nil) then
begin
ShowMessage(ShellListView1.Selected.Caption);
end;

とやってみましたが、ブランクが表示されます。
955ねこま:03/02/20 01:01
WM_CLOSE じゃなくて WM_EXITMENULOOP
>>950
WM_MENUSELECT
957950:03/02/20 01:30
>951-956
どうやらWM_MENUSELECTで自分のイベントを起こしたいタイミングに
イベントを起こせそうです。
ありがとうございます。
>>954
 Demos のは ソースを読んでガンバレって事だから

 ShellListView1.SelectedFolder.PathName が該当のものじゃないかな

DemosのShell系はいまいちだねえ・・・
必ずHDDアクセスは起こるし、ShellTreeViewには共有のオーバーレイイメージが
表示されるのにListViewには表示されないし、TreeViewにもショートカットのイメージは表示されないし、
ListViewにパスをセットできないし、どれも変数の開放忘れがあるし。

結局ちょこちょこ自分でいじって別パッケージにしちゃってるよ。
>>959
一体いつのバージョンを使っているの?
BDN にアップデートがあがっているんだけど。
Del7付属の奴。
BDN、登録してないんだよねえ
>>961
簡単な英語が読めれば、誰でも登録できるけど?
...割れ物使いかい?
あの登録と割れと、何が関係するんだ?

で、登録してきたけど見つからないんだけど。どこ見ればいいの?
たびたびスマンね。
MLの過去ログでパス貼ってたので見つけられたよ。
で、見てみたけど俺が上記した問題はほとんど解決されてないようなのだが。

あんたインストールしてみて全部試してみた上で言ってる?
あんまり無責任な発言するもんじゃないよ。
965デフォルトの名無しさん:03/02/20 20:51
サンプルは英語サイトから拾ってこいとか
ライブラリはフリーの使えとかやる気のない処理系ですな。
処理系?
967954:03/02/21 01:44
>>958
フルパス
ShellListView1.SelectedFolder.PathName;
ファイル名
ShellListView1.SelectedFolder.DisplayName;

でした。
ありがとうございます。

>>959,960
フォルダーの情報を取得したいのですが、
ShellListViewはやめたほうがよいのでしょうか?

>>960
BDNてなんですか?

たびたびですいませんがお願いします。

環境は、
Del6Ent Build 6.163
Windows2000 SP3
会社であまっていたので、
入れてもらいました。
BDN=Borland Developer Network

ShellListView、別に使えるよ。
ただ、不十分なところもちょっとあるって程度で。
969デフォルトの名無しさん:03/02/21 11:42
initialization時に今、実行時なのか設計時なのか
区別する方法ってありますか?
>>969 TComponent のインスタンスを作成したらどうだろ?

いつもの事だけど、このスレの次スレはどうするの?
俺のプロバイダだと最近建てられない。串探すのメンドクサイから
GetModuleFileName(0)がDelphi32.exeなら設計時、どう?

…でもこれだと、IDE拡張に使ったときも設計時と見なされてしまうので、
ユニットを分けて、設計時用パッケージを別に作った方がいいかも。
  ,,,,,,,,,,,,,,,∧,,∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′,,,,,,,,,,ミ,,゚Д゚彡<  次スレhttp://pc2.2ch.net/test/read.cgi/tech/1045813143/l50
 UU"""" U U    \_________
973969:03/02/21 17:19
>>970
>>971
どもです。
ComponentStateみたいな状態はないんですか・・・
設計時のinitializationの時にファイルOPENしてて
実行時にまた同じファイルOPENしてエラーが出てしまうので
なんとかしたかったのですが・・・
>972
アホが・・・
>>974
毎回いるよな、こういう香具師。
Delphi相談室その9早く立ててくれよ。
漏れ的にC#は一押しなんだけど。
C++は魅力的だが、肥大化しすぎ&精通してる奴が少なすぎ
Javaは言語的に萌えない&マニアックな操作が出来ない
どうよ
C#はCOMベースで動きますので、C++のように単体では動けません。
と理解してるんだけど、JAVAならできるけど、C#はコンソールアプリ作れるの?
出来るよ。*.exe になる。その exe が単体で動くかどうかは知らんが。
C#ってのは言語名なわけ?
じゃー21世紀最初の(製品化された)言語カナー?
人類がMSに付いていく限り永遠に新しい言語を覚えさせられそうだな。
というか、俺、オブジェクト指向勉強し始めなんですが
Java,VC++,C#.netからC#選んで勉強することにしますた。
C#はDelphi8のことですが何か?
Delphi8はあまりはやらないと思います。。
C#があれだけ浸透しているのに、Delphiに乗り換える理由がわからないです。
もちろん、双方の良さ悪さありますけど。
某のやりたいことは、囲い込みだよね。
私企業なんだし、それはそれでいいと思うよ。
でも、ネットワークは本質的に「囲い込めない」でしょ。
単純に言って、.NETの人たちが使うことはないっしょ。
結局、Delphi8ってのも、某の土俵内なんだから、新Delphiってことだよね。
旧Delphi程度にははやり、それ以上にはならない、つのが結論だっぺ。
流行らなかったら 流行らせるまで1年くらいはガンバルでしょうね、某は。
でも Delphi1の時の勢いは感じられない。
C#のパフォーマンスってどうなの?
なんかイメージ的には相当遅くなってそうなんだけど・・・
Javaがウンコとすると、C#は神。
C#には構造体があるのか。
メモリ使用量もガベコレ頻度も減って一石三鳥だな。
Javaだとなるべく、Pointみたいなプリミティブ型にクラスはなるべく使わないようにしてきたけど、
C#だとそんなくだらない努力はしなくてもいいのね。

C#マンセー
C#の構造体の本質は
Javaだとint,float,stringなどに限られていたプリミティブ型を自由に定義できるということ。
またそのインスタンスをインラインに持ち、スタック上におけるということ。

これはパフォーマンスクリティカルな部分においても、
可読性と速度を両立できるという大きなメリットをもたらす。
っていうかC#はそんなに遅くねーって。
体感速度は、メモリを多めに食うクルーソーCPUを載せているって感じか。
Javaと違って、言語仕様上の制限は少ない(構造体、関数ポインタ、ポインタもある)から
実質ネイティブコンパイルと同等のパフォーマンスは得られる。
Javaが遅い理由の一つに、クラスロード、メソッド実行のたびに入る
コードの安全を確かめるための大規模な検証作業があるが、
C#の場合、暗号化と公開鍵の仕組みによって外部からの改変を防ぐことでコードの安全性を保障している。
だからJavaのアプリケーションみたいに起動が糞重いなんてことはない。
5
510
次スレを・・・
OLE OLE2 COM OCX ActiveX 確か今の形になったのが5〜7年くらい前じゃないかな
Javaの対抗にActiveX打ち出して JavaをActiveXと融合させえてゴチャゴチャに
かき乱して、結局JavaやJavaアプレットとかクライアントから追い出してしまった
すびばせん。
しかたないから C#もちょっとだけ勉強しようかと思っているんですが、
C++みたいに昔の仕様を引きずっていたり、VCみたいに16bit→32bitの
仕様を引きずっていたりしない?
言語仕様が整理されていて勉強しやすければいいなーと思ってるんですが。
現時点では最高のオブジェクト指向言語であり、コンポーネント指向言語。
過去に縛られることなく、C++,Javaの良い点を取り入れつつ、
プロパティ、イベント、アトリビュートなどコンポーネント指向のための要素が追加されている。

JavaとC#の比較

Java
・プリミティブ型はオブジェクトではない。
・ストリング型だけ例外的に特殊な演算子が使える
・プリミティブ型は参照できない
・byte配列からfloat型に変換など、Java言語では決して書けない処理がある。
・setXXX/getXXXなどカプセル化するために無駄なコードが大量に増える。
・コールバックを使うためにはインナークラスを大量に使うか、インターフェイスを大量にインプリメントする必要がある
・プリミティブ型は固定されている。

C#
・プリミティブ型もすべてオブジェクトである。(ボクシング/アンボクシングの導入)
・演算子は自由にオーバーライドできる。
・プリミティブ型もrefを付けることで参照できる
・unsafeコードでポインタの使用を許しているので、矛盾なく書ける。
・プロパティの概念によってメンバ変数に直接アクセスしつつ、値操作をフィルタリングできる。
・イベントとデリゲートの概念によって最小限のコードでコールバックを実現できる
・構造体を使うことで、自由にプリミティブ型を宣言できる。

このようにJavaは一貫性がなく矛盾の多い仕様なのに対し、C#は非常に洗練された言語仕様になっている。
C#の優位性

・すべての要素はオブジェクトである。

C#の場合、ハッシュ、リストなどのコレクションはライブラリで用意さえている。
しかもintだろうが、floatだろうが、クラスだろう、構造体だろうが何でも一つのコレクションの中に入れられる。

・リフレクションによる動的型解析

自動XmlシリアライズなどはC++には絶対に書けない。
(やるなら余計なコードを追加するか、ソースコードを解析してシリアライズコードを自動生成するかどっちか)

・動的コード生成、動的バインディング

言語仕様内で可能

・ガベージコレクションによる自動メモリ管理

C++ではshared_ptrを使っても循環参照時に破綻するが、
Mark&Sweep方式のGCによって完全に安全なメモリ管理が実現される。
ばかだなあ、みんな。

C#の優位性はあきらかだろ。「MSが押してる」だーよ。
これで決まり。逆らってるヤツは、お払い箱。
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。