1 (edited by pavlenko.vladimir.v 2022-08-18 10:12:28)

Topic: TableGrid Slider

Всем привет!
Как я могу обратиться к колонке в слайдере? мне нужно ее скрыть при определенном условии
Получить значение колонки я могу а вот как скрыть ее я не понимаю...
http://myvisualdatabase.com/forum/misc.php?action=pun_attachment&item=8949&download=0

Post's attachments

Attachment icon Без имени.png 55.24 kb, 53 downloads since 2022-08-18 

2 (edited by vovka3003 2022-08-19 07:54:17)

Re: TableGrid Slider

Можно попробовать обратиться в "битву экстрасенсов". Они [экстрасенсы] могут увидеть скрытый код, и если у них есть навыки программирования - дать четкий ответ или даже астральным способом ["по удаленке"] подправить там что-нибудь...

P.S. Когда уже люди научатся правильные вопросы задавать..?

Re: TableGrid Slider

Слайдер создаётся скриптом, на событии onChange, Вот там и срывайте ))) Но скрыть какие-то элементы для одних записей и оставить для других вы не сможете.


P.S. Для решения такой задачи нужен рукотворный компонент отображения. Например скролбокс, внутри которого находятся панели. Каждая панель соответствует записи в таблице.  Панели генерить скриптом.

Визуальное программирование: блог и телеграм-канал.

Re: TableGrid Slider

vovka3003 wrote:

Можно попробовать обратиться в "битву экстрасенсов". Они [экстрасенсы] могут увидеть скрытый код, и если у них есть навыки программирования - дать четкий ответ или даже астральным способом ["по удаленке"] подправить там что-нибудь...

P.S. Когда уже люди научатся правильные вопросы задавать..?

почувствовал себя экстрасенсом )))

Визуальное программирование: блог и телеграм-канал.

5 (edited by pavlenko.vladimir.v 2022-08-20 10:49:13)

Re: TableGrid Slider

k245 wrote:

.

vovka3003 wrote:

.

Думал можно будет просто скрыть, но там же колонки на всех поля отображаются (ерунда получится), каюсь )!!!

Решил сделать по другому (заменой картинки)  в ячейке, но тут у меня тоже ошибка получается

делал в двух вариантах

