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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.04.2009, 22:28   #1
Artruman
Пользователь
 
Аватар для Artruman
 
Регистрация: 14.10.2008
Сообщений: 28
Сообщение Алгоритм

Идея такова в полях AdoTable coдержаться ответы на вопрос (тест),
мне нужно вывести эти ответы на кнопки (шесть кнопок) в случайном порядке+ответы не должны повторяться.

Допустим если кнопке выпадает пустое поле AdoTable то кнопка не видна. Доступ к полю через AdoTable1.Fields[от 2 до 6].AsString.

Помогите плз
Artruman вне форума Ответить с цитированием
Старый 08.04.2009, 00:44   #2
Ntlegend
Форумчанин
 
Аватар для Ntlegend
 
Регистрация: 12.05.2007
Сообщений: 373
По умолчанию

загоняешь все ответы в TStringList пустые строки удалить (если есть).. потом рандомно их перемешиваешь и потом присваиваешь на кнопки (тока не забудь пометить строки с правильным ответом)
Перемен! - требуют наши сердца. Перемен! - требуют наши глаза.
В нашем смехе и в наших слезах, И в пульсации вен:
"Перемен!Мы ждем перемен!"
Ntlegend вне форума Ответить с цитированием
Старый 08.04.2009, 21:39   #3
Artruman
Пользователь
 
Аватар для Artruman
 
Регистрация: 14.10.2008
Сообщений: 28
По умолчанию

Цитата:
Сообщение от Ntlegend Посмотреть сообщение
загоняешь все ответы в TStringList пустые строки удалить (если есть).. потом рандомно их перемешиваешь и потом присваиваешь на кнопки (тока не забудь пометить строки с правильным ответом)
Добавил в StringList,пустые удалил,а вот как их перемешать и где?
Artruman вне форума Ответить с цитированием
Старый 08.04.2009, 23:08   #4
Niarb
Пользователь
 
Регистрация: 23.02.2009
Сообщений: 38
По умолчанию

вот тебе пример как перемешать строки...
Код:
procedure TForm1.Button1Click(Sender: TObject);
var sl: TStringList;
    i: integer;
begin
   memo1.Clear;
   sl:=TStringList.Create;
   for i:=0 to 9 do
      sl.Add(inttostr(i));
   repeat
      randomize;
      i:=random(sl.Count-1);
      memo1.Lines.Add(sl.Strings[i]);
      sl.Delete(i); // удаляем использованную строку
   until sl.Count=0;
   sl.Free;
end;
Чем меньше вы знаете, тем больше я ценен как специалист...
Niarb вне форума Ответить с цитированием
Старый 09.04.2009, 00:59   #5
Artruman
Пользователь
 
Аватар для Artruman
 
Регистрация: 14.10.2008
Сообщений: 28
По умолчанию

Всем спасибо,все работает

Код:
procedure TForm1.Button1Click(Sender: TObject);
var i:integer; Sl: TStringList;
begin
 randomize;
 memo1.Clear;
 Sl:=TstringList.Create;
 i:=2;
  repeat
   if AdoTable1.Fields[i].AsString<>'' then
    Sl.Add(AdoTable1.Fields[i].AsString);
    i:=i+1;
  until i=AdoTable1.FieldCount;
   repeat
    i:=random(Sl.Count);
    Memo1.Lines.Add(Sl.Strings[i]);
    Sl.Delete(i);
   until Sl.Count=0;
   Sl.Free;
end;
Artruman вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Алгоритм Artruman БД в Delphi 1 06.04.2009 00:30
Алгоритм SunKnight Работа с сетью в Delphi 5 29.04.2008 15:24
Алгоритм Rifler Паскаль, Turbo Pascal, PascalABC.NET 3 30.03.2008 01:33
Алгоритм сравнения f3nix Общие вопросы Delphi 1 16.02.2008 11:12