Re: Ошибка в новой версии программы.

Все разобрался )

//frmZakaz
procedure frmZakaz_Memo1_OnMouseDown (Sender: string; MouseLeft, MouseRight, MouseMiddle: boolean; Shift, Alt, Ctrl: boolean; X, Y: Integer);
begin
    if MouseLeft then ShowKeyboard2(frmZakaz.Memo1);
end;


procedure ShowKeyboard2 (Ctrl: TWinControl);
var
    Form3: TAForm;
begin
    CurrentCtrl := Ctrl;
    Form3 := TAForm(Ctrl.Parent);
    CurrentCtrl := Ctrl;
    Form2.Top :=  Form3.Top + Ctrl.Top-125;
    Form2.Left := Form3.Left + Ctrl.Left+70;
    Form2.ShowModal;
end;

Re: Ошибка в новой версии программы.

chartcatuser wrote:

Клавиатура используется для ввода логина и пароля на терминале с сенсорным экраном smile

Вы создаете программы для терминалов? И часто заказывают?

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

Re: Ошибка в новой версии программы.

k245 wrote:
chartcatuser wrote:

Клавиатура используется для ввода логина и пароля на терминале с сенсорным экраном smile

Вы создаете программы для терминалов? И часто заказывают?

да всего пару раз.... это не заказ, я не занимаюсь в коммерческих целях. чисто по знакомству)

Re: Ошибка в новой версии программы.

k245 wrote:
chartcatuser wrote:

Клавиатура используется для ввода логина и пароля на терминале с сенсорным экраном smile

Вы создаете программы для терминалов? И часто заказывают?

Подскажи если не трудно вариант решения
Я прикладываю проект я не могу  объединить два скрипта: суть в таблице определеные значения одной нопкой жмем и сразу всем присваиваеться статус checkboxa = 1 или 0   и автоматом ставиться дата тоже всем

Post's attachments

Attachment icon Change values for multiselect.rar 296.35 kb, 110 downloads since 2022-07-21 

Re: Ошибка в новой версии программы.

chartcatuser wrote:
k245 wrote:
chartcatuser wrote:

Клавиатура используется для ввода логина и пароля на терминале с сенсорным экраном smile

Вы создаете программы для терминалов? И часто заказывают?

Подскажи если не трудно вариант решения
Я прикладываю проект я не могу  объединить два скрипта: суть в таблице определеные значения одной нопкой жмем и сразу всем присваиваеться статус checkboxa = 1 или 0   и автоматом ставиться дата тоже всем

У вас другая проблема: вы не можете сформулировать правильно вопрос.


В процедуре  ChangeValues1() у вас дата ставится только, если передаваемый параметр = True, если передать False, то ваш скрипт выдаст ошибку. Вы с бизнес-логикой сначала разберитесь, а потом уже скрипты объединяйте.


Если же нужен скрипт без параметра, который ставит дату и присваивает значение полю isSmoke, то вот он:

procedure ChangeValues1;
var
  i: integer;
begin
  for i := 0 to Form1.GridEmployees.RowCount-1 do
  begin
    if Form1.GridEmployees.Selected[i] then
    begin
      SQLExecute('UPDATE employees SET DateOfBirth = '+Form1.dtDateOfBirth.sqlDate +', isSmoke = 1  WHERE id='+IntToStr(Form1.GridEmployees.dbIndexToID(i)));
    end;
  end;
  Form1.GridEmployees.dbUpdate;
end;
Визуальное программирование: блог и телеграм-канал.

31 (edited by chartcatuser 2022-07-22 03:21:12)

Re: Ошибка в новой версии программы.

Вот что у меня получилось:
При нажатии кнопки ставим всем checkbox=1 и дату
При нажатии кнопки ставим всем checkbox=0 и дату
Упростить никак нельзя ? У меня при сработке procedure frmOrder_bRezervOrder_OnClick должна ставиться и дата я вывел Button2 но все как то долго происходит может есть решениее побыстрее ? )))



//Всем в таблице ставим дату
procedure frmOrder_Button2_OnClick (Sender: TObject; var Cancel: boolean);
begin
    ChangeValues100(True);
