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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 04.09.2013, 20:57
anghela anghela вне форума
Прохожий
 
Регистрация: 02.09.2013
Сообщения: 28
Версия Delphi: Delphi 7
Репутация: 9
Восклицание Проблема с комбобоксами

Нужно выполнить условие: если в комбобоксе1 выбрано "автокредит" и в комбобоксе2 выбрано "3", то едит1 присвоить значение "13,5"

Пишу такой код:
Код:
 
begin
if (CB_vid_kred.Items[CB_vid_kred.ItemIndex]='автокредит')
and (CB_srok_kr.Items[CB_srok_kr.ItemIndex]='3')
then
Edit1.Text:='13,5';
end;
lmikle: пользуемся тегами!

Ошибку не выдает, но и результат не выводит, по ходу просто игнорирует условия, либо они не выполняются. Помогите, пожалуйста

Последний раз редактировалось lmikle, 05.09.2013 в 06:13.
Ответить с цитированием
  #2  
Старый 04.09.2013, 21:05
Ruz Ruz вне форума
Прохожий
 
Регистрация: 01.05.2013
Сообщения: 14
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

У себя проверил - все работает. А вы куда именно этот код вписали?

Если я правильно понял то вот ваш код:
Код:
procedure TForm8_kalculator.CB_vid_kredChange(Sender: TObject);
begin
  if (CB_vid_kred.Items.ValueFromIndex[CB_vid_kred.ItemIndex]='автокредит') and (CB_srok_kr.Items.ValueFromIndex[CB_srok_kr]='3')then
  Edit1.Text:='13,5';
end;

Замените Change в этом обработчике событий в 2 местах на Click(CB_vid_kredClick), затем в OnFormCreate добавьте:
Код:
CB_srok_kr.OnClick:=CB_vid_kredClick;

Последний раз редактировалось M.A.D.M.A.N., 05.09.2013 в 11:39.
Ответить с цитированием
  #3  
Старый 04.09.2013, 21:43
anghela anghela вне форума
Прохожий
 
Регистрация: 02.09.2013
Сообщения: 28
Версия Delphi: Delphi 7
Репутация: 9
По умолчанию

а что вы накидали на форму чтобы проверить? У меня не работает

сначала писала код в изменение значения комбобокса, сейчас перенесла на кнопку - результата нет

Последний раз редактировалось M.A.D.M.A.N., 05.09.2013 в 11:38.
Ответить с цитированием
  #4  
Старый 05.09.2013, 11:23
icWasya icWasya вне форума
Местный
 
Регистрация: 09.11.2010
Сообщения: 499
Репутация: 10
По умолчанию

ValueFromIndex работает только, если StringList состоит из строк такого вида

Name1 = Value1
Name2 = Value2
....
NameN = ValueN

где Name1,Name2,Value1,Value2 .. NameN,ValueN - произвольные строки разделённые символом равно =.

Скорее всего в Вашем случае нужно писать
Код:
if    (CB_vid_kred.Items[CB_vid_kred.ItemIndex]='автокредит') 
  and (CB_srok_kr.Items[CB_srok_kr]='3')
then  
  Edit1.Text:='13,5'; 
Ответить с цитированием
  #5  
Старый 05.09.2013, 11:39
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Такая тривиальная задача и до сих пор не смогли решить?
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #6  
Старый 05.09.2013, 11:44
ProDaNTe ProDaNTe вне форума
Новичок
 
Регистрация: 25.12.2011
Сообщения: 75
Репутация: 10
По умолчанию

Может все проще чем кажется, либо автокредит в каком либо месте не правильно написано, либо в комбобоксе значение не 3 а 2...
Ответить с цитированием
  #7  
Старый 05.09.2013, 13:02
Ruz Ruz вне форума
Прохожий
 
Регистрация: 01.05.2013
Сообщения: 14
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Если все еще не смогли решить, кидайте исходник в ЛС.
Ответить с цитированием
  #8  
Старый 08.09.2013, 08:30
anghela anghela вне форума
Прохожий
 
Регистрация: 02.09.2013
Сообщения: 28
Версия Delphi: Delphi 7
Репутация: 9
По умолчанию

в первом комбобоксе значения:
автокредит
кредит на образование
потребительский кредит
...

во втором комбобоксе подразумевается значение месяцев:
3
6
12
24
36
60
Ответить с цитированием
  #9  
Старый 08.09.2013, 12:13
Аватар для Uniq!
Uniq! Uniq! вне форума
Местный
 
Регистрация: 29.09.2010
Сообщения: 539
Версия Delphi: Delphi XE3
Репутация: 374
По умолчанию

Нумерация же, с ноля.
С учётом того, что я увидел в столбике с месяцами,
второе условие должно сравниваться нолём а не с тройкой o.O
Ответить с цитированием
  #10  
Старый 08.09.2013, 13:16
Аватар для Yurk@
Yurk@ Yurk@ вне форума
Специалист
 
Регистрация: 07.09.2007
Адрес: Украина, г. Днепропетровск
Сообщения: 892
Версия Delphi: 7 + ОгнеПтица
Репутация: выкл
По умолчанию

Код:
  if (CB_vid_kred.Text = 'автокредит') and (CB_srok_kr.Text = '3') then
    Edit1.Text := '13,5';
