Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Приствоить тест ComboBox в OnChange [D7, 2003]


Lex-85 ©   (2008-01-31 22:01:00) 

Столкнулся с такой проблемой в событии OnChange у ComboBox нужно проверить одно условие, и если оно выполняется то присвоить ComboBox.Text другое значение, независимо от того которое выбрал пользователь. Делаю так:

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
if <условие> then
ComboBox1.Text := '1'; // к примеру
end;

так вот всеравно ComboBox отображает то что выбрал пользователь в любом случаее


Dennis I. Komarov   (2008-02-01 12:15:00) [1]

> [5] Lex-85   (01.02.08 12:06)

ComboBox1.ItemIndex:=индекс "другого значения"


Lex-85   (2008-02-01 12:06:00) [2]

Да другое значение есть.


Dennis I. Komarov   (2008-02-01 10:16:00) [3]

> [0] Lex-85   (31.01.08 22:01)


> если оно выполняется то присвоить ComboBox.Text другое значение,
> независимо от того которое выбрал пользователь

Другое значение есть в списке?


Dennis I. Komarov   (2008-02-01 10:11:00) [4]

> Значит <условие> = false

Обманул


ComboBox   (2008-02-01 09:38:00) [5]

Попробуй такой вариант.

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;
const M_ChangeTExt = WM_USER + 1;
type
 TForm1 = class(TForm)
   ComboBox1: TComboBox;
   procedure ComboBox1Change(Sender: TObject);
 private
    procedure ChangeText(var Message: Tmessage); message M_ChangeTExt;
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}
procedure TForm1.ChangeText(var Message: Tmessage);
begin
if combobox1.Text='<условие>' then  ComboBox1.Text := '1';
end;
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
PostMessage(Self.Handle, M_ChangeTExt, 0, 0);
end;

end.


Dennis I. Komarov   (2008-02-01 09:37:00) [6]

> [0] Lex-85   (31.01.08 22:01)

Значит <условие> = false

PS


> procedure TForm1.ComboBox1Change(Sender: TObject);
> begin
> if (TComboBox(Sender).Text <> '1')and <условие> then
> ComboBox1.Text := '1'; // к примеру
> end;


А то улетишь на кибер-самолете


Наверх

Титульная страница Поиск, карта сайта Написать письмо