Topic: Подскажите со скриптом...

Доброго времени суток!
Есть скрипт...он РАБОЧИЙ...

procedure Form2_Button8_OnClick (Sender: string; var Cancel: boolean);
var
sFields, sValues: string;
begin

sFields := 'tickets;dateone;id_Centre';
sValues := Form2.Edit4.sqlValue+';'+Form2.DateTimePicker5.sqlDate+';'+Form2.ComboBox1.sqlValue;

if CheckDublicates(Form2.dbAction, 'base', sFields, sValues, Form2.Button8.dbGeneralTableId) then
begin
if MessageDlg('Мое сообщение', mtInformation, mbYes+mbNo, 0) = mrYes

then
begin
     Form2.Button9.Click;                                     //Button9=удалить  запись
     Form2.Button10.Click;                                   //очищает данные в Editах...
     Form2.CheckBox7.Checked := False;        //.панель статистики НЕ ВИДИМА!
     Cancel := True;
 end else
begin
    Form2.CheckBox7.Checked := True;
    Cancel := True;

end;
end;
end;

Вопрос: куда вписать новое действие, если "Мое сообщение"  С Да и Нет не появилось
К примеру:  Form2.Button1.Click;

                                                                 С Уважением Благодарностью Роман!!!

Re: Подскажите со скриптом...

Приветствую,


к сожалению я не смог понять вашего вопроса.

Dmitry.

Re: Подскажите со скриптом...

Ok...

procedure Form2_Button8_OnClick (Sender: string; var Cancel: boolean);
......................проверка дубликата..........................................................................
if MessageDlg(  'дубликат есть...  ', mtInformation, mbYes+mbNo, 0) = mrYes then
begin
   // действия если Да (удаляем)
end else
begin
   // действия если Нет (не удаляем)
end;
Вопрос: если дубликата НЕТ...ТОГДА НАДО СДЕЛАТЬ  Form2.Button1.Click;
                                                       С Уважением Благодарностью Роман!!!

Re: Подскажите со скриптом...

Попробуйте так

if CheckDublicates(Form2.dbAction, 'base', sFields, sValues, Form2.Button8.dbGeneralTableId) then
begin
    if MessageDlg('Мое сообщение', mtInformation, mbYes+mbNo, 0) = mrYes then
    begin
        Form2.Button9.Click;                                     //Button9=удалить  запись
        Form2.Button10.Click;                                   //очищает данные в Editах...
        Form2.CheckBox7.Checked := False;        //.панель статистики НЕ ВИДИМА!
        Cancel := True;
    end else
    begin
        Form2.CheckBox7.Checked := True;
        Cancel := True;
    end;
end else
begin
    Form2.Button1.Click;
end;
Dmitry.

Re: Подскажите со скриптом...

Прикольненько.....
Сутки мучился, а истина рядом!!!
С Уважением Благодарностью Роман!!!

Re: Подскажите со скриптом...

Друзья подскажите....                   
как  скриптом сделать:
если в Edit7 вели меньше или больше четырнадцати цифр,
тогда  по выходу из него будет он будет пустой (( Form2.Edit7.Text:= ' '))
С Уважением Благодарностью Роман!!!

Re: Подскажите со скриптом...

procedure Form2_Edit7_OnExit (Sender: string);
begin
    if Form2.Edit7.GetTextLen <> 14
    then Form2.Edit7.Clear;
end;

8 (edited by Роман 2016-04-13 04:46:47)

Re: Подскажите со скриптом...

Спасибо Вам распр!!!
РАБОТАЕТ!!!

Re: Подскажите со скриптом...

Друзья .....
как автоматически подставить в маску для Edit1(00.00.0000 00:00:00;0;_) дату и время на текущий момент
при открытии формы?????

Re: Подскажите со скриптом...

Роман wrote:

Друзья .....
как автоматически подставить в маску для Edit1(00.00.0000 00:00:00;0;_) дату и время на текущий момент
при открытии формы?????

попробуйте так

procedure frmEmployee_OnShow (Sender: string; Action: string);
begin
        frmEmployee.Edit1.Text := FormatDateTime('ddmmyyyyhhnnss', now);
end;
Dmitry.

Re: Подскажите со скриптом...

Спасибочки.....
Дмитрий вот мой скрипт он РАБОТАЕТ!!!

procedure Form1_OnShow (Sender: string; Action: string);
begin
Form1.Button5.Enabled := False;
end;
procedure Form1_Edit4_OnChange (Sender: string);
begin
   if  (Form1.Edit2.Text='') or
       (Form1.Edit3.Text='') or
       (Form1.Edit4.Text='') then
        Form1.Button5.Enabled := False
else Form1.Button5.Enabled := True;
end;

procedure Form1_Edit3_OnChange (Sender: string);
begin
   if  (Form1.Edit2.Text='') or
       (Form1.Edit3.Text='') or
       (Form1.Edit4.Text='') then
        Form1.Button5.Enabled := False
   else Form1.Button5.Enabled := True;
end;

procedure Form1_Edit2_OnChange (Sender: string);
begin
   if  (Form1.Edit2.Text='') or
       (Form1.Edit3.Text='') or
       (Form1.Edit4.Text='') then
        Form1.Button5.Enabled := False
 else Form1.Button5.Enabled := True;
end;

ВОПРОС: С профессиональной  точки...его можно как то проще или короче написать???
У меня этих .Edit всего ни чего.... 16-штук!!!

                                             С Уважением Благодарностью Роман!!!

Re: Подскажите со скриптом...

Вы можете присвоить всем компонентам Edit одну и туже процедуру события.


Создав событие например Form1_Edit4_OnChange, зайдите на вкладку "События" для других подобных компонентов и вставьте название этого события напротив строки OnChange

Dmitry.

Re: Подскажите со скриптом...

Да это РАБОТАЕТ....
НО...

Создав событие например Form1_Edit4_OnChange, зайдите на вкладку "События" для других подобных компонентов и вставьте название этого события напротив строки OnChange

Если у этих Edit уже есть свое событие,
как дописать к нему новое???

Re: Подскажите со скриптом...

Тогда можете запустить процедуру данного события, просто указав ее имя из друкого события.

Form1_Edit4_OnChange('');
Dmitry.

Re: Подскажите со скриптом...

не совсем понял...

Form1_Edit4_OnChange(");

это куда вставить или куда дописать???

Re: Подскажите со скриптом...

Возможно я вас неверно понял.

Если у этих Edit уже есть свое событие,

покажите код этого события

Dmitry.

17 (edited by Роман 2016-04-13 23:03:28)

Re: Подскажите со скриптом...

код покажите этого события

вот

procedure Form2_Edit6_OnChange (Sender: string);       //расчёт прибыли в пунктах
begin                                              
    CalculateTotal;                                 
end; 

или вот

procedure Form2_Edit2_OnChange (Sender: string);
var
    i: integer;
begin
    i := Pos(DecimalSeparator, Form2.Edit2.Text);
    if i > 0 then i := Length(Form2.Edit2.Text) - i;

    Form2.Edit21.Value := Form2.Edit2.Value;
    while i > 0 do
    begin
        Form2.Edit21.Value := Form2.Edit21.Value*10;
        Dec(i);
    end;
end;

Re: Подскажите со скриптом...

тогда так

procedure Form2_Edit6_OnChange (Sender: string);       //расчёт прибыли в пунктах
begin                                              
    CalculateTotal;        
    Form1_Edit4_OnChange(");                         
end; 
Dmitry.

19 (edited by Роман 2016-04-13 23:42:18)

Re: Подскажите со скриптом...

Дмитрий прошу прощения...
не получается...взгляните пожалуйста???

Post's attachments

Attachment icon тест.zip 336.07 kb, 574 downloads since 2016-04-14 

Re: Подскажите со скриптом...

Hello Dmitry and Pomah

With Pomah's project, would it not possible to use a loop on the same kind of component (here a TEdit)
Example of the kind :

procedure ClearAll;
Var c:Integer;
begin
   for c := 0 to ComponentCount-1 do
   begin
      if( Components[ K ] is TEdit )then
      begin
        (Components[ K ] as TEdit).Text := '';
      end;
end;

Thanks

JB

Re: Подскажите со скриптом...

Спасибо Вам за отклик Жан.brezhonek
НО теперь я вообще ничего не понял...
С Уважением Благодарностью Роман!!!

Re: Подскажите со скриптом...

Hello Pomah

When I played with Delphi 7, I used this loop to avoid repeat several times the same syntax.
( if  (Form1.Edit2.Text='') or
       (Form1.Edit3.Text='') or
       (Form1.Edit4.Text='') then
        Form1.Button5.Enabled := False) in your project

This loop is applied to the same component (TEdit in your case)
and in one pass did all the work.

What is the opinion of Dmitry about this point ?

Thanks

JB

Re: Подскажите со скриптом...

Всем хорошего настроения...
Дмитрий помогите соединить:

Form2.Edit27.Text := SQLExecute ('SELECT spred FROM Spred WHERE id = ' + IntToStr(Form2.ComboBox17.dbItemID) );

+

Form2.Edit27.Text := SQLExecute ('SELECT spred FROM Spred WHERE id = ' + IntToStr(Form2.ComboBox18.dbItemID) );

P/S:в таблице было вычислительное поле(рабочее)

(SELECT (Spred.spred) FROM Spred WHERE Spred.id_Centre=base.id_Centre  AND Spred.id_Currency=base.id_Currency)

нужно раздобыть значения в Edit27...
С Уважением Благодарностью Роман!!!

Re: Подскажите со скриптом...

Роман wrote:

Дмитрий прошу прощения...
не получается...взгляните пожалуйста???

исправьте строку

     Form1_Edit2_OnChange(); 

на

     Form1_Edit2_OnChange(''); 

иначе ваш проект выдает ошибкую

Dmitry.

Re: Подскажите со скриптом...

Роман wrote:

Всем хорошего настроения...
Дмитрий помогите соединить:

К сожалению не могу понять, что с чем нужно соединять?

Dmitry.