Topic: Прочитать в скрипте данные из выбранной строки Grid

Есть такая задача - есть на форме грид и кнопка Нужно по OnClick кнопки прочитать из определенной колонки грида из текущей выбранной строки значение. Как это сделать?

Re: Прочитать в скрипте данные из выбранной строки Grid

Добавил для этого свойство SelectedRow
Скачайте 1.41 версию
https://www.dropbox.com/s/fr76z69sc69l1 … 201.41.zip


procedure Form1_Button1_OnClick (Sender: string; var Cancel: boolean);
begin
    
   ShowMessage(Form1.GridSearch.Cells[1,Form1.GridSearch.SelectedRow]);

end;

здесь показывается сообщение с текстом ячейки в 1 колонке выбранной строки грида.

Dmitry.

Re: Прочитать в скрипте данные из выбранной строки Grid

Спасибо, работает! Задача сравнить то что будет в ячейке грида с тем, что в компоненте Label. В Label число. Как Label привести к числовому виду? И кстати при получении ячейки из грида нужно также приводить к Integer?

Re: Прочитать в скрипте данные из выбранной строки Grid

Привести текст к числовому виду можно так: StrToInt(текст)

в случае с компонентом Label:  StrToInt(Form1.Label1.Caption)
для грида тоже самое, текст ячейки нужно привести к числу, если необходимо сранивать сравнивать числа.


а чтобы сравнить, в целом условие будет такое

if StrToInt(Form1.GridSearch.Cells[1,Form1.GridSearch.SelectedRow]) = StrToInt(Form1.Label1.Caption) then ShowMessage('равно');


при использовании функции StrToInt может возникнуть ошибка, если попытаться привести текст к числовому типу, для этого можно отловить эту ошибку и обработать, например так:


try
  if StrToInt(Form1.GridSearch.Cells[1,Form1.GridSearch.SelectedRow]) = StrToInt(Form1.Label1.Caption) then ShowMessage('равно');
except
  ShowMessage('Возникла ошибка преобразования к числовому типу');
end;
Dmitry.

Re: Прочитать в скрипте данные из выбранной строки Grid

Спасибо! Последнее - кнопка должна сохранять запись. По результатам проверки нужно либо выполнить действие, либо отменить. Вопрос в том- как сделать отмену операции?

Re: Прочитать в скрипте данные из выбранной строки Grid

Воспользуйтесь событием кнопки OnClick


Срабатывает при нажатии кнопки
Данное событие имеет переменную Cancel, которая позволяет предотвратить выполнение действия, которое было назначено для кнопки, например если кнопка имеет действие Сохранить запись, вы можете выполнить проверку, все ли необходимые поля на форме заполнены, и если это не так, присвоить переменной Cancel значение True, что в свою очередь предотвратит выполнение действия Сохранить запись.


пример:

procedure Form1_Button1_OnClick (Sender: string; var Cancel: boolean);
begin
   if Form1.Edit1.Text='' then
   begin
      ShowMessage('Незаполнено обязательное поле.');
      Cancel := True;
   end;
end;
Dmitry.

Re: Прочитать в скрипте данные из выбранной строки Grid

Понял. А есть функция типа ShowMessage только типа диалога чтобы было две кнопки - OK и Cancel По OK действие кнопки будет выполнено, а по Cancel будет Cancel := True; ?

Re: Прочитать в скрипте данные из выбранной строки Grid

Сделал так:
if MessageDlg('На складе отсутствует такое количество! Будет добавлено ' + atStoreNumStr + unitStr, mtConfirmation, mbYes+mbNo, 0) = mrNo then
Работает, только на кнопках написано Yes и No. Это как-то решается?

Re: Прочитать в скрипте данные из выбранной строки Grid

atempbox

замените mbYes+mbNo  НА  mbOK+mbCancel

Dmitry.

Re: Прочитать в скрипте данные из выбранной строки Grid

Теперь написано OK и Cancel. Я имел ввиду можно сделать чтобы по русски было написано?

Re: Прочитать в скрипте данные из выбранной строки Grid

atempbox
пока точно не могу ответить, возможно есть какой либо способ, но я пока не выяснил.

Dmitry.