忍者ブログ
AMAZON
フリーエリア
最新コメント
広告
インテル製チップセットを搭載し、基本機能の充実、メンテナンス性も向上した高性能なクライアントPC Endeavor AT971 HP Directplus オンラインストア
1 2 3 4 
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

投稿者 : かおん [編集]
子のクラス(ContaonerViewController)のヘッダファイル

ContaonerViewController.h

#import <UIKit/UIKit.h>

@protocol ChildContainerDelegate;  // << 前置宣言

@interface ContainerViewController : UIViewController

@property (nonatomic,assign) id<ChildContainerDelegate> delegate;  // delegateの宣言

@property (weak, nonatomic) IBOutlet UILabel *MyLabel;

-(void)myfunc;

@end

// delgateの定義

@protocol ChildContainerDelegate <NSObject>

// Delegate用関数の定義(必ず実装しないといけない)

-(void) sampleA:(NSString *)message;

@optional

// Delegate用関数の定義(Optionalの配下では、必ずしも実装しなくてもよい)

-(void) sampleB:(NSString *)message;

@end

1.Delegateに名前をつける。"ChildConatinerDelegate"

2.子のクラスで、Delegateを使用することを宣言する。
  プロトコルの宣言とプロパティの宣言
   @protocol ChildContainerDelegate;
   @proparty (nonatomic, assign) id<ChildContainerDelegate> delegate;

*propartyは、@interface~@endに記載する。

3.delegateの定義
   delegateで使用する関数を定義する。
   @protcol ChildCOnatinerDelegate <NSObject>

   @end
   (引数なし)
   -(void) sampleC;

ContaonerViewController.m


#import "ContainerViewController.h"



@interface ContainerViewController ()


@end



@implementation ContainerViewController


@synthesize delegate=_delegate;


- (void)viewDidLoad {


    [super viewDidLoad];


}



- (void)didReceiveMemoryWarning {


    [super didReceiveMemoryWarning];


}



-(void)myfunc{


    _MyLabel.text = @"FUNC";


}



- (IBAction)MyButton2:(id)sender {


    NSLog(@"BUTTON2");


    //親クラスにイベントを発火させる(関数A)


    //respondsToSelectorで実装されているかどうかを調べてから発火する。


    if( [_delegate respondsToSelector:@selector(sampleA:)]){


        [_delegate sampleA:@"MESSAGE_DELEGATE_FUNCTION"];


    }


    //親クラスに実装されていないイベントを発火させる(関数A)


    if( [_delegate respondsToSelector:@selector(sampleB:)]){


        [_delegate sampleB:@"MESSAGE_DELEGATE_FUNCTION"];


    }


}


@end


1.delegateの名前を宣言する
   @synthesize delegate=_delegate;
   //実は、XCode4以降必要ない。(_delegate以外の名前を使用したい場合は記述する)
2.親クラスにイベントを発火させる。
   _delegate sampleA:["MESSAGE_DELEGATE_FUNCTION"];
   事前に実装されているか調べて実行したほうがいい。
   [_delegate respondsToSelector:@sekector(SampleA:)]で調べられる。

ViewController.h

#import <UIKit/UIKit.h>

#import "ContainerViewController.h"

@interface ViewController : UIViewController <ChildContainerDelegate>

@property (weak, nonatomic) IBOutlet UILabel *lbl;

@end

1.クラスにdelegateを使用することを宣言する
   @inteface ViewController : UIViewContorller <ChildContainerDelegate>

ViewController.m

#import "ViewController.h"

@interface ViewController ()

@property (strong, nonatomic) NSString *currentSegueIdentifier;

@end

@implementation ViewController

- (void)viewDidLoad {

    [super viewDidLoad];

    for (id childview in self.childViewControllers) {

        ContainerViewController *cview = childview;

        if ([cview.title  isEqualToString:@"ChildContainer1"]){

            cview.delegate = self;

        }

    }

}

- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];

}

// delegateが呼び出された時に、labelの内容を変更する

-(void)sampleA:(NSString *)Message{

    NSLog(@"DELEGATE:%@", Message);

    _lbl.text = @"DELEGATE";

}

- (IBAction)Button1:(id)sender {

    for (id c in self.childViewControllers) {

        ContainerViewController *cview = c;

        if ([cview.title  isEqualToString:@"ChildContainer1"]){

            [cview myfunc];

        }

    }

}

@end

View
PR
投稿者 : かおん [編集]


中身が見えないのを良いことにー!

プリンターのインクが高いのは言うまでもない。絶対に過剰プライスだとみんな思っているだろうとこも言うまでもない。が、なんとただ高いだけでなく、インクの量自体が年々減っていっていることが判明。しかもちょっとやそっとじゃくて、かなりの量が。

