Мне часто не хватает в проектах компонента радиокнопка (выбор единственный из многих), приходится подставлять костыли, в случаях, когда комбобокс не совсем удобен. И переключатель (выбор единственный из двух) был бы тоже кстати.
Может автор включит этот компонент в программу?

77

(10 replies, posted in Russian)

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

78

(10 replies, posted in Russian)

Добрый день.
А можно по подробней описать алгоритм взаимодействия в данной схеме?
клиент MVDB на локальном АРМ --- удалённая MySQL БД --- форма на сайте (на одном хостинге с MySQL или не принципиально?)

k245 wrote:

Как решаете проблему с перезаписью файлов, находящихся в папке Program Files? Или пользователь каждый раз нажимает кнопку "Разрешить внесение изменений..."?

Не устанавливаю программу в Program Files )))
Устанавливаю либо в директорию пользователя либо в общую.

Добрый день.
Я сохраняю файлы для обновления и версию программы прямо в базу, на локальном компьютере пользователя создаётся скриптом файл с текущей версией программы пользователя (или прописывается в settings.ini), при закрытии (или открытии) программы проверяется есть ли в базе новая версия и, если есть, копируются из базы новые файлы с заменой старых и обновляется номер версии в файле версии.

Доброго дня!
Можно ли в TWindowsMediaPlayer воспроизвести поток с IP камеры, если да, то как?
Если присвоить переменной WMP.URL:= 'rtsp://IP/axis-media/media.amp' адрес потока, поток не воспроизводится. Может WMP не умеет поток воспроизводить?

DriveSoft wrote:

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

Хороший пример, только нужно ещё ограничить перемещение изображений в пределах формы или фонового изображения, чтобы случайно не утащить за пределы окна, примерно так:

procedure instr_w1_OnMouseMove
.....
if (instr.w1.Left+x-x0) < instr.Image1.Left then instr.w1.Left := instr.Image1.Left else if (instr.w1.Left+x-x0) > instr.Image1.Width+10 then instr.w1.Left := instr.Image1.Width+10 else instr.w1.Left:=instr.w1.Left+x-x0; // Изменяем позицию левого края
if (instr.w1.Top+y-y0) < instr.Image1.Top then instr.w1.Top := instr.Image1.Top else if (instr.w1.Top+y-y0) > instr.Image1.Height then instr.w1.Top := instr.Image1.Height else instr.w1.Top:=instr.w1.Top+y-y0; // Изменяем позицию верхнего края
k245 wrote:

Хранить пароль доступа в скриптах имеет смысл только в случае, если вы - единственный пользователь системы..... Но, если есть возможность, используйте штатную СБ, и тогда проблемы с хранением пароля не станет, потому что его нужно будет вводить при каждом подключении к серверу smile

Я говорил о случае когда подключение к БД MySQL происходит скриптом и данные для подключения записаны в скрипт. Не понял, зачем пользователю каждый раз нужно будет вводить данные для доступа к БД MySQL (ip, логин, пароль пользователя БД), зачем вообще пользователю знать что происходит подключение к какой-то там базе.
Согласен с vovka3003, что необходимо этот вопрос рассмотреть в курсах. Материал мне тоже понравился, ждём новых статей!

vovka3003 wrote:

Сложно назвать это защитой (если вообще можно назвать защитой нешифрованную xml инструкцию, полностью дублирующую скрипт). Несложным парсером можно получить полноценное содержимое.
Вкупе с открытым содержимым форм создаваемые проекты можно считать беззащитными.

Ага, особенно если в скрипте хранится информация о подключении к MySQL серверу)))
Давно задавал вопрос защиты разработчику, но кроме совета удалить script.pas и хранить пароль в отдельном зашифрованном файле решений ни каких ...
Приходится использовать другие способы защиты.

85

(5 replies, posted in Russian)

А если база на сетевом ПК, а программа на локальном с подключением к сетевой базе, тоже тормозит?

Добрый день.
Как можно вывести видеопоток или последовательность кадров MJPEG с IP камеры в программе?
Получилось получить картинку с камеры в TWebBrowser: Web.Navigate('http://<ip камеры>/jpg/image.jpg'), зацикливая процесс получаю некое подобие видео, но при этом получаю мерцающий курсор "песочные часы".
Пробовал получить картинку в memorystream, но вывести из памяти в компонент TImage не удалось:

var
    jp: TJpegImage;
    ms: Tmemorystream;
    s: string;
