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

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

C# 仲良し Delphi Round 2

1 :Delフサギコ:02/05/29 17:54
似たもの同士って事で仲良く
お茶でも飲みながら
のんびりスレ

    ∧,,∧  マターリとナー
   ミ,,゚Д゚彡
    ミ つ旦)~~  
  〜と,,,~),,~) 

前スレ
 C# vs Delphi Round 1
 http://pc.2ch.net/test/read.cgi/tech/1021550705/

2 :deldel:02/05/29 17:55
2get

3 :Delフサギコ ◆zE1iiRdQ :02/05/29 18:09
3getしてもらえない。
鬱だ、、ぶら下がろう…

    _       _ 
   / _)======_)  
   | |   || |    
   | | ∧||∧  
   | | ミ; ⌒ヽミ  
   | | ミ ミ  .ミ   
   | | ∪ @ミ  
   | |  ミ ミミ ミ  
   | |  ∪ ∪   
   |_|__|_|  
    \_   \. 
.      ̄ ̄ ̄ 


4 :デフォルトの名無しさん:02/05/29 18:18
pcodeが全くどうでもいいレス投稿してる。

5 :デフォルトの名無しさん:02/05/29 18:21
pcodeってまだいたの?

6 :メキシカン・ハードゲイ:02/05/29 18:55
>>3、いいケツしてるな・・・

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


