Вверх ↑
Ответов: 2271
Рейтинг: 677
#1: 2019-05-24 17:04:23 ЛС | профиль | цитата
nesco писал(а):
Ты имеешь в виду контекст?
Да, сейчас набросаю пример как мне это видится.
nesco писал(а):
А высота строки вроде как не изменяется так просто
Останется добавить высоту шрифта для заголовка, насколько помню это не так сложно. И выставляя высоту шрифта для таблицы (высота заголовка не увеличится) увеличивается высота строки, рисуй что хочешь. Но это так в уме, сейчас не нужно этим заморачиваться.

Вот смотрите есть список строк и к нему (и не только к нему) подключается менеджер отрисовки.
Список строк с менеджером отрисовки

Add(MainForm,2953706,511,364)
{
 Width=524
 Position=1
}
Add(ListBox,11760669,511,420)
{
 Left=85
 Top=35
 Width=365
 Height=185
 Strings=#4:Кино|4:Вино|6:Домино|
 BoxDrawManager="MyDraw"
}
Add(BoxDrawManager,293041,574,364)
{
 Name="MyDraw"
 StyleBack=1
 ImageShift=12
 GutterShift=12
 GutterWidth=12
}
Все замечательно, дополнительные возможности отрисовки, много свойств. А теперь представьте что вместо элемента менеджер отрисовки был элемент контейнер в котором можно самостоятельно отрисовать как весь элемент так и его части.
Примерно так это должно выглядеть

Add(MainForm,2953706,511,266)
{
 Width=594
 Height=476
 Position=1
}
Add(MTStrTbl,10355073,658,441)
{
 Left=5
 Top=5
 Width=575
 Height=430
 Font=[MS Sans Serif,33,0,0,1]
 Columns=#4:Кино|4:Вино|6:Домино|
 Grid=0
}
Add(MultiElementEx,10219707,658,357)
{
}
BEGIN_SDK
  Add(EditMultiEx,14675531,21,21)
  {
   Width=1000
   Height=620
  }
  Add(Shape,3689091,112,210)
  {
   Width=53
   Height=67
   Color=-16777201
  }
  Add(HubEx,7371451,161,210)
  {
   link(onEvent,15631061:doWork,[])
  }
  Add(Img_Gradient,12113180,728,210)
  {
  }
  Add(GetDataEx,7094100,112,273)
  {
  }
  Add(If_else,12640788,602,420)
  {
   Op2=String(Виноград)
   link(onTrue,4925789:doDraw,[])
   link(Op1,6869198:getVar,[])
   AddHint(8,-29,73,13,Op2)
  }
  Add(LineBreakEx,12217864,112,434)
  {
   Caption="text"
   Type=3
   link(_Data,7094100:Var2,[])
  }
  Add(LineBreakEx,6869198,602,371)
  {
   Caption="text"
   Type=2
  }
  Add(LineBreakEx,1577409,119,420)
  {
   Caption="row"
   Type=3
   link(_Data,6243811:Var2,[])
  }
  Add(GetDataEx,6243811,119,273)
  {
  }
  Add(GetDataEx,10061695,126,273)
  {
  }
  Add(LineBreakEx,16371791,126,406)
  {
   Caption="col"
   Type=3
   link(_Data,10061695:Var2,[])
  }
  Add(HubEx,9523253,161,217)
  {
   link(onEvent,2105692:doWork,[])
  }
  Add(Check,15631061,315,210)
  {
   Caption="фон всей таблицы"
   link(onEvent,12113180:doDraw,[])
  }
  Add(Check,4558762,476,420)
  {
   Caption="отрисовка ячейки "
   link(onEvent,12640788:doCompare,[])
  }
  Add(LineBreakEx,4910682,133,392)
  {
   Caption="x"
   Type=3
   link(_Data,8466411:Var2,[])
  }
  Add(LineBreakEx,14446683,140,378)
  {
   Caption="y"
   Type=3
   link(_Data,2390818:Var2,[])
  }
  Add(LineBreakEx,9540935,147,364)
  {
   Caption="width"
   Type=3
   link(_Data,1661398:Var2,[])
  }
  Add(LineBreakEx,7136343,154,350)
  {
   Caption="hieght"
   Type=3
   link(_Data,12862610:Var2,[])
  }
  Add(GetDataEx,8466411,133,273)
  {
  }
  Add(GetDataEx,2390818,140,273)
  {
  }
  Add(GetDataEx,1661398,147,273)
  {
  }
  Add(GetDataEx,12862610,154,273)
  {
  }
  Add(IndexToChanel,426047,427,406)
  {
   Count=3
   Point(Index)
   link(onEvent3,4558762:doWork,[])
   link(Index,10877107:getVar,[])
  }
  Add(LineBreakEx,10877107,427,378)
  {
   Caption="col"
   Type=2
  }
  Add(Img_Text,4925789,714,420)
  {
   Font=[MS Sans Serif,10,1,255,1]
  }
  Add(InfoTip,2724382,385,336)
  {
   Info=#63:Во второй колокне выделяем слово виноград красным жирным цветом|
   Width=421
   Height=137
  }
  Add(Check,2105692,182,217)
  {
   Caption="отрисовка ячейки "
   link(onEvent,426047:doEvent,[(307,223)(307,412)])
  }
END_SDK

При таком подходе большая часть "хотелок" закроется. И тут не только рюшечки, но и реальное удобство сделать таблицу более информативной.

Как писал выше Netspirit выделить нужную строку при таком подходе, вообще не проблема.
карма: 11

0
Редактировалось 7 раз(а), последний 2019-05-24 17:23:13