ネタ元のHP Ink Cartridgeブログが、2010年/2011年/2012年に発売された同じインクカートリッジの中身をチェックしたところ...。ほら!  この写真の通り。カートリッジの中にあるスポンジは、インクを吸収し水分をはねのけることで、湿気の多い環境で水とインクが混ざらないための役割をしてい ます。そのスポンジが年々こんなに小さくなっています。2010年と2012年を比べると半分以下! インクカートリッジの消費量は右肩下がりでしょう が、その対策が量を少なくして買わせる頻度をあげること、とは...。うぅむ。

あ、スポンジ技術がすごく発達しているってこと? いやいや、まさか。

味の素が、売上げを伸ばすために、瓶の中蓋の穴を大きくして、売上げを伸ばしたという逸話があるが、これはひどいですね。

ギズモード・ジャパン


投稿者 : かおん [編集]
ユーザーに「重い」「遅い」とよく言われたWindows Vistaに比べると、Windows 7の起動速度はかなり改善している。しかし、タブレット端末で競合となるAndroidやiPadなどと比べるとまだ起動が遅い。そこでWindows 8は、この弱点を克服するための「ハイブリッドブート」という高速起動モードを搭載した。

 Windows 7では、作業を終了するときに「シャットダウン」「スリープ」「休止状態」の3通りが選べた。ハイブリッドブートは、このうちシャットダウンと休止状態の “いいとこ取り”を目指した起動方式だ。その理解のために、まず従来の終了方法を簡単におさらいしておこう。

 完全に電源を切った状態からパソコンを起動すると、ハードディスクからメモリーにWindowsの基幹部分(カーネル)や各種のサービス、周辺機器のドライバーなどが読み込まれる。ログオン後にアプリを起動すれば、それもメモリーに保持される。

 Windows 7でマイクロソフトが推奨していた終了方法はスリープ。これは、メモリーに通電してデータを保持しながら、そのほかの装置の電源を切ることで消費電力を抑 える。電源を入れればすぐに復帰できるのがメリットだ。しかし、わずかに電力を消費するため、特にノートパソコンでは使いにくかった。

 一方、休止状態は、終了前にメモリーの内容をハードディスクに「休止状態ファイル」として記録。その後全ての電源を切るので、電力を消費しない。そして起動するときは休止状態ファイルをメモリーに読み込むだけなので、シャットダウンからの起動よりは時間を短縮できた。

 ところがマイクロソフトの調査では、ノートパソコンで休止状態を使う人はわずか11%と少なかった。これは、「シャットダウンをしないとパソコンが不安 定になる」と考える人が多かったからだ。実際、スリープや休止状態だけを使い続け、全くシャットダウンをしないと、周辺機器のドライバーが初期化されない ため、不安定になることがある。

 この問題を解決するのがハイブリッドブートだ。休止状態並みの起動時間を確保しつつ、不安定にならないようにする。具体的には、Windowsのカーネ ル部分だけを休止状態ファイルとして保存してから電源を切る。ドライバーやユーザー環境などは保存しないので、休止状態ファイルの●従来のシャットダウン と休止状態は設定変更で呼び出す容量が小さくなるのも利点だ(図1)。この状態からパソコンを起動すると、BIOSの初期化などの前処理をした後、休止状 態ファイルを読み込み、その後ドライバーの初期化が行われる。これで完全にシャットダウンしたときよりも速く、しかも安定した状態で起動できる(図2)。

●「休止状態」と「シャットダウン」の“いいとこ取り”



図1 ハイブリッドブートは、従来のシャットダウンと休止状態の特徴を併せ持つ方式。Windowsの基幹部分(カーネル)だけを休止状態ファイルとしてハードディスクに保存する。このため、従来の休止状態より少し速く終了できるメリットもある


図2 通常の起動処理では、Windowsのカーネルやサービス、周辺機器のドライバーなどを初期化して呼び出すため、時間がかかる。ハイブリッドブート では、カーネルの初期化の代わりに休止状態ファイルを読み込むだけなので高速に起動できる。それでもドライバーは初期化するので、休止状態よりも動作が安 定する
 

投稿者 : かおん [編集]
Windowsユーザーに幅広く浸透している「Windows Live」ブランドが役目を終えようとしている。
5月2日(米国時間)にBuilding Windows 8でWindows LiveグループのChris Jones氏が、
Windows 8時代に向けたWindows Liveブランドの発展的な解体について説明している。