begin
   ms := TMemoryStream.Create;
   s:=HTTPGet('http://<ip камеры>/jpg/image.jpg');
   ms.Write(s[1], Length(s));
   jp := TJpegImage.Create;
   jp.LoadFromStream(ms);  // undeclared identifer 'LoadFromStream'
   Form1.Image1.Picture.Assign(jp);
   jp.Free;
   ms.Free;
end

Подскажите пути решения задачи.

PS: Пробовал для проигрывания потока прикрепить к форме плеер VLC, плеер при открытии в программе почему-то сворачивается в трей, а если открыть интерфейс плеера без кнопок вообще безнадёжно зависает (плеер).

Очередной раз подниму вопрос о защите проекта.
Можно сделать чтобы файл скрипта script.dcu, в котором в открытом виде хранится информация о доступе к БД MySql,был зашифрован?
Защита "от дурака" в виде замены символов на коды символов или перестановки символов не сильно помогает в защите, потому что не все пользователи "дураки".
PS: Можно, конечно, использовать и стороннее ПО для защиты, например бесплатную Enigma Virtual Box. Упаковывает всё в один исполнительный файл.

88

(4 replies, posted in Russian)

В самом начале кода вставить:
var x,y: integer=0;
если слово var уже есть, то повторять не надо, просто вставить x,y: integer=0;, и если переменные x, y уже есть нужно выбрать другие имена

procedure form2_Button5_OnClick (Sender: TObject; var Cancel: boolean);
begin
repeat
   while x = y do y:=Trunc(Random*10);
   x:=y;
until x <> 0;     
form2.Edit1.Value:= x;
end;
m.prokhachev wrote:

Отформатировал - этот тип значения выставил с Text на Numerical?

Да. Сразу не сообразил, что нужно в отчёте тип значения указать...

90

(4 replies, posted in Russian)

Примерно так:

var x,y: integer=0;
.......
repeat
   while x = y do y:=Trunc(Random*10);
   x:=y;
until x <> 0;

будет выдавать случайные не повторяющиеся числа от 1 до 9, если нужно до 10, то умножать на 11: Trunc(Random*11)

DriveSoft wrote:

К сожалению у меня никакого апострофа не наблюдается, не могли бы вы приложить скриншот?

Проблема решилась, отформатировал ячейки в дизайнере отчётов, лишние символы пропали.

Добрый день.
Необходимо сформировать отчёт в таблицу Excel, выполнив действие на кнопке "Отчёт (SQL)".
В таблице Excel появляется лишний символ (') во всех графах, если отчёт открыть не в Excel, а в превью, лишних символов нет.
В чём  может быть дело?

93

(7 replies, posted in Russian)

А возможно ли вывести в TWebBrowser видео поток MJPEG с камеры AXIS?
Если в качестве URL указать просто адрес IP камеры, на компонент выводит веб интерфейс камеры с live видео, как получить только видео, без интерфейса?

94

(10 replies, posted in Russian)

Подскажите, отчёт сделал по видео инструкции на кнопку Отчёт (SQL), запрос простой, передаю содержимое нескольких полей из базы SQLite. В отчёте в каждом поле перед содержимым появляется символ апостроф ('). Как это поправить? При этом если вывести данные из базы в Grid, всё нормально без лишних символов.

DriveSoft wrote:

Для загрузки файлов в кодировке ANSI
используйте метод LoadFromFileAnsi

sl.LoadFromFileAnsi('d:\log.txt');

Спасибо, работает.

Выяснил, что текстовый файл содержит символы в кодировке KOI-8R, если их удалить код работает.
Попробуйте скормить этот файл, а потом удалить из него последнюю строку...

На яндекс диске:
https://yadi.sk/i/LACua8NR3aigZt

Сообщений об ошибке нет, делаю sl.LoadFromFile(FileName), потом проверяю количество строк sl.Count, получаю "0". Удаляю часть строк в файле, код начинает работать работать.

Добрый день.
Подскажите, как правильно организовать чтение данных из текстового файла. Размер файла может быть до 8Мб. Пробовал использовать класс TStringList, но даже при размере файла 170кб не удаётся загрузить данные из файла. Вместо TStringList загружаю данные из файла прямо в поле memo, а уже потом выполняю поиск нужных данных.
Есть ли какой-нибудь ещё способ чтения информации из файла большого объёма?

sibprogsistem wrote:
newusr wrote:

Получилось подключиться к ККТ, вот пример подключения:
...............

Вам удалось респечатать чек?

Да