end;
procedure ChangeValues100(value: boolean);
var
    i,c: integer;
    s: string;
begin
    if value then s := frmOrder.DateRezervaOrder.sqlDate;

    c := frmOrder.TableGrid1.RowCount-1;
    for i := 0 to frmOrder.TableGrid1.RowCount -1 do
    begin
        begin
            SQLExecute('UPDATE bsm_off SET DataRezerva = '+s + ' WHERE id='+IntToStr(frmOrder.TableGrid1.dbIndexToID(i)));
        end;
    end;
    frmOrder.TableGrid1.dbUpdate;
end;
//Всем в таблице ставим =0
procedure frmOrder_bNetDenegOrder_OnClick (Sender: TObject; var Cancel: boolean);
var
i : integer;
s: string;
begin
    For i:= 0 to frmOrder.TableGrid1.RowCount -1 do
    Begin
    If frmOrder.TableGrid1.Cell[0,i].AsBoolean = True   then
    s := '0' else s := '1';
    Begin
         SQLExecute('UPDATE bsm_off SET Rezerv = '+s +' WHERE id='+IntToStr(frmOrder.TableGrid1.dbIndexToID(i)));
    End;
    frmOrder.Button2.Click;
    End;
    frmOrder.TableGrid1.dbUpdate;
    frmOrder.Button5.Click;
end;
//Всем в таблице ставим =1
procedure frmOrder_bRezervOrder_OnClick (Sender: TObject; var Cancel: boolean);
var
i : integer;
s: string;
begin
    For i:= 0 to frmOrder.TableGrid1.RowCount -1 do
    Begin
    If frmOrder.TableGrid1.Cell[0,i].AsBoolean = True   then
    s := '1' else s := '0';
    Begin
    SQLExecute('UPDATE bsm_off SET Rezerv = '+s +' WHERE id='+IntToStr(frmOrder.TableGrid1.dbIndexToID(i)));
    End;
    frmOrder.Button2.Click;
    frmOrder.TableGrid1.dbUpdate;
    frmOrder.Button5.Click;
end;
end;

Re: Ошибка в новой версии программы.

Помогите с виртуалкой. Никак не могу заставить работать DateTimePicker1 что с ним не так ?

Post's attachments

Attachment icon VK_text.rar 294.52 kb, 112 downloads since 2022-07-23 

Re: Ошибка в новой версии программы.

chartcatuser wrote:

Помогите с виртуалкой. Никак не могу заставить работать DateTimePicker1 что с ним не так ?

Для начала опишите ваши ожидания: как вы себе представляете логику его работы?

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

Re: Ошибка в новой версии программы.

k245 wrote:
chartcatuser wrote:

Помогите с виртуалкой. Никак не могу заставить работать DateTimePicker1 что с ним не так ?

Для начала опишите ваши ожидания: как вы себе представляете логику его работы?

при нажатии на поле с датой виртуальная клавиатура изменяла его значение, тоесть я edit и memo привязал к клавиатуре а дату не получается

Re: Ошибка в новой версии программы.

chartcatuser wrote:
k245 wrote:
chartcatuser wrote:

Помогите с виртуалкой. Никак не могу заставить работать DateTimePicker1 что с ним не так ?

Для начала опишите ваши ожидания: как вы себе представляете логику его работы?

при нажатии на поле с датой виртуальная клавиатура изменяла его значение, тоесть я edit и memo привязал к клавиатуре а дату не получается

TdbEdit хранит набор символов (тип String), поэтому при нажатии на клавиатуре добавляется ещё один символ (TChar).


TdbDateTimePicker хранит дату (тип TDateTime, по сути Float - число с плавающей точкой). Что вы хотите добавить туда с клавиатуры, которая выдаёт символы?  smile


А если серьёзно, то у TdbDateTimePicker нет удобного посимвольного управления строкой ввода данных. И вообще мне кажется, что вы движетесь не в том направлении. Попробуйте передавать не символы, а сообщения о нажатии клавиш (см. SendMessage() ) - пусть компоненты отрабатывают привычную им логику обработки данных.

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