![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибка идентификатора ComboBox [D7]
psvitov © (2006-04-19 08:59:00)Привет всем!!
Помогите начинающему
Задача: нужно из выпадающего списка выбрать пункт, при этом выполняется определенное действие и вывести результат на экран. Нужно использовать ComboBox. Сам код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, StdCtrls, jpeg, ExtCtrls;
type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
ComboBox1: TComboBox;
Label2: TLabel;
Image1: TImage;
Image2: TImage;
Label3: TLabel;
procedure ComboBox1Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
y: real;
implementation
{$R *.dfm}
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
ComboBox1.items.add('A = -4');
ComboBox1.items.add('A = -1');
ComboBox1.items.add('A = 3');
ComboBox1.ItemIndex:=1;
end;
begin
case ComboBox1.ItemIndex of
1: y:= -4+ln(1*1);
2: y:= -1+ln(1*1);
3: y:= 3+ln(1*1);
end;
label3.caption:=FloatToStrF(y, ffFixed, 6, 3);
end.
Ошибку выдает в операторе case..of пишет типа Undeclared identifier,
назначаешь - вообще не работает.
Подскажите в чем ошибка.
ЮЮ (2006-04-19 11:29:00) [1]
> А вобще, сдается мне, что получит он там рекрусию
Если когда нибудь запустит :)
В [15] он приводит всё тот же ломаный код, что и в сабже, отбросив твой намек в [5]
Gydvin (2006-04-19 11:20:00) [2]И чем же они подозрительны?
А вобще, сдается мне, что получит он там рекрусию
Quattro (2006-04-19 11:11:00) [3]Да и вообще как то не красиво выглядит код:)
Quattro (2006-04-19 11:10:00) [4]psvitov © (19.04.06 09:51) [15]
Вот что на данный момент:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, StdCtrls, jpeg, ExtCtrls;
type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
ComboBox1: TComboBox;
Label2: TLabel;
Image1: TImage;
Image2: TImage;
Label3: TLabel;
procedure ComboBox1Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
y: real;
implementation
{$R *.dfm}
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
ComboBox1.items.add('A = -4');
ComboBox1.items.add('A = -1');
ComboBox1.items.add('A = 3');
ComboBox1.ItemIndex:=0;
end;
case ComboBox1.ItemIndex of
0: y:= -4+ln(1*1);
1: y:= -1+ln(1*1);
2: y:= 3+ln(1*1);
end;
label3.caption:=FloatToStrF(y, ffFixed, 6, 3);
end.
Однако, подозрительно бросаются в глаза сии два оператора...быть может в них дело?:)
Ega23 (2006-04-19 10:04:00) [5]
> Читал, и не раз
Незаметно.
psvitov (2006-04-19 09:59:00) [6]Читал, и не раз, если бы все в порядке было, стал бы я сюда писать
Gydvin (2006-04-19 09:58:00) [7]procedure TForm1.ComboBox1Change(Sender: TObject);
begin
ComboBox1.items.add('A = -4');
ComboBox1.items.add('A = -1');
ComboBox1.items.add('A = 3');
ComboBox1.ItemIndex:=0;
end;
case ComboBox1.ItemIndex of
0: y:= -4+ln(1*1);
1: y:= -1+ln(1*1);
2: y:= 3+ln(1*1);
end;
label3.caption:=FloatToStrF(y, ffFixed, 6, 3);
это что??
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, StdCtrls, jpeg, ExtCtrls;
type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
ComboBox1: TComboBox;
Label2: TLabel;
Image1: TImage;
Image2: TImage;
Label3: TLabel;
Button1:tbutton;
procedure Button1Click(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
y: real;
implementation
{$R *.dfm}
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
case ComboBox1.ItemIndex of
0: y:= -4+ln(1*1);
1: y:= -1+ln(1*1);
2: y:= 3+ln(1*1);
end;
label3.caption:=FloatToStrF(y, ffFixed, 6, 3);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ComboBox1.items.add('A = -4');
ComboBox1.items.add('A = -1');
ComboBox1.items.add('A = 3');
ComboBox1.ItemIndex:=0;
end;
end.
Ega23 (2006-04-19 09:55:00) [8]
> Вот что на данный момент:
Слушай, начни с прочтения книжки. Как процедуры, функции пишутся. Правила синтаксиса. И т.д.
Тебе это уже несколько раз сказали; неужели трудно почитать? Неужели это сложнее, чем в слепую тыкаться и абсолютно идиотские вопросы задавать. Которые даже не из раздела "Чайник спрашивает", они на уровне десятилетнего пацана.
psvitov (2006-04-19 09:55:00) [9]
else
y:=0;
Не выходит каменный цветок
Gydvin (2006-04-19 09:54:00) [10]
> Ega23 © (19.04.06 09:45) [10]
допустим правишь, что либо в обработчике, нажимаешь F9, ага компилится, кидаешь буттон, два раза тыркаешь, пишешь туда что либо, компилить, а он нифига. Смотришь, и видишь такую ерунду. Такой глюк возникает очень редко, но бывает
> psvitov © (19.04.06 09:45) [11]
Целиком всю юниту выложи
psvitov (2006-04-19 09:51:00) [11]Вот что на данный момент:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, StdCtrls, jpeg, ExtCtrls;
type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
ComboBox1: TComboBox;
Label2: TLabel;
Image1: TImage;
Image2: TImage;
Label3: TLabel;
procedure ComboBox1Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
y: real;
implementation
{$R *.dfm}
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
ComboBox1.items.add('A = -4');
ComboBox1.items.add('A = -1');
ComboBox1.items.add('A = 3');
ComboBox1.ItemIndex:=0;
end;
case ComboBox1.ItemIndex of
0: y:= -4+ln(1*1);
1: y:= -1+ln(1*1);
2: y:= 3+ln(1*1);
end;
label3.caption:=FloatToStrF(y, ffFixed, 6, 3);
end.
Gydvin (2006-04-19 09:49:00) [12]Целиком всю юниту выложи
tesseract (2006-04-19 09:49:00) [13]procedure TForm1.ComboBox1Change(Sender: TObject);
begin
y:=0;
case ComboBox1.ItemIndex of
0: y:= -4+ln(1*1);
1: y:= -1+ln(1*1);
2: y:= 3+ln(1*1);
else
y:=0;
end;
try
label3.caption:=FloatToStrF(y, ffFixed, 6, 3);
except
on e:exception do label3.caption:=e.message;
end;
end;
psvitov (2006-04-19 09:47:00) [14]Если вместо ComboBox1.ItemIndex задаешь другую описанную переменную, выводит, но только не пересчитывает согласно формуле в case..of
psvitov (2006-04-19 09:45:00) [15]замена 0 на 1 результата не дает
в procedureничего не менял, при запуске пректа сразу выдает ошибку на операторе case..of
Ega23 (2006-04-19 09:45:00) [16]
> или иногда бывает глюк у делфей
У Делфи глюков практически нет. Глюки, как правило, в голове разработчика.
Вот такое вот восьмилетнее наблюдение...
Gydvin (2006-04-19 09:36:00) [17]смотри [6]
Тоесть проверь все
procedure blabla
begin
end;
Когда вручную правил мог запортачить, или иногда бывает глюк у делфей, новые процедуры почемуто вставляет в середину старых(((
psvitov (2006-04-19 09:29:00) [18]
procedure TForm1.Button1Click(Sender: TObject);
begin
ComboBox1.items.add('A = -4');
ComboBox1.items.add('A = -1');
ComboBox1.items.add('A = 3');
ComboBox1.ItemIndex:=1;
end;
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
case ComboBox1.ItemIndex of
0: y:= -4+ln(1*1);
1: y:= -1+ln(1*1);
2: y:= 3+ln(1*1);
end;
label3.caption:=FloatToStrF(y, ffFixed, 6, 3);
end;
Не помогает
Gydvin (2006-04-19 09:23:00) [19]ComboBox1.ItemIndex:=1;
TO
ComboBox1.ItemIndex:=0;
Юрий Зотов (2006-04-19 09:20:00) [20]> psvitov © (19.04.06 09:14) [4]
> Первую ошибку подправил
Неправда.
Первая ошибка состояла в незнании синтаксиса языка Object Pascal. Чтобы ее подправить, надо брать книгу и учить синтаксис, а не пытаться править код наугад, "методом научного тыка".