このブログを検索

2009年6月27日

サーバーが熱い

人は皆、過ちを犯すものなのです。
それに事前に気付いて対処するか、すぐ気付くか、後になって気付くか、一生気付かないか。

「設定プログラムを作るぞー」までは進んだんですがコントロールを増やしていくとWS_SIZE来たときに悲惨極まりない。
グループボックス作ろうが何しようが最終的にはMoveWindowの嵐で頭狂いそうになります。
NeGuiでは一応簡略化してるんですがそれでも頭が頭痛で痛い。

そんな状態なんで俗に言うパネルっぽいのを実装することにしました。
構成図としては、

  • Layout(abstract)
    • LayoutManager(final)
    • Panel(abstract)
      • XXXPanel
      • YYYPanel


こんなもんでいくつもり。

なんか最近機能を追加するたびに肥大化していくなぁ。
実際使わねーだろーなぁ。

2009年6月21日

Invariantってどうなんの?

あれやこれやで六月も残り十日を切りました。
梅雨で嫌な時間に雨が降るようになりネムぃの作業は進みません(季節関係ない)。

やる気がなくなったときにやる作業、ずばり現状モジュールの手直し(改悪か)。
お勉強も兼ねてinとconstとinvariantをそれぞれ設定してみました。
作業してて思ったんですがinvariantって今後はimmutableに置き換わるのか?
全文置き換えで対応できるよね…?

2009年6月2日

importでエラー

テストコンパイルせずに複数のモジュールをあれこれ触りまくって引き返せないところまで来たときにコンパイル。

Error: enum 列挙体 is forward referenced の絶望感って異常ですよね。

2009年6月1日

オセロ

つい最近のことですが仕事中に四時間ほどやることが完全になくなることがありました。
そんだけ暇なら何か作ろうかなぁとオセロ作ってみました。

環境は標準のXPproで開発環境無し。
IE6(ネットワークから完全に独立してるのでアップデートも無し)とメモ帳コンビでJavaScriptをちまちま打って基盤のみ作成。
ホントしょうもないことで二時間くらい無駄にしたけど一応使えるようにはなりました。

また機会があればそのときにでも載せたいと思います。

2009年5月23日

業務スーパーでカップうどん買った

そろそろ設定プログラム実装する。
いい加減引き伸ばす口実もなくなってきたしほかにやることないし。

実装しなきゃいけないリスト↓
  • 設定プログラム
  • コマンド型ランチャ
  • ログ(機能は出来てるのでどこで取るかが問題なだけ)
  • 本体へのD&Dによる処理(登録するかファイルの起動か)
  • アイテムの循環参照問題
  • マウスフック
  • 外部ツールとの連携インターフェイス(char[]での標準出力はもう取れてるから何と連携するか)
  • 外部文字列リソース(優先度最低)
こんなもんかな。

とりあえず設定プログラムを実装してからそれ以外の項目を消化してきます。

2009年5月20日

class Accelerator: HandleRaii

キーボードアクセラレータ実装完了ー!!

2009年5月19日

マスカー

マスク多すぎ。

通勤電車で大量のマスク。
インフルエンザがマスクで防げるのか知りませんがみんなマスクしすぎ。

仕事場に着いたら着いたでみんなにマスク装備を強要。
ここで俺もマスク装備。

まぁあれだ。
みんなマスクしてるんなら俺別にマスクしなくてもいいんじゃないの?

2009年5月18日

テスト前に掃除したくなる現象発病中

設定プログラムの実装がだるいので全然関係の無い機能の追加中。
左上から順に
  • アップダウンコントロール
  • ホットキーコントロール
  • DTPコントロール(日付)
  • DTPコントロール(時間)
です。

作っていて思うんですがスタイルの付け替えで反映される・されないの資料ってMSDNの原文しか無いんでしょうか。
俺英語読めないし。

メモ帳だと右端で折り返すを選択するとコントロールそのものを作り直すらしいのですが現時点でのNeGuiだとフォントとかその辺のGDIオブジェクトの世話してられないんで未実装です。


以下チラシの裏



/**
テスト専用ダイアログ。
*/
module nemuxi.test.debugdialog;

debug import std.stdio: wl = writefln, pl = printf;
debug(debugdialog) void main() {}

import win32.windows;

import nemuxi.base;
import nemuxi.draw.image.font;
import nemuxi.gui.gui;
import nemuxi.gui.window.dialog.dialog;
import nemuxi.gui.control.control;
import nemuxi.gui.control.editbox.editbox;
import nemuxi.gui.control.updown.updown;
import nemuxi.gui.control.hotkey.hotkey;
import nemuxi.gui.control.time.datetimepick;


debug{} else {static assert(false, "debug only!");}
class DebugDialog: ModalDialog {
enum CTRL: ITEM_ID {
INPUT=1,
UD,
HOT,
DTP1,
DTP2,
}
Font font;
ControlGroup group;
EditBox Input;
UpDown spin;
HotKey hot;
DateTimePick[2] dtp;

this(NeWindow Owner) {
GUIINFO GuiInfo;
GuiInfo.Owner = Owner;
GuiInfo.Style = WS_DLGFRAME | WS_CAPTION | WS_THICKFRAME | WS_SYSMENU;

super(&GuiInfo);

posSize(300,300);
}
protected override {
void OnCreate() {
font=GetSystemFont(SYSFONT.MESSAGE);

Input = new EditBox(this, CTRL.INPUT);
Input.move(0,0,100,30);

spin =new UpDown(this, CTRL.UD, UpDown.POSITION.RIGHT);
//spin.move(101,101,100,100);
spin.buddy = Input;
spin.range(-1000,1000);

spin.value=159;
spin.reLoad;


HOTKEYVALUE hk;
hk.modToHotkey(MOD.SHIFT);
hk.Key = KEY.D;

hot = new HotKey(this, CTRL.HOT);
hot.textAlign=TEXTALIGN.CENTER;
hot.move(100,0,200,30);
hot.rule(HotKey.RULE.NONE, HOTKEY.EXT);
hot.value
=hk;


dtp[0] = new DatePick(this, CTRL.DTP1);
dtp[0].move(0, 40, 200, 30);
dtp[1] = new TimePick(this, CTRL.DTP2);
dtp[1].move(0, 80, 200, 30);
dtp[1].value=new DateTime(
1999, 12, 31, 0,
23, 59, 59, 999
);

group = new ControlGroup(
Input, spin, hot, dtp[0], dtp[1]
);
group.font = font;
}
}
}

2009年5月9日

どうして寝た子を起こすんだ

中途半端なNeGuiに置き換えてから一向に作業が進まない。
設定部分を実装しようにもちょっと書いては消してちょっと書いてはまた消しての繰り返し。
全然進まねーなぁ…。

設定部分がやる気無いんならコマンド型の実装でもすっかぁと思ったんですがこれもまた進まない。
もうコンボボックス貼り付けてエンター検出してGOでいいんじゃないかと本気で考えてる。

すすまねー。

2009年5月6日

設定機能

☆ 無 気 力 全 開 ☆