251

(6 replies, posted in Talks about all)

https://g.zeos.in/?q=%D0%9F%D0%B0%D0%B7 … B%20delphi

Они выдаются.

253

(3 replies, posted in Russian)

По всей видимости это работает только при наличии реальных данных (записанных в БД)

newusr wrote:

Добрый день.
Чем отличаются функции CreatedFileTime и GetFileLastWriteTime?
Какую лучше использовать для того, чтобы узнать время последней записи в файл?

Created File Time = Создан Файл Время
Get File Last Write Time = Получить Файл Последний Время Запись

grutts wrote:

Если вопрос в деньгах я готов рассмотреть варианты.

grutts wrote:

Я вас понял не буду отвлекать. Поищем другие варианты.

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

Все решаемо. Только ТСы иногда путают "помогите" со "сделайте"...

Улыбнуло... Так многозначительно...
То, что вы называете "основными нюансами" - семечки, которые щелкаются в 5-6 строк кода.
А нюансы это:
1. Обучить браузер вводить данные на странице.
2. Ограничение таких пользователей (одновременно желающих открыть страничку) до того, как регистратор "ляжет"..?
3. Как вы планируете подключаться к регистраторам у которых нет внешнего IP-адреса (а только облачный ID).?
4. Под разные линейки регистраторов скрипт ввода данных в браузере будет выглядеть по-разному. Также может упасть ранее работающий скрипт, если на регистраторе обновилась прошивка а с ней изменилась и веб-морда.
5. Встроенный в программе TWebBrowser не имеет нужных методов для работы со страницами. Внешний (com-объект "InternetExplorer.Application") работает глючно и с ошибками. Встраивается в форму через одно место...
6. Не каждый IE-браузер на каждом из компьютеров корректно откроется. Может и не запуститься вовсе (например с ошибкой плагина "не удается проверить издателя").
И ещё с десяток других (нюансов).

Что-то типа такого наверное?
https://imgur.com/zhtJnPG

...группа защиты информации этого просто не разрешит.
Explorer стоит на всех компах...

Ну, как минимум надо иметь права на установку плагинов в браузере...

это вообще возможно сделать или нет?

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

ip например можно "открыть в эксплорере", но ввод в поля "другой программы" - это уже отдельная история. Тем более на странице авторизации можно пересечься c ActiveX-компонентом, который просто не даст вам это сделать.

А что запрещает использовать родной софт от регистраторов..?
https://i.imgur.com/TwHk65o.png

..Если вопрос в деньгах я готов рассмотреть варианты..

Аналогично smile

const Deny = ['/', '\', ':', '*', '?', '"', '<', '>', '|'];

// Ввод
procedure Form1_Edit3_OnKeyPress(Sender: TObject; var Key: Char);
begin
if Key in Deny then
    begin
      ShowMessage('"'+Key+'" - недопустимый символ (запрещенные: /\ : * ? " < > |)');
      Key:=#0;
    end;
end;

// Копипаст
procedure Form1_Edit3_OnChange (Sender: TObject);
    var i:integer;
        s,s1:string;
begin
   s := Form1.Edit3.Text;
   for i:=0 to Length(Deny)-1 do
   s := ReplaceStr(s,Deny[i],'');
   if s <> Form1.Edit3.Text then
   begin
       ShowMessage('Недопустимые символы: / \ : * ? " < > |');
       Form1.Edit3.Text := s;
   end;
   s:='';
end;

Доброва, доброва...))

помогите написать скрипт.

Судя по следующему содержимому вопроса - "напишите скрипт" (а не "помогите")...

а вторая с обычными данными.

Что есть "обычные данные"..?

нужно чтоб пользователи выделив строку и нажав кнопку открывался данный ip адрес и автоматически в водился логин и пароль из этой же строчки.

Где открывался? Куда вводился..?

264

(5 replies, posted in Russian)

На:

procedure FmMouseWheel(Sender: TObject; isShift, isAlt, isCtrl: boolean;
WheelDelta: Integer; X, Y: Integer; var Handled: Boolean);
var Accel:integer;
begin
  if isCtrl then Accel := 2 else Accel := 10; // Ускорение 5х при зажатом Ctrl
  TForm(Sender).VertScrollBar.Position:=
  TForm(Sender).VertScrollBar.Position - WheelDelta div Accel;
