Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> создание группы переключателей вручную 
:(
    Опции темы
misskio
Дата 26.10.2006, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 26.10.2006

Репутация: нет
Всего: нет



 smile здравствуйте, я только учусь программировать, так что извините, если что, за глупые вопросы и неправильный синтакс (я в последнее время писала лишь хранимые процедуры в SQL-сервере):

мне необходимо создать в редакторе кода (а не с помощью палитры компонентов) элеметы формы, как представлено в приложении.

Описание:
1) если ChekBox активен напротив какой-либо записи в первом наборе флажков (скорость) необходимо, чтобы все остальные переключатели были запрещены.
2) во втором наборе флажков (тип) данное выполнено лишь для переключателя напротив 'все'. Здесь может быть выбрано несколько вариантов сразу (например двухместный и четырехместный). 

Далее при нажатии на 'ок' должен вызываться обработчик событий, где в цикле, я полагаю, сначала будет определяться значение 2-х параметров (соответствующих первому и второму набору флажков) в зависимости от выбранного флажка или флажков. Если во втором наборе выбрано несколько флажков, то в параметр должны занестись соответствующие им знаечния в кавычках и с запятой в качестве разделителя.

Далее должны вызываться хранимые процедуры (в MS SQL SErver) с данными параметрами.

Так вот,  например, для второго более интересного набора:
я создаю строковый массив: 

const
TypeNames: array[1..12] of string = ('одноместный', 'двухместный', 'трехместный', 'четырехместный', 'все');

Далее в цикле создаю последовательно пять CheckBox-ов:

Код

 for i := 1 to High(TypeNames) do
 begin
 with TCheckBox.Create(self) do
   begin
    
   end;
 end;


Здесь пара вопросов:
1. сначала задаю имя: TCheckBox.Name = 'CheckBox' + 'i'  Так?
2. Мне необходимо задать свойство Caption равный соответствующему элементу массива. TCheckBox.Caption = TypeName[i].
3. Задаю ширину. Какое свойство мне задать, чтобы елси текст Caption не помещается в строку, он должен переносится на другую? И какую соответственно высоту мне надо задать?
4. Теперь после цикла уже, наверное, условие:

Код

if CheckBox.Caption = High(TypeNames)  then
for i := 1 to High(TypeNames)-1 do
     CheckBox.State=cbGrayed
end;

 

5. как заносить соответствующие выбранным флажкам значения в параметр в кавычках и через запятую?


Это сообщение отредактировал(а) Girder - 26.10.2006, 17:54
PM MAIL   Вверх
Akella
Дата 26.10.2006, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



Цитата(misskio @  26.10.2006,  13:21 Найти цитируемый пост)
если ChekBox активен напротив какой-либо записи в первом наборе флажков (скорость) необходимо, чтобы все остальные переключатели были запрещены.

рекомендую использовать RadioGroup

Это сообщение отредактировал(а) Akella - 26.10.2006, 13:52
PM MAIL   Вверх
misskio
Дата 26.10.2006, 13:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 26.10.2006

Репутация: нет
Всего: нет



Цитата(Akella @  26.10.2006,  13:43 Найти цитируемый пост)
рекомендую использовать TRadioGroup 


да, для первой группы я, наверное, так и сделаю...
для второй группы нужны флажи - там можно выбрать несколько вариантов сразу
PM MAIL   Вверх
Akella
Дата 26.10.2006, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



Код

procedure TForm1.Button1Click(Sender: TObject);
begin
  case RadioGroup1.ItemIndex of
    0: begin
      //показываем сообщение с названием
      ShowMessage(RadioGroup1.Items[RadioGroup1.ItemIndex]);
    end;
    1:begin
      ShowMessage(RadioGroup1.Items[RadioGroup1.ItemIndex]);
    end;
    2:begin
      ShowMessage(RadioGroup1.Items[RadioGroup1.ItemIndex]);
    end;
    3:begin

    end;
    4:begin

    end;
    5:begin

    end;
    6:begin

    end
    else
      ShowMessage('Не выбрано не одного пункта');//т.е. ItemIndex = -1
  end;

  if CheckBox1.Checked then begin
    ADOStoredProc1.ExecProc;
  end;

  if CheckBox2.Checked then begin
    ADOStoredProc2.ExecProc;
  end;

  if CheckBox3.Checked then begin
    ADOStoredProc3.ExecProc;
  end;

  //и т.д.
end;


Это сообщение отредактировал(а) Akella - 26.10.2006, 13:59
PM MAIL   Вверх
misskio
Дата 26.10.2006, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 26.10.2006

Репутация: нет
Всего: нет



спасибо
единственно, сообщения мне выводить не надо, надо просто заполнить параметр значениями взависимости от случая и вывести процедуру с данным параметром
но, это понятно (просто заменю вывод сообщений на присваивание значений параметру)

однако, 
 
 мне непонятен именно вариант флажков, от которого мне не отделаться smile
надо, наверное использовать CheckListBox

и опять-таки 
как заполнять и передавать параметр сразу несколькими значениями...
я не знаю как
корректно ли писаать parametr='одноместные','двухместные' в delphi?
и корректно ли передавать их в таком виде в выражение execute?

и как заполнять параметр, если значение не четыре, а 20?
как перебирать все варианты

так:
for i := 1 to High(TypeNames) do
begin
if Items.State=cbChecked /или какое там свойство за это отвечает у данного объекта? smile(
//тогда добавляем его через разделитель ',' в parametr, Как?
end; 
PM MAIL   Вверх
Akella
Дата 27.10.2006, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



Цитата(misskio @  26.10.2006,  14:40 Найти цитируемый пост)
пасибо
единственно, сообщения мне выводить не надо,

да я только для примера smile

Добавлено @ 15:21 
Цитата(misskio @  26.10.2006,  14:40 Найти цитируемый пост)
как заполнять и передавать параметр сразу несколькими значениями...
я не знаю как

http://forum.vingrad.ru/topic-118279.html
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0521 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.