Kowal 发表于 2022-7-5 15:35:01

DCL对齐列

我正在尝试格式化DCL窗口。
: text {
label = "Test DCL.";
alignment = centered;
}

: row {

: boxed_column {
width = 10;
alignment = left;
fixed_width = true;

: text {
label = "1.";
alignment = centered;
}

: text {
label = "2.";
alignment = left;
}
}

   : boxed_column {
   alignment = centered;
   width = 20;
fixed_width = true;

: text {
label = "3.";
alignment = right;
}

: text {
label = "4.";
alignment = left;
}
}

}
: row {
   : edit_box {
   label = "Test:";
   key = "Edit4";//Edit1$ from lsp file
   edit_width = 150.0;
   alignment = left;
   fixed_width = true;
   }
   }
 
窗口如下所示:
 

 
如何向左移动列不会改变其宽度。
如下图所示。
 

Lee Mac 发表于 2022-7-5 15:46:44

将fixed_width=true应用于行平铺:
test : dialog
{
   : text
   {
       label = "Test DCL.";
       alignment = centered;
   }
   : row
   {
       fixed_width = true;
       : boxed_column
       {
         width = 10;
         alignment = left;
         fixed_width = true;

         : text
         {
               label = "1.";
               alignment = centered;
         }
         : text
         {
               label = "2.";
               alignment = left;
         }
       }
       : boxed_column
       {
         alignment = centered;
         width = 20;
         fixed_width = true;

         : text
         {
               label = "3.";
               alignment = right;
         }
         : text
         {
               label = "4.";
               alignment = left;
         }
       }
   }
   : row
   {
       : edit_box
       {
         label = "Test:";
         key = "Edit4"; //Edit1$ from lsp file
         edit_width = 150.0;
         alignment = left;
         fixed_width = true;
       }
   }
   ok_cancel;
}

Kowal 发表于 2022-7-5 16:00:48

谢谢你的帮助。
 
我还有一个问题。
 
如何使用标签制作这种格式的编辑框。
 
//---------------------------------------------------------------------------------------------------------
// MyEditText
//---------------------------------------------------------------------------------------------------------
MyEditText : dialog {
key = "Title";
label = "";//Title$ from lsp file
: text {
label = "DCL test.";
alignment = centered;
}

initial_focus = "Edit1";
spacer;
//: row {
   : column {
   width = 5.09;
   fixed_width = true;
   spacer;
   }
   : edit_box {
   label = "BLK:";
   key = "Edit1";//Edit1$ from lsp file
   edit_width = 30.0;
   alignment = left;
   fixed_width = true;
   }

initial_focus = "Edit2";
spacer;
//: row {
   : column {
   width = 5.09;
   fixed_width = true;
   spacer;
   //: text {
   //key = "Prompt1";
   //label = "";//Prompt from lsp file
   //}
   }
   : edit_box {
   label = "Attrib:";
   key = "Edit2";//Edit1$ from lsp file
   edit_width = 30.0;
   alignment = left;
   fixed_width = true;
   }
//}
initial_focus = "Edit3";
spacer;
//: row {
   : column {
   width = 5.09;
   fixed_width = true;
   spacer;
    // : text {
   //key = "Prompt2";
   //label = "";//Prompt from lsp file
    // }
   }
   : edit_box {
   key = "Edit3";//Edit1$ from lsp file
   edit_width = 100.0;
   label = "Name:";
   alignment = left;
   fixed_width = true;
   }
//}
spacer;
: row {
   fixed_width = true;
   alignment = centered;
   : ok_button {
   width = 10;
   }
   : cancel_button {
   width = 10;
   }
}
}//MyEditText
 
代码生成了一个如下图所示的窗口。
 

 
如何将edit_框对准左侧,如下图所示。
 

Tharwat 发表于 2022-7-5 16:05:08

 
你好
 
将edit_box平铺分成两块,如下所示:
 
: row { : text { label = "BLK:"; } : edit_box { key = "Edit1";}}
 
然后添加一个具有特定宽度值的空间平铺,以符合您想要的对齐方式。

Lee Mac 发表于 2022-7-5 16:18:43

不需要单独的文本/编辑框平铺行,只需调整宽度属性以考虑最大的标签:
test : dialog
{
   spacer;
   : edit_box
   {
       key = "edit1";
       label = "Block:";
       width = 42.0;
       edit_width = 30.0;
       fixed_width = true;
       alignment = left;
   }
   : edit_box
   {
       key = "edit2";
       label = "Attrib:";
       width = 42.0;
       edit_width = 30.0;
       fixed_width = true;
       alignment = left;
   }
   : edit_box
   {
       key = "edit3";
       label = "Name:";
       width = 112.0;
       edit_width = 100.0;
       fixed_width = true;
       alignment = left;
   }
   ok_cancel;
}
 
上述结果:
 

Grrr 发表于 2022-7-5 16:32:01

我听从了塔瓦的建议,最终得到了一些不错的结果:
 

test1 : dialog
{ label = "EB Alignment test"; spacer_1;
: column
{ alignment = centered; fixed_width = true; children_alignment = centered;
   : row { children_alignment = right; : text { label = "BLK:"; fixed_width = true; } : edit_box { key = "eb1"; fixed_width = true; }}
   : row { children_alignment = right; : text { label = "Attrib:"; fixed_width = true; } : edit_box { key = "eb2"; fixed_width = true; }}
   : row { children_alignment = right; : text { label = "Name:"; fixed_width = true; } : edit_box { key = "eb3"; fixed_width = true; }}
}
spacer_1; ok_only; spacer_1;
}

 

test2 : dialog
{ label = "EB Alignment test"; spacer_1;
: column
{ alignment = centered; fixed_width = true; children_alignment = centered;
   : row { children_alignment = right; : text { label = "Name (First and Second):"; fixed_width = true; } : edit_box { key = "eb1"; fixed_width = true; }}
   : row { children_alignment = right; : text { label = "Age:"; fixed_width = true; } : edit_box { key = "eb2"; fixed_width = true; }}
   : row { children_alignment = right; : text { label = "Address:"; fixed_width = true; } : edit_box { key = "eb3"; fixed_width = true; }}
   : row { children_alignment = right; : text { label = "Email:"; fixed_width = true; } : edit_box { key = "eb4"; fixed_width = true; }}
}
spacer_1; ok_only; spacer_1;
}

 
他们让我想起了他在暖通空调/管道程序中的精彩对话。
 
然而,李的建议似乎更适合OP的对话问题。
 

Tharwat 发表于 2022-7-5 16:36:45

干得好,谢谢你的好话。
页: [1]
查看完整版本: DCL对齐列