end;

var fc:Integer;

begin
  for fc:=0 to Screen.FormCount-1 do
  TForm(Screen.Forms[fc]).OnMouseWheel := @FmMouseWheel;
end.

265

(5 replies, posted in Russian)

sibprogsistem wrote:

...положение курсора мышки
...прокрутка мышкой....
...OnMouseEnter...

sibprogsistem wrote:

как решить эту проблему?

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

k245 wrote:

Могу предположить, что если там окажется значение $0, то получим пустую строку, а это тоже можно обработать.

В конкретной процедуре задача найти и убрать bom по точному совпадению набора байт (вернее - скопировать в другой файл без них). Иначе - ничего не делаем.

Можно еще использовать AdoDb.Stream для чтения/изменения бинарников. Или WIA.ImageFile для картинок. Все зависит от задачи.

В конкретном случае понятно, что это текстовик в UTF8.

    
function ClearBOM(FileName:string):boolean;
var s,sr:string;
    FS:TFileStream;
    MS:TMemoryStream;
    i:integer;
    res:boolean;
    bom:array [0..2] of byte;
begin
try
    result:=false;
    FS:=TFileStream.Create(FileName,fmOpenRead);
    if FS.Size < 3 then
    begin
        result := true;
        exit;
    end;
    SetLength(sr,3);
    for i:=0 to 2 do
    begin
        FS.Position:=i;
        FS.Read(s,1);
        sr[i+1]:=s;
    end;
    res := (sr[1] = chr($EF)) and
           (sr[2] = chr($BB)) and
           (sr[3] = chr($BF));
    if res then
        begin
           MS:=TMemoryStream.Create;
           MS.CopyFrom(FS,FS.Size-3);
           FS.Free;
           FS:=nil;
           MS.SaveToFile(FileName);
        end;
    result := true;
finally
    if MS <> nil then MS.Free;
    if FS <> nil then FS.Free;

end;
end; 

268

(3 replies, posted in Russian)

1. TIniFile и флаг "запомнить".
2. OLE -> WMI -> Process Information - для чтения аргументов запуска (в которых можно указать данные для авторизации).

Patriot10200 wrote:

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

k245 wrote:

Возможно, с помощью скриптов )))

Согласен... Это возможно...

Patriot10200 wrote:

.. как это реализовать?

Методом написания скрипта (примерная логика ниже):

1. Так как для TControl объектов в форме программой не объявлено свойство Enabled, обход в цикле становится проблематичным, посему рекомендую для компактности кода уложить требуемые для закрытия к редактированию компоненты внутри TPanel и управлять ее свойством Enabled.

2. В событии OnChange DateTimePicker-а по условию "if not Application.User.is_admin then" {пользователь "не админ"} переключайте свойство Enabled панели (Form1.Panel1.Enabled := not Form1.DateTimePicker1.Checked;) {"включена" = "не установлен флаг"}

3. Для срабатывания скрипта управления доступностью, при появлении формы добавьте дополнительный вызов его в событии OnShow:
Form1_DateTimePicker1_OnChange(Form1.DateTimePicker1);

Вроде ничего не упустил... k245, проверьте плз, все правильно описал по теме "как это реализовать"?

k245 wrote:

"Дайте мне точку опоры...

Не совсем. Мне нужен реальный (практически обоснованный) повод для чтения бинарника в MvDb (что, куда и зачем?).
Есть как минимум 2 способа, но "Как прочитать бинарник" - я считаю без подкрепления вышеуказанным - праздный вопрос....

abc52 wrote:

Добрый день !
А какой класс нужно использовать для чтения любых (бинарных) файлов ?
Класс TStringList  не читает,  например,  коды  000 - 031.

Дайте ваш бинарник и куда его нужно прочитать.

mikhail_a wrote:

Как побороть этот баг?

А кто сказал, что это баг..? Анкоры и автоскролл - несовместимы.

273

(16 replies, posted in General)

Ну, тогда желательно прикладывать пример проекта со скриптом.

274

(16 replies, posted in General)

blackpearl8534 wrote:

QuickPrint Type Is Added In Class
How To Use in Script

А это не..?:
https://i.imgur.com/VWz1feF.png
И "все выходит в целлофановых пакетах"...

WPS Office имеет практически полностью Microsoft-совместимый OLE сервер в комплекте.