仕事休みだ!
やることねー!
ひまだ!
すばらしい!
このブログを検索
2009年11月22日
ひゃー
ネムぃのバージョンが1.050になったー。
スタートアップからの起動時にネムぃが実行できないバグを修正、
原因はタスクトレイへアイコン追加時に失敗したら例外を投げていたのが原因。
NeGuiでは停止フラグがONの状態でタスクトレイへのアイコン追加に失敗した場合、一定時間停止、再び追加処理、失敗時に一定時間停止…を一定数繰り返すのですがここで正常に追加できなかった場合例外を投げているわけです。
失敗する場合は「タイムアウト」と「タスクバーがまだ存在しない」場合。
本来この例外を止めなきゃいけなかったけどコーディング環境では「常に」タスクバーが生成済みだったのでこの問題が浮上しなかったわけです。
デバッグ時、意図的にExplorerを落として再びタスクバーが生成された場合にうまくアイコンが追加されていたのでここら辺の受け取り処理はうまくいってるもんだとばかり思ってたよ。
今回のバージョンアップの目玉はほとんどこれだけ。
でも機能的には大きな更新だったので1.050に。
後はまぁ、OS情報でエディションを取得+ソース整理。
エディション取得はMSDNライブラリに例があるので打ち込みが面倒なだけで特に問題なし。
問題はソース整理。
NeGuiの識別子や関数のインターフェイスがぐっちゃぐちゃ。
関数にいたってはポインタなのかrefなのか。
統一せねばなー。
スタートアップからの起動時にネムぃが実行できないバグを修正、
原因はタスクトレイへアイコン追加時に失敗したら例外を投げていたのが原因。
NeGuiでは停止フラグがONの状態でタスクトレイへのアイコン追加に失敗した場合、一定時間停止、再び追加処理、失敗時に一定時間停止…を一定数繰り返すのですがここで正常に追加できなかった場合例外を投げているわけです。
失敗する場合は「タイムアウト」と「タスクバーがまだ存在しない」場合。
本来この例外を止めなきゃいけなかったけどコーディング環境では「常に」タスクバーが生成済みだったのでこの問題が浮上しなかったわけです。
デバッグ時、意図的にExplorerを落として再びタスクバーが生成された場合にうまくアイコンが追加されていたのでここら辺の受け取り処理はうまくいってるもんだとばかり思ってたよ。
今回のバージョンアップの目玉はほとんどこれだけ。
でも機能的には大きな更新だったので1.050に。
後はまぁ、OS情報でエディションを取得+ソース整理。
エディション取得はMSDNライブラリに例があるので打ち込みが面倒なだけで特に問題なし。
問題はソース整理。
NeGuiの識別子や関数のインターフェイスがぐっちゃぐちゃ。
関数にいたってはポインタなのかrefなのか。
統一せねばなー。
2009年11月21日
2009年11月16日
2009年11月15日
パンがなければコーラでも飲んどけばいいじゃないか
今日更新した1.021はそんなに重要なアップデートでもないのでパッケージ配布なし。
そろそろネムぃの更新飽きてきたぞー。
とりあえず飽きを忘れるためにVectorライブラリサービスへ登録、掲示板レンタルしたりカウンター設置したり。
そんなこんなしてもやっぱりやる気でない。
NeGuiでもいじろうかなー。
ぬあー。
そろそろネムぃの更新飽きてきたぞー。
とりあえず飽きを忘れるためにVectorライブラリサービスへ登録、掲示板レンタルしたりカウンター設置したり。
そんなこんなしてもやっぱりやる気でない。
NeGuiでもいじろうかなー。
ぬあー。
2009年11月9日
マシュマロってあんましおいしくないと思った
立て続けにネムぃのバージョンアップ。
1.010にアイテムのメモが保持されないバグがあったので1.020もパッケージにて公開。
最近はネムぃの機能からNeGuiに引越しできそうなmoduleを引越し中。
正直GUI以外のmoduleはあんまし移動させたくなかったんですけど今後NeGuiを使用して別ソフトを作る可能性も考えたらpackageまとめておいたほうがいいかと考え決行。
とはいってもNeGuiはネムぃがつくれりゃそれでいいライブラリという位置づけなんで本当に快適に使用できるかは不明なまま一応検証用としてtest.dを作って実行してみた結果がこの画像。
とまぁこんなかんじ。所要時間は10分くらい。
一応ほかのソフトも作れなくもないかなーと思う今日この頃。
下記がそのソース↓
1.010にアイテムのメモが保持されないバグがあったので1.020もパッケージにて公開。
最近はネムぃの機能からNeGuiに引越しできそうなmoduleを引越し中。
正直GUI以外のmoduleはあんまし移動させたくなかったんですけど今後NeGuiを使用して別ソフトを作る可能性も考えたらpackageまとめておいたほうがいいかと考え決行。
とはいってもNeGuiはネムぃがつくれりゃそれでいいライブラリという位置づけなんで本当に快適に使用できるかは不明なまま一応検証用としてtest.dを作って実行してみた結果がこの画像。
とまぁこんなかんじ。所要時間は10分くらい。
一応ほかのソフトも作れなくもないかなーと思う今日この頃。
下記がそのソース↓
/** */ module nemuxi.negui.test; import nemuxi.negui.allimport; version(build) { pragma(build_def, "EXETYPE NT"); pragma(build_def, "SUBSYSTEM WINDOWS,5.0"); } void main() { auto aaa=new TestNeGui; aaa.execute; } class TestNeGui: MainWindow { enum CTRL: ITEM_ID { HELLO=1, EDIT, MSGBOX } private { TextLabel label; MultiEdit edit; Push button; Font CtrlFont, EditFont; } this() { GUIINFO g; super(&g); } protected override { void OnCreate() { // メインウィンドウ処理 ------------------------------- // タイトルバーあり caption = true; // システムメニューあり systemMenu = true; // サイズ変更用境界線あり frameSize = true; // 表示状態 setShow(SHOW.SHOWNORMAL); // 位置とサイズの設定 move(0, 0, 200, 200); // メインウィンドウを親としてラベル作成 --------------- label = new TextLabel(this, CTRL.HELLO); // 水平位置設定 label.horizonAlign = HORIZON_ALIGN.CENTER; // 縦位置 label.verticalCenter = true; // 文字設定 label.text = Text("はろー わーるど"); // メインウィンドウを親としてエディットボックス作成 --- edit = new MultiEdit(this, CTRL.EDIT); // 空白にしておく edit.text = Text.emptyText; // メインウィンドウを親としてボタン作成 --------------- button = new Push(this, CTRL.MSGBOX); // 文字設定 button.text = Text("メッセージ表示"); // フォント生成 --------------------------------------- CtrlFont = new Font(Font.STOCK.MESSAGE); EditFont = new Font(Font.STOCK.SYSTEM); EditFont.pitchAndFamily(Font.PITCH_FAMILY.MODERN); // 一括してフォントの設定 ----------------------------- auto ctrls = new ControlGroup(label, edit, button); ctrls.font = CtrlFont; // エディットボックスは等幅 edit.font = EditFont; // パネルの設定 --------------------------------------- auto panel = new Line(DIRECTION.VERTICAL); // ラベルの設定、 あまりの領域 panel += label; panel.sizeInfo(0).absolute = -1; // エディットボックスの設定、50% panel += edit; panel.sizeInfo(1).percent = 50; // ボタンの設定、最低限の高さ panel += button; panel.sizeInfo(2).absolute = button.minContentHeight; // それぞれをウィンドウのパネルに設定 layoutManager.basePanel = panel; } bool OnCommand(ITEM_ID Id, MESSAGETYPE MessageType, NeGui Sender) { if(Sender is button) { if(MessageType == Button.EVENT.CLICKED) { // メッセージボックス表示 ShowMessage(); return true; } } return false; } } private void ShowMessage() { // エディットボックスの文字列取得 auto EditText = edit.text; // エディットボックスの改行数取得 auto LineCount = edit.lineCount-1; // 取得文字列から文字列長取得 auto TextLength = edit.textLength; // ダイアログ生成 auto dialog = new MessageDialog(); // 表示メッセージを書式付で dialog.message = Text( "文字列%s%s%s", Text.newline, EditText, Text.newline, "%s%s\n", Text.repeat(Text('-'), 40), Text.newline, "改行数 = %s\n", LineCount, "文字数 = %s\n", TextLength ); // タイトルバーを日時に auto time = new DateTime(); time.format = "[YY]/[M]/[D], [hh]:[mm]:[ss]"; dialog.text = Text(time); // 表示アイコン dialog.icon = MessageDialog.ICON.INFORMATION; // ボタンの種類 dialog.button = MessageDialog.BUTTON.OK; // 表示 dialog.show; } }一応全部で140行くらいでした。
登録:
投稿 (Atom)