zuzuのなでしこ学習帳(主になでしこ自体の改造など) RSSフィード

2007-10-15[なでしこ]【未完成】(TSonEdit)vnakoへのコンポーネントの追加方法

どうもzuzuです。

一応ですが、vnakoへのコンポーネント追加が出来ましたので、ここで少しばかりやりかたを書こうと思います。

それではレッツゴー!

はTSonEditの追加方法を書こうと思います。

の一

vnako_function.pasのuses節へ追加したコンポーネント名を追加する。

はuses節に「SonEdit」を追加しました。

の二

const節の「VCL_GUI_BUTTON = 0;」とか書いている部分を書き加える。

どうやらここVCLに番号を振って管理しているようです。

は「VCL_GUI_ULABEL = 47;」に下に数字が出来るだけ被らないようにと「VCL_GUI_SONEDIT = 99;」を追加しました。

の三

functionのvcl_createに書き加えイベントを追加する。

の場合は「THiEdit」のイベントの下に追加しました。

    VCL_GUI_SONEDIT    :
      begin
        o := TSonEdit.Create(Bokan);
        with TSonEdit(o) do begin
          OnClick     := Bokan.eventClick;
          OnDblClick  := Bokan.eventDblClick;
          OnChange    := Bokan.eventChange;
          OnKeyDown   := Bokan.eventKeyDown;
          OnKeyPress  := Bokan.eventKeyPress;
          OnKeyUp     := Bokan.eventKeyUp;
          OnDragOver  := Bokan.eventDragOver;
          OnDragDrop  := Bokan.eventDragDrop;
        end;
      end;

ちなみにここで実際にコンポーネントの生成をしているので、初期設定なども追記しても良いと思います。

の四

functionのvcl_getpropに書き加える。

まあ実際、これはテキストプロパティを使えるようにするものです。

は、

VCL_GUI_SONEDIT : res := TSonEdit(obj).Text;

と書き加えました。

の五

functionのvcl_commandにコマンドを追加する。

  procedure _VCL_GUI_SONEDIT;
  var e: TSonEdit;
  begin
    e := TSonEdit(obj);
    if cmd = '文字書体GET' then begin Result := hi_var_new; hi_setStr(Result, e.Font.Name); end else
    if cmd = '文字書体SET' then begin setFontName(e.Font, hi_str(v)); end else
    if cmd = '文字サイズGET' then begin Result := hi_var_new; hi_setInt(Result, e.Font.Size); end else
    if cmd = '文字サイズSET' then begin e.Font.Size := hi_int(v); end else
    if cmd = '文字色GET' then setRes(Color2RGB(e.Font.Color))  else
    if cmd = '文字色SET' then e.Font.Color := RGB2Color( hi_int(v) ) else
    if cmd = '背景色取得' then setRes(Color2RGB(e.Color))  else
    if cmd = '背景色設定' then e.Color := RGB2Color(hi_int(v)) else
    if cmd = 'UNDO'  then e.Undo else
    if cmd = 'REDO'  then e.Redo else
    if cmd = 'COPY'  then e.TxtCopy    else
    if cmd = 'CUT'   then e.Cut     else
    if cmd = 'PASTE' then e.Paste else
    if cmd = 'SELECTALL' then e.SelectAll else
    if cmd = 'POPUP' then e.PopupMenu := TPopupMenu( hi_int(v) ) else
    //if cmd = 'GETROW' then setRes(0) else
    //if cmd = 'GETCOL' then setRes(e.SelStart) else
    //if cmd = 'SETROW' then  else
    if cmd = '編集設定' then e.ReadOnly := not hi_bool(v) else
    if cmd = '編集取得' then Result := hi_newBool(not e.ReadOnly) else
    //if cmd = 'IME取得' then Result := hi_newStr(e.GetImeStatus) else
    //if cmd = 'IME設定' then e.SetImeStatus := setControlIME(hi_str(v)) else
    ;
  end;

まあこんな感じに追加してみました。


さてのは未完成版です。

どこが未完成かというこれはTSonEditの場合のみのことで、さらにTSonEditもうまく実装できていません。

またこれから先、コンポーネント追加した場合は同じように書こうと思います。

それでは!

EnformaEnforma 2012/09/13 08:44 Thanks for the insight. It bnrigs light into the dark!

mzultyqmzultyq 2012/09/14 01:24 vy3VCs <a href="http://bxwxunxvvwdg.com/">bxwxunxvvwdg</a>

tjwyghqswbtjwyghqswb 2012/09/14 05:58 EvxvEL , [url=http://uwgybuegookl.com/]uwgybuegookl[/url], [link=http://oiqrsarrsbxq.com/]oiqrsarrsbxq[/link], http://gvufspszrslb.com/

wavglcnarwavglcnar 2012/09/17 03:00 J0GfD2 , [url=http://dqbixeuomhiu.com/]dqbixeuomhiu[/url], [link=http://zuaiwmmlbdac.com/]zuaiwmmlbdac[/link], http://okimqmkhagxw.com/

kfcznoyklzkfcznoyklz 2014/06/05 22:57 rkwjyobeftjlp, <a href="http://www.uadwwdeked.com/">aihpuilwyf</a>

pzvudlhnlbpzvudlhnlb 2014/06/12 21:30 iithfobeftjlp, http://www.ogdpnulfhj.com/ lclkvigrdv

azfzxypdzoazfzxypdzo 2014/06/17 21:35 ssmieobeftjlp, [url=http://www.acdzcktehj.com/]rjeokouais[/url]

ゲスト



トラックバック - http://nadesiko.g.hatena.ne.jp/zuzu_sion/20071015