2005年1月に登場したWindows Liveは、クラウドサービスへの接続を前提としていなかったWindowsを拡張するためのサービスとソフトウエアだった。
Microsoftは現在、同ブランドでPC用ソフトウエア (Windows Live Essentials)、
Webベースのサービス (Hotmail、SkyDrive、メッセンジャーなど)、
ユーザーアカウント (Windows Live ID)などを提供している。
今や数多くのWindowsユーザーにとって不可欠なものになっており、
Windows Liveサービスのアクティブユーザー/月は5億人を超える。
しかし、その成長と共にWindows Liveという別のブランドでの提供に違和感を覚えたり、
追加インストールが煩雑というようなユーザーからのフィードバックが増加していたという。
Windows 8ではクラウドサービスや関連するソフトウエアがWindowsの利用体験の一部として組み込まれる。
別ブランド(Windows Live)での提供は不要であり、むしろ混乱を避けるためにWindows Liveを整理する必要がある。

Windows 8はクラウドサービスをバックグラウンドにして機能するように設計されている。
ユーザーはMicrosoftアカウントにサインインするだけで、クラウドサービスを中心に、
PCのデスクトップアプリやMetroスタイルアプリ、Metroスタイルベースのタブレット、
Windows Phoneベースのスマートフォンなどで同じように自分の環境を利用できるようになる。
例えば、Windows 8 PCで連絡先を作成すれば、同じMicrosoftアカウントに紐付けられた他のWindows 8マシン、
Windows Phoneスマートフォン、Hotmail、メッセンジャー、SkyDriveなどで共有される。
そこで異なるデバイスでも同じデータを共有し、共通のサービスを利用できることが伝わるように、
多様だったソフトウエアを以下の一覧表のように可能な限り統一する。
例えば、これまでWindows Live MailやOutlook Expressなどがあったメールクライアントは、
Windows 8とWindows PhoneともにMail appになる。カレンダー(Windows Live Mail、Windows Calendar)はシンプルにCalendar appだ。

Windows LiveユーザーはWindows Live IDがMicrosoftアカウントへと変わる。
Microsoftは今後数カ月をかけて大部分の製品で名称変更を実施するという。


http://news.mynavi.jp/news/2012/05/03/023/
投稿者 : かおん [編集]
LRESULT CALLBACK WndLayerProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    HDC hdc;
    static HFONT            hFont = NULL;
    static HBRUSH            hEditBackBrush;
    switch (message)
    {
    case WM_LBUTTONDOWN:
        break;
    case WM_INITDIALOG:
        hEditBackBrush = CreateSolidBrush( RGB(0x00,0x00,0x00 ) );
        hFont = CreateFont( 18 , 0 , 0 , 0 , FW_BOLD , FALSE , FALSE , FALSE , SHIFTJIS_CHARSET , OUT_DEFAULT_PRECIS , CLIP_DEFAULT_PRECIS ,ANTIALIASED_QUALITY , DEFAULT_PITCH | FF_DONTCARE , _TEXT("MS Pゴシック") );
        SendMessage( (HWND)GetDlgItem(hWnd, IDC_CHECK_SAMPLE ), WM_SETFONT, (WPARAM)hFont, MAKELPARAM(TRUE, 0));
        return (INT_PTR)TRUE;
    case WM_CTLCOLORSTATIC:
        hdc = (HDC)wParam;
        SetBkMode(hdc, TRANSPARENT);
        SetTextColor(hdc,RGB(0xFF,0x00,0x00));//文字の色
        SetBkColor(hdc, RGB( 0x00,0x00, 0x00 ));
        return (LRESULT)(HBRUSH)hEditBackBrush;
    case WM_DESTROY:
        if( hFont != NULL ) DeleteObject( hFont );
        if( hEditBackBrush != NULL ) DeleteObject( hEditBackBrush );
        break;
    default:
        return DefWindowProc(hWnd, message, wParam, lParam);
    }
      return (INT_PTR)FALSE;
}


上記ソースは、チェックボックスの文字色と背景色を変更するソースです。

しかし・・文字色が黒から変わらない!!
あたらしく、プロジェクトを作成して、同じ事をやるとちゃんと色が変わる
正直、この問題は、数年悩んでおりましたが、今日解決したのでアップしておきます。

もし、同じ問題に遭遇した人、「xpstyle.manifest」これに覚えがある人いますよね。そう!犯人は、「ComCtl32.lib」こいつだったわけだ
こいつを使用すると、指定するバージョンのComCtlが使われるわけだが、その指定している
コントロールでは、チェックボックスの文字色が変えられないのである

xpstyle.manifestを使用するのをやめるか、ownerdrawで書き込むか2択を迫られる
もうひとつ、文字色を変えるのをやめるという手もありますので3択ですね。

たしかに xpstyle.manifestでは、xpのスタイルでデザインしているので何でもかんでも
変更できたら、スタイルの意味がなくなるのでしょうがないのですが・・・・



投稿者 : かおん [編集]