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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 27.11.2009, 22:08
Йогурт Йогурт вне форума
Начинающий
 
Регистрация: 20.11.2009
Сообщения: 109
Репутация: 5
Сообщение Combobox1

Здравствуйте! Вообщем есть Combobox1 в нем 2 записи 1 магазин, 2 магазин! Как реализовать чтобы когда нажимаешь на 1 магазин и 2 магазин Combobox1 становится Enabled:=False;

Вот ток на 1 знаю как.. а дальше нема ((

PHP код:
if Combobox1.text='1 Магазин' then 
begin
Combobox1
.Enabled:=False 
Ответить с цитированием
  #2  
Старый 27.11.2009, 22:10
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Код:
ComboBox1.Enabled = (ComboBox1.Text = '1 Магазин') Or (ComboBox1.Text = '2 Магазин');
Ответить с цитированием
  #3  
Старый 28.11.2009, 11:03
Йогурт Йогурт вне форума
Начинающий
 
Регистрация: 20.11.2009
Сообщения: 109
Репутация: 5
По умолчанию

Спасибо большое!
Ответить с цитированием
  #4  
Старый 28.11.2009, 11:53
Йогурт Йогурт вне форума
Начинающий
 
Регистрация: 20.11.2009
Сообщения: 109
Репутация: 5
По умолчанию

А как сделать чтобы при нажатии в Combobox1 '1 Магазин' появился на форме Button1 а Button 2 скрылся с формы! А при нажатии на '2 Магазин' Button2 появился а Button1 скрылся!
Ответить с цитированием
  #5  
Старый 28.11.2009, 11:59
Аватар для Karsh
Karsh Karsh вне форума
Активный
 
Регистрация: 22.09.2007
Адрес: SPb
Сообщения: 228
Версия Delphi: 7, 2009, XE2
Репутация: 70
По умолчанию

Код:
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
  if ComboBox1.ItemIndex = 0 then //первый пункм меню
  //или условие можно сделпть не по индексу, а по тексту:
  //if ComboBox1.Text = '1 Магазин' then
  begin
    Button2.Visible:= False;
    Button1.Visible:= True;
  end;
  if ComboBox1.ItemIndex = 1 then //второй пункт меню
  //или условие можно сделпть не по индексу, а по тексту:
  //if ComboBox1.Text = '2 Магазин' then
  begin
    Button1.Visible:= False;
    Button2.Visible:= True;
  end;
end;
__________________
Начинающий программист уверен, что в 1 килобайте 1000 байт.
Законченный программист уверен, что в 1 километре 1024 метра.
Ответить с цитированием
  #6  
Старый 28.11.2009, 12:08
Йогурт Йогурт вне форума
Начинающий
 
Регистрация: 20.11.2009
Сообщения: 109
Репутация: 5
По умолчанию

Такой вариант знал! А по проще никак нельзя сделать?
Ответить с цитированием
  #7  
Старый 28.11.2009, 12:15
Аватар для Karsh
Karsh Karsh вне форума
Активный
 
Регистрация: 22.09.2007
Адрес: SPb
Сообщения: 228
Версия Delphi: 7, 2009, XE2
Репутация: 70
По умолчанию

Если у вас только 2 пункта в меню, то можно так:
Код:
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
  Button1.Visible:= (ComboBox1.ItemIndex = 0);
  //или
  //Button1.Visible:= (ComboBox1.Text = '1 Магазин');
  Button2.Visible:= not Button1.Visible;
end;
__________________
Начинающий программист уверен, что в 1 килобайте 1000 байт.
Законченный программист уверен, что в 1 километре 1024 метра.
Ответить с цитированием
  #8  
Старый 28.11.2009, 12:25
Аватар для Karsh
Karsh Karsh вне форума
Активный
 
Регистрация: 22.09.2007
Адрес: SPb
Сообщения: 228
Версия Delphi: 7, 2009, XE2
Репутация: 70
По умолчанию

Если несколько, то можно так:
Код:
procedure TForm1.ComboBox1Change(Sender: TObject);
var
  i: Integer;
begin
  //отключаем все кнопки (допустим, что у нас их 5, как и 5 пунктов меню)
  for i:= 1 to 5 do
    TButton(FindComponent('Button' + IntToStr(i))).Visible:= False;
  //включаем нужную
  TButton(FindComponent('Button' + IntToStr(ComboBox1.ItemIndex+1))).Visible:= True;
end;
__________________
Начинающий программист уверен, что в 1 килобайте 1000 байт.
Законченный программист уверен, что в 1 километре 1024 метра.
Ответить с цитированием
  #9  
Старый 28.11.2009, 12:35
Йогурт Йогурт вне форума
Начинающий
 
Регистрация: 20.11.2009
Сообщения: 109
Репутация: 5
По умолчанию

А как сделать чтобы при запуске DBCombobox был пустым?? Просто он у меня подключён к базе! и после загрузки там автоматом появл текст!
Ответить с цитированием
  #10  
Старый 28.11.2009, 12:45
Аватар для Karsh
Karsh Karsh вне форума
Активный
 
Регистрация: 22.09.2007
Адрес: SPb
Сообщения: 228
Версия Delphi: 7, 2009, XE2
Репутация: 70
По умолчанию

Для очишения списка:
Код:
ComboBox1.Items.Text:= '';
//или
ComboBox1.Items.Clear;
А заполнять список можно так:
Код:
ComboBox1.Items.Text:= '1 item' + #13#10 + '2 item' + #13#10 + '3 item';
Или так:
Код:
ComboBox1.Items.LoadFromFile('file.txt');
__________________
Начинающий программист уверен, что в 1 килобайте 1000 байт.
Законченный программист уверен, что в 1 километре 1024 метра.
Ответить с цитированием
  #11  
Старый 28.11.2009, 12:48
Йогурт Йогурт вне форума
Начинающий
 
Регистрация: 20.11.2009
Сообщения: 109
Репутация: 5
По умолчанию

Возможно я до этого неправильно описал чего я хочу! Смотрите, при загрузки моей программы в DBCombobox1 появляется автоматически текст который забит в БД таблицы Access! Далее выбираешь нужную запись! А мне надо, чтобы при загрузке программы в DBCombobox1 текста который появляется автоматически небыло! Но внутри него записи были!

Последний раз редактировалось Йогурт, 28.11.2009 в 12:58.
Ответить с цитированием
  #12  
Старый 28.11.2009, 13:36
Йогурт Йогурт вне форума
Начинающий
 
Регистрация: 20.11.2009
Сообщения: 109
Репутация: 5
По умолчанию

Знает кто как сделать это??
Ответить с цитированием
  #13  
Старый 30.11.2009, 22:44
Аватар для Лунтик-Некрофил
Лунтик-Некрофил Лунтик-Некрофил вне форума
Начинающий
 
Регистрация: 28.09.2009
Сообщения: 165
Репутация: 12
По умолчанию

Хммм... Не помню точно синтаксис работы с combo, по идее просто создай вручную третью пустую строку. Как минимум самый простой вариант)
Ответить с цитированием
  #14  
Старый 30.11.2009, 23:45
Asinkrit Asinkrit вне форума
Местный
 
Регистрация: 29.10.2009
Сообщения: 446
Репутация: 271
По умолчанию

Если я правильно понял вопрос, то,
вероятно ты получаешь данные из акцесса компонентом типа TQuerry, при этом полученные данные хранятся в компоненте TDataSource, который ты прописываешь в компоненте TDBComboBox для их отображения, так вот, что бы данные оставались полученными, но не отображались в DBComboBox1 в OnCreate формы пропиши:
Код:
DBComboBox1.DataSource:=nil;
а для того что бы данные стали отображаться в DBComboBox, по какому либо событию пропиши:
Код:
DBComboBox1.DataSource:=DataSource1;
Опять же, в данном случае у тебя в DataSource1 должы храниться данные)
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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