Я работаю над приложением для отслеживания в спортзале, и я разработал раздел в Lazarus бесплатно pascal, чтобы добавлять упражнения в список и просматривать их. Я сейчас пытаюсь написать код для удаления упражнения. Я использую электронную таблицу .ods для хранения данных упражнения для заполнения поля со списком. Я использую fpsspreadsheet для доступа к файлу ods и для записи данных туда и обратно. Я не могу понять, как удалить строку из таблицы, выбрав элемент в выпадающем списке. Я пробовал много разных вещей, но не могу заставить его работать с тех пор. Вот код, который у меня есть сейчас для этого раздела:
procedure Texerciselist.Button1Click(Sender: TObject);
const
DataFile = 'exlist.ods';
var
MyWorkbook : TsWorkbook;
MyWorkSheet : TsWorksheet;
S : string; //edit1.text
I : integer; //spreasdsheet line
C : string; //combobox1.text
N : integer; //pcell to row
Mycell : pcell; // not sure about
RowFound, ColFound: Cardinal;
MySearchParams: TsSearchParams;
begin
if combobox1.Caption ='Exercises in Database'
then
label3.Caption := 'Please select Exercise'
else
S :=edit1.text;
C :=combobox1.Text;
label3.caption := C + ' Exercise deleted from Log';
MyWorkbook := TsWorkbook.Create;
MyWorkbook.ReadFromFile(DataFile, sfOpenDocument);
MyWorksheet := MyWorkbook.ActiveWorksheet;
//delete database code here
mycell := myworksheet.FindNextCellInRow(c); //fixmehere
N := mycell;
myworksheet.Cells.DeleteCell(N,0);
//fix above
MyWorksheet.DeleteRow(N); // will delete row number integer
MyWorkbook.WriteToFile(DataFile, True);
combobox1.items.Clear;
for i := 1 to MyWorkbook.ActiveWorksheet.GetLastRowIndex do
ComboBox1.items.AddStrings(MyWorkbook.Activeworksheet.ReadasText(i, 0));
combobox1.Sorted := True;
MyWorkbook.Free;
end; ```