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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как правильно работать с ComboBox 
:(
    Опции темы
Serhik_z
  Дата 1.8.2005, 12:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 108
Регистрация: 4.12.2004

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



Как правильно работать с ComboBox
В ComboBox находится Текст (Items TStrinds Line)
1.А100
2.А200---
3.А300
4.А400
5.А500
6.А600
При выборе (2.A200---) в Edit чтоб добавилось число 289 и т.д.
Line | Text
1.А100 | 089
2.А200 | 289
3.А300 | 489
4.А400 | 689
5.А500 | 889
6.А600 | 1089
Что то вроде такого.
Edit1.Text:=ComboBox1.Text'089' если ComboBox1.Items.Strings.Line1; // в Line1 - A100
Edit1.Text:=ComboBox1.Text'289' если ComboBox1.Items.Strings.Line2; // в Line2 - A200
Edit1.Text:=ComboBox1.Text'489' если ComboBox1.Items.Strings.Line3; // в Line3 - A300
Edit1.Text:=ComboBox1.Text'689' если ComboBox1.Items.Strings.Line4; // в Line4 - A400
Edit1.Text:=ComboBox1.Text'889' если ComboBox1.Items.Strings.Line5; // в Line5 - A500
Edit1.Text:=ComboBox1.Text'1089' если ComboBox1.Items.Strings.Line6; // в Line6 - A600

PM MAIL   Вверх
Dimannn
Дата 1.8.2005, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 318
Регистрация: 14.4.2005
Где: Владимир

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



Во первых - в комбо стайл нужно поставить OwnerDrawFixed.
Код

Case Combobox1.ItemIndex of 
  0: Edit1.Text:=ComboBox1.Text+'089'
  1: Edit1.Text:=ComboBox1.Text+'289'

  ...

end;




--------------------
Хотите быстро и без проблем опубликовать вашу программу в сети за 5 минут?
Тогда потратьте пару минут чтобы посмотреть, что предлагает OpenProject.org.ru
PM MAIL ICQ   Вверх
Bes
Дата 1.8.2005, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Вот рабочий пример если я правильно понял:

Код

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
     if ComboBox1.Text='a1' then Edit1.Text:=ComboBox1.Text+'49';
     if ComboBox1.Text='a2' then Edit1.Text:=ComboBox1.Text+'69';
     if ComboBox1.Text='a3' then Edit1.Text:=ComboBox1.Text+'89';
end;

Добавлено @ 13:40
2Dimannn:
Действительно надо уточнить, текст зависит от нмера линии или от содержимого....
P.S.
Поздровляю с одновременным постом smile

PM MAIL   Вверх
Samhein
Дата 1.8.2005, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Башзэфашовец
**


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

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



Наверно так:

Код

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
if ComboBox1.Text = 'А100' then
Edit1.Text := ComboBox1.Text + ' | 089'
else if ComboBox1.Text = 'А200' then
Edit1.Text := ComboBox1.Text + ' | 289'
else if ComboBox1.Text = 'А300' then
Edit1.Text := ComboBox1.Text + ' | 489'
else if ComboBox1.Text = 'А400' then
Edit1.Text := ComboBox1.Text + ' | 689'
else if ComboBox1.Text = 'А500' then
Edit1.Text := ComboBox1.Text + ' | 889'
else if ComboBox1.Text = 'А600' then
Edit1.Text := ComboBox1.Text + ' | 1089'
end;


ps
Если не так исправте

Это сообщение отредактировал(а) Samhein - 1.8.2005, 15:02


--------------------
Знаю форум наизусть, но писать еще боюсь
PM   Вверх
Pakshin A. S.
Дата 6.8.2005, 11:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



через case данный вариант заполнения в комбе лучше....
Код

case StrToInt(Copy(ComboBox1.Text, 2, Length(ComboBox1.Text)-1) of
 100:


И т. д...
Добавлено @ 11:20
Ды че мучаться... заведем например массив:
Код

const
 a: array [1..5] of string[10] = ('123', '23', '344', '23444', '543');


И сработаем вот так:
Код

procedure TForm1.ComboBox1Click(Sender: TObject);
begin
 Edit1.Text := ComboBox1.Text + ' | ' + a[ComboBox1.ItemIndex+1]
end;


Надеюсь понятна идея?

Добавлено @ 11:21
По-моему так короче.. меньше писанины в несколько раз!
PM   Вверх
Song
Дата 8.8.2005, 08:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Sysman.ru
***


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

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



Код

procedure TForm1.FormCreate(Sender: TObject);
Const ComboBoxText: String =
 '1.À100|089'#13#10 +
 '2.À200|289'#13#10 +
 '3.À300|489'#13#10 +
 '4.À400|689'#13#10 +
 '5.À500|889'#13#10 +
 '6.À600|1089'#13#10;
begin
 With ComboBox1 Do
  Begin
   Items.Text:=ComboBoxText;
   Style:=csOwnerDrawFixed;
   ItemHeight:=16;
   onSelect:=ComboBoxSelect;
  End; {With}
end;

procedure TForm1.ComboBox1DrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
Var S: String;
    n: Integer;
begin
 With TComboBox(Control), Canvas Do
  Begin
   FillRect(Rect);
   S:=Items[Index];
   n:=Pos('|',S);
   IF n > 0 then S:=Copy(S,1,n - 1);
   TextOut(Rect.Left + 2, Rect.Top + 2,S);
  End; {With}
end;

Procedure TForm1.ComboBoxSelect(Sender: TObject);
Var n: Integer;
Begin
 With TComboBox(Sender) Do
  Begin
   n:=Pos('|',Text);
   IF n > 0 then Edit1.Text:=Copy(Text,n + 1,Length(Text));
  End; {With} 
End;




--------------------
Прежде чем сказать "Невозможно", подумай, прав ли ты
PM WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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