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

не могу понять...
procedure Form1_GridEmployees_OnChange (Sender: string);
var
   i,c: integer;
   s: string;
begin
     c := Form1.GridEmployees.RowCount - 1;
     for i := 0 to c do
     begin
         s := Form1.GridEmployees.Cells[5,i];

            if StrToInt(s) < 0 then Form1.GridEmployees.Cell[5,i].TextColor := clRed

     end;
end;
меняет шрифт только когда в таблице указанно целое число!
Вопрос: хотелось бы и при веществ.числе
               что надо изменить в скрипте?
                             
                                                 С Уважением и Благодарностью Роман!!!

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

procedure Form1_GridEmployees_OnChange (Sender: string);
var
   i,c: integer;
   s: string;
begin
     c := Form1.GridEmployees.RowCount - 1;
     for i := 0 to c do
     begin
         s := Form1.GridEmployees.Cells[5,i];

         if ValidFloat(s) then 
            if StrToFloat(s) < 0 then Form1.GridEmployees.Cell[5,i].TextColor := clRed
     end;
end;
Dmitry.

28 (edited by Роман 2015-11-03 21:20:13)

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

Прошу извинить меня Дмитрий...
Не  получилось у меня применить скрипт : Не красит шрифт у (отрицательного) веществ. числа...(-7,77)
Приложил проект...,если не трудно подкаректируйте в нём....для наглядности.

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

Post's attachments

Attachment icon помогите скриптом.zip 5.59 kb, 517 downloads since 2015-11-03 

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

procedure Form1_GridEmployees_OnChange (Sender: string);
var
   i,c: integer;
   s: string;
begin
     c := Form1.GridEmployees.RowCount - 1;
     for i := 0 to c do
     begin
         s := Form1.GridEmployees.Cells[5,i];

         if ValidFloat(s) then
             if StrToFloat(s) < 0 then Form1.GridEmployees.Cell[5,i].TextColor := clRed
     end;
end;
Dmitry.

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

Ура!!!!!!!!!!!!!!!!!! Заработало!!!!!!!!!!!!!!!!!!!!!!
Вставлял скрипт в проект...без перевода.....с русскими дописками
типа(процедура Form1_GridEmployees_OnChange (Отправитель: строка)....и т.д.
а потом доделовал переводчиком......аж самому смешно стало, после того как
нажал кнопочку "показать оригинал"  и вуаля...код приобрёл нужный вид...
Прошу прощения у читателей форума и у Дмитрия за повторный вопрос выше стоящим посте....
Всем нам "чудо-программистам"  приходиться начинать с нуля.

Дмитрию Огромное Спасибо за программу и многократное Спасибо за поддержку!!!!!!!!!!!!!!!!!!!!!!!!!!!!
(в дельфи я б делал свой проект лет сто............)

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

31 (edited by Роман 2015-11-05 13:20:21)

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

объединил два скрипта с одинаковым событием...Form3_TableGrid1_OnChange

//1 скрипт красит шрифт в красный если...отрицательное веществ.число...

procedure Form3_TableGrid1_OnChange (Sender: string);
var
      i,c: integer;
      s: string;
begin
      c := Form3.TableGrid1.RowCount - 1;
      for i := 0 to c do begin s := Form3.TableGrid1.Cells[10,i];
      if ValidFloat(s) then if StrToFloat(s) < 0 then Form3.TableGrid1.Cell[10,i].TextColor := clRed
  end;
end;

//2 скрипт: красит ячейку в зависимости от содержимого...цифра 3 колонка таблицы( id-не считается)

procedure Form3_TableGrid1_OnChange (Sender: string);
var
   i,c: integer;
begin
     c := Form3.TableGrid1.RowCount - 1;
     for i := 0 to c do
     begin
      // if Form3.TableGrid1.Cells[3,i] = 'Yes'  - красит зелным....если 'Да' красит красным
         if Form3.TableGrid1.Cells[3,i] = 'Real' then Form3.TableGrid1.Cell[3,i].Color := clSilver
             else Form3.TableGrid1.Cell[3,i].Color := clYellow;
     end;
end;

//объединил два скрипта с одинаковым событием...Form3_TableGrid1_OnChange
procedure Form3_TableGrid1_OnChange (Sender: string);
var
   i,c: integer;
   s: string;
begin
     c := Form3.TableGrid1.RowCount - 1;
     for i := 0 to c do
begin
         
         s := Form3.TableGrid1.Cells[10,i];
         if ValidInt(s) then
         if StrToFloat(s) < 0 then Form3.TableGrid1.Cell[10,i].TextColor := clRed

         if Form3.TableGrid1.Cells[3,i] = 'Real'
         then Form3.TableGrid1.Cell[3,i].Color := clSilver;
         else Form3.TableGrid1.Cell[3,i].Color := clYellow;
     end;
end;
ругается на 5 строчку снизу (if Form3.TableGrid1.Cells[3,i] = 'Real')
Вопрос:
1. что исправить надо?
2. если два скрипта с одинаковым событием ( я понял ,что их можно объединить...)
    возможно что-то дописывать в скрипте, чтоб не объединять  их...если ДА, то что?
                         
                                                                            С Уважением и Благодарностью Роман!!!

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

забыли точку с запятой

procedure Form3_TableGrid1_OnChange (Sender: string);
var
   i,c: integer;
   s: string;
begin
     c := Form3.TableGrid1.RowCount - 1;
     for i := 0 to c do
     begin
         
         s := Form3.TableGrid1.Cells[10,i];
         if ValidInt(s) then
            if StrToFloat(s) < 0 then Form3.TableGrid1.Cell[10,i].TextColor := clRed;

         if Form3.TableGrid1.Cells[3,i] = 'Real'
            then Form3.TableGrid1.Cell[3,i].Color := clSilver
            else Form3.TableGrid1.Cell[3,i].Color := clYellow;
     end;
end;

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

Dmitry.

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

Доброго дня!
Из двух объединённых скриптов не работал тот который красил шрифт
         if StrToFloat(s) < 0
         then Form3.TableGrid1.Cell[10,i].TextColor := clRed;
добавил это ещё к нему:
         if StrToFloat(s) < 0
         then Form3.TableGrid1.Cell[10,i].TextColor := clGreen;
         if StrToFloat(s) < 0
         then Form3.TableGrid1.Cell[10,i].TextColor := clRed;
Всё вместе ЗАРАБОТАЛО!!!

procedure Form3_TableGrid1_OnChange (Sender: string);
var i,c: integer;
    s: string;
begin c := Form3.TableGrid1.RowCount - 1;                     
      for i := 0 to c do
begin
         s := Form3.TableGrid1.Cells[10,i];
         if ValidInt(s) then
  
         if StrToFloat(s) < 0
         then Form3.TableGrid1.Cell[10,i].TextColor := clGreen;//зелёный

         if StrToFloat(s) < 0
         then Form3.TableGrid1.Cell[10,i].TextColor := clRed;//красный

      
         if Form3.TableGrid1.Cells[3,i] = 'Real'
         then Form3.TableGrid1.Cell[3,i].Color := clSilver
         else Form3.TableGrid1.Cell[3,i].Color := clYellow;
   end;
 end;

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

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

не совсем

procedure Form3_TableGrid1_OnChange (Sender: string);
var i,c: integer;
    s: string;
begin 
      c := Form3.TableGrid1.RowCount - 1;                     
      for i := 0 to c do
      begin
         s := Form3.TableGrid1.Cells[10,i];
         if ValidFloat(s) then
            if StrToFloat(s) < 0 then
               then Form3.TableGrid1.Cell[10,i].TextColor := clGreen
               else Form3.TableGrid1.Cell[10,i].TextColor := clRed;

      
         if Form3.TableGrid1.Cells[3,i] = 'Real'
         then Form3.TableGrid1.Cell[3,i].Color := clSilver
         else Form3.TableGrid1.Cell[3,i].Color := clYellow;
     end;
end;
Dmitry.

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

Огромное Спасибо за поправку!
С Уважением и Благодарностью Роман!!!

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

Доброго времени суток Дмитрий!   версия 2.1
Подскажите...всего одна таблица...
Можно ли заставить работать ComboBox в этой же  таблицы для поиска,
1)  без создавания  дополнительной таблицы(связь)?
2)  если да, то как?

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

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

