Премини към съдържанието
chuvajhujo

опресняване на DBGrid в Delphi 7

Препоръчан отговор


Здравейте,

Имам един DBGrid, в който разрешавам само една колона да се редактира /въвеждат се цифри/ и искам когато напусна текущото поле да преизчислява съседното поле с нововъведенатаа стойност. Когато използвам събитията OnKeyPress,OnKeyUp, OnKeyDown  се получават нещата, но само ако клавиша е "Enter". ако използвам стрелките за изход от полето нагоре и надолу - "ГОЛЯМО ДЪРВО" !!! Скъса ми нервите - не ще да стане и не ще!!!  Минава през събитието, но явно още няма опресняване на файла и не го преизчислява.  Пробвах с Refresh на DBGrid-a, на  DataSource, Table и каквото там се сетих, но -> НЕ !! Помислих си програмно да натискам Enter, но не знам как да го направя. дайте съвет, ако можете.

Ето това съм написал:

 

 

procedure Trazpredelenie_NAP.DBGrid1KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin

  if key in [38,40] then         // кодове на стрелките "нагоре" , "надолу"
   begin
     if Table2.FieldByName('suma').AsString <> '' then                                                                                                             // проверява дали полето е празно
      begin
       if (Table2.FieldByName('total_rd').AsString <> '')  and (Table2.FieldByName('total_rd').AsInteger <> 0) then       // проверява и второто поле дали е празно
        begin
         Table2.Edit;
         Table2.FieldByName('stavka').AsFloat :=  RoundTo((Table2.FieldByName('suma').AsFloat / Table2.FieldByName('total_rd').AsFloat),-2);  // изчислява стойността и да я запише в таблицата
         Table2.Post;
        end;
      end;
   end;

 

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Регистрирайте се или влезете в профила си за да коментирате

Трябва да имате регистрация за да може да коментирате това

Регистрирайте се

Създайте нова регистрация в нашия форум. Лесно е!

Нова регистрация

Вход

Имате регистрация? Влезте от тук.

Вход

×

Информация

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