1 (edited by m128mx 2021-07-02 12:44:40)

Topic: Прошу помощи, новичок...

Приветствую всех. Рассматривал пример программы от Derek,  Не могу понять как дабл клик по строке в гриде открывает форму с дополнительными данными по выбранной строке?
Скриптов нет, настройки грида стандартные, скрытых кнопок нет, как организовано открытие именно этой формы и именно с ай ди этой записи?
Ткните носом, кому не трудно...
Прикладываю проект Дерека...

Post's attachments

Attachment icon eyeman303.rar 912.57 kb, 237 downloads since 2021-07-02 

2 (edited by sibprogsistem 2021-07-02 14:51:17)

Re: Прошу помощи, новичок...

m128mx wrote:

Приветствую всех. Рассматривал пример программы от Derek,  Не могу понять как дабл клик по строке в гриде открывает форму с дополнительными данными по выбранной строке?
Скриптов нет, настройки грида стандартные, скрытых кнопок нет, как организовано открытие именно этой формы и именно с ай ди этой записи?
Ткните носом, кому не трудно...
Прикладываю проект Дерека...

секрет в кнопке с установленным действием ( показать запись )

http://myvisualdatabase.com/forum/misc.php?action=pun_attachment&item=7784&download=0

Post's attachments

Attachment icon Безымянный.png 40.77 kb, 120 downloads since 2021-07-02 

Re: Прошу помощи, новичок...

О как, неявная связь с третьим элементом... Спасибо за помощь, земляк!

Re: Прошу помощи, новичок...

Всем доброго дня. Помогите куда рыть, пожалуйста...
В гриде превьюшки картинок, по событию OnChange перезагружаются при каждом клике по любому слайду...
OnShow у грида нет, как сделать что бы картинки не переподгружались при каждом клике?  К какому событию привязать?

Re: Прошу помощи, новичок...

m128mx wrote:

Всем доброго дня. Помогите куда рыть, пожалуйста...
В гриде превьюшки картинок, по событию OnChange перезагружаются при каждом клике по любому слайду...
OnShow у грида нет, как сделать что бы картинки не переподгружались при каждом клике?  К какому событию привязать?

Уточните, где именно и что у вас переподгружается? И как вы это определили? Лучше всего с примером кода.


onChange - это событие TdbStringGridEx (грид), в котором иногда добавляется дополнительная обработка, в том числе - для загрузки в грид картинок. Событие это возникает не при кликах, а при обновлении датасета, связанного с гридом.


onClick - это другое событие TdbStringGridEx (грид), возникает при клике мышки по гриду. Насколько мне известно, не вызывает перезагрузки изображений

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

Re: Прошу помощи, новичок...

Спасибо за отклик.
Если не трудно запустите проект, и при клике на любой слайд картинки подгружаются по новой, видно визуально ... Не прошу готового решения, дайте направление поиска...Спасибо.

Post's attachments

Attachment icon WTF — копия-1.rar 980.93 kb, 245 downloads since 2021-07-19 

7 (edited by k245 2021-07-19 12:17:36)

Re: Прошу помощи, новичок...

а... это.... ну, "так и должно быть" - режим карточек красивый, но ужасно тормознутый. Просите Дмитрия, тут надо редактировать сам компонент...


Если не хотите расставаться с карточками, попробуйте там отображать облегченные версии картинок. То есть храните два варианта изображений: большое и маленькое - для карточки.


Или откажитесь от картинок, будет чуть веселей.


Или отображайте картинки в обычном табличном режиме.

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

Re: Прошу помощи, новичок...

Спасибо успокоили... Думал я сам косячный, оказалось - компонент!
Дмитрию сейчас видимо не до доработок, воспользуюсь вашим советом и переделаю без вые...  вычурности... Спасибо за помощь!

Re: Прошу помощи, новичок...

Всем привет. Подскажите пожалуйста в чем моя ошибка. Есть главная форма на ней располагаются кнопки при нажатии на которые происходит переход в этой же форме в другую. То есть на Главной форме я привязал Panel и на ней открывается та форма которая привязана к кнопке. У меня при закрытии программы вылезает ошибка которая ругается на строчку в скрипте:
procedure frmStart_OnResize (Sender: TObject; Action: string);
begin
1  frmForm1.Left:=frmStart.Panel4.Left;
2  frmForm1.Top:=frmStart.Panel4.Top;
3  frmForm1.Width:=frmStart.Panel4.Width;
4  frmForm1.Height:=frmStart.Panel4.Height;