Роман
Можно, в свойстве ComboBox-a,  ForeignKey просто введите название необходимой таблицы.

Dmitry.

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

Спасибо!!!

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

Возник вопросик следующего характера...
не используя Button для поиска получать сразу результат в TableGrid
выбрав значения из:
1)   Edit?
2)   CheckBox?
3)   ComboBox?
если ДА..., то хоть примерчик с проектом, аль скриптик...или сылочку.......

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

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

Роман
кнопку для поиска все же придеться использовать, но ее можно скрыть, также у компонентов (таких как Edit, CheckBox, ComboBox и т.д.) есть свойство Increm.Search, где можно выбрать кнопку Поиска, которая будет автоматически нажиматься, когда содержимое компонента будет изменено. Таким образом поиск будет осуществляться как бы без необходимости нажимать кнопку Поиск.

Dmitry.

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

Супер!!! Работает....
Моим восхищениям программой "My Visual Database" нет придела......

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

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

версия 2.1
На форме (новая запись)  бегать Enter ...я нашёл пример с Edit.....
Подскажите можно ли управлять ComboBox?
( Edit- внесли значение....Enter.....открыли ComboBox.....стрелками выбрали значение....Enter....и.т.д....)

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

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

может это?
http://myvisualdatabase.com/forum/viewtopic.php?id=1374

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

Ооо! эта фишка у меня на первом месте!
Но я имел в виду,когда заполняешь форму(новая запись)...
бегаешь Ente"ром" по Edit"ам" и попав на ComboBox он сам раскрылся(выдав список),
а я стрелочками выбрав нужное значения, через Enter продолжил дальше заполнения...
если что то подобное есть..?.буду признателен!

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

45 (edited by Роман 2015-11-08 06:22:04)

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

Доброго времени суток Дмитрий!   версия 2.1
В гриде щёлкаем два раз по строчки...открывается форма показать запись...

подскажите скрипт...

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

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

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

Наверное просто событие в гриде создать , на двойной щелчок открыть frm.New.Show; , на форуме примеры есть, воспользуйтесь поиском

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

Наверное просто событие в гриде создать , на двойной щелчок открыть frm.New.Show; , на форуме примеры есть, воспользуйтесь поиском

К сожалению поиск результатом не помог...
если есть на эту тему ссылочка подскажите?

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

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

procedure Form2_TableGrid1_OnDoubleClick (Sender: string);
begin
    Form2.Close;
end;
Может так?

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

Именно то, что надо....
Разобрался...подкаректировал...Получилось добиться нужного результата!

Благодарю Вас wertyby

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

Доброго времени суток Дмитрий!   версия 2.1
Есть скрипт:

 procedure Form1_TableGrid1_OnDoubleClick (Sender: string);
begin
    Form6.Show;
end;

т.е. при двойном клике на строчку в TableGrid1 он должен
открыть  Form6 для (НОВОЙ ЗАПИСИ) в  другую таблицу....
Проблема в том, что он делает это один раз, после повторного
клика на строчку он показывает , что было записано...
А НАДО сделать новую запись!
Подскажите ошибку?

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