Главная страница
    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.015 c
1-1143799518
Andreus
2006-03-31 14:05
2006.05.07
Как получить расширение файла открываемого OpenDialog1.FileName


2-1145024429
ян
2006-04-14 18:20
2006.05.07
Здравствуйте,господа!вопрос, как в Delphi называется клавиша Ctrl


10-1118576136
Genie™
2005-06-12 15:35
2006.05.07
Вопросы по работе с файлами MS Office


9-1122608595
Kevinson
2005-07-29 07:43
2006.05.07
2D анимация в Opengl.


2-1145339802
Ярослав
2006-04-18 09:56
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский