пытаемся удалить строку из таблицы, выбрав элемент в выпадающем списке, используя fpsspreadsheet на pascal "lazarus" - PullRequest
0 голосов
/ 04 февраля 2020

Я работаю над приложением для отслеживания в спортзале, и я разработал раздел в 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;      ```                        
...