2008-07-01から1ヶ月間の記事一覧

マークアップと分離コード

マークアップと同様の結果が得られる、分離コードについて解説します。 <Polygon Name="shape" Stroke="Blue" StrokeThickness="2" Fill="Yellow" Points="0,28 80,28 12,80 40,0 68,80" />マークアップでは、Polygon ... に続いて、さまざまなプロパティーを指定します。これを分離コードでは、次のように記述します。 # Polygon.py points = PointCollection() vertices =</polygon>…

Polygon

多角形を表現する方法を紹介します。 >ipy.exe Polygon.pyこのアプリケーションを起動すると、ウィンドウが現れます。1)図形をクリックすると、2)その図形に関する情報が表示されます。ここでは、表示された図形が多角形 Polygon であり、5つの頂点 0,28 …

第4章 グラフィックス 3/5, Polygon

《Previous|3/5|Next》 C#.use(better, IronPython=”WPF”) 《記事一覧》

マークアップと分離コード

マークアップと同様の結果が得られる、分離コードについて解説します。 Ellipse Name="shape" Stroke="Blue" StrokeThickness="2" Fill="Yellow" Width="100" Height="50" />マークアップでは、

Ellipse

楕円(円)を表現する方法を紹介します。 >ipy.exe Ellipse.pyこのアプリケーションを起動すると、ウィンドウが現れます。1)図形をクリックすると、2)その図形に関する情報が表示されます。ここでは、表示された図形が楕円 Ellipse であり、幅 100 高さ 50…

第4章 グラフィックス 2/5, Ellipse

《Previous|2/5|Next》 C#.use(better, IronPython=”WPF”) 《記事一覧》

第4章 グラフィックス 1/5, Rectangle

‖記事一覧‖ C#.use(better, IronPython=”WPF”)《IronPython》 グラフィックス 《著》本間りす+小粒ちゃん《監修》小泉ひよ子とタマゴ倶楽部第3版♪2008/04/28《 前の記事|次の記事 》関連記事 Rectangle 長方形(矩形)を表現する方法を紹介します。 >ipy.…

第0章 グラフィックスとアニメーション 1/5

‖記事一覧‖ C#.use(better, IronPython=”WPF”)《IronPython》 グラフィックスとアニメーション 《著》本間りす+小粒ちゃん《監修》小泉ひよ子とタマゴ倶楽部第3版♪2008/04/28《 前の記事|次の記事 》関連記事 WPF の特徴のひとつは、多彩なグラフィックス…

まとめ

複雑なアプリケーションを作成するときには、各処理を分割統治できる仕組みがあると便利です。それには、イベントとアクションを組み合わせて、コントロールごとに役割分担させるのが得策です。そうすることで、要求仕様の変更にも柔軟に対処できます。 《Pr…

複数のイベントハンドラー

プロパティー MouseMove には、複数のイベントハンドラーを登録できます。すると、あるイベントが発生したときに、複数の異なるアクションを実行します。 >ipy.exe mouseMove2.py mouseMove.xaml ... (アプリケーションを起動して)スライダーの上でマウス…

プロパティー:MouseMove

マウスを移動したときの値の変化を(プロパティー MouseMove を介して)読み取る方法を紹介します。 # mouseMove.py def _Controls(self, target): controls = xaml_controls(self) for e in target: setattr(self, e, controls[e]) for e in "RGB": getattr…

第0章 イベントとアクション 2/2

《Previous|2/2|Next》 C#.use(better, IronPython=”WPF”) 《記事一覧》 更新♪2008/11/03

事例:Slider

コントロール Slider は、指定された範囲内で値を設定したいときに便利です。例題を使って、その便利な機能のいくつかを紹介します。 >ipy.exe mouseMove.py ... アプリケーションを起動すると、3つのスライダーが表示されます。これらは、上から順に赤/緑/…

データバインディングを使わずに、双方向に情報を交換するには工夫が必要です。たとえば、コントロールを操作してインスタンス属性の値を更新したり、インスタンス属性の値を更新した結果をコントロールに反映させます。そこで、なにか状態が変化した(イベ…

マークアップを使って

マークアップでは、各色成分の値を指定するスライダー Slider のほかに、その値を反映した色を表示するキャンバス Canvas を用意します。 Slider Name="R" Width="120" Maximum="255" /> Slider Name="G" Width="120" Maximum="255" /> Slider Name="B" Wid…

第0章 イベントとアクション 1/2

《Previous|1/2|Next》 C#.use(better, IronPython=”WPF”) 《記事一覧》 イベントとアクション 《著》本間りす《監修》小泉ひよ子とタマゴ倶楽部更新♪2008/11/03

《付録》exColorSlider.py

# -*- coding: utf-8 -*- #=============================================================================== # Copyright (C) 2000-2008, 小泉ひよ子とタマゴ倶楽部 # # History: WPF examples # 2008/01/25, IronPython 1.1.1 (download) # 2008/08/22, …

《付録》exColorSlider.xaml

第0章 データバインディング 1/1《IronPython2.6》

|記事一覧|第1章|第2章|第3章|第4章|第5章|第6章|第7章|余録A|余録B|余録C|C#.use(better, IronPython=”WPF”) データバインディング 《著》本間りす《監修》小泉ひよ子とタマゴ倶楽部 データバインディング〔data binding〕は、マークアップ/分…

まとめ

複数のコントロールを組み合わせて、アプリケーションを作成する方法を紹介しました。マークアップ/分離コードによる役割分担と、コントロールの協調作業によって、作成できるアプリケーションの可能性は無限に広がります。 2/2

事例:Brushes で規定された色の名前

別の例題を使って、その理解を深めます。 >ipy.exe exBrushes.py このアプリケーションを起動すると、リスト項目にはクラス Brushes で規定された色の名前が表示されます。任意のリスト項目を選択すると、選択した項目の色が表示されます。たとえば、リスト…

マークアップと分離コード

マークアップでは、色の名前を表示するリスト項目 ListBox のほかに、その色を表示するキャンバス Canvas を用意します。 ListBox Name="listBox" DockPanel.Dock="Left" /> Canvas Name="colorBox" /> マークアップで記述した各コントロール ListBox/Canva…

《付録》exBrushes.py

# -*- coding: utf-8 -*- #=============================================================================== # Copyright (C) 2000-2008, 小泉ひよ子とタマゴ倶楽部 # # History: WPF examples # 2008/01/25, IronPython 1.1.1 (download) # 2008/08/22, …

《付録》exBrushes.xaml

第0章 コントロール 2/2

C#.use(better, IronPython=”WPF”) 《記事一覧》 改訂♪2008/10/14 《承前》

SimpleIterator_WPF.py

WPF アプリケーションとして、IronPython で実現した事例を紹介します。 # -*- coding: utf-8 -*- #=============================================================================== # Copyright (C) 2000-2008, 小泉ひよ子とタマゴ倶楽部 # # History: D…

《参考文献》

C# Design Patterns 24. The Iterator Pattern.

__main__

if __name__ == "__main__": print __file__,"ver.1.0a" win = SimpleIterator_WPF() win.Title = win.__class__.__name__ # .Text Application().Run(win) Text に代えて、Title に値を設定しています。

Form1.cs

class SimpleIterator_WPF(Window): # Form Form に代えて、Window を拡張しています。 def __init__(self, **args): self.InitializeComponent() self.init() def init(self): kids = KidData("50free.txt") for kd in kids: self.lsKids.Items.Add(kd.frna…

KidData.cs

class KidData: # IEnumerator def __init__(self, filename): self.kids = [] # ArrayList fl = csFile(filename) for line in fl.file().readlines(): kd = Kid(line) self.kids.append(kd) else: fl.close() self.index = 0 def next(self): current = se…