// первый вариант **************************************************************************************************************
  sFile := ExtractFileDir(Application.ExeName) + '\img\favoritesEnabled.png';
  fovYes := TPngImage.Create;
  fovYes.LoadFromFile(sFile);
  sFile := ExtractFileDir(Application.ExeName) + '\img\favoritesDesabled.png';
  fovNo := TPngImage.Create;
  fovNo.LoadFromFile(sFile);
  sFile := ExtractFileDir(Application.ExeName) + '\img\finishReadEnabled.png';
  finYes := TPngImage.Create;
  finYes.LoadFromFile(sFile);
  sFile := ExtractFileDir(Application.ExeName) + '\img\finishReadDesabled.png';
  finNo := TPngImage.Create;
  finNo.LoadFromFile(sFile);
  sFile := ExtractFileDir(Application.ExeName) + '\img\delete.png';
  imgDel := TPngImage.Create;
  imgDel.LoadFromFile(sFile);
  sFile := ExtractFileDir(Application.ExeName) + '\img\edit.png';
  imgEdi := TPngImage.Create;
  imgEdi.LoadFromFile(sFile);
  sFile := ExtractFileDir(Application.ExeName) + '\img\play.png';
  imgPla := TPngImage.Create;
  imgPla.LoadFromFile(sFile);
  for i := 0 to frmMainBook.tgListAllBook.RowCount -1 do
  begin
    if (SQLExecute('SELECT favorites FROM books WHERE id=' + IntToStr(frmMainBook.tgListAllBook.Row[i].ID)) = '1') then
        frmMainBook.tgListAllBook.Cell[7,i].ObjectReference := fovYes else
        frmMainBook.tgListAllBook.Cell[7,i].ObjectReference := fovNo;
    if (SQLExecute('SELECT read FROM books WHERE id=' + IntToStr(frmMainBook.tgListAllBook.Row[i].ID)) = '1') then
        frmMainBook.tgListAllBook.Cell[6,i].ObjectReference := finYes else
        frmMainBook.tgListAllBook.Cell[6,i].ObjectReference := finNo;
    frmMainBook.tgListAllBook.Cell[8,i].ObjectReference := imgDel;
    frmMainBook.tgListAllBook.Cell[9,i].ObjectReference := imgEdi;
    frmMainBook.tgListAllBook.Cell[10,i].ObjectReference := imgPla;
  end;  

  // второй вариант ****************************************************************************************************
  for i := 0 to frmMainBook.tgListAllBook.RowCount-1 do
  begin
    if (SQLExecute('SELECT favorites FROM books WHERE id=' + IntToStr(frmMainBook.tgListAllBook.Row[i].ID)) = '1') then
        frmMainBook.tgListAllBook.Cell[7,i].ObjectReference := frmImages.imgFavoritesEnabled.Picture.Graphic else
        frmMainBook.tgListAllBook.Cell[7,i].ObjectReference := frmImages.imgFavoritesDesabled.Picture.Graphic;
    if (SQLExecute('SELECT read FROM books WHERE id=' + IntToStr(frmMainBook.tgListAllBook.Row[i].ID)) = '1') then
        frmMainBook.tgListAllBook.Cell[6,i].ObjectReference := frmImages.imgFinishReadEnabled.Picture.Graphic else
        frmMainBook.tgListAllBook.Cell[6,i].ObjectReference := frmImages.imgFinishReadDesabled.Picture.Graphic;
    frmMainBook.tgListAllBook.Cell[8,i].ObjectReference := frmImages.imgPlay.Picture.Graphic;
    frmMainBook.tgListAllBook.Cell[9,i].ObjectReference := frmImages.imgEdit.Picture.Graphic;
    frmMainBook.tgListAllBook.Cell[10,i].ObjectReference := frmImages.imgDelete.Picture.Graphic;
  end;  

такой момент :: если запись одна то скрипт работает, если записей более одной или (были сделаны множество записей и потом удалены и оставленна одна запись), то изображения добавляются но при переключении (клике на ячейки избранное или прочитанно) возникает ошибка..
если запустить программу и выключить, то то возникае ошибка (окно закрывается а вот процесс работает)..
   
 
а вот если применять цвет колонок. то все работает...

for i := 0 to frmMainBook.tgListAllBook.RowCount-1 do
  begin
    if (SQLExecute('SELECT favorites FROM books WHERE id=' + IntToStr(frmMainBook.tgListAllBook.Row[i].ID)) = '1') then
        frmMainBook.tgListAllBook.Cell[7,i].Color := clTeal else
        frmMainBook.tgListAllBook.Cell[7,i].Color := clGray;
    if (SQLExecute('SELECT read FROM books WHERE id=' + IntToStr(frmMainBook.tgListAllBook.Row[i].ID)) = '1') then
        frmMainBook.tgListAllBook.Cell[6,i].Color := clTeal else
        frmMainBook.tgListAllBook.Cell[6,i].Color := clGray;
    frmMainBook.tgListAllBook.Cell[8,i].Color := $00408000;
    frmMainBook.tgListAllBook.Cell[9,i].Color := $000080FF;
    frmMainBook.tgListAllBook.Cell[10,i].Color := clRed;
  end;

загружаю проект
первый вариант - строка 141
второй вариант - строка 176
третий вариант - строка 190
реакция на клик ячейки - строка 7

Post's attachments

Attachment icon booklib.rar 218.64 kb, 136 downloads since 2022-08-20 

Re: TableGrid Slider

А вы проверяли работоспособность грида, если у разных записей ссылка на один объект-картинку? У меня этот момент вызывает сомнение:

frmMainBook.tgListAllBook.Cell[8,i].ObjectReference := imgDel;

Почему-то в других примерах создается отдельный графический объект для каждой строки.

Визуальное программирование: блог и телеграм-канал.

7 (edited by pavlenko.vladimir.v 2022-08-20 12:25:07)

Re: TableGrid Slider

k245 wrote:

А вы проверяли работоспособность грида, если у разных записей ссылка на один объект-картинку? У меня этот момент вызывает сомнение:

frmMainBook.tgListAllBook.Cell[8,i].ObjectReference := imgDel;

Почему-то в других примерах создается отдельный графический объект для каждой строки.

Спасибо!!

for i := 0 to frmMainBook.tgListAllBook.RowCount -1 do
  begin
    sFile := ExtractFileDir(Application.ExeName) + '\img\favoritesEnabled.png';
    fovYes := TPngImage.Create;
    fovYes.LoadFromFile(sFile);
    sFile := ExtractFileDir(Application.ExeName) + '\img\favoritesDesabled.png';
    fovNo := TPngImage.Create;
    fovNo.LoadFromFile(sFile);
    sFile := ExtractFileDir(Application.ExeName) + '\img\finishReadEnabled.png';
    finYes := TPngImage.Create;
    finYes.LoadFromFile(sFile);
    sFile := ExtractFileDir(Application.ExeName) + '\img\finishReadDesabled.png';
    finNo := TPngImage.Create;
    finNo.LoadFromFile(sFile);
    sFile := ExtractFileDir(Application.ExeName) + '\img\delete.png';
    imgDel := TPngImage.Create;
    imgDel.LoadFromFile(sFile);
    sFile := ExtractFileDir(Application.ExeName) + '\img\edit.png';
    imgEdi := TPngImage.Create;
    imgEdi.LoadFromFile(sFile);
    sFile := ExtractFileDir(Application.ExeName) + '\img\play.png';
    imgPla := TPngImage.Create;
    imgPla.LoadFromFile(sFile);
    if (SQLExecute('SELECT favorites FROM books WHERE id=' + IntToStr(frmMainBook.tgListAllBook.Row[i].ID)) = '1') then
        frmMainBook.tgListAllBook.Cell[7,i].ObjectReference := fovYes else
        frmMainBook.tgListAllBook.Cell[7,i].ObjectReference := fovNo;
    if (SQLExecute('SELECT read FROM books WHERE id=' + IntToStr(frmMainBook.tgListAllBook.Row[i].ID)) = '1') then
        frmMainBook.tgListAllBook.Cell[6,i].ObjectReference := finYes else
        frmMainBook.tgListAllBook.Cell[6,i].ObjectReference := finNo;
    frmMainBook.tgListAllBook.Cell[8,i].ObjectReference := imgDel;
    frmMainBook.tgListAllBook.Cell[9,i].ObjectReference := imgEdi;
    frmMainBook.tgListAllBook.Cell[10,i].ObjectReference := imgPla;
  end;

но почему нужно для каждой строки создавать отдельный набор объектов?
это как-то связано с сылками на эти объекты ? или происходит присвоение объекта конкретному объекту?

Re: TableGrid Slider

Hello Wladimir

On FormMainBook, with button "Новая книга" (iAdd a book) if i've well translated with google) the goal is to add a new book,
Why behind this button don't you call as Action 'New record' instead of Action 'Show Record'.
Because the form called shows last entry while the fields should be empty ?

Maybe I misunderstood the purpose of this button
JB

Re: TableGrid Slider

jean.brezhonek wrote:

Hello Wladimir

On FormMainBook, with button "Новая книга" (iAdd a book) if i've well translated with google) the goal is to add a new book,
Why behind this button don't you call as Action 'New record' instead of Action 'Show Record'.
Because the form called shows last entry while the fields should be empty ?

Maybe I misunderstood the purpose of this button
JB

это просто измененная форма, я забыл выбрать "Новая запись"
it's just a modified form, I forgot to select "New Entry"

Re: TableGrid Slider

pavlenko.vladimir.v wrote:

но почему нужно для каждой строки создавать отдельный набор объектов?
это как-то связано с сылками на эти объекты ? или происходит присвоение объекта конкретному объекту?

Ответить на это мог бы автор компонента или автор MVDB (если у него есть доступ к исходникам).
А мы может только догадываться smile

Визуальное программирование: блог и телеграм-канал.