5  frmForm2.Left:=frmStart.Panel4.Left;
6  frmForm2.Top:=frmStart.Panel4.Top;
7  frmForm2.Width:=frmStart.Panel4.Width;
8  frmForm2.Height:=frmStart.Panel4.Height;

  frmForm3.Left:=frmStart.Panel4.Left;
  frmForm3.Top:=frmStart.Panel4.Top;
  frmForm3.Width:=frmStart.Panel4.Width;
  frmForm3.Height:=frmStart.Panel4.Height;

  frmForm4.Left:=frmStart.Panel4.Left;
  frmForm4.Top:=frmStart.Panel4.Top;
  frmForm4.Width:=frmStart.Panel4.Width;
  frmForm4.Height:=frmStart.Panel4.Height;

  frmForm5.Left:=frmStart.Panel4.Left;
  frmForm5.Top:=frmStart.Panel4.Top;
  frmForm5.Width:=frmStart.Panel4.Width;
  frmForm5.Height:=frmStart.Panel4.Height;
end;

procedure frmStart_Button8_OnClick (Sender: TObject; var Cancel: boolean);
begin
  frmForm1.Parent:=frmStart.Panel2;
  frmForm1.Show;
  frmForm1.button7.Click;
end;

Проблема в точ что когда ты открываешь программу и переходишь на любую форму и при закрытии программы вылетает ошибка:

Access violation at adress 0054FF39 in module "Uchet.exe". Read of adress 00000000 Script position : 3:3


Может кто подскажет ?

Re: Прошу помощи, новичок...

senseyesenseye1983, к сожалению программа лишена отладчика а вы не запомнили какие изменения
в вашей программе привели к ошибке )))

Ошибка которая отображается у вас может не относиться к строке из скрипта.
В этом проекте, как пример http://myvisualdatabase.com/forum/viewtopic.php?id=7627 к ошибке в программе (вызов отчета) приводила ошибка совсем в другом месте ( DateTimePicker) где автор был уверен, что там все ОК. И ошибка в программе указывала на строку в скрипте которая не имела отношения к ошибке.

В вашем случае выхода два:

1. Если программа небольшая - переписать заново. Возможно еще и оптимизируете свою программу )
2. Если хочется повозиться.
    Работаем с отдельной копией программы. Удаляем по одной форме вашей программы и находим форму которая приводит к ошибке.
   Далее ВНИМАТЕЛЬНО анализируем все обьекты на данной форме, свойства, настройки, изменение настроек обьектов в скрипте.
   КАЖДОГО объекта и КАЖДОЙ настройки.

Удачи.

Re: Прошу помощи, новичок...

sparrow wrote:

senseyesenseye1983, к сожалению программа лишена отладчика а вы не запомнили какие изменения
в вашей программе привели к ошибке )))

Ошибка которая отображается у вас может не относиться к строке из скрипта.
В этом проекте, как пример http://myvisualdatabase.com/forum/viewtopic.php?id=7627 к ошибке в программе (вызов отчета) приводила ошибка совсем в другом месте ( DateTimePicker) где автор был уверен, что там все ОК. И ошибка в программе указывала на строку в скрипте которая не имела отношения к ошибке.

В вашем случае выхода два:

1. Если программа небольшая - переписать заново. Возможно еще и оптимизируете свою программу )
2. Если хочется повозиться.
    Работаем с отдельной копией программы. Удаляем по одной форме вашей программы и находим форму которая приводит к ошибке.
   Далее ВНИМАТЕЛЬНО анализируем все обьекты на данной форме, свойства, настройки, изменение настроек обьектов в скрипте.
   КАЖДОГО объекта и КАЖДОЙ настройки.

Удачи.

ок спасибо будем посмотреть )

Re: Прошу помощи, новичок...

senseyesenseye1983 wrote:

Всем привет. Подскажите пожалуйста в чем моя ошибка.

procedure frmStart_Button8_OnClick (Sender: TObject; var Cancel: boolean);
begin
  frmForm1.Parent:=frmStart.Panel2;
  frmForm1.Show;
  frmForm1.button7.Click;
end;

Проблема в точ что когда ты открываешь программу и переходишь на любую форму и при закрытии программы вылетает ошибка:

Access violation at adress 0054FF39 in module "Uchet.exe". Read of adress 00000000 Script position : 3:3


Может кто подскажет ?

Недостаточно указать у формы Parent, ещё нужно вызвать специальную функцию SetParent():

procedure frmStart_Button8_OnClick (Sender: TObject; var Cancel: boolean);
begin
  frmForm1.Parent:=frmStart.Panel2;
  SetParent(frmForm1.Handle, frmStart.Panel2.Handle);
  frmForm1.Show;
  frmForm1.button7.Click;
end;
Визуальное программирование: блог и телеграм-канал.

Re: Прошу помощи, новичок...

Спасибо !