![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
цикл + stringgrid
bagos © (2007-03-16 08:16:00)народ прошу помощи т.к. сам уже запутался :(
след код, рандомно выбирает столбец одного стринггрида и заполняет во втором стринггреде,и иногда совпадают столбцы и получается 2 одинаковых столбца в стрингреде2,как я понимаю надо сделать сравнивание,но у меня чет оно не получ.Помогите плиз
var
k,j,i,g:integer;
begin
randomize;
for i:=1 to 3 do
begin
k:=random(5);
...Здесь как я понимаю должно быть сравнение
g:=strtoint(listbox5.Items.Strings[k]);
for j:=1 to 5 do
stringgrid2.Cells[i,j]:=stringgrid1.Cells[g,j];
end;
end;
Германн (2007-03-18 02:17:00) [21]
> bagos (18.03.07 02:05) [9]
>
> не совсем то,мне нужно
Не. Иногда "солдафонские" методы - рулёз!
Как нам говаривал препод по "Начальной военной подготовке" -
1. Уяснить задачу.
2. Оценить обстановку.
3. Принять решение.
4. Отдать команду.
P.S. Ты хоть "поясни свою задачу", блин! :)
bagos (2007-03-18 02:14:00) [22]вот код делает нужное,но с ним тоже проблема:
var
k,xz,j,i,g:integer;
i1,j1:integer;
begin
randomize;
j:=1;
for i:=1 to 10 do
begin
k:=random(strtoint(group_label.caption)+1);
g:=mas[k];
mas[k]:=mas[j];
mas[j]:=g;
j:=k;
end;
for i:=1 to strtoint(new_group.Caption) do
begin
for j:=1 to strtoint(m_label.Caption) do
stringgrid2.Cells[i,j]:=stringgrid1.Cells[mas[i],j];
end;
проблема наверно кроется здесь:
mas:array [1..10] of integer = (1,2,3,4,5,6,7,8,9,10);
т.е. при выполнении некоторые столбцы пустуют,а если задать скажем
mas:array [1..20] of integer = (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20);
то все норм,но опять же массив может состоять и из 1000 и т.д.
Еще вопрос,нельзя ли гриду разрешить колонок больше чем 256?
bagos (2007-03-18 02:05:00) [23]не совсем то,мне нужно чтобы столбцы из одного грида перенеслись в другой в случайном порядке,но количество переносимых столбцев можно было указать. Например в гриде 5 столбцев,и я случайным образом выбрал 3 из них и переместил во второй,и надо чтобы эти столбцы не повторялись
RASkov (2007-03-17 20:46:00) [24]Если я верно понял, то может это:
var S: set of Byte; C, K: Integer;
begin
S:=[];
for C := 0 to StringGrid1.ColCount-1 do begin
repeat
K:=Random(StringGrid1.ColCount);
until not (K in S);
Include(S, K);
StringGrid2.Cols[C].Assign(StringGrid1.Cols[K]);
end;
end;
Колонок в гриде1 должно быть менее 256...
RASkov (2007-03-17 20:21:00) [25]> [6] bagos (17.03.07 19:23)
Ты поточнее можешь изложить, что нужно...
Я понял, что тебе нужно во втором гриде иметь теже значения столбцов, что и в первом - только эти столбцы разместить в случайном порядке(отличном от 1 грида). Так? И для чего ListBox?
bagos (2007-03-17 19:23:00) [26]for i:=1 to 3 do
begin
k:=random(5);
if k=gg then inc(k);
g:=strtoint(listbox5.Items.Strings[k]);
for j:=1 to 5 do
stringgrid2.Cells[i,j]:=stringgrid1.Cells[g,j];
gg:=k;
end; опять не то
bagos (2007-03-17 16:53:00) [27]help с динам массивами тож трабл
bagos (2007-03-17 12:27:00) [28]помогите с решением проблемы
Elen (2007-03-16 09:57:00) [29]
> скажем в другом случаея я не знаю сколько точно будет столбцев
> и строк
Заведи дин. массив.
bagos (2007-03-16 09:27:00) [30]скажем в другом случаея я не знаю сколько точно будет столбцев и строк
Savek (2007-03-16 09:22:00) [31]Заведи массив и храни там номера отработанных столбцов