Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 03.05.2009, 21:16
Tirs Tirs вне форума
Прохожий
 
Регистрация: 03.05.2009
Сообщения: 4
Репутация: 10
По умолчанию Выпадающее меню (ComboBox)

Извините, я не нашёл темы насчёт этого. Статьи тоже.. =( может быть плохо искал

Скажите, как сделать нормальное выпадающее меню (ComboBox). Я не могу найти, как включить туда выбираемые элементы...

Или это всё уже в коде делать?

И ещё - как установить зависимость между выбором в комбобоксе и результатом?
Ответить с цитированием
  #2  
Старый 03.05.2009, 22:19
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Цитата:
Я не могу найти, как включить туда выбираемые элементы...
Видимо имеется ввиду свойство Items
Цитата:
И ещё - как установить зависимость между выбором в комбобоксе и результатом?
Опять-же видимо речь идет о свойстве ItemIndex которое определяет номер выбранного элемента. Отсчет идет с 0.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #3  
Старый 04.05.2009, 12:52
Tirs Tirs вне форума
Прохожий
 
Регистрация: 03.05.2009
Сообщения: 4
Репутация: 10
По умолчанию

т.е. Если мне необходимо её задействовать, то пишу
if ItemIndex=3 (например) then...

а если вывести, то write (ItemIndex)?
Ответить с цитированием
  #4  
Старый 04.05.2009, 13:30
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Скорее
Код:
  if ComboBox1.ItemIndex = X then ...
а вывод через write ты можешь сделать только в консольном приложении, а комбобокс - это уже WinAPI, так что придётся или создавать компонент (например
Код:
  Label1.Caption:= 'Выбран номер '+IntToStr(ComboBox1.ItemIndex);
), или делать всплывающее сообщение:
Код:
  ShowMessage('Выбран номер '+IntToStr(ComboBox1.ItemIndex));
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
  #5  
Старый 04.05.2009, 14:54
Tirs Tirs вне форума
Прохожий
 
Регистрация: 03.05.2009
Сообщения: 4
Репутация: 10
По умолчанию

Вот ещё хотелось бы узнать, как сделать так:

у нас имеется три строковых значения. Надо вывести рандомом только одно из них... заранее спасибо.
Нигде не встречал строкового рандома...
Ответить с цитированием
  #6  
Старый 04.05.2009, 14:59
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Строкового рандома и не существует...
Код:
var
  id: integer;
  s: string;
begin
  s := ''; // Инициализация строки
  Randomize; // Перемешиваем...
  id := Random (2); // генерируем число от 0 до 2
  case id of
    0: s := 'text 1';
    1: s := 'text 2';
    2: s := 'text 3';
  end;
  // Используем s...
end;
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj

Последний раз редактировалось PhoeniX, 04.05.2009 в 15:01.
Ответить с цитированием
  #7  
Старый 04.05.2009, 16:25
Tirs Tirs вне форума
Прохожий
 
Регистрация: 03.05.2009
Сообщения: 4
Репутация: 10
По умолчанию

хм... тема для вопросов на разные темы получилась =)

я непойму, что неправильно в коде? (прога для генерации терактов - создана для онлайновой игры =) )

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    ComboBox1: TComboBox;
    Label2: TLabel;
    Button1: TButton;
  procedure Button1Click (Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForml.ButtonlClick(Sender: TObject);
var
dead: integer;
pain: integer;
id: integer;
event: string;
begin
if ComboBox1.Itemindex = 0 then
dead := Random (60);
pain := Random (80);
event := ''
Randomize;
id := Random (2);
case id of
0: event := 'взрыв в метро';
1: event := 'стрельба в супермаркете';
2: event := 'взрыв заминированного автомобиля';
end;
ShowMessage ('В Австралии произошёл теракт - ',event,'. В результате погибло ',dead,'. Ранено ',pain);

end.

Самое интересное, что мне указывают на ошибки в том, что вот здесь => ComboBox1.Itemindex стоит точка
Ответить с цитированием
  #8  
Старый 04.05.2009, 18:26
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Первое: не вижу закрывающего end для процедуры.
Второе: после
Код:
event := ''
нету точки с запятой.
Третье: в строке
Код:
ShowMessage ('В Австралии произошёл теракт - ',event,'. В результате погибло ',dead,'. Ранено ',pain);
строки складываются с помощью +, и забыли про приведение типов (IntToStr).
Строка должна быть
Код:
  ShowMessage ('В Австралии произошёл теракт - '+event+'. В результате погибло '+IntToStr(dead)+'. Ранено  '+IntToStr(pain));
И ещё: Randomize надо вызывать ПЕРЕД первым Random
После исправления всё скомпилилось и запустилось. ComboBox на форме существует? может изза него ругаться на точку.
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj

Последний раз редактировалось PhoeniX, 04.05.2009 в 18:38.
Ответить с цитированием
  #9  
Старый 04.05.2009, 18:28
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Цитата:
Сообщение от Tirs
создана для онлайновой игры =)
Не понимаю, как с такими знаниями можно писать игру, да ещё и онлайновую.
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
  #10  
Старый 04.05.2009, 20:39
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Да запросто, здесь кусочек кода, там кусочек, глядишь и программа нарисуется. Налицо признаки среднего руководителя, сам не умеет, зато других умеет припахать.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 20:39.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025