Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.05.07;
Скачать: [xml.tar.bz2];

Вниз

Ошибка идентификатора 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.51 MB
Время: 0.02 c
15-1144447727
Mike Kouzmine
2006-04-08 02:08
2006.05.07
Все видели рекламу НЕКОЛЫ?


11-1125107988
ebta
2005-08-27 05:59
2006.05.07
bzip for KOL ?


2-1145273601
shick
2006-04-17 15:33
2006.05.07
dbgrid и 2 таблицы paradox


6-1137414584
Dark Lord
2006-01-16 15:29
2006.05.07
Как в WebBrowser заменить контекстное меню своим собственным


15-1144935998
oldman
2006-04-13 17:46
2006.05.07
Навеяно веткой "Америка глазами программиста"...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский