あまりにも長くなってしまったのと前回のではかなり分からないで
結末を迎えてしまったので、新規の書き込みにしました。
皆様にご迷惑をおかけして本当にすみませんでした。
タイトルの通りの質問内容です。
また起動時に保存したメールのデータを分割してヘッダ情報をListViewに
表示したいのですが、どうすれば良いでしょうか?
環境はDelphi6 Personal、開発に使っているDLLはnMail.dllです。
前回の最後の書き込みまでの作成のデータを以下の場所に置いたので
データを見て答えていただければ幸いです。
http://www.geocities.co.jp/HeartLand-Suzuran/3604/mne_dev.lzh
LoadFromFileを使えばファイルを表示することが出来ますよ。
リンクが正しくないんですけど・・・
lzhって解析してくださいってこと?
リンクミスです。(正しいのは下記のです)
http://www.geocities.co.jp/HeartLand-Suzuran/3604/nme_dev.lzh
結局のところ、メールソフトを他人に作ってもらいたいのでしょうか。
いえ、そうではないです。>他人に作ってもらう
でもそのように見えてしまうのも仕方がないです。
結局どうしたいのですか?
質問をしても、あいまいな返事しか返ってこないし…
この言い方は、間違ってますね。すいません。
みけにゃんさんが、メールソフトを作りたいと思って作成しているのですよね?
作ることは大変なことです。わからないこともたくさんあります。
質問することは、悪いことではありません。
でも、少し考えれば(調べれば)わかることまで、質問しています。
ListWiewをクリックした時にだったら
OnClickイベントで出来ますし
ファイルを読み出すなら
Memo1.Lines.LoadFormFileでできるはずです。
これは、ヘルプを見れば調べられますよね?
ちょっと言い方がきついかもしれませんが、あなたのためです。
もしこのままメールソフトが出来て、
また最初から作れって言ったら、出来ますか?理解してますか?
書き込みをする前にもう少し考えて(かみくだいて)、質問してください。
ふぅさん、にしのさん本当に申し訳ありません。m(_ _)m
伝えたい内容をうまく表現できない事があるためあいまいな返事しか
出せれない時があります。出来るだけ気を付けますがご了承下さい。(>_<)
このプログラムで実現したいことを書きます。
・メールを受信する時にメールのデータをファイル化(.nmlファイル)して
何度もPOPサーバに接続しない(ほぼ実現)
しかし現在のソースのCount := for 0 to NowUidl.Count - 1 で
ループを回すと受信時にメールのデータはファイル化されるけれど
メニューの保存でテキスト形式で保存しようとするとEAccess Violation例外が
発生してTXTファイル出力が出来ないバグが存在します。
・受信リスト(MailListView/件名と時刻と差出人)の任意の一件をクリックすると
指定されたファイル化したメールの本文のみをMemo(BodyMemo)に表示する
・ツリービューとリストビューを連動させてツリービューの受信箱を
クリックすると受信フォルダ(RcvMailフォルダ)からファイル化したメールの
ヘッダ部分をメールを受信した時と同じように件名、時刻、差出人のカラムに1件ずつセットする。
・削除を押すとリストからそのメールの件名などを削除するのと同時に
受信フォルダにある指定されたファイル化したメールを削除する。
→実際はごみ箱フォルダ(TrashBox)に移動して別に削除する処理を入れたい。
この4つの処理をこのメールソフトに実装するのが現在の私の目標で
ほとんど一番上の質問でみなさんに迷惑をかけてしまいました。
私は右も左も分からない素人ではないですが、やっぱり迷惑をかけていると
思っています。本当にごめんなさいです。
前にも書いたように、「詳細設計」まで済ませましょう。
みけにゃんさんの場合、まだ設計が出来ていないように思います。
# このレベルでは、基本設計とも言えません。
小さなプロジェクトならば、設計なしに作ってもある程度できあがりますが、ある程度大きなものであれば、設計は必要です。
# 前にも書きましたよね
それと、基本的なプログラミングの概念がわかっていらっしゃらないようです。
いきなりメールソフトを作成するのでなく、もう少し小さなプロジェクト(電卓やメモ帳など)を作ってみてはどうですか?
TreeView,ListViewを利用するファイラを作ってみるのもよいかもしれません。
# この2つのコンポーネントがよくわかっていないようなので
にしのさんの言う通り、
>それと、基本的なプログラミングの概念がわかっていらっしゃらないようです。
OnClickやLoadFromFileを
使っていないで出来ないのか?(1)
それとも使ったのに出来ないのか?(2)
使い方がわからないで出来ないのか?(3)
これについての返答がありませんので、私たちにはわかりません。
(1)は試してみてください。
(2)は、なぜ出来なかったのか、どうなってしまったのか?
何を作っているのか知らない人が読んでもわかるように書いてください。
(3)の場合には基本に戻って
>いきなりメールソフトを作成するのでなく、もう少し小さなプロジェクト(電卓やメモ帳など)を作ってみてはどうですか?
>TreeView,ListViewを利用するファイラを作ってみるのもよいかもしれません。
をやってみるといいと思います。
横から失礼します。
わたしもにしのさんと同じく、メールソフトとかではないものを作って、Delphiに慣れておく必要があると思います。
ホームページ見させてもらったところ、ほかの言語でのプログラミング経験もあるし、
わたしより(というと程度の低い話になりそうですけど、そういう意味ではなく(^^ゞ)プログラミングに深い知識があるとお見受けします。
でも、VCLにはまったく触ったことがないように思います。
VCLの中でも、ツリービューなど二つは特に扱いが難しいほうだと思いますから、インターネットとは関係ないことで、練習して、
まず"動かす"ということに慣れてみることをおすすめします。
初めてのことを二つ三つ続けて一気にやるとなると、かなり大変だと思います。
頭の中が混乱してしまって、いつも以上の力が出せなくって不思議ではありません。
まずはツリービュー、リストビューになれるために、別のものを作ってみましょう。
開発環境(Delphi6 Personal)のない家からの書き込みです。
→実は会社のプログラムの勉強で作っています。
>小さいプログラム
えっとメモ帳のプログラムであれば何回か作っています。
→VB、VC++SDK/MFC、Delphiもやってます。
Memo1.Lines.LoadFromFile(OpenDialog1.Filename);の使い方は分かります。
あとほとんどコンポーネント任せですがミニマスコットも作っています。
メールソフトの詳細設計をもう少しやってみます。
あと一度開発を止めてExplorerみたいなソフトを作ってみたいと思います。
でもVBとはツリービューの使い方とかがちょっと違うようなので
その辺りを教えていただけるとうれしいです。
会社の仕事やって?
そんなら Personal版でなく Pro版こうて Borland社の有料サポート頼みなはれ。
そなら、どんな幼稚な質問やかてとことん付きおうてもらえるやろ。
今回の「にしの」はんの回答がもし有料ならナンボになるんかいな?
カネはろうてくれはるんやら、Borland社よりチイとは勉強しまっせ。
(大阪人はすぐカネの話や、なん思わんといてや(^^;)
>Pro版買うて Borland社の有料サポート頼みなはれ。
私まだ会社に入って1年も経ってない社会人一年生です。
あんまりお金がないのでPro版は到底買えないです。>6万ちょいするもの
またそれに有料サポートをつけるのは到底無理な事なんです。
Delphiの初心者向けの本を買いましょう。
まずは、本で基礎を身につけて、それからアプリケーションの作成に入るのが普通です。
複数の言語をこなしているのであればある程度類推できるのですが、そこまでの技量があるように思えませんから。
自分自身が「何がわからないのか」を理解するまでは、他人に聞かずに自分で勉強しましょう。
そうでないと、膨大な情報量に押しつぶされますよ。
少ない情報を、自分の力に置き換えてから、次のステップに進むと良いと思います。
>あんまりお金がないのでPro版は到底買えないです。>6万ちょいするもの
会社が所有のソフトはないんですか?
個人で勉強しているのですか?仕事上勉強しているんですか?
VB、VC++SDK/MFC、Delphiを経験しているなら、自分で一番あった言語を使った方が覚えやすいし、使いやすいのでは?
それから、他の言語の勉強をした方が上達は早いと思います。
基本的にはやることは一緒ですから
えっと私の所はVBかVC++(またはJava)なんです。
なのでDelphiについては何もないという状態なので
今会社から借りているノートに入れて勉強している状態です。
VBでもVCでも良いのですが、VBやVCの場合スプリットコントロールなどを
作らなければいけなかったり、Alignの概念がないので大きさが変更された
時の処理を書かなくてはいけなかったりでかなりDelphiよりは大変だからです。
VC+SDKでメールソフト(猫でもを参考にして作成)を途中まで作ったのですが
ファイル化の概念をつけていないのと特定のサーバではうまくリストに
ヘッダ部分が収まらなかったりで・・・な気分になりました。
・・・と言うこともあってDelphiを使ってメールソフトを作り直したんです。
ここからお話を変えます(ごめんなさいです)
Explorerの雛型は完成したのですが、まずはツリービューにルートフォルダを
表示したいのですがどうすれば良いのですか?
>・・・と言うこともあってDelphiを使ってメールソフトを作り直したんです。
こんなことを言っているとまた投げ出しますよ。
VB,VCの方が、いつ返事が返ってくるかわからない掲示板を使って作るのなら、
身近に詳しい人がいて、聞けばすぐに返ってくる環境の方がいいと思うのですが…
TTreeViewのヘルプは見ましたか?
プロパティ、メソッド、イベント、TreeViewの使い方は全て確認しましたか?
もしかして、Personal版は、ヘルプがないんですか?
>身近に詳しい人がいて、聞けばすぐに返ってくる環境の方がいいと思うのですが…
そうなのですが、ほとんどそういう事が出来ない状態にあるので他の人に質問できないんです。(>_<)
ヘルプは見ているのですが、全然分かりません。
これではまた投げちゃいそうですね・・・。(T_T)
TTreeViewを使うより、TDirectoryOutlineというコンポーネントを使う方がいいのかもしれないです。
確認してないので、実際にいいのかわかりません。(いいかげん・・・)
TreeViewには、ディレクトリ表示する関数はないようなので、確認不足かも
ふぅさん、TreeViewの使い方をマスターするためなので、TDirectoryOutlineでは駄目です^^;
# 同じ理由でTDirectoryListBox,TFileListBoxも駄目
http://www2.big.or.jp/~osamu/Delphi/Tips/
こういうTipsサイトを見て回って、何が出来て何が出来ないか、どうすれば出来るのかを考えてください。
もちろん、1発で調べたいことが見つかるわけではありません。複数のTipsを組み合わせて実現します。
この程度ならば、聞くより調べた方が早いしDelphiも上達しますよ。
今TreeViewのAdd、AddChildメソッドを勉強中です。(>_<)
TreeViewにもLoadFromFileのメソッドがあったので関係ないですが
ちょっと見ています(改行が来るまでの文字を1ノードとして作ります。)
Niftyのサンプル蔵にそれらしきサンプルがあったので実行したのですが
処理がとても遅くてすべてのディレクトリを見れるわけではないので
ちょっと違うかなぁって思います。
このプログラムを諦めたわけではないですが、VisualC++6.0(SDK)と
nMail.dllを使ってまずはメールリーダーを作ってみています。
やっぱりDelphiよりやっているだけあって中身も分かっているので
あんまり苦労しないで出来てきていますがやっぱりAlignの概念がないのは
ちょっときついかなぁって思います。
ツイート | ![]() |