__________________
Поживу - увижу, Доживу - узнаю, Выживу - учту.
[P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
Ответить с цитированием
  #11  
Старый 08.09.2013, 22:06
anghela anghela вне форума
Прохожий
 
Регистрация: 02.09.2013
Сообщения: 28
Версия Delphi: Delphi 7
Репутация: 9
По умолчанию

не работает.

Мой код:
Код:
unit Unit8;

interface

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

type
  TForm8_kalculator = class(TForm)
    Label1: TLabel;
    But_razmer: TButton;
    But_summa: TButton;
    Edit1_razmer: TEdit;
    Label2: TLabel;
    CB_vid_kred: TComboBox;
    Label3: TLabel;
    CB_srok_kr: TComboBox;
    Label4: TLabel;
    Label5: TLabel;
    CB_stavka: TComboBox;
    But_raschet: TButton;
    Label6: TLabel;
    Edit1_sum_dox: TEdit;
    Label7: TLabel;
    CB_vid: TComboBox;
    Label8: TLabel;
    CB_srok: TComboBox;
    Label9: TLabel;
    Label10: TLabel;
    CB_stavka_dox: TComboBox;
    But_raschet_dox: TButton;
    Label11: TLabel;
    Label12: TLabel;
    But_oformit_kredit: TButton;
    But_new_raschet: TButton;
    Edit1: TEdit;
    procedure But_oformit_kreditClick(Sender: TObject);
    procedure But_razmerClick(Sender: TObject);
    procedure But_summaClick(Sender: TObject);
    procedure CB_vid_kredChange(Sender: TObject);
    procedure CB_srok_krChange(Sender: TObject);
    procedure But_raschetClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form8_kalculator: TForm8_kalculator;

implementation

uses Unit9;

{$R *.dfm}

procedure TForm8_kalculator.But_oformit_kreditClick(Sender: TObject);
begin
Form9_oformlenie_kredita.Show;
end;

procedure TForm8_kalculator.But_razmerClick(Sender: TObject);
begin
  Label1.Visible:=true;
  Edit1_razmer.Visible:=true;
  Label2.Visible:=true;
  CB_vid_kred.Visible:=true;
  Label3.Visible:=true;
  CB_srok_kr.Visible:=true;
  Label4.Visible:=true;
  Label5.Visible:=true;
  CB_stavka.Visible:=true;
  But_raschet.Visible:=true;
  But_summa.Visible:=false;
 // Label12.Visible=true;
 // But_oformit_kredit.Visible=true;
 // But_new_raschet.Visible=true;
end;

procedure TForm8_kalculator.But_summaClick(Sender: TObject);
begin
  Label6.Visible:=true;
  Edit1_sum_dox.Visible:=true;
  Label7.Visible:=true;
  CB_vid.Visible:=true;
  Label8.Visible:=true;
  CB_srok.Visible:=true;
  Label9.Visible:=true;
  Label10.Visible:=true;
  CB_stavka_dox.Visible:=true;
  But_raschet_dox.Visible:=true;
  But_razmer.Visible:=false;
 // Label11.Visible=true;
  //But_oformit_kredit.Visible=true;
  //But_new_raschet.Visible=true;
end;

procedure TForm8_kalculator.CB_vid_kredChange(Sender: TObject);
begin
//  if (CB_vid_kred.Items.ValueFromIndex[CB_vid_kred.ItemIndex]='автокредит') and (CB_srok_kr.Items.ValueFromIndex[CB_srok_kr.ItemIndex]='3')then
//  Edit1.Text:='13,5';
end;

procedure TForm8_kalculator.CB_srok_krChange(Sender: TObject);
begin
     //if (CB_vid_kred.Items[CB_vid_kred.ItemIndex]='автокредит')
   //  and (CB_srok_kr.Items[CB_srok_kr.ItemIndex]='3')
   //  then
  //   Edit1.Text:='13,5';
end;

procedure TForm8_kalculator.But_raschetClick(Sender: TObject);
begin
    // if (CB_vid_kred.Items[CB_vid_kred.ItemIndex]='автокредит') and (CB_srok_kr.Items[CB_srok_kr.ItemIndex]='3') then
     //Edit1.Text:='13,5';
     //if (CB_vid_kred.text='автокредит') and (CB_srok_kr.text='3') then
     //Edit1.Text:='13,5';
    // if    (CB_vid_kred.Items[CB_vid_kred.ItemIndex]='автокредит')
  //and (CB_srok_kr.Items[CB_srok_kr]='3')
//then
  //Edit1.Text:='13,5';
  if (CB_vid_kred.Text = 'автокредит') and (CB_srok_kr.Text = '3') then
  Edit1.Text := '13,5';
end;

end.
MAD: пользуемся тегами, или получаем бан.

Последний раз редактировалось M.A.D.M.A.N., 08.09.2013 в 22:12.
Ответить с цитированием
  #12  
Старый 09.09.2013, 00:18
Аватар для Yurk@
Yurk@ Yurk@ вне форума
Специалист
 
Регистрация: 07.09.2007
Адрес: Украина, г. Днепропетровск
Сообщения: 892
Версия Delphi: 7 + ОгнеПтица
Репутация: выкл
По умолчанию

Цитата:
Сообщение от anghela
Мой код: ....
Код:
...
та нет, давайте исходник целиком. (в архивчике )
__________________
Поживу - увижу, Доживу - узнаю, Выживу - учту.
[P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
Ответить с цитированием
  #13  
Старый 09.09.2013, 07:53
anghela anghela вне форума
Прохожий
 
Регистрация: 02.09.2013
Сообщения: 28
Версия Delphi: Delphi 7
Репутация: 9
По умолчанию

Архив Клиент ДЕЛФИ.rar
Ответить с цитированием
  #14  
Старый 09.09.2013, 09:28
Аватар для Yurk@
Yurk@ Yurk@ вне форума
Специалист
 
Регистрация: 07.09.2007
Адрес: Украина, г. Днепропетровск
Сообщения: 892
Версия Delphi: 7 + ОгнеПтица
Репутация: выкл
По умолчанию

ну вот ... как и предпологалось в cb_srok_kr.Items в первой строке (там где 3ка) стоит не '3', а '3 ' ... найдите отличие
из-за этого условие и не работает.
__________________
Поживу - увижу, Доживу - узнаю, Выживу - учту.
[P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
Ответить с цитированием
Этот пользователь сказал Спасибо Yurk@ за это полезное сообщение:
anghela (09.09.2013)
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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