Delphi 買ったけど。。 RSSを登録する

初めてプログラムという物に触れようとして、Delphi を買ったけど全然わからないや。という方の為のメルマガです。

最新号をメルマガでお届けします    
登録 解除

規約に同意して

登録した方には、まぐまぐの公式メルマガ(無料)をお届けします。
2008/03/08

Delphi 買ったけど。。No.0204 2008/03/08

この記事を取り寄せる

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
           Delphi 買ったけど。。No.0204
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
まぐさんの言うには三ヶ月ぶりらしいですだも(^O^)/ TERRY です(^-^)


☆――――――――――――――――――――――――――――――☆
えっと、最近睡眠がとうとう5時間を切ってしまいまして。
本職の方もそうなんですが、自爆気味にやらなくてはいけないことが
ドンドン増えてきて毎日焦りと不安で少々鬱気味です。

そういえば先月くらいに左半身(心臓から左手にかけて)が痺れてきま
して内科、循環器科、整形外科とハシゴしてしまいました。
酷いときは茶碗くらいの重さのものも持てないくらいで、ある時ウェブ
でちょっちエッチィ動画を観たとき、心臓がバクバク鳴って、この状態
で死んだら少し恥ずかしいと焦ったり(^^;

取り敢えず仕事上の使い痛みだろうという結論でほとんど今は収まって
います。
☆――――――――――――――――――――――――――――――☆
前回(と言っても三ヶ月前ですが)

 |今、Delphi5 で UniCode 関連に挑戦しています。

と書きましたが、少々疲れまして、「Visual C# 2008 Express Edition」
を落としてしまいました。
Delphi 万歳な私なのですが、必要なものだけこちらでやってみようかな
と。
でも、「!」とか「==」とか「++」「+」とかやっぱり美しくないですね
☆――――――――――――――――――――――――――――――☆

っとチラシの裏落書きだけでは何ですので、でるけど本文です。


リストボックスのアイテムや TStringList の一行ごとに複数のデータを
記憶させる時ってどうされていますか?

文字列 + Integer

とかのパターンでしたら「AddObject」で全くOKですが、これもまた
IniFile などでテキスト保存するときに不便かな?
また、文字列 + 文字列 でも2つのリストを使って同期させたり
Objects でインデックスつけたりすることがありますが、やはり関連
づけられたデータが一瞬でも離ればなれになるのってバグを呼びそう
ではないですか?

♪旅立つ僕の心を知っていたのか
遠く離れてしまえば愛は終わるといった

    チューリップ『心の旅』

と言うわけで私はタブ区切りで一行の中につっこんでいます。
例えば簡単な例としましてウェブページのブックマークリストですね。

フォームにリストボックスを一つだけおいてください。
  Style = lbOwnerDrawFixed
スタイルをオーナードローにしておきます。


uses
  ShellApi;//ShellExecute 用

const
  Tab=#9;

//タブで区切った文字列を分割する
function GetTabSep(S:string;Index:integer):string;
var
  TabPos:integer;
begin
  Result:=S;
  TabPos:=AnsiPos(Tab,S);
  if TabPos=0 then exit;
  if Index=0 then//タブより前
  begin
    Result:=Copy(S,1,TabPos-1);
  end else
  begin
    Result:=Copy(S,TabPos+Length(Tab),Length((S)));
  end;
end;

//OnCreate でテスト様サンプルデータ
procedure TForm1.FormCreate(Sender: TObject);
begin
  ListBox1.Items.Add('Google'+Tab+'http://www.google.com/');
  ListBox1.Items.Add('まぐまぐ'+Tab+'http://mag2.com/');
end;

//リストボックスのドローアイテムイベント
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
begin
//ブックマークの「名前」だけ見えるようにする
  with (Control as TListBox) do
  begin
    Canvas.TextRect(Rect,
                    Rect.Left+5,
                    Rect.Top,
                    GetTabSep(Items[Index],0));
  end;
end;

//Wクリックイベントでブラウザ起動
procedure TForm1.ListBox1DblClick(Sender: TObject);
var
  url:string;
begin
  with (Sender as TListBox) do
    url:=GetTabSep(Items[ItemIndex],1);
  ShellExecute(Handle,'open',PChar(url),'','',CmdShow);
end;

#一行に複数のタブでいくつものデータを持たせた場合の取り出し関数
も書いたのですが、なんか範囲例外とか while と if が入り乱れ醜くな
って CommaText に一度入れた方が簡単なのでは?とやめてしまいました
m(_ _)m
☆――――――――――――――――――――――――――――――☆




そりでは(^.^)/~~

_________________________________________________________________
★わからない点などありましたら、メールしてください。

*****************************************************************

発行者:TERRY                                terry@vega*ocn*ne*jp
スパム対策です。               「*」を「.」に変更してください↑

★ 登録 or 解除はこちらから↓
                http://www.vector.co.jp/authors/VA009187/delkedo/
★バックナンバー
                 http://backno.mag2.com/reader/Back?id=0000016258
*****************************************************************
 ★なるべくMSゴシックなどの「等幅フォント」でお読み下さい★
_________________________________________________________________
このメールマガジンは、
・インターネットの本屋さん『まぐまぐ』
  http://www.mag2.com/       ID:0000016258
・melma!
  http://www.melma.com/      ID:m00001349
で発行しています。
_________________________________________________________________

この記事を取り寄せる
最新号をメルマガでお届け
登録 解除

規約に同意して

登録した方には、まぐまぐの公式メルマガ(無料)をお届けします。

最近の記事

上へ戻る