Форум программистов, компьютерный форум, киберфорум
Наши страницы

Delphi для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Goldkeyomsk
0 / 0 / 0
Регистрация: 27.04.2015
Сообщений: 26
#1

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

28.07.2015, 14:09. Просмотров 655. Ответов 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):

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

Combobox и enabled - Delphi
Что-то я не вдуплил. Как скрыть или запретить некоторые пункты combobox? Подобие Combobox.items.enabled:=false;

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

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

Управление CMD через Windows Form - Delphi
Здравствуйте, подскажите как реализовать управление консольным приложением через Windows Form... что-то я вообще въехать не могу как такое...

Управление программой delphi через командную строку - Delphi
Нужно написать программу которая будет принимать комманд щелчков например ~/project1.exe 600 800 (x:600, y:800), чтобы кликал по (600;800)

25
Puporev
Модератор
52834 / 40645 / 13893
Регистрация: 18.05.2008
Сообщений: 94,296
29.07.2015, 06:53 #16
Можешь также скинуть архив своего проекта.
0
taras atavin
3571 / 1755 / 91
Регистрация: 24.11.2009
Сообщений: 27,567
29.07.2015, 06:55 #17
Цитата Сообщение от Puporev Посмотреть сообщение
Я не киномеханник...
Вот посмотри мой проектик.
А разве Вы жаловались на то, что что то там один раз переключается?
0
Goldkeyomsk
0 / 0 / 0
Регистрация: 27.04.2015
Сообщений: 26
29.07.2015, 06:57  [ТС] #18
сейчас будет видео в студии

Добавлено через 18 секунд
0
Puporev
Модератор
52834 / 40645 / 13893
Регистрация: 18.05.2008
Сообщений: 94,296
29.07.2015, 06:59 #19
Я не жаловался. А ТС жаловался
Цитата Сообщение от Goldkeyomsk Посмотреть сообщение
Переключение возможно только 1 раз. несколько раз переключать невозможно
Добавлено через 1 минуту
Цитата Сообщение от Goldkeyomsk Посмотреть сообщение
сейчас будет видео в студии
Очень красиво, балуйся дальше....
0
Goldkeyomsk
0 / 0 / 0
Регистрация: 27.04.2015
Сообщений: 26
29.07.2015, 07:00  [ТС] #20
HTML5
1
<iframe width="560" height="315" src="https://www.youtube.com/embed/nkRkmnufwQs" frameborder="0" allowfullscreen></iframe>
Добавлено через 13 секунд
https://youtu.be/nkRkmnufwQs

Добавлено через 11 секунд
ссылка на видео

Добавлено через 1 минуту
Вообще конечно нужно что бы переключать была возможность постоянно
0
taras atavin
3571 / 1755 / 91
Регистрация: 24.11.2009
Сообщений: 27,567
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
Модератор
52834 / 40645 / 13893
Регистрация: 18.05.2008
Сообщений: 94,296
29.07.2015, 07:38 #23
Сутки на то чтобы поменять 2 на 3 это круто!
0
taras atavin
3571 / 1755 / 91
Регистрация: 24.11.2009
Сообщений: 27,567
29.07.2015, 07:41 #24
Если объекты обзывать по номерам вместо осмысленных имён, то это ещё быстро. Норма - полгода.
0
Goldkeyomsk
0 / 0 / 0
Регистрация: 27.04.2015
Сообщений: 26
29.07.2015, 07:44  [ТС] #25
Ну пропустил название. Мой косяк. Я же это признаю
а то что прошли сутки, это ничего страшного
0
taras atavin
3571 / 1755 / 91
Регистрация: 24.11.2009
Сообщений: 27,567
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. Стоит задача написания &quot;программы-справочника&quot;. Конкретно...

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

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

Написать код через ComboBox - Delphi
Cостатьве программу поиска в списке заданного слова Х (Делфи)


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

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

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