Текущий архив: 2006.05.07;
Скачать: CL | DM;
ВнизОшибка идентификатора ComboBox Найти похожие ветки
← →
psvitov © (2006-04-19 08:59) [0]Привет всем!!
Помогите начинающему
Задача: нужно из выпадающего списка выбрать пункт, при этом выполняется определенное действие и вывести результат на экран. Нужно использовать 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,
назначаешь - вообще не работает.
Подскажите в чем ошибка.
← →
Ega23 © (2006-04-19 09:02) [1]
ComboBox1.ItemIndex:=1;
end;
begin
case ComboBox1.ItemIndex of
1: y:= -4+ln(1*1);
2: y:= -1+ln(1*1);
begin - end зачем?
← →
Юрий Зотов © (2006-04-19 09:06) [2]> Подскажите в чем ошибка.
Первая ошибка - в незнании синтаксиса языка Object Pascal (пара begin-end находится непонятно где).
Вторая и третья ошибки проявятся после запуска программы при попытке что-то выбрать в комбобоксе.
← →
psvitov © (2006-04-19 09:08) [3]Взял с примерного кода, только с ListBox
← →
psvitov © (2006-04-19 09:14) [4]Первую ошибку подправил,
Выдал ошибку "Declaration expected"
← →
Gydvin © (2006-04-19 09:19) [5]
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;
← →
Юрий Зотов © (2006-04-19 09:20) [6]> psvitov © (19.04.06 09:14) [4]
> Первую ошибку подправил
Неправда.
Первая ошибка состояла в незнании синтаксиса языка Object Pascal. Чтобы ее подправить, надо брать книгу и учить синтаксис, а не пытаться править код наугад, "методом научного тыка".
← →
Gydvin © (2006-04-19 09:23) [7]ComboBox1.ItemIndex:=1;
TO
ComboBox1.ItemIndex:=0;
← →
psvitov © (2006-04-19 09:29) [8]
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:36) [9]смотри [6]
Тоесть проверь всеprocedure blabla
begin
end;
Когда вручную правил мог запортачить, или иногда бывает глюк у делфей, новые процедуры почемуто вставляет в середину старых(((
← →
Ega23 © (2006-04-19 09:45) [10]
> или иногда бывает глюк у делфей
У Делфи глюков практически нет. Глюки, как правило, в голове разработчика.
Вот такое вот восьмилетнее наблюдение...
← →
psvitov © (2006-04-19 09:45) [11]замена 0 на 1 результата не дает
в procedure ничего не менял, при запуске пректа сразу выдает ошибку на операторе case..of
← →
psvitov © (2006-04-19 09:47) [12]Если вместо ComboBox1.ItemIndex задаешь другую описанную переменную, выводит, но только не пересчитывает согласно формуле в case..of
← →
Gydvin © (2006-04-19 09:49) [13]Целиком всю юниту выложи
← →
tesseract © (2006-04-19 09:49) [14]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: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.
← →
Gydvin © (2006-04-19 09:54) [16]
> Ega23 © (19.04.06 09:45) [10]
допустим правишь, что либо в обработчике, нажимаешь F9, ага компилится, кидаешь буттон, два раза тыркаешь, пишешь туда что либо, компилить, а он нифига. Смотришь, и видишь такую ерунду. Такой глюк возникает очень редко, но бывает
> psvitov © (19.04.06 09:45) [11]
Целиком всю юниту выложи
← →
psvitov © (2006-04-19 09:55) [17]
else
y:=0;
Не выходит каменный цветок
← →
Ega23 © (2006-04-19 09:55) [18]
> Вот что на данный момент:
Слушай, начни с прочтения книжки. Как процедуры, функции пишутся. Правила синтаксиса. И т.д.
Тебе это уже несколько раз сказали; неужели трудно почитать? Неужели это сложнее, чем в слепую тыкаться и абсолютно идиотские вопросы задавать. Которые даже не из раздела "Чайник спрашивает", они на уровне десятилетнего пацана.
← →
Gydvin © (2006-04-19 09:58) [19]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.
← →
psvitov © (2006-04-19 09:59) [20]Читал, и не раз, если бы все в порядке было, стал бы я сюда писать
← →
Ega23 © (2006-04-19 10:04) [21]
> Читал, и не раз
Незаметно.
← →
Quattro © (2006-04-19 11:10) [22]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.
Однако, подозрительно бросаются в глаза сии два оператора...быть может в них дело?:)
← →
Quattro © (2006-04-19 11:11) [23]Да и вообще как то не красиво выглядит код:)
← →
Gydvin © (2006-04-19 11:20) [24]И чем же они подозрительны?
А вобще, сдается мне, что получит он там рекрусию
← →
ЮЮ © (2006-04-19 11:29) [25]
> А вобще, сдается мне, что получит он там рекрусию
Если когда нибудь запустит :)
В [15] он приводит всё тот же ломаный код, что и в сабже, отбросив твой намек в [5]
Страницы: 1 вся ветка
Текущий архив: 2006.05.07;
Скачать: CL | DM;
Память: 0.51 MB
Время: 0.011 c