Topic: Прочитать в скрипте данные из выбранной строки Grid
Есть такая задача - есть на форме грид и кнопка Нужно по OnClick кнопки прочитать из определенной колонки грида из текущей выбранной строки значение. Как это сделать?
My Visual Database → Russian → Прочитать в скрипте данные из выбранной строки Grid
Есть такая задача - есть на форме грид и кнопка Нужно по OnClick кнопки прочитать из определенной колонки грида из текущей выбранной строки значение. Как это сделать?
Добавил для этого свойство 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 колонке выбранной строки грида.
Спасибо, работает! Задача сравнить то что будет в ячейке грида с тем, что в компоненте Label. В Label число. Как Label привести к числовому виду? И кстати при получении ячейки из грида нужно также приводить к Integer?
Привести текст к числовому виду можно так: 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;
Спасибо! Последнее - кнопка должна сохранять запись. По результатам проверки нужно либо выполнить действие, либо отменить. Вопрос в том- как сделать отмену операции?
Воспользуйтесь событием кнопки 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;
Понял. А есть функция типа ShowMessage только типа диалога чтобы было две кнопки - OK и Cancel По OK действие кнопки будет выполнено, а по Cancel будет Cancel := True; ?
Сделал так:
if MessageDlg('На складе отсутствует такое количество! Будет добавлено ' + atStoreNumStr + unitStr, mtConfirmation, mbYes+mbNo, 0) = mrNo then
Работает, только на кнопках написано Yes и No. Это как-то решается?
atempbox
замените mbYes+mbNo НА mbOK+mbCancel
Теперь написано OK и Cancel. Я имел ввиду можно сделать чтобы по русски было написано?
atempbox
пока точно не могу ответить, возможно есть какой либо способ, но я пока не выяснил.
My Visual Database → Russian → Прочитать в скрипте данные из выбранной строки Grid
Powered by PunBB, supported by Informer Technologies, Inc.
Theme Hydrogen by Kushi