8 :【予告】 さぁて、来週のDel厨さんは? 【予告】 :02/05/29 19:30
 VB厨必死だな

 .NET哀れだな

 俺、放置だな(泣

の三本です。
来週もまた、見てくださいねー
ギャハププ

9 :デフォルトの名無しさん:02/05/29 19:39
Delphiって何に使うの?

10 :デフォルトの名無しさん:02/05/29 19:48
なんで新スレ立てるんだよ。
もう最後の方は双方共、厨房しかいなかったんだから
あそこで終わらせればいいのに。

11 :デフォルトの名無しさん:02/05/29 20:33
むしろ、C#とJavaの比較
あるいはKylixとJAVAの比較が欲しいんだが。

Delphiは使わないよ。

12 :デフォルトの名無しさん:02/05/29 20:39
むしろ
C丼と.NETの比較が欲しいな

13 :デフォルト名無しさん:02/05/29 21:27
C言語を始めたいのですが、おすすめの本ってありますか?
当方は全くの素人です。


14 :デフォルトの名無しさん:02/05/29 21:29
>>9
Kylixで開発したものをWinに移植するのに使うんだyo!

15 :デフォルトの名無しさん:02/05/29 21:33
Delフサギコさんは今仕事はVBなの?
どうしてC++BuilderやJBuilderにいかなかったの?

16 :【予告】 さぁて、来週のM$厨さんは? 【予告】:02/05/29 22:20
 (プッ

 (ゲラ

 (嘲笑激藁

の三本です。
来週もまた、見てくださいねー
ギャハププ

17 :デフォルトの名無しさん:02/05/29 22:26
一応…(本来>>1に書くべきと思うのですが)

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

18 :前スレ924:02/05/29 22:55
情報をいただいた皆さんありがとうございます。

当面必要な範囲での疑問が解決したので試しに作ってみました。
クリップボードに変更があると最前面に移動して表示し、
戻るボタンで一番下のウィンドウになります。

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

フォームの生成関係が手書きなので汚いです。
いろいろ問題点を指摘していただければ幸いです。

やってみた感想として、Win32 API に関しては定義さえ作れば今までと
違わない感覚で扱える気がしました。


19 :前スレ924:02/05/29 23:34
誤字とバグがあったので 18 を修正しました。

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

20 :Delフサギコ ◆zE1iiRdQ :02/05/30 01:34
           _____________
   ∧,,∧    /
  ミ,,゚Д゚彡 < WndProcをOverRideするのは
   U  つ   \なかなかかっこよいですね。
 @ミ  ミ       ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ∪''∪ Delphiではプロパティなんだよね...

21 :デフォルトの名無しさん:02/05/30 08:26
>>20
 Delphidでも継承で書く事も出来るよ というかWinControl継承コンポは普通そうするでしょ

22 :デフォルトの名無しさん:02/05/30 08:38
>>19 C#でネイテブコードが吐けるようになったら

C#でで小さな実行ファイルを作ろう

なんてスレを作ってぜひ色々投稿してくれ


23 :Delフサギコ ◆zE1iiRdQ :02/05/30 09:44
|,,∧∩ >>21マヂですか?
|Д゚彡
| ミ′  例解をキボンヌ
| ミ    
| U

例えばタスクバーが
Explorerあぼーんといっしょにお亡くなりして
その後、フカーツした場合のタイミングを検知するために
以下のようなコードを書くと思われなんですが
このWndProcを継承でかけるんでしょうか?

(これ、タスクトレイアイコン登録アプリでは
タスクトレーアイコンをフカツさせる為に必須の実装)

type
 TForm1 = class(TForm)
  procedure FormCreate(Sender: TObject);
  procedure FormDestroy(Sender: TObject);
 private
  OldWndProc: TWndMethod;
  procedure FormWndProc(var Message: TMessage);
 public
 end;

procedure TForm1.FormWndProc(var Message: TMessage);
var
 Msg_TaskbarCreated: UINT;
begin
 Msg_TaskbarCreated := RegisterWindowMessage('TaskbarCreated');

 if Message.Msg = Msg_TaskbarCreated then
 begin
  Self.Caption := 'タスクバー復活したよ';
 end;

 OldWndProc(Message);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 OldWndProc := Self.WindowProc;
 Self.WindowProc := FormWndProc;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
 Self.WindowProc := OldWndProc;
end;

24 :デフォルトの名無しさん:02/05/30 09:49
>>23
21じゃないけども、それはフォームのWndProcをオーバーライドするだけでは駄目?
サブクラス化する意味無いように見えるけど・・・。

25 :Delフサギコ ◆zE1iiRdQ :02/05/30 09:56
|,,∧   Propertyの叔母ライド....どやるんだっけ?
|Д゚;ミ
| U
| ミ    やべー
| U

26 :デフォルトの名無しさん:02/05/30 10:01
>>25 だから プロパティじゃないって こうしてごらん

 TForm1 = class(TForm)
 private
 procedure WndProc(var Message: TMessage);override;
 end;

procedure TForm1.WndProc(var Message: TMessage);
var Msg_TaskbarCreated: UINT;
begin
 Msg_TaskbarCreated := RegisterWindowMessage('TaskbarCreated');

 if Message.Msg = Msg_TaskbarCreated then
 begin
  Self.Caption := 'タスクバー復活したよ';
 end;
 inherited;
end;

27 :デフォルトの名無しさん:02/05/30 10:01
自分自身のWndProcを取り替えてるからサブクラス化とは言わないか・・・ただの交換?

>>25
プロパティでなくてフォームのWndProcメソッドのオーバーライドじゃ駄目なのかなと。

28 :デフォルトの名無しさん:02/05/30 10:01
かぶった

29 :デフォルトの名無しさん:02/05/30 10:10
まあ
 TForm1 = class(TForm)
 private
 procedure TaskbarCreated(var Message: TMessage);message WM_TaskbarCreated;
 end;
として MM_TaskbarCreated が変数で設定出来るか

ChangeVMTDynamicTable(メソッド名,ID) とかがあって IDが書き換えられると便利だね

30 :デフォルトの名無しさん:02/05/30 10:12
WndProcで無くとも DefaultHandler でも Dispatch でも好きな段階でオーバライド可能

31 :Delフサギコ ◆zE1iiRdQ :02/05/30 10:19
|,,∧   サンクスコ
|Д゚彡
| U
| ミ    今までそのやり方知らなかった
| U    ちょっと恥ずかしい…

32 :26:02/05/30 10:28
>>30 確かにね、一番良く使うならともかく、こういうメッセージはやっぱりこうしないと効率悪いかな

type TForm1 = class(TForm)
 private
 procedure .DefaultHandler(var Message: TMessage);override;
 end;


implementation
var  Msg_TaskbarCreated: UINT;
procedure TForm1.DefaultHandler(var Message: TMessage);
begin
 if Message.Msg = Msg_TaskbarCreated then
 begin   Self.Caption := 'タスクバー復活したよ';
 end;
 inherited;
end;

initialization
 Msg_TaskbarCreated := RegisterWindowMessage('TaskbarCreated');


33 :デフォルトの名無しさん:02/05/30 10:30
まあ、>>20からの流れでWndProcのoverrideの話だから

34 :26:02/05/30 12:38
>>19
 ところで、C#って Delphiみたいなメッセージディスパッチの仕掛けはないの?


BEGIN_MESSAGE_MAP みたいな旧スタイルではないのでしょ?

35 :前スレ924 =19:02/05/30 17:31
>>20
C# だと継承しかないみたいです。
Delphi なら迷うぐらいたくさん方法がありますが。

>>34
くわしくないのではっきりとは言えないんですが、
特別なメッセージ処理の仕組みは無いんじゃないで
しょうか。メッセージ通知も protected ですし。

System.Windows.Forms.Control のリファレンスを見ると
必要最小限という感じです。

SDK ドキュメント
ms-help://MS.NETFrameworkSDK.JA/cpref/html/frlrfsystemwindowsformscontrolmemberstopic.htm


36 :前スレ924 =19:02/05/30 17:35
クリップボード監視とフォームの最前面移動をクラス化しようと思った
のですが、 Delphi のように WndProc を持つ非ビジュアルコンポーネントの
作り方がわからないので Button を継承して作ってみたんですが、
終了処理でクリップボードチェインから抜けるのに失敗してしまいます。

どうも、親のフォームよりも後に Dispose が実行されるので、自分の
ハンドルは有効でも親のハンドルが無効なため ChangeClipboardChain
がエラーになるようです。

アンマネージ・リソースの開放は苦労しそうです。

37 :26:02/05/30 17:36
>>35 そうですか メッセージクラスを用意すれば
 Publishedメソッドをその名前で自動的にシリアライズするような機能でもあるのかと思ってた


38 :デフォルトの名無しさん:02/05/30 17:55
何か勘違いしてる奴ばっかりだな。(嘲笑激藁

39 :デフォルトの名無しさん:02/05/30 17:59
>>38 なんか キミ見てチョッとばかりホットしたよ。 俺でもプログラマやってていいんだなあって

 ありがと

40 :デフォルトの名無しさん:02/05/30 18:03
>>39
NativeWindowも知らない無知無能を藁ってるだけなのに、読解力が足りないようだな。(嘲笑禿藁

41 :デフォルトの名無しさん:02/05/30 18:31
ドットネット中心になると 全てメッセージではなく オブジェクトのシリアル化で対処するのかなあ

42 :19:02/05/30 18:38
>>
IWin32Window を実装しているのが Control だけなんで
他には無いと勘違いしてた。これつかえばカプセル化
できそう。

教えてくれてありがとう。
(嘲笑禿藁ってほんとはいい奴だったんだね。

43 :19:02/05/30 19:19
ビジュアル開発環境を持ってないから NativeWindow で十分
なんだけど、非ビジュアルコンポーネントは Visual Studio .NET
だとどういう風につくるの? 継承だけじゃだめみたいだけど >> 40

44 :19:02/05/30 19:30
>>43
非ビジュアルコンポーネントは Delphi の言い方で
Visual Studio だと 非ビジュアル?Windows コントロールかな。

45 :デフォルトの名無しさん:02/05/30 19:37
>>44
普通にユーザーコントロール作って、コントロール側で Visible = false; にすればいいだけだと思うが・・・。

46 :19:02/05/30 20:24
>>45
コントロールの雛型を継承してコントロールを作り、実行時
または設計時のプロパティで非表示にするという感じでしょうか?

その場合ユーザーコントロールの雛型のクラスには何を使うんでしょう?

かなり初歩的な質問ですみません。
旧 Visual Studio も含めて コントロールを作った経験がないので知っと
きたいんです。

47 :19:02/05/30 20:50
System.Windows.Forms.UserControl か
System.Windows.Forms.Control
のどっちかだとは思うんですが。

48 :デフォルトの名無しさん:02/05/30 21:04
ソフトウェアの開発環境としては
.NET>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>UNIX
ということでよろしいか?

49 :デフォルトの名無しさん:02/05/30 21:06
>>48
( ´,_ゝ`)プッ
zshマンセー

50 :デフォルトの名無しさん:02/05/30 21:11
>>48
DOS時代の大先輩を気がついたら
下で使ってたという感じだな。

51 :デフォルトの名無しさん:02/05/30 21:14
>48
個人的にはコンソールのほうが使い易い。
フォームにコントロールぺたぺた貼り付けるGUIデザインも
吐かれるコードが気に入らずどのみち全面書き直しになる。
せいぜい複雑なことやるときにサンプルとして参照する程度。


52 :デフォルトの名無しさん:02/05/30 21:16
>>51 ?

53 :デフォルトの名無しさん:02/05/30 21:22
>>51
コピペ?
素で言ってたら痛い。

54 :Delフサギコ ◆zE1iiRdQ :02/05/30 22:09
>吐かれるコードが気に入らずどのみち全面書き直しになる。
          _____________
   .∧,,∧  /コードウィンドウの[±]で閉じて
〜'"ミ,,゚Д゚ミ < 閉じて見るな。
 UU''UU   \___________

55 :デフォルトの名無しさん:02/05/30 22:25
>>51に同意。
C#相談室スレを見ても、達人級の回答者さんたちは皆IDEの吐き出すテンプレートなんて使ってないよ。
分かる?IDEに頼ってるのなんてコンピュータの基礎も知らない初心者ばかり。
プロはIDEなんて使わんのよ。君らアマチュア(並みの自称プロ)には理解し難いだろうけど。

56 :デフォルトの名無しさん:02/05/30 22:27
>>55
効率と言う面では?

57 :デフォルトの名無しさん:02/05/30 22:27
>>55
ちがうとおもう

58 :デフォルトの名無しさん:02/05/30 22:35
MSの人たちは実際はEmacsでコードを書いてmakefileでビルドしてる。
つまり未だにUNIXのコマンドラインベースが最強なんだよ。
開発でどうしてマウスなんか使う必要があるんだ?
くだらないね。そんなカチカチやってるが本当の開発だと思ってるのか?

59 :デフォルトの名無しさん:02/05/30 22:38
>>58
とりあえず同意しておこう。

60 :デフォルトの名無しさん:02/05/30 22:39
>>55
チーム開発できない奴( ´,_ゝ`)プッ
一人寂しくツールでも作ってろ

61 :デフォルトの名無しさん:02/05/30 22:41
>>58
20 世 紀 か ら タ イ ム ス リ ッ プ し て き た の で す か ?

62 :デフォルトの名無しさん:02/05/30 22:44
最強なのはどうでもいいが、大半を占める普通のプログラマをわざわざ貶める
事もないのでは?本当のプロならこんなこと思ってても言わないはず。

ま、ネタであることを祈るが

63 :デフォルトの名無しさん:02/05/30 22:45
>>61黙れ昭和生まれ

64 :デフォルトの名無しさん:02/05/30 22:46
君たちの役目はGUIの表面だけ作って終わりなのかな?
ならばチーム開発・RAD使用もうなづけるね。やってることはwebデザイナーにも劣るけどね。
システムコアのフレームワークを作るならRADなんて必要もないし、担当者も3人も4人もいらない。
君たちは下っ端だったのか。それは失礼。

65 :デフォルトの名無しさん:02/05/30 22:46
>>55
お前無職だろ。
業界では飯の種にしていればプロだ。
お前の妄想してるプロという言葉をマニアに置き換えてからほざけ

66 :デフォルトの名無しさん:02/05/30 22:49
Del厨の最も嫌がる部分を突くな。(嘲笑激藁

67 :デフォルトの名無しさん:02/05/30 22:50
>>64


68 :デフォルトの名無しさん:02/05/30 22:50
脳内年収1000万プソーヤーには何を逝っても無駄
( ´,_ゝ`)プッ

69 :デフォルトの名無しさん:02/05/30 22:51
>>65
>業界では飯の種にしていればプロだ。

通称サラリーマンプログラマだね。(嘲笑禿藁

70 :デフォルトの名無しさん:02/05/30 22:52
早い話マジレスで中小企業向けのシステム構築にはIDE必須。
ホント金が出ない。

71 :デフォルトの名無しさん:02/05/30 22:55
>>70
それは張りぼての作り捨てをやっているだけ。開発とは言わない。

72 :デフォルトの名無しさん:02/05/30 22:56
>>71
で、あんたは何系のプログラマだ?

73 :デフォルトの名無しさん:02/05/30 22:57
>>71
じゃあお前の力で地球上からIDEを駆逐して下さい
ガンバレ

74 :デフォルトの名無しさん:02/05/30 22:59
結局は慣れと好みの問題に過ぎないということなんだけどな。

漏れはRADツールを使うとコンパイルからして裏でどう動いているのか
把握しづらいので落ち着かない。気にしなくていいっちゃいいことだが、
やはり自分の手でmakefile書いてmake一発がシンプルで落ち着く。
骨の髄までWin開発のひとには理解してもらえないだろう。

VC++はともかく、JavaもC#もテキストエディタだけでGUIアプリは作れるのだ。

とりあえずWin一辺倒のひとに希望するのはWinのDos窓とUnix系環境の
シェルを同列に見積もらないで欲しい。カニ蒲鉾と茹でたてのタラバほどの
違いがあるからね。


75 :デフォルトの名無しさん:02/05/30 23:00
>>74
はじめからそう言えば荒れなかったんだがね。

76 :74:02/05/30 23:02
>75
すまん、はじめがどこかは知らんがこのスレには初書き込みだ。


77 :デフォルトの名無しさん:02/05/30 23:03
>ホント金が出ない。
思うんだが、クライアントサイドのメインは外注かバイトに投げて、
こっちは鯖のデーモンプロセスとミドルウェアとコンポーネント
だけシコシコやると楽しい。
クライアントの外部仕様なんて納期直前に出来上がって
デスマーチなりがちでつらい。



78 :デフォルトの名無しさん:02/05/30 23:04
>>74
同意。UNIXのシェルの生産性は極めて高い。
本来GUIというものはCUIでできることに見た目的な皮をかぶせているだけで
やれることは本質的に変わらない。むしろ、GUIの方が生産性が落ちる。
キーボードとマウスを行ったり来たりするからだ。
CUIを生産性が低いという人はただ単にシェルを使いこなせてないだけで
本当はGUIを使う資格すらないんだよね。
一般ユーザならまだ許せるけど、開発者でこういうのがいるのは笑えないね。

79 :デフォルトの名無しさん:02/05/30 23:07
>>78
GUIの方が生産性が高いなんて誰が言った?
職人芸と称して自分しか読めないパスタコード作る人?

80 :デフォルトの名無しさん:02/05/30 23:17
プロだったらIDEが裏でやってること理解した上で使うもんだと思うが。

81 :デフォルトの名無しさん:02/05/30 23:18
>>74
ばかやろう、お前にカニカマの何が分かるってんだ。
どうせタラバなんて食ったことねえんだろ(嘲笑禿藁

82 :デフォルトの名無しさん:02/05/30 23:21
スレタイが泣いております(涙

83 :デフォルトの名無しさん:02/05/30 23:21
>>81
なんでそこに目がいくのだ?

84 :デフォルトの名無しさん:02/05/30 23:26
>>83
洒落の分からない奴だな。

85 :デフォルトの名無しさん:02/05/30 23:35
>>78
UNIXのシェルが優れてる事は認めるが、
GUIよりCUIが優れてる、てのはあまりに痛い発言だな。

だれかCUI版のPhotoshop作ってくれ。GIMPでもいいぞ。

86 :デフォルトの名無しさん:02/05/30 23:39
何だ、GUIしか使えない点ではDel厨もC#厨も仲良しだな。(嘲笑激藁

87 :デフォルトの名無しさん:02/05/30 23:47
UNIXユーザーにはDelphiとC++Builderおすすめ。
MFCはアテナウィジェット以下、VCL/CLXは
gtkみたいにラク。おまけに統合環境は必須ではない。
gtkみたいにシグナル機構ばりばり使ったCよりも
ObjectパスカルかC++のポリモーフィズムの方が
理解が簡単。

88 :Delフサギコ ◆zE1iiRdQ :02/05/31 00:11
        ∫        _____________
   ∧,,∧ ∬       /薦めるの無駄だと思われ....
   ミ,,゚Д゚ノ,っ━~  <  Delphiだって全部IDEなしでGUI作成できる
_と~,,,  ~,,,ノ_. ∀  \といっても理解できんだろうし。
    .ミ,,,/~),  .| ┷┳━
 ̄ ̄ ̄ .し'J ̄ ̄|... ┃
 ̄ ̄ ̄ ̄ ̄ ̄ ̄   .┻
俺も詳しいことは知らんがGNOME作者さんの
お話をどうぞ。
http://www.os-omicron.org/~takano/private/trans/bongo-bong_j.html

C#のWinFormの開発は昔からDelphiで味わっているので
たいしたものとは感じられないけど。
C#で使ったんだけど、ASP.NETのGUIの生産性は
従来の開発スタイルを根本から変化させると感じた。


89 :デフォルトの名無しさん:02/05/31 00:19
>>87
gtk--とかQTとかはどうよ?

90 :デフォルトの名無しさん:02/05/31 00:24
>>88
おお、Miguelじゃん。monoのリーダー的存在だよ。

91 :デフォルトの名無しさん:02/05/31 00:26
>>88
C#って言ってる時点でDQN。
VB.NETでも本質的には変わらない。

92 :デフォルトの名無しさん:02/05/31 00:28
>>88
これで分かったでしょ?
DelphiがVB.NETに負けてるという根拠が。 

93 :デフォルトの名無しさん:02/05/31 00:30
>>91
>>92
スレ違い

94 :デフォルトの名無しさん:02/05/31 00:32
エロゲやるにもマウスを使わない強者がいるスレはここですか?

95 :デフォルトの名無しさん:02/05/31 00:33
>>88
合わせてこれも読むとよろし。

http://www.microsoft.com/japan/msdn/net/sscli/deicazainterview.asp

96 :Delフサギコ ◆zE1iiRdQ :02/05/31 01:02
           _____________
   ∧,,∧    /Sunみたいに"人類対MS"とかいうバカな
  ミ,,゚Д゚彡 < 構図を持ち出さずに、
  (ミ  ミ)   \いいものを作りたいという姿勢が美しいっすね。
 〜ミ  ミ       ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ∪''∪  Borlandもこういう人をたくさん雇うといいかも。

ところで、ヘッヂのインタビューなどの
リンクいろいろ、教えてくださいませ。

97 :デフォルトの名無しさん:02/05/31 01:05
>>96
今月号の日経ソフトウェア嫁。

98 :デフォルトの名無しさん:02/05/31 01:06
>>96
ちょっと古いけど。

http://windows.oreilly.com/news/hejlsberg_0800.html

99 :デフォルトの名無しさん:02/05/31 01:09
Delphiと.NETの中間期ということで。

http://www.microsoft.com/japan/msdn/weeklynews/int_AH.asp

100 :デフォルトの名無しさん:02/05/31 01:12
動画で見るのもよし。

http://msdn.microsoft.com/theshow/Episode007/default.asp
http://msdn.microsoft.com/theshow/Episode008/default.asp

101 :ヘジルスバーグ(本物):02/05/31 01:16
すいません。質問です。
最近C#って話題になってますがこれって結局何が出来るんですか?

C、C++の様にWindowsアプリを開発したりも出来るんですよね。
プラットフォームはWindowsのみなのでしょうか?
Unixの方面ではC#の開発は今のところ出来そうにありませんが。
OO言語らしいのでDelphiに感触が似てると思うのですが実際はどうなのでしょうか。
.netβ2を持ってるのですが入れる勇気がありません。



102 :河内の物体屋X(偽者):02/05/31 01:53
>C、C++の様にWindowsアプリを開発したりも出来るんですよね。
外見上EXEファイルになることは確認しているが、
過去ログを追っていくと、JDKをEXEの中に埋め込んだ
ようなJavaアプリケーションもどきと読める。
最大の問題はC++のアプリケーションをC#に移植した場合、
JustArksのように重くなるかどうかだな。


103 :デフォルトの名無しさん:02/05/31 01:55
>>101
ヘジがキタ━━━━━━(゚∀゚)━━━━━━!!
本物がそんな質問するわけねーーーーーーーーーーーーーー

104 :デフォルトの名無しさん:02/05/31 01:59
Hejlsbergってやっぱ「ヘイルスバーグ」と読むほうが自然に思えるな
・・・どうでもいいけど

105 :         :02/05/31 02:07


  水―――(   ()   ()   )―――!

106 :ヘジルスバーグ(本物):02/05/31 02:28
>>102
重いCアプリって・・

107 :デフォルトの名無しさん:02/05/31 06:55
>>101 結局何が出来るんですか?

結局何をしたいのですか?


108 :デフォルトの名無しさん:02/05/31 07:51
InitializeComponent の中身って触るなって書いてあるけど、ある程度触っても大丈夫みたい
ただ、アイコンとかは結局リソースになるから、Delphiみたいにテキストでチョッと直すなんて
出来ない・・・・大した問題じゃないけど


109 :ヘジルスバーグ(本物):02/05/31 08:10
>>108
じゃあDelphiやったほうが便利ですよね
ヘジたん(俺)のいけずぅ

110 :デフォルトの名無しさん:02/05/31 08:28
>>108
 ComboBoxをListBoxに変換しようとしてさ
全置換して フォームデザイナにしたらコードが消えちゃったよ

出来るのはせいぜい座標とかサイズの微調整程度

111 :デフォルトの名無しさん:02/05/31 16:16
Delに飽きてきたのでC#.NET単体発売日に買ったよ
学習のためにDelからC#にいろいろ移植してみたよ
作ったものをそのままWin2Kで実行すると気がつかないのだが、
Win98に持っていくとフレームワークの起動でクソ重たいのね、いや想像以上にね
Win98も対象なら、わざわざドトネト使うと評判ガタ落ちかもね
同じもの作るならDel使う、C#は、、、どんなとき使おうかしら


112 :デフォルトの名無しさん:02/05/31 19:27
>111
Javaも最初はクソ重くてこんなもん使いもんになるかと思っていたものだ。
とりあえずはngen.exeでしのごう。


113 :Delフサギコ ◆zE1iiRdQ :02/05/31 20:05
∀                   _____________
┷┳━     ,,,,,,,,,,,,,,,∧,,∧   /
  ┃   〜′,,,,,,,,,,ミ,,゚Д゚彡<  Webアプリ作成に使ってよし
  ┻.    UU"""" U U    \ いや、マジで
                      ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄


114 :デフォルトの名無しさん:02/06/01 01:46
Webアプリってのはサーバーで実行されるんだよね?
C#.NETで作ってもサーバーがWindowsじゃないと使えないよね?
ちがってるかも

115 :デフォルトの名無しさん:02/06/01 09:59
>>112
ngen.exeで検索したら、





イテテ、イテテテ、
>勝手ながらオリジナルのxPadieに敬意を表し、名称をxPadie Proとさせていただきました。
あの人と同一人物か?

116 :デフォルトの名無しさん:02/06/01 14:52
ヘジのインタビュー動画でヘジが貧乏ゆすりしてたのがワラタ

117 :Delフサギコ ◆zE1iiRdQ :02/06/02 16:40
   _____________
 /
 | ヂャ、そろそろ次のお題なぞ。
 \_ ____________
    |/
   ∧,,∧
  ミ,,゚Д゚ミy━~~
   U   ミ
 〜ミ   ミ
   U''U

送るフォルダに
自分自身のExeのショートカットを
[リンク先を探す]っていう名前で入れる機能をもっていて
そこに*.lnkファイルを送ったら
それのリンク先ファイルのフォルダが開くって
アプリをつくれるかしら。

Delphiで作ってみているのですが
ショートカットファイルの扱いが
かなり面倒なんですよね。


日系ソフトのヘジタンのインタビューは見てきたYO.
なんともなー、あまり好感のもてるキャラじゃなかったな。
シンプルという思想は大変素敵だけれども。

118 :Delフサギコ ◆zE1iiRdQ :02/06/02 16:47

  ∧,,∧ agaりまーす
 ミ,,゚Д゚彡
 ミつ[|lllll]).
〜ミ  ミ
  U''U

119 :デフォルトの名無しさん:02/06/02 16:58
>>117
あれは訳し方がDQNなだけ。 > 日系

120 :デフォルトの名無しさん:02/06/02 21:20
>>117
めんどくさいのでVB.NETで作った。C#で作るときはtlbimp要。

Imports System
Imports System.Diagnostics
Imports System.IO

Class Test

  Public Shared Sub Main(args As String())
    ' 引数なし
    If args.Length = 0
      Return
    End If

    ' ショートカット以外
    If Not Path.GetExtension(args(0)).Equals(".lnk")
      Return
    End If

    Dim shell = Activator.CreateInstance(Type.GetTypeFromProgId("Shell.Application"))
    Dim folder = shell.NameSpace(Path.GetDirectoryName(args(0)))
    Dim link = folder.Items().Item(Path.GetFileName(args(0))).GetLink

    Process.Start(Path.GetDirectoryName(link.Path))
  End Sub

End Class

' vbc /t:winexe /r:System.dll Test.vb

121 :Delフサギコ ◆zE1iiRdQ :02/06/03 13:22

T |  こんなに簡単に出来るの?...なんか微妙に
A |  仕様がハショられてるような?
K |彡   
A ⊂ミ  ・とあるフォルダに自分へのショートカットがあるかどうか
R |ミ   ・ショートカットファイルのリンク先の求め方
A |J
      この機能がDelphiでも簡単にできたらいいのにな。
      .NETでは簡単に出来るですか?

   フサはC#しか持ってませんTAKARA
   動作確認できなKATAAR

122 :デフォルトの名無しさん:02/06/03 14:18
>>121
ショートカットを使うにはOLEを使う
http://www.borland.co.jp/qanda/delphi/d0003274.html
MyObject := CreateComObject(CLSID_ShellLink); //と開いて
MySLink := MyObject as IShellLink; // ショートカット操作の為のインターフェースと
MyPFile := MyObject as IShellLink; ファイル操作の為のインターフェースを取得

IPersistFile で 実際のファイルへSave/Load する
http://yokohama.cool.ne.jp/chokuto/hsp/interface/IPersistFile/

IShellLink でショートカット情報を読み書きする
http://www.runan.net/program/tips/_interface/IShellLink.shtml


123 :デフォルトの名無しさん:02/06/03 14:45
120,121
>自分自身のExeのショートカットを
>[リンク先を探す]っていう名前で入れる機能をもっていて
という部分はないけどちゃんと実現できてますね。

最初コマンドプロンプトから test 〜.lnk を実行したらエラーに
なったけど送るメニューならうまくいきました。

VBとC#のコンパイラは.NET Framework の頒布パッケージ
(SDKでなく)にもついてましたよ。

%SYSTEM%\Microsoft.NET\Framework\v1.0.3705

124 :Delフサギコ ◆zE1iiRdQ :02/06/03 15:23
 | T | 今宝コソ隠さなきゃ。
 | A | 
 | K |彡
ミ⊃A |つ
 | R |ミ
 | A |J

>>123
やっぱ相当、強力なんですね。
Borlandが抜け落としてきた所にも
細かくきっちりライブラリ化してるって印象っす。

>>122
実際、ラップしたらわかると思うけど
DelphiでCreateComObjectのやり方では
CUIアプリでエラーが出て動かないよ。
原因は折れにはわからないでした。

http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1021888173&res=10
ここの、TShortcutFileがCUIじゃうごかんない。
誰か改善してホスイ

ちなみに、フォルダに自分(exe)への.lnkがあるかどうかを
調べる関数
function ShortCutFileExists
もつくってるので、Formさえあれば
かなり楽に

   '"送る"フォルダにショートカットがないようです'+#10+
   'ショートカットファイルを作成しますか?'),

というUIが作れるです。

125 :デフォルトの名無しさん:02/06/03 16:05
>>121
>>120の最終行にちゃんとコンパイル方法書いてあるでしょ。(w

126 :デフォルトの名無しさん:02/06/03 16:06
参考になる?
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1021888173&res=11

127 :122:02/06/03 16:16
>>124 とりあえず GUI アプリで試したけど コンソールアプリだとダメって事?


// .LNK ファイル名を与えて そのリンク先のパス名を取得する関数

function GetLinkFileName(fname:WideString):String;
var obj : IUnknown;
  siz:DWORD;
  rid:Integer;
  pfd: TWin32FindData;
begin
  obj:= CreateComObject(CLSID_ShellLink);
  try
  with obj as IPersistFile do rid:=load(PWChar(fname),STGM_READ);
  if rid<>0 then Result:='' else
  with obj as IShellLinkA do begin
  SetLength(Result,1024);
   GetPath(PChar(Result),length(Result),pfd, 0);
   Result:=PChar(Result);
  end;
  finally obj:=nil;end;
end;


128 :デフォルトの名無しさん:02/06/03 16:22
>>126
WinアプリだとCoInitializeしなくてもOLEが動くことがあるけど
やっぱ必要なものなんだな。

129 :デフォルトの名無しさん:02/06/03 16:33
限りなく厨に近いコードだな
function IsSameFileName(A, B: String): Boolean;
var
 OldMode: UINT;
begin
 OldMode := SetErrorMode(SEM_FAILCRITICALERRORS);
 if FileExists(A) and FileExists(B) then
 begin
  A := GetLongFullPathName(A);
  B := GetLongFullPathName(B);

  if SameText(A, B) then
  begin
   Result := True;
  end else
  begin
   Result := False;
  end;

 end else
 begin
  Result := False;
 end;
 SetErrorMode(OldMode);
end;

130 :Delフサギコ ◆zE1iiRdQ :02/06/03 16:36
 | T |
 | A |∧,,∧ バレマシタカ(汁
 | K ミ;゚Д゚ミ
 | A |⊂ ミ
 | R |  ミ
 | A |゙゙∪

131 :122:02/06/03 17:18
>>124
 原因調べました。
 普通はuses ComObj とすれば自動的に CoInitialize されます。
 その仕掛けは初期化節でInitProc というポインタに予約されて
 実際の呼出しは Application.Initialize;でされます。

 コンソールアプリの場合も、formsをusesすれば良いのですが
 それをuses していなければ
  if InitProc <> nil then TProcedure(InitProc);
 と自分で呼び出さなければいけません。



132 :Delフサギコ ◆zE1iiRdQ :02/06/03 18:44

  __
  | T |
  | A |
  | K |          ________
  | A |,,,γ´ ̄ヽ   /
  | R |,,,,ミ,,゚Д゚彡< 禿しく感謝
  | A |"" U U    \________
 | ̄ ̄ ̄|  すごいです
      フサはそんなの自力で調べられないっす…

  CUI版で再実装だ!

133 :デフォルトの名無しさん:02/06/03 19:13
この場合、 uses から formを外してもコンパイルエラーもリンクエラーも起きないけど
実行時にエラーが起きる訳か・・・・

134 :デフォルトの名無しさん:02/06/03 19:19
ショートカットを作る部分もVB.NETで作成。
やっぱりC#ではめんどくさくてやってられん。

Imports System
Imports System.IO
Imports System.Reflection

Class Test

  Public Shared Sub Main()
    Dim shell = Activator.CreateInstance(Type.GetTypeFromProgID("WScript.Shell"))

    ' ショートカットの存在チェック
    Dim link_name As String = shell.SpecialFolders("SendTo") + "\リンク先を探す.lnk"
    If File.Exists(link_name) Then
      Return
    End If

    ' ショートカットの作成
    Dim link = shell.CreateShortcut(link_name)
    link.TargetPath = Path.GetFullPath([Assembly].GetExecutingAssembly().Location)
    link.Save()
  End Sub

End Class

135 :デフォルトの名無しさん:02/06/03 19:38
>>133
この場合は、 Application.Initialize; を呼ぶかどうかであって
これを呼ぶためには formをusesしていないとダメという事


136 :デフォルトの名無しさん:02/06/03 20:36
最終形はJScript.NETにしますた。

http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1021888173&res=12&fi=no

137 :デフォルトの名無しさん:02/06/04 22:46
>フサはC#しか持ってませんTAKARA
C#スタンダード買ったって言ってたべ。


138 :Delフサギコ ◆zE1iiRdQ :02/06/05 01:56
         いろんなトコでいい感じに
    ∧,,∧    ライブラリが構築されてますね。
   ミ,,゚Д゚ミζ
    ミ  つ旦  今日はstatusbarとかみてました。
  〜と,,,~),,~)   AutoSizeとかMinWidthとか
           PanelClickとか、、、VCLで実装されてない
            ところが、きっちりつくられてるなー。

139 :デフォルトの名無しさん:02/06/06 14:59
Del->C#移行ガイドのようなものってどこかにないですか?
というか作れ>MS

140 :122:02/06/07 08:24
>>135
 あ! 確かに勘違いされそうですね。
 >>131は 基本的にコンソールアプリでも COMを使うならformをusesして
 Application.Initialize;をしなければいけないという事です

>if InitProc <> nil then TProcedure(InitProc);
 これは今のバージョンならこれでも動くよというだけで、正しい作法ではないです

141 :無責任だが:02/06/07 12:09
>>124
ははあ、こっちが元祖なんですね。

Shell.Application は Delphiからも使えます
使い方は VBと殆ど同じです
間違えて
http://pc.2ch.net/test/read.cgi/tech/1019654975/247
こっちに up してしまいましたが

1、IUnknownのインターフェースには as IDispatch; を指定する事
2、OLEVariantをとにかく使う

この2つさえ注意すれば、VBのコードはそのまま移植可能の筈です

ちなみに VBの
> Dim shell = Activator.CreateInstance(Type.GetTypeFromProgId("Shell.Application"))

Delphiは
>guid:=ProgIDToClassID('Shell.Application');
>objShell := CreateComObject(guid) as IShellDispatch ;
 となります

142 :Delフサギコ ◆zE1iiRdQ :02/06/10 12:30
Delphiではいまいち
構文解析機能といったものが苦手で
自分で全実装しなければいけないようなのですが
(Delで楽に実装する方法を教えて欲しい)

C#はどうなのかしら?

例えば以下のような機能はありますか?
もしくは簡単に実装できる手段は用意されてますか?

・HTMLソースからタグを除いたテキストを取得する
・HTMLソースからタグで囲まれたトコだけを取得する
・C#ソースからコメントを削除する
・C#ソースからコメントだけを取得する

どうですか?

 ̄ ̄ ̄ ̄ ̄|/ ̄ ̄
 ∧∧    ∧,,∧ キョウモ シツモン イイカシラ
 (*゚ー゚) ミ゚Д゚,,彡
 ノつ旦) ミ(旦⊂ミ
て  ) )   ミ( (  ミ〜
| ̄∪J ̄ ̄.し.し' ̄| Ψ
|.             | □
ジブンデ
シラベナサイ

143 :デフォルトの名無しさん:02/06/10 12:56
>>142
上の2つは性器表現で簡単にできるんじゃない?

144 :デフォルトの名無しさん:02/06/10 16:09
>>142
C#のコメントの件は
.NET大ブーム!
http://pc.2ch.net/test/read.cgi/tech/1020361918/

で、C#ならMicrosoft.CSharpやSystem.Code.DOMで簡単に出来ると言い切りながら
結局コードは出なかった筈

まあ慣れれば30分で書ける処理なんだから、慣れろ >>Delフサギコ

145 :デフォルトの名無しさん:02/06/10 16:19
Delphiで楽に実装する方法
 1、慣れる・・再帰下降とか状態遷移とかのコードを何度か書いてみる
 2、勉強する・・Delphi用のlex/yaccがフリーであるから、使い方を勉強すればいい

若者が、そこらへんの事から、単にライブラリ組み合わせで出来る方法探しに奔走し
てては日本の情報産業の未来はないぞ。

ちゃんと勉強して、馴れて、自分のものにしろ!

146 :Delフサギコ ◆zE1iiRdQ :02/06/10 16:28
             _______________
  ,,,,,,,,,,,,,∧,,∧   /
〜′,,,,,,,ミ,,゚Д゚彡< いや、慣れろとかそういう話ではなくて...
  UU""" U U   \_______________

美しいパーサー?とか言う奴の実装があれば
参考にしたりつかったりしてみたいと
思ってたわけでし。

1回コキリ作成するならいいんだけど
それじゃ毎回面倒だから、汎用的に
生産性のあがるパーサーってのはないかなと
思うわけで。

とりあえず、TStringParserっての現在作ってまして
デリミタを設定したら、その文字列で分割して
分割後のStringにアクセスできるものは作ってます。
(ソースは長いのでどこか別場所に出すけど)
それを使えばテキストからメールアドレス取得するのが
こんなに簡単。(か?w)

とりあえず、結城タンのデザパタ本に載ってたLOGO言語を
復習した方がいいのかしら。
…でも言語を作りたいわけではないんだが…

147 :Delフサギコ ◆zE1iiRdQ :02/06/10 16:30
             __________
   ∧,,∧      /これ(TStringParser)使うと
  ミ,,゚Д゚彡  < HTMLタグ切り出しも
  ミ つ且~~   \Pascalソースコメント切り出しも
〜ミ,,,,,, ,,ミ       そこそこ楽にはなるです。
StringParserって命名がちょっとアレゲ?ですた?

//メアドを切り出してみますた。
function GetMailAddress(S: String): String;
var
 Parser: TStringParser;
 Delimiters: TArrayString;
 i: Integer;
 AddressFlags: array of Boolean;
begin
 Parser := TStringParser.Create;
 try
  Parser.Text := S;
  SetLength(Delimiters, 7);
  Delimiters[0] := '<';
  Delimiters[1] := '>';
  Delimiters[2] := '=';
  Delimiters[3] := '"';
  Delimiters[4] := ':';
  Delimiters[5] := '''';
  Delimiters[6] := ' ';
  Parser.Delimiters := Delimiters;

  SetLength(AddressFlags, Parser.StringCount);
  for i := 0 to Parser.StringCount-1 do
  begin
   if 1 <= AnsiPos('@', Parser.Strings[i]) then
   begin
    AddressFlags[i] := True;
   end else
   begin
    AddressFlags[i] := False;
   end;
  end;

  Result := '';
  for i := 0 to Parser.StringCount-1 do
  begin
   if AddressFlags[i] = True then
    Result := Result + Parser.Strings[i] + #13#10;
  end;
  Result := TrimRight(Result);

 finally
  Parser.Free;
 end;
end;

148 :デフォルトの名無しさん:02/06/10 16:40
>>146
 残念だけど美しいパーサーというのは無い。
汎用的に生産性のあがる方法はlex/yaccを使う事だ

ただ、考えられる方法としては、Delphiで言う実行時型情報を使って
lex の トークンの定義代わりに 
正規票件をエスケープしたメソッド名で定義したクラスを引数に渡すと
自動的に字句解析して、結果を呼び出すようなものは作れるだろう


149 :Delフサギコ ◆zE1iiRdQ :02/06/10 17:12
とりあえず、ウプしました。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1023695507

;゚д゚) <残念だけど美しいパーサーというのは無い。
148


               Σミ゚Д゚;彡エーッ!


                ミ ゚Д゚彡・・・・


               Σミ゚Д゚#彡 ナワケネーダロ



StringParserでは"区切り文字"で分割して
Stringの配列にStringを代入しているんだけど

この機能をもっと進化させて
"区切り文字"と一致するかどうかでString分割の判断するのではなく

指定した関数郡の
関数ポインタに処理を任せて
例えば、

・"<!--"で始まって"-->"で終わる部分で分割
・"<"で始まって">"で終わる部分で分割

という処理を行う関数列を指定して
Parserにかければ、簡単なHTMLソースが

Parser.Item[0] = '<HTML>'
Parser.Item[1] = '<HEAD>'
Parser.Item[2] = '<TITLE>'
Parser.Item[3] = #13#10+'タイトル'+#13#10
Parser.Item[4] = '</TITLE>'
Parser.Item[5] = '</HEAD>'
Parser.Item[6] = '<BODY>'
Parser.Item[7] = #13#10+'本文'+#13#10
Parser.Item[8] = '</BODY>'

こんな風に要素に代入されるパーサーってのは書けるだろうし
これを利用して更に
<AAA>と</AAA>
の組み合わせで再帰的に処理かけるとか
いう事の楽に出来るクラスは
作れるんじゃないの?

>汎用的に生産性のあがる方法はlex/yaccを使う事だ
車輪の再発明なのかもしれないけど、

150 :デフォルトの名無しさん:02/06/10 17:12
コーディングガリガリなんてやってないで性器表現を覚えた方がいいと思うよ。
.NETでもJavaでもPerlでも応用が効くし。

151 :デフォルトの名無しさん:02/06/10 17:47
>コーディングガリガリなんてやってないで性器表現を覚えた方がいいと思うよ。
覚えてもしばらく使わないとすぐ忘れる・・・頭悪・・・欝出汁脳

152 :デフォルトの名無しさん:02/06/10 17:48
>>151
(.*?)さえ知ってれば大抵の場面で生きていける罠。

153 :Delフサギコ ◆zE1iiRdQ :02/06/10 17:51
ミ ゚Д゚彡
だけど、正規表現だと
"このHTMLには何個のテーブルがあって
 そのセルのタテヨコの個数をそれぞれ出せ"

ってな命題には答えにくいんじゃなかろうかと思うタリ
 >>どうかしら?

パーサー作るのもそれなりに手はかかるでしょうが。

154 :デフォルトの名無しさん:02/06/10 17:55
>>153
世の中がXHTMLだけになれば楽になる。

155 :デフォルトの名無しさん:02/06/10 18:13
正規表現は lex 使うのも必要だから当然必要だけど

正規表現検索ライブラリがあっても字句解析には少し遠いぞ

>>148 のようなライブラリが出来たとしても、それを使いこなすには
結局は lex/yaccでその使い方を身に付けるのと同じ程度のお勉強が必要

156 :デフォルトの名無しさん:02/06/10 18:48
Delphiでlex/yaccを使いたいなら

http://www2.big.or.jp/~osamu/Delphi/MyLibrary.htm
これから Delphi 用 TP Lex/Yacc ライブラリ を落として
アーカイブされてるドキュメントを読むといい


157 :デフォルトの名無しさん:02/06/11 17:05
このあたりの処理は、Cでほぼ完成されてるから、本は殆どCで書かれている。
しかし、本に書いてあるとおりにCで入力して走らせてるより、
別の言語に置き換えてやってみるのが良い勉強法だと思うよ

158 :Delフサギコ ◆zE1iiRdQ :02/06/11 19:12
ミ,,゚Д゚ミつ追加投稿しておいたけど、誰か...見てるかしら...

そのlexなんとかってのはなんとなく使いたくないなー
食わず嫌いなだけかもだけど。なんとなくね。

159 :デフォルトの名無しさん:02/06/12 08:18
うーん。 残念だけどコードは動かない。
 TStringParser.Execute; が定義されてない
 しょうがないから
procedure TStringParser.Execute;
begin
ParseExecute;
end;

として実行してみた。で、コードをザっと見た感じ、パーサ(文解剖)と名前を付けながら単なる
セパレータ(文区切)の機能しかないように思うのだが?

だから PascalSourceLift では TStringParser を使って、その後で状態遷移型のコードでパーサ
を実装しているように見えるのだが?

それなら、最初から状態遷移型のコード内で検索した方が速度も早いし、だいいち考え易いと思う

160 :デフォルトの名無しさん:02/06/12 09:27
>>158
 そうか? 俺はやってみるつもり

しかしさっそくつまづいた。
tply41a.zip の makeeD32.bat で作った実行ファイルだと Runtime errorが出る
この原因調べるのに昨夜は終わり

結局このバッチファイルの -cc を -CC にすれば解決

161 :Delフサギコ ◆zE1iiRdQ :02/06/12 09:52
ミ;゚Д゚彡つ

見てもらってた(w汁

> TStringParser.Execute; が定義されてない
ごめん、少々Updateしてて
メソッド名変えてたのと、TextやDelimiters代入で
自動でParseExecuteを実行するのを止めたんだ(オーバーヘッドでかいと思ったので

>単なる セパレータ(文区切)の機能しかないように思うのだが?
そうね(汁汁

もう頭の中は構文解析でイッパイ.です。
どうやったらもっとうまく実装できるのか
そろそろ思いつきそうなオカーン....

>その後で状態遷移型のコードでパーサ
>を実装しているように見えるのだが?
そうっす。これをどうやってParserに取り入れるかですね。

TMyParserとTMyParserItemとを用意してTree構造で実装するのが
いいような気がしてますが...

162 :デフォルトの名無しさん:02/06/12 10:20
>>161
 どうやったら巧く実装出来るかだけど
 今はDelimiters が配列だけど、
1、これを木構造のリストにする
  簡単なのは先頭の空白の数やドットの数で木の深さを伝える方法
2、文字だけを渡してるけど
  '...メソッド名,Delimiter' のように渡すにようにして
 メソッド名を実行時型情報の機構を使って取得する



inString,'
.normal,'
inCom,{
.normal,}
inCom,(*
.normal,*)
inCom,//
.normal,\n

で pulished なメソッド
が1文字づつ呼ばれるという仕掛けにしたら?
もちろん、どのメソッドが呼ばれるかはプロパティにして動的に変更可能にしておく


163 :Delフサギコ ◆zE1iiRdQ :02/06/12 12:50
ミ ゚Д゚彡サンクスコ

とりあえz,Stringの配列で保持する必要は
無いことに気が付きますタ。
要素一つ一つの位置IndexとLengthを保持しておけば
Parser.Executeは早くなるわな...

問題は高速化ではなくて、仕様ですね。

いいっすね、メソッドボインタン...んー。Delphi的にはイベントを
TParserItemあたりに保持させておけばいいのか,,,ムズイ...

164 :Delフサギコ ◆zE1iiRdQ :02/06/13 01:10
http://www.nifty.ne.jp/forum/fdelphi/samples/00628.html
サンプル蔵を見ていたらこんなん見つけた。

   ∧,,∧    /
  ミ,,゚Д゚彡 < なんかいいかも!
   ミつ つ   \
 @ミ  ミ      
   ∪''∪     

165 :デフォルトの名無しさん:02/06/13 12:56
>>164 そんなに人が作ったのが良いなら

ttp://www.text2music.com/hima/delphi/
strunit の方が全角対応だよ


166 :デフォルトの名無しさん:02/06/13 18:02
このスレにはDel厨しかいないじゃん。(w

167 :デフォルトの名無しさん:02/06/13 18:22
>>166 じゃ今の課題は >>142 だから参戦したら?


168 :デフォルトの名無しさん:02/06/17 01:15
>>166
C# を始めたけど、ただ始めただけってヒトが多いと思われ

169 :デフォルトの名無しさん:02/06/17 10:21
>>168
C#での2chビューアのパイオニアとして名を残すため。
後はユーザーインターフェースのみ〜。
気が付いたらこれが一番大変〜(泣)。

170 :デフォルトの名無しさん:02/06/20 20:05
.NET って、なんも盛り上がってないじゃん
発売当初の騒ぎだけかよ

171 :デフォルトの名無しさん:02/06/28 16:45
>>169
ライバルハケーン
漏れもGUIで苦戦中
エンジンもろくに出来ていないけどw

172 :デフォルトの名無しさん:02/06/28 19:50
>>171
ごめん、飽き中w

いっそエンジンだけオープンで公開してしまおうかと。
ってまた仕様変更あったのね・・・。

173 :デフォルトの名無しさん:02/06/29 21:11
質問です。
2chビューア が .NET にのると、何がうれしいのですか?

174 :172:02/06/29 21:39
>>173
別に?
メリットはないね。
遅いし結局Windowsに依存だし。

でも、新しい言語を覚えてもしかしたら何かの役に立つ2chビューアを作ってみようと。
こう言うのはパイオニアが一番普及するんだよ。

175 :デフォルトの名無しさん:02/06/30 00:48
>>遅いし結局Windowsに依存だし。

普及すると思えんが?

176 :デフォルトの名無しさん:02/06/30 01:35
>>175
うん、でも、MSがそれで行くって言ったら従わざるを得ないっしょ。
後、64bitにもそのまま対応できるみたい。
過去の経験から32bit互換(って言うかCPUレベルから互換無くなるチック)は捨てるのだろう。
要はソフトウェアだけ先に64bit対応に移行させようという魂胆かと。


177 :デフォルトの名無しさん:02/06/30 01:40
>>176

なるほど。
気の長いはなしなんですね。
ゆっくりやっても大丈夫じゃないですか。

178 :デフォルトの名無しさん:02/06/30 11:16
>>177
この世界、パイオニアが勝つのよw

179 :デフォルトの名無しさん:02/06/30 11:50
>>178 そうだとすると C#より JAVA/Delphiが勝ちそうなもんだけど?

180 :デフォルトの名無しさん:02/06/30 11:52
>>179
いや、言語を初期から勉強してきた奴がその言語使いとして名を挙げられる。

181 :デフォルトの名無しさん:02/06/30 11:58
>>176

過去の経験からいくと、64bitで Win32を捨てたら Win32アプリと互換性のある他社製品が出て
皆はそっちに乗り換えるでしょう。

 俺は組込屋だから、未だに Win16アプリも使うしDOSアプリだって使ってるし
 それどころか書く事も年に何度かはあるよ


64bitになっても、人工知能アプリが自然に作れるとかそんなドカーンとくるメリットがなけりゃ誰も
いきなり乗換えませんて

で人工知能アプリが出来りゃプログラマは不要かもね



182 :デフォルトの名無しさん:02/06/30 12:00
>>180 そんな事あったっけ? 何かの夢?

言語を一緒に作った奴やアクテブなβテスタはそりゃ名は挙げられるだろうけど

183 :Delフサギコ ◆zE1iiRdQ :02/06/30 14:19
 ∧,,∧
ミσ゚Д゚ミσ

ピーデーが名を上げてるかしら?
DQNとして有名にはなってるみたいだけど。

184 :Delフサギコ ◆zE1iiRdQ :02/06/30 14:24
>過去の経験からいくと、64bitで Win32を捨てたら Win32アプリと互換性のある他社製品が出て
>皆はそっちに乗り換えるでしょう。

なんの経験だろう。
             _______________
  ,,,,,,,,,,,,,∧,,∧   /Win32でもWin64でも
〜′,,,,,,,ミ,,゚Д゚彡< .NET枠かぶせてりゃ同じように動作する
  UU""" U U   \ ってのを狙ってるんでしょ。
 あと、WinCEとかも。


185 :デフォルトの名無しさん:02/06/30 16:22
>>410 それがどうしたの? 
system と number の違いがどうしたっての?
何か意見でもあるの?

186 :デフォルトの名無しさん:02/06/30 16:47
>>185
?

187 :デフォルトの名無しさん:02/06/30 18:02
>>184
WinCEはもし出たら使い物にならない惨状になりそう
JITは無理だろうから、中間言語インタプリタ実行になるだろうし

ところで、Win64が出ても Win32/Win3.1/DOSの3つはサポート
されるだろうね。 だったら Win32でいいんじゃない? とも思うな。
CPUの速度は今でも(ゲームでもやらなけりゃ)十分すぎるくらいあるんだし

逆にWin32アプリが重いとか互換性に問題があるようじゃWin64へ誰が動くのかと思う

結局 .NET なら IA64への移行もスムーズっていうのは、あんまり意味
のない売り文句だと思うな

188 :デフォルトの名無しさん:02/06/30 23:42
>>187
>ところで、Win64が出ても Win32/Win3.1/DOSの3つはサポートされるだろうね。

論拠は?WindowsXPって知ってるかい?

189 :デフォルトの名無しさん:02/07/01 00:24
>>188
それは XP で Win32アプリさえまともに動かない事を皮肉ってるの?
それともXPでは16bitアプリが動かないと?

190 :デフォルトの名無しさん:02/07/02 21:06
いかにもDel厨って感じの低レベルな会話だな。(嘲笑激藁

191 :デフォルトの名無しさん:02/07/02 23:28
>>190
お、久しぶり

192 :デフォルトの名無しさん:02/07/07 02:56
>>190
いかにも低脳って感じの低レベルのカキコだな。(嘲笑激藁

<オレモナー

193 :デフォルトの名無しさん:02/07/13 11:57
これまで触った感じで C#の嫌な点 (目隠しして象を触る感じだろうけど)

1、全てがシリアライズ可能な点 
  Delphiではpublished指定したものだけにシリアライズ可能な実行時型情報
  が付いたのに C#ではJAVAと同じく全てに実行時型情報が付く。
  これではまるでインタプリタ 少し大きなプロジェクトになると、実行サイズの
  増え方が尋常じゃなくなるだろう。

2、ライブラリが豊富すぎ
  あまりにもライブラリが提供されすぎている。これじゃ、自分でライブラリを
  整備する必要がない。 良い事のようだけど、DoItYourselfな面が無ければ
  プログラミングが単なる労働になってしまう。 労働者御用達ツールじゃ、
  進歩も発展はそこからはおきない。

  四則演算も自分で書けないVB使いと馬鹿にされてるのと同じ立場にC#使い
 もなるだろう

194 :デフォルトの名無しさん:02/07/13 12:02
>>187
>ところで、Win64が出ても Win32/Win3.1/DOSの3つはサポートされるだろうね。

NT系列の場合は、フルWin32で16ビットコードは廃止。
16ビットコードは、エミュレーションで動く。
DOSもDOS窓がエミュレーションさせて動く。

195 :デフォルトの名無しさん:02/07/13 12:08
>>194
 エミュレーションでも今となっては何の不満もなく使えるね
 7年前は 圧倒的にWin95が速いと感じたもんだけど

196 :デフォルトの名無しさん:02/07/13 12:09
>>193
>1、全てがシリアライズ可能な点

シリアライズするメンバーはカスタマイズできます。

>2、ライブラリが豊富すぎ

でも、ファイルとしてきちんと分散されてるのが肝かと。
すべてをrt.jar1個のファイルにまとめてる某言語とは違って。

197 :デフォルトの名無しさん:02/07/13 15:04
>>193
published があってリフレクションがない言語では、分散オブジェクトに
おけるMBVが実現できませんね。

198 :デフォルトの名無しさん:02/07/13 15:47
Delphiにおけるリフレクション
・可 クラス名からクラスを参照する
・可 クラスに定義されているメソッドやメンバー変数を求める。
・可 メンバー変数に動的にアクセスする。
・可 コンストラクタやメソッドを動的に起動する。

 ただしpublishedにしてあった場合で、かつメンバ変数名がDelphiの変数規則
に従う場合。

MBV(なんかこう書くと別のを連想するので)Marshal By Value = 値によるマーシャリング
は単に相手にバイトコードを実行させる仕掛けだから、
そのオブジェクトを実現するバイトコードを用意すればいいだけ 実現出来ないなんて事
にはならない。(メンドクサイだけ)

199 :デフォルトの名無しさん:02/07/13 17:11
>>198
違うと思いまーす。
MBVはオブジェクトの状態を完全に転送できる必要があります。privateも含めて。
publishedしかできないならそれはMBVではありません。それと、MBVは「コード」を
運ぶ必要はありません。状態だけ。コードはあらかじめ置いておけばそれでよい。

200 :デフォルトの名無しさん:02/07/13 18:12
>>199 べつにオブジェクトに応答させればいいだけでは?

201 :Delフサギコ ◆zE1iiRdQ :02/07/15 03:09
           >>193>2、ライブラリが豊富すぎ
            _____________
    ∧,,∧    /ライブラリを使いこなして
  _ ミ,,゚Д゚彡_<  より高度なものを創造汁
.=| |==U==U=| |= \
 | |@ミ  ミ .| |     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 | | ∪''∪ | |
 | |      | |
        

202 :デフォルトの名無しさん:02/07/15 08:20
逆説的なようだけど、特定の面でのライブラリは豊富というか親切すぎるくらいに
整備されてるのに、想定外の事は 「何もない」 のが困るって事じゃないかな

画面回りはVCLよりも親切だけど、それがかえって、想定外の事をやり難くし
ている。 たとえば、リアルタイムに低レベルオーディオを叩きたい
というような場合に、どうすればいいかは、普段C#を使っているだけでは見えて
こないというような・・・・

 出来るんだろうけど、それが普段の延長上には無いというような感じ

203 :デフォルトの名無しさん:02/07/15 12:15
>>202
自分の無能さをM$のせいにする典型(プププ

204 :Delフサギコ ◆zE1iiRdQ :02/07/15 18:36
 ∧,,∧   普段デルパイ使ってても
ミσ゚Д゚ミσ 見えてきませんが、何か?

俺はVCLが.NET化に伴って
大幅拡張されることをキボンしてるんだけど

そのときも「それがかえって、想定外の事をやり難くしている。」
事になるんかな?

205 :デフォルトの名無しさん:02/07/15 20:46
>>204
スクリプト系の言語使って見るとわかるよ。
関数が用意されてないことをやろうとするとかなりハマる。

レベルが違うけど、>202はそういうことをいいたいんでは
なかったのかな?

206 :Delフサギコ ◆zE1iiRdQ :02/07/15 20:54
 ∧,,∧   VCLソスが付属するか
ミσ゚Д゚ミσ .NET枠ソスが付属しないかの
       違いのことっすか?
       ウームそう感じるかな?

http://www.din.or.jp/~egawa-n/delphi/index.html
Delphi工房さん
とこと、ほとんど同じ関数/コンポ/Tips
を自前でそろえてしまっている俺的には
VCL標準は足りなさすぎじゃゴルァ
と叫びたい気持でオッパイオッパイなのです。

207 :デフォルトの名無しさん:02/07/16 01:42
大抵のことはライブラリを使用すればできるが、
ライブラリとして用意されてないものは自分で作らないと
いけないと。
それが作りづらいといってるのでは?

208 :デフォルトの名無しさん:02/07/16 07:08
>>207 C#でも普通のライブラリはつくり難くはないけど、コンポーネントライブラリは
  やり方が見えてこなくて辛いなあ

Delphiみたいにフリーのソース付きライブラリが沢山出てくれば別なんだろうけど

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

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)