ナンバープレィス・数独について
「数独」・ナンバープレイスをテーマにしてプログラムで遊ぶ












  1. Panel1 に Editコントロールを貼り付ける
    つまりはこのような形



    最初に貼り付けたのが Edit01 だった と言うか自動的に名前がつけられるので Edit01 からになってしまった。 後で気づいたのだが Edit00 からにしておけば クラス名から検索するとき 名前を求めるのに 配列[ 0,0 ] と出来る。 直せばいいのだが面倒なのでそのままにしている。 従って 後述の計算配列から表示配列にアクセスするために Edit+番号としているのだが、ここで番号を +1 しなくてはならなくなってしまった。

  2. クラス名からコントロールの検索
    {*********************************************
    **  Panel1 のコントロールから名前の合致する
    **  TEdit のコントロールを返す。
    **  なければ nil を返す。
    **     cname:string  コントロールの名前 例 Edit11
    **********************************************}
    function TForm1.find_Editc(cname:string):TControl;
     var
      i:integer;
      Ctrl:TControl;
      flg : boolean;
    begin
      flg := False;
      Ctrl := nil;
      for i := 0 to Panel1.ControlCount-1 do
        begin
          Ctrl := Panel1.Controls[i];
          if Ctrl.ClassName = 'TEdit' then
            if TEdit(Ctrl).Name = cname then
              begin
               flg := true;
               break;
              end;
        end;
    
      if flg then
        result := Ctrl
      else
        result := nil;
    
    end;