Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

цикл + stringgrid


Страницы:   1 2

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]

Заведи массив и храни там номера отработанных столбцов


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо