Ещё вопрос по футеру. Если я таблицу заполняю SQL запросом, как в ней футер сделать?
2 2024-04-19 10:45:24
Re: Фильтр для TGrid (5 replies, posted in Russian)
Как сделать, чтобы в TGrid заказ отображались записи только текущего заказа? Может у меня вообще в корне не верный алгоритм?
PS: БД - MySQL.
Понял, в чём была моя ошибка. Таблица zakaz никак не привязана к форме была, добавил в таблицу zakaz поле с номером заказа и разместил на форме, теперь в TGrid заказ отображаются только данные текущего заказа.
3 2024-04-17 12:36:54
Re: Фильтр для TGrid (5 replies, posted in Russian)
что значит sostav_2 ?
для чего эта таблица??
Нет таблицы sostav_2, есть sostav_z.
В таблице bludo список всех блюд и цены, в таблице zakaz сумма всего заказа (потом будут ещё поля), в таблице sostav_z соответсвенно состав заказа, т.е. список блюд (id) привязанных к закау (id).
4 2024-04-17 08:47:58
Topic: Фильтр для TGrid (5 replies, posted in Russian)
Добрый день.
Делаю БД кафешки, пока только набросок. Помогите с отображением данных в TGrid:
При открытии формы Fzakaz, скриптом вставляю в таблицу zakaz новую пустую запись и сохраняю id, в левой TGrid меню выводятся все данные из таблицы bludo, при нажатии кнопки "Добавить в заказ" открывается новая форма с заполненными полями из таблицы bludo (название, цена) и zakaz (id), по нажатию в этой форме кнопки "сохранить" все данные сохраняются в таблицу sostav_z и форма закрывается, при этом в TGrid заказ отображается все данные из таблицы sostav_z, а должны только записи текущего заказа (zakaz.id=lastid).
Пытался сделать фильтр в настройках таблицы и скриптом:
procedure Fzakaz_TableGrid2_OnChange (Sender: TObject);
begin
Fzakaz.TableGrid2.dbFilter:='id='+lastid;
end;
при выполнении запроса появляется ошибка:
Сообщение об ошибке:
#23000Column 'id' in where clause is ambiguous
Action (Search):
Fzakaz
Запрос вызывающий ошибку:
SELECT DISTINCT `sostav_z`.`id_zakaz` as "sostav_z.id_zakaz",`bludo`.`Название` as "bludo.Название",`sostav_z`.`Количество` as "sostav_z.Количество",`sostav_z`.`Сумма` as "sostav_z.Сумма",`sostav_z`.id,`sostav_z`.`id_bludo` as "sostav_z.id_bludo" FROM `sostav_z` LEFT OUTER JOIN `bludo` ON `sostav_z`.`id_bludo`=`bludo`.id WHERE (id=22)
Как сделать, чтобы в TGrid заказ отображались записи только текущего заказа? Может у меня вообще в корне не верный алгоритм?
PS: БД - MySQL.
5 2024-04-02 13:34:10
Re: Скопировать значение из Footer таблицы (4 replies, posted in Russian)
Спасибо, Дерек, это моя невнимательность...)
6 2024-04-01 08:17:58
Topic: Скопировать значение из Footer таблицы (4 replies, posted in Russian)
Добрый день.
Подскажите, как скопировать значение из Footer таблицы определённой колонки и вставить в текстовое поле. В footer содержится сумма по колонке.
Поле БД, к которому привязано текстовое поле, имеет тип Деньги, когда пытаюсь сделать так:
Form1.edPrice:=Form1.GridPartsUse.columns[3].footer.Caption
получаю ошибку - несовместимый тип данных.
7 2023-10-31 11:32:18
Re: Встроенная авторизация (33 replies, posted in Russian)
md5(password+username)
Отсюда интересное следствие - после редактирования имени пользователя его пароль становится недействительным ))
Интересно, если это такая защита от редактирования, то почему было бы не сделать md5(password+username+id_role+is_admin)...
8 2023-10-26 07:54:22
Re: потоковое видео (28 replies, posted in Russian)
Удалось вывести скрин с камеры на twebbrowser запросом isapi - http://user:pass@<ip>:<port>/ISAPI/streaming/chanels/101/picture?SnapShotimageType=JPEG
Используй функцию HTTPGetFile(URL,,)var, сохраняет в файл.
Вот пример на форуме
9 2023-10-09 07:29:59
Re: потоковое видео (28 replies, posted in Russian)
VSPlayer он не показывает все камеры сразу в online
Попробуй Xeoma, есть бесплатная версия.
10 2023-10-06 13:49:05
Re: потоковое видео (28 replies, posted in Russian)
Это пример для второго варианта с использованием плагина камеры в TWebBrowser, а не для воспроизведения RTSP потока в VLC плеере.
11 2023-10-06 05:53:50
Re: потоковое видео (28 replies, posted in Russian)
Владимир, у Вас же было готовое решение с портабельным VLC плеером, предложите товарищу, может заинтересует.
12 2023-10-05 15:01:36
Re: потоковое видео (28 replies, posted in Russian)
Смотря ещё какой поток камера отдаёт, например RTMP умеет и встроенный плеер играть. Ну так автор программы утверждает.
13 2023-10-02 06:07:05
Re: Прикрутить плеер на форму (15 replies, posted in Russian)
Спасибо за пример, возьму в арсенал.
15 2023-09-29 11:20:27
Re: Прикрутить плеер на форму (15 replies, posted in Russian)
Делать страницу в виде файла - необязательно, достаточно записать код в TWebBrowser.
Ну и сам установщик контрола с собой таскать для компьютеров, где его нет.
А как в него записать, есть пример какой-нибудь?
16 2023-09-29 11:18:08
Re: Прикрутить плеер на форму (15 replies, posted in Russian)
Ну, может производителю задать вопрос?
С ними особо не пообщаешься, производитель ACTI. Кодек старинный SED2140.
На все запросы отвечают стандартно: оборудование снято с производства, приобретайте новое...
17 2023-09-29 11:02:32
Re: Прикрутить плеер на форму (15 replies, posted in Russian)
Если есть Onvif, то ODM что-то должен показать.
Нет, к сожалению, Onvif.
18 2023-09-29 10:58:58
Re: Прикрутить плеер на форму (15 replies, posted in Russian)
Я правильно понял, что для каждой камеры нужно создать html файл и открыть их через TWebBrowser на форме?
19 2023-09-29 10:43:59
Re: Прикрутить плеер на форму (15 replies, posted in Russian)
OLE-объекты нельзя рассматривать как WinControl.
Возможные варианты:
1. Плеер загнать в TWebBrowser, а сам TWebBrowser положить на форму.
2. Собрать в делфи в Ole-контейнере, запускать как Exe-шник, придумать управление (например через параметры запуска).
3. Заюзать через rtsp в VLС плеере (exe), SetParent-ом подтянуть к форме. Управление возможно http-командами.
Да пробовал уже варианты, первые 2 работают, для 3-го нужно знать rtsp поток, а я, к сожалению, не смог его вычислить.
Но хотелось по красоте сделать...
20 2023-09-29 08:29:31
Topic: Прикрутить плеер на форму (15 replies, posted in Russian)
Доброго дня!
Есть код плеера, сграбленного с вэб интерфейса камеры. Плеер в виде nvEncoderMedia.dll. Видимо, чтобы он отображался на форме, его нужно как-то прикрутить к ней, но не соображу как:
procedure Form1_Button2_OnClick (Sender: TObject; var Cancel: boolean);
var
NV1: Variant;
begin
NV1:=CreateOleObject('NVCTRLMEDIA.Media.1');
//TWinControl(NV1).Parent := Form1.Panel1; // - ошибка invalid variant operation
NV1.MediaURL := '192.168.1.100';
NV1.MediaUsername := 'admin';
NV1.MediaPassword := ' ';
NV1.HttpPort := '80';
NV1.DisplayTitleBar(0);
NV1.ID := 1 ;
NV1.SetCommunicationPort(6000,6001,6002,5000,6005,6006);
NV1.Connect();
NV1.Play();
end;
21 2023-08-21 13:34:57
Re: Отправить текст в консоль windows (9 replies, posted in Russian)
Это получается, что в строке
objExec := objShell.Exec('cmd');
команду cmd можно заменить на plink и должно сработать?
Я имею в виду, что можно в консоль plink.exe также отправлять команды и получать ответ?
22 2023-08-21 08:20:59
Re: Отправить текст в консоль windows (9 replies, posted in Russian)
Но мне кажется, есть более изящное решение, чем:
FindWindow('', 'c:\windows\system32\cmd.exe');
через OLE например.
Добрый день. А как через OLE, например?
23 2023-08-08 06:26:35
Re: Параллельный процесс/поток в MVDB (10 replies, posted in Russian)
Только если пропатчить DrvFR.dll
Можно подробней, как пропатчить и как пользоваться патченым dll?
24 2023-08-07 09:10:26
Re: Параллельный процесс/поток в MVDB (10 replies, posted in Russian)
Как вариант "асинхронности" - вызывать отдельный процесс (exe-шник),..
Я в общем-то к этому и пришёл, но на всякий случай решил спросить, вдруг всё-таки был вариант.
25 2023-08-07 07:17:18
Re: Параллельный процесс/поток в MVDB (10 replies, posted in Russian)
Каким способом?
Подключаю драйвер ККМ как OLE объект, подключаюсь, запрашиваю данные, пока по кнопке, потом буду по таймеру:
procedure [name] (Sender: TObject; var Cancel: boolean);
var
kkm: Variant;
begin
if VarType(kkm) = varNull then kkm:=CreateOleObject('Addin.DrvFR');
if kkm.Connect = 0 then
begin
запросы данных...
kkm.Disconnect;
end else showmessage('Не удалось подключиться к ККМ: '+kkm.ResultCodeDescription);
end;