Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Goldkeyomsk
0 / 0 / 0
Регистрация: 27.04.2015
Сообщений: 26
#1

Управление св-вом ComboBox.Enabled через RadioButton'ы - Delphi

28.07.2015, 14:09. Просмотров 708. Ответов 25
Метки нет (Все метки)

Добрый день.
Есть такая у меня проблема.

В программе есть 2 кнопки (RadioButton)
хотелось бы с помощью их реализовать переключатель активного/неактивного окна ComboBox

Задача следующая

Имеется выбор из 2-х значений кнопками RadioButton
при нажатии на одну из кнопок нужно что бы список ComboBox был неактивным
и наоборот

вот код программы, поправьте, пожалуйста

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Printers, Math, StdCtrls, jpeg, ExtCtrls, Menus, XPMan, ExtDlgs;
 
type
  TForm1 = class(TForm)
    ComboBox1: TComboBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Edit2: TEdit;
    Label6: TLabel;
    Label7: TLabel;
    Edit3: TEdit;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    ComboBox2: TComboBox;
    Edit1: TEdit;
    Label11: TLabel;
    Label13: TLabel;
    Label14: TLabel;
    Label15: TLabel;
    Edit4: TEdit;
    Label16: TLabel;
    Label17: TLabel;
    Button1: TButton;
    Label21: TLabel;
    Label22: TLabel;
    Label23: TLabel;
    Label24: TLabel;
    Label25: TLabel;
    Label26: TLabel;
    Label27: TLabel;
    Label28: TLabel;
    Label29: TLabel;
    Button2: TButton;
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    N5: TMenuItem;
    Label12: TLabel;
    Label18: TLabel;
    Label20: TLabel;
    Timer1: TTimer;
    XPManifest1: TXPManifest;
    Label19: TLabel;
    Label30: TLabel;
    Image2: TImage;
    Bevel1: TBevel;
    Bevel3: TBevel;
    Bevel4: TBevel;
    Bevel5: TBevel;
    N6: TMenuItem;
    PrintDialog1: TPrintDialog;
    N8: TMenuItem;
    N7: TMenuItem;
    Label31: TLabel;
    Image1: TImage;
    Label32: TLabel;
    Label33: TLabel;
    Edit5: TEdit;
    Label34: TLabel;
    Bevel6: TBevel;
    Label35: TLabel;
    Label36: TLabel;
    ComboBox3: TComboBox;
    Label37: TLabel;
    Label38: TLabel;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    Splitter1: TSplitter;
    Splitter2: TSplitter;
    procedure FormCreate(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
    procedure ComboBox2Change(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
 
    procedure N3Click(Sender: TObject);
    //procedure Timer1Timer(Sender: TObject);
    procedure N4Click(Sender: TObject);
    procedure N5Click(Sender: TObject);
    procedure N6Click(Sender: TObject);
    //procedure Label37Click(Sender: TObject);
    procedure ComboBox3Change(Sender: TObject);
    //procedure RadioButton1Click(Sender: TObject);
    procedure RadioButton2Click(Sender: TObject);
    procedure RadioButton1Click(Sender: TObject);
 
 
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
uses Unit2, Unit3;
 
{$R *.dfm}
 
//создание списка настенного громкоговорителя
procedure TForm1.FormCreate(Sender: TObject);
begin
with ComboBox1.Items do
  begin
    AddObject('Соната-ТЛ-100-5/3Вт (5Вт)', TObject(100));
    AddObject('Соната-ТЛ-100-5/3Вт (3Вт)', TObject(97));
    AddObject('Соната-ТЛ-100-3/1Вт (3Вт)', TObject(96));
    AddObject('Соната-ТЛ-100-3/1Вт (1Вт)', TObject(91));
    AddObject('Соната-ТЛ-100-3/1Вт MINI (3Вт)', TObject(96));
    AddObject('Соната-ТЛ-100-3/1Вт MINI (1Вт)', TObject(91))
    end;
 
 //создание списка потолочного громкоговорителя
 
with ComboBox3.Items do
  begin
    AddObject('Соната-ТЛ-100-5/3Вт исп.2 (5Вт)', TObject(100));
    AddObject('Соната-ТЛ-100-5/3Вт исп.2 (3Вт)', TObject(97));
    AddObject('Соната-ТЛ-100-3/1Вт исп.2 (3Вт)', TObject(96));
    AddObject('Соната-ТЛ-100-3/1Вт исп.2 (1Вт)', TObject(91));
    AddObject('Соната-ТЛ-100-3/1Вт MINI исп.2 (3Вт)', TObject(96));
    AddObject('Соната-ТЛ-100-3/1Вт MINI исп.2 (1Вт)', TObject(91));
end;
 
//создание списка шума
with ComboBox2.Items do
  begin
    AddObject('Больница (40дБ)', TObject(40));
    AddObject('Магазин (30дБ)', TObject(30));
    AddObject('Учебные заведения (40дБ)', TObject(40));
    AddObject('Административные здания (50дБ)', TObject(50));
    AddObject('Предприятия торговли (60дБ)', TObject(60));
    AddObject('Вокзал / Аэропорт (60дБ)', TObject(60));
    AddObject('Спортивные залы (60дБ)', TObject(60));
    AddObject('Зрительные залы клубы/кинотеатры (40дБ)', TObject(40));
    AddObject('Фойе театров/кинотеатров (55дБ)', TObject(55));
    AddObject('Залы кафе/ресторанов/столовых (55дБ)', TObject(55));
    AddObject('Жилые помещения (50дБ)', TObject(50));
    AddObject('Культовые здания (40дБ)', TObject(40));
    AddObject('Автостоянка (крытая)(70дБ)', TObject(70));
    AddObject('Другое... (дб)', TObject(0));
  end;
end;
 
//Мигалка
 
//procedure TForm1.Timer1Timer(Sender: TObject);
//begin
 
  //Label12.Visible:=not Label12.Visible;
  //Label18.Visible:=not Label18.Visible;
 
//end;
 
//Выборка громкоговорителя настенного
 
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
Label1.Caption:=IntToStr(Integer(Combobox1.Items.Objects[Combobox1.ItemIndex]));
end;
 
//Выборка громкоговорителя потолочного
 
procedure TForm1.ComboBox3Change(Sender: TObject);
begin
Label37.Caption:=IntToStr(Integer(Combobox3.Items.Objects[Combobox3.ItemIndex]));
end;
 
//Выбор общего шума
procedure TForm1.ComboBox2Change(Sender: TObject);
begin
Edit1.Text:=IntToStr(15+Integer(Combobox2.Items.Objects[Combobox2.ItemIndex]));
end;
 
// тип громкоговорителя
 
// потолочный
 
procedure TForm1.RadioButton1Click(Sender: TObject);
begin
if RadioButton1.Enabled then
begin
ComboBox1.Hide
end;
end;
 
// настенный
 
procedure TForm1.RadioButton2Click(Sender: TObject);
begin
if RadioButton2.Enabled then
begin
ComboBox3.Hide
end;
end;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.07.2015, 14:09
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Управление св-вом ComboBox.Enabled через RadioButton'ы (Delphi):

Combobox и enabled
Что-то я не вдуплил. Как скрыть или запретить некоторые пункты combobox? ...

Управление кол-вом цифр после запятой в StringGrid
Скажите, как управлять кол-вом цифр после запятой в ячейке компонента...

Сохранить значение свойства Enabled Combobox в ini-файл
драсти как сохранить настройки в ини файл enabled:=true? дайте соурс...

Управление скайпом через делфи
вот пишу прогу которая должна смотреть за чатом..ну тоесть я хочу сделать так...

Управление CMD через Windows Form
Здравствуйте, подскажите как реализовать управление консольным приложением...

Дата через ComboBox
привет, форумчане! на этом сайте нашел много интересного для себя и своей...

25
taras atavin
4204 / 1763 / 212
Регистрация: 24.11.2009
Сообщений: 27,565
29.07.2015, 07:06 #21
Ну и где видно, что оно потом перестаёт переключаться? Ты уж по щёлкай побольше.
0
Goldkeyomsk
0 / 0 / 0
Регистрация: 27.04.2015
Сообщений: 26
29.07.2015, 07:08  [ТС] #22
в общем
внимательно посмотрев. у меня была ошибка в том, что по факту у меня 3 ComboBox
а в данных примерах использовался комбобокс 1 и 2
а нужно было 1 и 3

Delphi
1
2
3
4
5
6
7
8
9
10
11
procedure TForm1.RadioButton1Click(Sender: TObject);
begin
Combobox3.Enabled:=true;
Combobox1.Enabled:=false;
end;
 
procedure TForm1.RadioButton2Click(Sender: TObject);
begin
Combobox1.Enabled:=true;
Combobox3.Enabled:=false;
end;

А так все работает.
Спасибо всем большое !!!!!!!
0
Puporev
Модератор
54136 / 41769 / 28880
Регистрация: 18.05.2008
Сообщений: 98,312
29.07.2015, 07:38 #23
Сутки на то чтобы поменять 2 на 3 это круто!
0
taras atavin
4204 / 1763 / 212
Регистрация: 24.11.2009
Сообщений: 27,565
29.07.2015, 07:41 #24
Если объекты обзывать по номерам вместо осмысленных имён, то это ещё быстро. Норма - полгода.
0
Goldkeyomsk
0 / 0 / 0
Регистрация: 27.04.2015
Сообщений: 26
29.07.2015, 07:44  [ТС] #25
Ну пропустил название. Мой косяк. Я же это признаю
а то что прошли сутки, это ничего страшного
0
taras atavin
4204 / 1763 / 212
Регистрация: 24.11.2009
Сообщений: 27,565
29.07.2015, 07:57 #26
Так я и говорю: при таком стиле именования это ещё быстро. Вот если бы имена были осмысленными, тогда бы ошибка даже не возникла.
0
29.07.2015, 07:57
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.07.2015, 07:57
Привет! Вот еще темы с решениями:

Управление непосредственно через элементы TreeView'а. Как?
Здравствуйте) Я совсем недавно занимаюсь программированием на Delphi. Стоит...

Управление программой delphi через командную строку
Нужно написать программу которая будет принимать комманд щелчков например...

Управление отдельного окна программы через свою программу
Всем привет, у меня есть программа очень схожая с Delphi хочу попробовать как...

Combobox и автозаполнение через разделитель
Добрый день! Подскажите, пожалуйста, возможно ли появление вариантов для...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
26
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru