愚者の経験

「また今度」はほとんどこない

月別アーカイブ: 5月 2012

ドロップダウンリストをCSSのみで実現

ドロップダウンリストの作成方法を知っておいて損はないと思って週末にいろいろ
ウェブで検索してましたが、なかなか単純なサンプルが見つからなかったのであげておきます。

marginやpadding、list-styleは後から考えるとして、ドロップダウンリストの一番単純な
スタイル表記だと思います。
Style

ul li {
float:left;
}
ul ul {
display: none;
}
ul li li {
clear: left;
position:relative;
}
ul ul ul {
position:relative;
}
ul li:hover > ul {
display: block;
}

HTML

  • あ行

  • か行


      • さ行

        • た行

  • は行

上記のように最上のli要素が横並びで、それ以下のul、liが子になります。
入れ子もできます。

 

広告

Dropbox

Dropboxのリンクです。容量増やしたいので気が向いたらぜひ。

WindowsでPHPの環境構築

参考URL:http://technet.microsoft.com/ja-jp/iis/gg535422

ほとんど全部参考URL内にあるpdf等に書いてありますが。

あとWindowsでPHPをするなら、IISのバージョンが「7」移行(Vista移行に搭載)である方が
「FastCGI」という機構が使えるのでパフォーマンスがいいらしいです。(関連リンク)
追記:XP等のIIS6にもあるみたいですが…http://www.iis.net/download/fastcgi

では順番に…
1.IISのインストールは前回の記事の通りで終わっています。

2.PHPをダウンロードします。http://windows.php.net/download/#php-5.3-nts-VC9-x86
ここで気になったのがPHPの最新版はもう「5.4」まで進んでいることです。
最新版を使いたい気もするのですが、とりあえず「5.3」で行きます。
Windows Cache Extension for PHPという拡張機能もPHPの「5.3」までしか対応していません。
Non Thread SafeThread Safeの2つがありますが、Non Thread Safeのzip版を利用します。

3.zipファイルを解凍して中身をわかりやすいパスにコピーします。(下の画像では「C:\php5」)
そしてそのフォルダにアクセス権限を設定します。必要なのは「IIS_IUSRS」です。

4.PHPの設定ファイルを編集します。
そのファイルのもとは「php.inirecommended」と書いてありますが…解凍したファイルに
2012/05/08時点ではそのようなファイルはありませんorz

とりあえず名前が近い「php.ini-development」をコピーして「php.ini」にリネームします。
それで設定値を変更、コメントを外していきます。
fastcgi.impersonate=1
cgi.fix_pathinfo=1
cgi.force_redirect=0
extension_dir=”./ext”
なおテキストエディタはWindows付属の「メモ帳」では改行されませんので他のもので。
5.IISにPHPランタイムを登録します。
IISマネージャーを起動して、phpファイルを置く場所をクリックして
機能ビューで「ハンドラーマッピング」をダブルクリックします。

右側の「操作」にある「モジュールマップの追加」をクリックします。

ダイアログに対して設定値を入力します。

「実行可能ファイル」には3.でアクセス権を設定したフォルダ内にある「php-cgi.exe」を選択します。

6.テスト実行します。
テキストファイルに以下のように入力します。

拡張子「php」で保存してWebブラウザからアクセスします。

phpの設定情報などが表示されて終了!と思いきや…

参考URL手順通りなはずですが表示されません。
調べてみると「php.ini」ファイルの「」「date.timezone」に値を設定すればいいようです。
[date]
date.timezone=”Asia/Tokyo”

編集後保存したら、IISマネージャーの「アプリケーションプール」の
「DefaultAppPool」を「リサイクル」します。そしてもう一度phpファイルにアクセスします。

ようやく完了です。

Webアプリケーション開発準備(IIS)

忘れないようにメモ。勉強しながらですので最終的に間違っているかもしれません。

IIS(インターネット・インフォメーション・サービス)をインストールします。

何で開発するかわからないので「アプリケーション開発機能」は全部つけます(笑)

これらの機能にチェックをつけて「OK」します。多分これでWebサーバとしての機能はOKです。

Webアプリケーション

Silverlightはしばらく様子見しようと思います。
Webアプリケーションの方に手を伸ばしてみます。

さしあたってPHP、AJAX、ASP.Net、Razorあたりに見当をつけていきます。

ココらへんの技術はたくさんあって基幹業務系のアプリの作成にはどれをやればいいのか
まったくわかりません…とりあえず広範に見ていくことにします。

ブログの内容も雑多になりそうです。

Meを配列に入れるとフォームでなくなる?

フォームにボタンを置いて以下のコードを実行してみてください。
Option Compare Database
Option Explicit

Private Sub コマンド0_Click()
    Dim v As Variant
    v = Array(Me)
    Debug.Print v(0).Name
End Sub

イミディエイトウィンドウにフォーム名が表示されそうなものです。
しかし実行してみるとエラーが発生するではありませんか!

実行時エラー438
「オブジェクトは、このプロパティまたはメソッドをサポートしていません。」

なぜなんだ…と思って調べてみたら、Variant配列に格納される際に
FormオブジェクトではなくControlsオブジェクトとして格納されています。

勝手にMe.Controlsに変換しないでほしいです…orz

今日(5/9)のアップデートのせいか?

Accessで突然「スタック領域が不足しています。」が発生。
MouseMoveイベントでごちゃごちゃしていたら今日でるようになった。

以前正常に動いていたプログラム(3日前のバックアップ)でもやっぱり発生。

不思議なことに、Shiftキーでプログラムを開いている時だけ発生する。
Shiftキーを押さないで起動したプログラムではなぜか発生しない。

固まった後、「データベースの最適化/修復」を行うと
「このプログラムは他のユーザー Admin が開いています。」みたいなメッセージも出る。

While~Wendの便利な使い方

While~Wendは基本的にDo While~Loopと同じであるため、あまり使われていません。

しかし、限定的な状況ではありますがコードを減らすのに役立ちます。
その状況とは「入れ子にしている場合」です。

Do While~Loopの入れ子内でExit Doした場合は当然上のループに戻ります。
一番外までExit Doで出ることは出来ません。

ところが、Do~Loopの代わりにWhile~Wendを入れ子内に使うことで
Exit Doで上のループの外に出ることができます。

Public Sub Test()
    Dim a As Long
    Dim b As Long
 
    Do While (a < 10)
‘        Do While (a < 10)
        While (a < 10)
            If (b = 5) Then
                b = 0
                Exit Do
            End If
            b = b + 1
‘        Loop
        Wend
        a = a + 1
    Loop
 
    Debug.Print a, b

End Sub

Gotoを使いたくない人はぜひ(笑)