To add a separator between the lines in the grid, I know how to do this using the parameter Dividers. But this is used at the end, and then you need to know the line number, which should be below the separator. Thus, for a large grid, I find that I am using a trial version and an error until I find the correct line number. Then, when I change the grid later, I have to run the trial version and error again to put the divider in the right place if it changes after my changes.
In this example, there is a grid with 3 rows, and I want to add a separator below to say the second row, so I can do this:
Grid[{
{1},
{2},
{3}
}, Frame -> True, Dividers -> {All, 3 -> True}]
Another way: to put Falseand Truein the correct order where I want the divisor, for example
Grid[{
{1},
{2},
{3}
}, Frame -> True, Dividers -> {All, {True, False, True, True}}]

It would be nice if I could do something like this (how can this be done for Manipulate) (of course, this does not work here below)
Grid[{
{1},
{2},
Delimiter,
{3}
}, Frame -> True]
or
Grid[{
{1},
{Item[2,Dividers->True]},
{3}
}, Frame -> True]
or such a thing.
This will simplify code maintenance.
I looked at using Item, etc. for this, but could not understand.
Does anyone know about this to do this?
change
btw, , , Dividers. Grid, Grid, . , , , . , , , Spacings .. , / , .
, Mathematica Grid, .
, Mathematica GUI-.
, 60% , , . GUI- . Matlab GUIDE , 5% , .
, WRI GUI- Mathematica, , - Mathematica, . :)
(2)
.
, Manipulate. :
Manipulate[x,
Grid[{
{Control[{{x, 0, "x"}, 0, 10, 1}]},
{Control[{{y, 0, "y"}, 0, 10, 1}]}
}, Frame -> None, Dividers -> {None, {False, True, False}}
]
]

( Grid ). . , Wizard , :
Manipulate[x,
myGrid[{
{Control[{{x, 0, "x"}, 0, 10, 1}]},
spec["Divider"],
{Control[{{y, 0, "y"}, 0, 10, 1}]}
}, Frame -> None
],
Initialization :>
{
specfunc["Divider", lst_] := Dividers -> {None,
myGrid[dat_, opts : OptionsPattern[]] :=
Module[{x = 1},
Grid[
Reap[If[MatchQ[
dat, _, specfunc]
]
}
]
, Mathematica , , .
Manipulate , , :
myGrid[{
{Control[{{x, 0, "x"}, 0, 10, 1}]},
spec["Divider"],
{Control[{{y, 0, "y"}, 0, 10, 1}]}
}, Frame -> None
]
specfunc["Divider", lst_] := Dividers -> {None,
myGrid[dat_, opts : OptionsPattern[]] :=
Module[{x = 1},
Grid[
Reap[If[MatchQ[
dat, _, specfunc]
]

, , Manipulate.
btw, Manipulate . , , With[{},.... Grid....], .
, , .
[] , ?
(3)
- , Manipulate:
:
Manipulate[x,
Evaluate@grid[{
{Control[{{x, 0, "x"}, 0, 10, 1}]}
}
],
Initialization :>
{
grid[tab_, opts___] :=
Module[{divlocal, divglobal, div, pos},
divglobal = (Dividers /. opts) /. Dividers -> {False, False};
If[Depth[divglobal] == 1, divglobal = {divglobal, divglobal}];
If[Length[divglobal] == 1, AppendTo[divglobal, False]];
pos = Position[tab, Dividers -> _, 1];
divlocal =
MapIndexed[
Flatten[pos]];
divglobal[[2]] = {divglobal[[2]], divlocal};
Grid[Delete[tab, pos], Dividers -> divglobal, opts]];
}
]
:
ReplaceAll::rmix: Elements of {False,{}} are a mixture of lists and nonlists. >>
Evaluate@grid[{
Dividers -> {Thick, Blue},
{Control[{{x, 0, "x"}, 0, 10, 1}]}
}
],
Dynamic@ Evaluate@ . - , ? ?