Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.12.2011, 03:22   #1
SL1M_DOGG
Пользователь
 
Регистрация: 08.06.2009
Сообщений: 96
Сообщение нужен цикл Delphi

Люблю разбирать все на простом примере.
Вот программка:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComObj, StdCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  x: array [0..3] of real;
  y: array [0..3] of real;
  z: array [0..3] of real;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var i: integer;
Ea, Pg: OLEVariant;
begin
    Ea:= CreateOLEObject('Excel.Application');
   Ea.Workbooks.Open('D:\Excel\res.xls');
   Ea.Visible:= True;
   Pg:= Ea.Workbooks[1].Worksheets[1];
   Pg.Activate;
   for i := 1 to 3 do
   begin
   x[i]:=x[i-1]+1;
   y[i]:=y[i-1]+2;
   z[i]:=x[i]+y[i];
   Pg.Cells[1,1].Value:=z[i];
   end;
end;

procedure TForm1.FormCreate(Sender: TObject);
var Ex, Sh : OLEVariant;
begin
  Ex := CreateOleObject('Excel.Application');
  Ex.Workbooks.Open('D:\Excel\doc.xls');
  Ex.DisplayAlerts := false;
  EX.Visible := true;
  Sh := Ex.Workbooks[1].WorkSheets[1];
  Sh.Activate;
  x[0]:=Sh.Cells[1,1].Value;
  y[0]:=Sh.Cells[1,2].Value;
end;

end.
Она берет начальные данные из одного эксель файла (x,y), пересчитывает z, и выводит в другой эксель файл. Так вот нужен цикл, который будет выводить каждый раз новую z при нажатии на какую то Button. К примеру мы взяли начальные данные x=1 y=2... в программе x[i]:=x[i-1]+1; y[i]:=y[i-1]+1; z[i]:=x[i]+y[i], x получается 2, y=3, z=5. А в след. периоде чтобы z=7... Ну вообщем вы меня поняли =) как это все осуществить?!
SL1M_DOGG вне форума Ответить с цитированием
Старый 21.12.2011, 08:14   #2
Gagarik
Пользователь
 
Регистрация: 14.11.2011
Сообщений: 13
По умолчанию

Цитата:
Сообщение от SL1M_DOGG Посмотреть сообщение
Ну вообщем вы меня поняли =)
Если честно, не очень
Но если тебе нужно что менять по нажатию кнопки, то в ф-ии нажатия кнопки и меняй значения Х и У. если нужно двигаться по ячейкам того-же екселя, запомни текущую позицию в глобальной переменной и в Button1Click изменяй это значение либо inc(m_ExcLine) либо как тебе хочется. Типа:
x[0]:=Sh.Cells[m_ExcLine, 1].Value;
y[0]:=Sh.Cells[m_ExcLine, 2].Value;
Gagarik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нужен цикл Delphi SL1M_DOGG Помощь студентам 1 21.12.2011 11:05
Цикл с предусловием. ( цикл while) Цикл с постусловием. (цикл repeat ... until) Mr.User Помощь студентам 9 23.11.2007 01:34