![]() |
|
|
#1
|
|||
|
|||
|
Здравствуйте!
Прошу помощи, подсказки! Имеется CheckBoxList, SpinEdit. Подключаю ексель через библиотеку ComObj. Далее если в CheckBoxList активна первая строка , то в екселе в ячейки "D3" вносится число из SpinEdit1, а если активна первая и вторая строка в CheckBoxList, то в ячейку "D3" вноситься число из SpinEdit1 , а из SpinEdit2 в ячейку "D4". Если первая строка не активна, но активна вторая , то из SpinEdit2 заносится в ячейку "D3" ну и так далее вообщем 66 строк. На данный момент имею: Код:
procedure TForm1.Button1Click(Sender: TObject);
var se:TSpinEdit;
begin
Excel:=CreateOleObject('Excel.Application');
Excel.Application.WorkBooks.Add('C:\Users\Elionor\Desktop\osnova.xls');
d:=FormatDateTime('dd.mm.yy hh.nn.ss',Now);
j:=1;
for i:=0 to CheckListBox1.Count-1 do
begin
if CheckListBox1.Checked[i] then
begin
se:=TSpinEdit(FindComponent('SpinEdit'+IntToStr(i)));
if se<>nil then
Excel.Range['D'+IntToStr(j)]:=se.text;
Inc(j);
end;
end;Код:
Excel.Range['D3'+IntToStr(j)]:=se.text; если так: Код:
Excel.Cells['4,3'+IntToStr(j)]:=se.text; кто, что думает? |
|
#2
|
||||
|
||||
|
У SpinEdit вместо Text можно сразу использовать Value. Попробуйте так
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
i, j: integer;
begin
...
j:= 3;
for i := 0 to CheckListBox1.Count-1 do
if CheckListBox1.Checked[i] then
begin
Excel.Range['D' + IntToStr(j)].Value:=
(FindComponent('SpinEdit' + IntToStr(i)) as TSpinEdit).Value;
Inc(j);
end;
end;Последний раз редактировалось Alegun, 14.07.2013 в 18:27. |