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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.02.2014, 21:39   #1
FleXik
Форумчанин
 
Регистрация: 01.11.2012
Сообщений: 770
Вопрос В один массив несколько "параметров" (границ массива)

Всем привет, как можно в один массив записать несколько "параметров"? Мне нужно именно в один массив т.к потом переменная маcсива подставляется в запрос и по другому никак, мне нужно что-то типа этого:

плохой пример....

Знаю что код кривой и так делать нельзя, но более подробно другим способом я думаю обьяснить нельзя.

Последний раз редактировалось FleXik; 09.02.2014 в 22:57.
FleXik вне форума Ответить с цитированием
Старый 09.02.2014, 21:49   #2
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

да тут совсем не понятно к чему этот массив..
проще рассказать что в итоге надо, кривой код не помошник
eval вне форума Ответить с цитированием
Старый 09.02.2014, 22:01   #3
FleXik
Форумчанин
 
Регистрация: 01.11.2012
Сообщений: 770
По умолчанию

eval, так я и написал, мне нужно задать несколько границ массива для одной и той же переменной, я специально выше дал пример и выше видно что числа в границах всегда разные
FleXik вне форума Ответить с цитированием
Старый 09.02.2014, 22:10   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

stackoverflow подсказывает:
Код:
type
  TIntArray = array of integer;

procedure TForm1.Button1Click(Sender: TObject);
var
  MyArr: TIntArray;
begin
  MyArr := TIntArray.Create(10, 20, 30, 40);
end;
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 09.02.2014, 22:26   #5
FleXik
Форумчанин
 
Регистрация: 01.11.2012
Сообщений: 770
По умолчанию

BDA, TIntArray при Create не вызывается, хотя в type задается и в var тоже...
FleXik вне форума Ответить с цитированием
Старый 09.02.2014, 22:30   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
const a:Array[0..4,1..7] of integer=( (0,0, 0, 0, 0,0,0)
 (1, 7, 4, 5, 8,0,0),(9, 3, 2, 6, 1, 7,0),(2, 8, 1, 4, 9, 5, 3),(5, 1, 3, 9, 7, 2, 4)
);
var k:integer;
begin
if Form1.sCheckBox1.Checked=True then k:=1 else
if Form1.sCheckBox2.Checked=True then k:=2 else
if Form1.sCheckBox3.Checked=True then k:=3 else
if Form1.sCheckBox4.Checked=True then k:=4 else k:=0;

IdHTTP1.Get('http://site.ru/?p='+IntToStr(a[k][Form1.sComboBox3.ItemIndex]));
end;
Годится?
Цитата:
BDA
И это что работает? О_о
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.02.2014, 22:35   #7
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Честно говоря, сам не проверял. http://stackoverflow.com/questions/6...-delphi-pascal - ответ помечен принятым, вот и доверился
UPD Проверил на Delphi 2010 - работает.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 09.02.2014, 23:03   #8
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

Я бы советовал читать xyz до просветления
Да и вообще читать, в т.ч. GunSmoker'a , а то что ни тема, то шедевр и погибель.
phomm вне форума Ответить с цитированием
Старый 09.02.2014, 23:17   #9
alextrof94
Форумчанин
 
Регистрация: 16.03.2013
Сообщений: 599
По умолчанию

Как я понял, в зависимости от выбранного пункта в первом комбобоксе тебе надо выводить определенное количество строк во втором... Так тут 1-мерный числовой массив, вроде (5, 3, 7, 1, 2).

Код:
var
 myStrings: array [0..6] of string;
 myArray: array [0..4] of integer;

//процедура создания формы
begin
//массив строк
 myStrings[0]:='раз';
 myStrings[1]:='два';
 myStrings[2]:='три';
 myStrings[3]:='четыре';
 myStrings[4]:='пять';
 myStrings[5]:='шесть';
 myStrings[6]:='семь';
//массив количеств строк
 myArray[0]:=5;
 myArray[1]:=3;
 myArray[2]:=7;
 myArray[3]:=1;
 myArray[4]:=2;
end;

//процедура выбора пункта из комбобокса1
procedure TForm1.sComboBox1Select(Sender: TObject);
var 
 i: integer;
begin
Combobox2.Clear;
 for i:=0 to myArray[Combobox1.itemindex]-1 do
  Combobox2.Items.Add(myStrings[i]); 
end;
alextrof94$gmail.com

Последний раз редактировалось alextrof94; 09.02.2014 в 23:21.
alextrof94 вне форума Ответить с цитированием
Старый 09.02.2014, 23:39   #10
FleXik
Форумчанин
 
Регистрация: 01.11.2012
Сообщений: 770
По умолчанию

Цитата:
Как я понял, в зависимости от выбранного пункта в первом комбобоксе тебе надо выводить определенное количество строк во втором... Так тут 1-мерный числовой массив, вроде (5, 3, 7, 1, 2).
верно, но прикол в том что у меня несколько пунктов в первом ComboBox и при выборе разных пунктов в ComboBox1 пункты в ComboBox2 меняются, и их разное количество, и вот для них мне нужны задать определенные числа, числа так же разные, и все это должно быть в одной переменной массива (т.к у меня порядка 100 разных вариантов чисел, не плодить же 100 переменных массива) потому что в последующем эта переменная подставляется в запрос.
FleXik вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Метод ветвей и границ для задачи "Багдадский вор" Zavoorchik Помощь студентам 0 01.05.2012 12:04
двумерный массив. вывести все строки, содержащие хотя бы один "0"(ноль) (написать через функцию в Delphi) BLADIMIR Помощь студентам 4 07.09.2011 21:24
"Индекс вне границ массива". Строки. (Проблема еще не решена) Broken Angel Помощь студентам 5 18.01.2011 21:33
C# ошибка:"Индекс находился вне границ массива" potap88 Помощь студентам 16 18.04.2010 15:50
"Слепить" несколько документов в один Diego__ Microsoft Office Word 2 13.02.2010 19:10