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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.01.2011, 20:06   #1
ytl09
 
Регистрация: 11.01.2011
Сообщений: 5
По умолчанию Stringrid и Listbox

Здравствуйте пожалуйста подскажите по следующему вопросу?
Есть задача оптимального замена оборудования.
Ввожу данные в стрингрид1
программа решает, результат выводит в дыумерном массиве на листбокс
который лежит на табконтроле.на табконтроле несколько вкладок
Вопрос:Как можно вывести последние строки из каждой вкладки в стрингрид2.
Код:
var
  Form1: TForm1;
  tabl: array of array of Integer;
  f: array of array of Integer;
  yt: array of array of string;
  c: integer;

function Max(a,b: integer): Integer;
begin
if a>b then
Result:=a
else
Result:=b;
end;

//Кноака расчитать
procedure TForm1.Button1Click(Sender: TObject);
var a: array of Integer;
    i,j,n,a0,d: Integer;
begin
c:=strtoint(Edit1.Text);
SetLength(tabl,StringGrid1.ColCount-1);
for i:=0 to Length(tabl)-1 do
SetLength(tabl[i],StringGrid1.RowCount-1);
SetLength(a,Length(tabl)-1);
for i:=0 to Length(tabl)-1 do
for j:=0 to Length(tabl[i])-1 do
tabl[i,j]:=strtoint(StringGrid1.Cells[i+1,j+1]);
a0:=tabl[0,0]-tabl[0,1]-c;
for i:=Length(a)-1 downto 0 do
a[i]:=tabl[i,0]-tabl[i,1];
SetLength(f,Length(a)-1);
for i:=Length(f)-1 downto 0 do
SetLength(f[i],i+1);
//Формула
for i:=Length(f)-1 downto 0 do
for j:=Length(f[i])-1 downto 0 do
  begin
  if i=Length(f)-1 then
  f[i,j]:=Max(a[j+1],a0)
  else
  f[i,j]:=Max(a[j+1]+f[i+1,j+1],a0+f[i+1,0]);
  end;
//Заполнение
TabControl1.Tabs.Clear;
for i:=0 to Length(f)-1 do
TabControl1.Tabs.Add('f('+inttostr(i+2)+')');
TabControl1.TabIndex:=0;
Label3.Caption:=inttostr(TabControl1.TabIndex);
ListBox1.Clear;
for i:=0 to Length(f[0])-1 do
ListBox1.Items.Add(inttostr(f[i,0]));
Label4.Caption:='F(max) = '+inttostr(a0+c+f[0,0]);
button1.Enabled:=false;
button2.Enabled:=true;
edit1.Enabled:=false;
button4.Enabled:=false;
end;

procedure TForm1.TabControl1Change(Sender: TObject);
var i: integer;
begin
ListBox1.Clear;
Label3.Caption:=inttostr(TabControl1.TabIndex);
for i:=0 to Length(f[TabControl1.TabIndex])-1 do
ListBox1.Items.Add(inttostr(f[TabControl1.TabIndex,i]));
end;
Вложения
Тип файла: rar 123.rar (203.3 Кб, 11 просмотров)
ytl09 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
объясните StrinGrid magnat1991 Общие вопросы C/C++ 9 26.04.2010 14:50
StrinGrid в Delphi TaYgA Помощь студентам 8 19.10.2009 17:17
StrinGrid Настенька..Блонди Общие вопросы Delphi 2 15.08.2009 16:45
Задача со StrinGrid-ом artemavd Общие вопросы Delphi 10 28.07.2009 16:23