Форум программистов, компьютерный форум, киберфорум
Наши страницы

Delphi для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 25, средняя оценка - 4.96
Scolot
0 / 0 / 0
Регистрация: 20.01.2010
Сообщений: 7
#1

Использование компонентов Label и Edit - Delphi

07.02.2010, 10:22. Просмотров 3223. Ответов 14
Метки нет (Все метки)

Здравствуйте. Не могу до конца разобраться с оформлением листинга программы.
Делаю по другим примерам листингов, вроде бы живых. Но и они у меня не запускаются либо я что то делаю не так. Мной было замечено, что если компоненты прописать вручную, А потом попытаться их создать в форме, ничего из этого путнего не получается. Поэтому компоненты сначала вставляю в форме.
Этот листинг не работает у меня. Я его набрал в Borland Delphi 7, создав форму. Может я что-то делаю не так. Нигде не могу найти ответа.



Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
unit factor;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
 
type
  TForm1 = class(TForm)
    Label1: TLabel;
    Edit1: TEdit;
    Button1: TButton;
    Label2: TLabel;
 
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
 
function factorial(n: integer): integer;
begin
 
if n > 1 then
factorial := n * factorial(n-1)
else
factorial:= 1; 
 
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var
 
k:integer; 
f:integer; 
 
begin
 
k := StrToInt(Edit1.Text);
f := factorial(k);
 
label2.caption:='Факториал числа'+Edit1.Text
+ ' равен '+IntToStr(f);
 
end;
 
 
end.




Когда я запускаю Run появляется эта форма, программа не работает.


Может я тут неправильно изначально выбираю:


Надеюсь кто-нибудь объяснит где я ошибаюсь, мне важно понять что я неправильно делаю.
Но не исключаю возможность того, что у меня что то с программой или с операционной системой.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.02.2010, 10:22
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Использование компонентов Label и Edit (Delphi):

Edit Label (линейный) Panel, Edit Label (строки), Memo (одномер-ный),ComboBox ListBox , RadioButton (RadioGroup) CheckBox ,StringGrid (ввод пароля) - Delphi
1)Edit Label (линейный) Panel Проверить истинность высказывания: "Цифры данного трехзначного числа образуют возрастающую...

Изменения шрифта label или Edit, часы в Label - Delphi
Доброе утро хотелось бы узнать , можно ли засунуть в label или edit часы так же можно ли изменять шрифт и размер текста в label или...

Массив компонентов label - Delphi
Подскажите как оптимизировать код программы в Делфи Не получается с массивом компонентов label . for i:=1 to 6 do mas:= StrToInr...

Экспорт компонентов Label в Word - Delphi
Необходимо экспортировать в Microsoft Word (желательно 2003) много компонентов Label. Google выдает только экспорт БД. Помогите, подалуйста

EDit и label - Delphi
Суть такая есть 15 компонентов едит-для добавления полей в базу. Пеперь по нажатию на кнопку на этом же месте должно возникнуть лейблы....

Из edit в label - Delphi
После нажатия кнопки вивести удвоеное значение числа, введеного в поле ввода. Я вот что тто написал, но ето конешно бред....

14
Inadequate
Retired
7709 / 2542 / 184
Регистрация: 17.10.2009
Сообщений: 5,100
07.02.2010, 10:46 #2
Я бы сделал вот так
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
  function Fact(N: integer): integer;
  begin
    if N > 1 then
      Fact := N * Fact(N-1)
    else
      Fact:= 1
  end;
begin
  Label1.Caption:='Факториал числа '+Edit1.Text
+ ' равен '+IntToStr(Fact(StrToInt(Edit1.Text)));
end;
 
end.
Но тем не менее на первый взгляд у Вас тоже все верно. На всякий случай вот проект
1
Вложения
Тип файла: rar Fact.rar (5.3 Кб, 33 просмотров)
Scolot
0 / 0 / 0
Регистрация: 20.01.2010
Сообщений: 7
07.02.2010, 11:43  [ТС] #3
Большое спасибо! Все работает

Добавлено через 46 минут
Извините, что снова беспокою, подскажите пожалуста теперь, что в этой программе не так, задание выглядит таким образом 1) Вычислить сумму ряда: S=1+1/2-1/3+1/4-...-1/n . Значение n водится в режиме диалога с ЭВМ.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
unit Kontr11;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
 
type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Label2: TLabel;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
var     n,I,f: integer;
        S: real;
      Edit1: TEdit;
      Label2: TLabel;
begin n:=StrToInt(Edit1.Text);
      S:=1;
      f:=1;
      begin for I:=2 to n do
        begin
        S:=S+f*1/I; //вычисление суммы
        f:=f*(-1); // меняем знак
        end;
      end;
      Label2.Caption:='Сумма='+ floattostr(S);
end;
end.
0
Inadequate
Retired
7709 / 2542 / 184
Регистрация: 17.10.2009
Сообщений: 5,100
07.02.2010, 12:47 #4
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
procedure TForm1.BitBtn1Click(Sender: TObject);
var
  s:real;
  N,i:integer;
begin
  S:=1;
  N:=StrToInt(InputBox('Вычисление суммы ряда','Введите N',''));
  for i:=2 to N do
    if odd(i) then
      s:=s-1/i
    else
      s:=s+1/i;
  ShowMessage('Результат = ' + FloatToStr(S))
end;
1
Puporev
Модератор
54003 / 41636 / 14719
Регистрация: 18.05.2008
Сообщений: 97,877
07.02.2010, 13:37 #5
Когда я запускаю Run появляется эта форма, программа не работает.
Подозреваю что Вы просто копируете код обработчика события кнопки, не создавая эту процедуру двойным кликом по кнопке или в окошечке вкладки Events. В этом случае кнопка не активирована и ничего выполняться не будет.
1
Inadequate
Retired
7709 / 2542 / 184
Регистрация: 17.10.2009
Сообщений: 5,100
07.02.2010, 13:46 #6
Цитата Сообщение от Puporev
В этом случае кнопка не активирована и ничего выполняться не будет.
Выполняться не будет. Программа даже не запустится, т.к. вылезет ошибка ТС же писал, что появляется форма...
0
Puporev
Модератор
54003 / 41636 / 14719
Регистрация: 18.05.2008
Сообщений: 97,877
07.02.2010, 13:51 #7
Inadequate, Никакой ошибки не будет, нормально откроется форма, только нажатие на кнопку ничего не даст, сам по первости этим грешил.
0
Scolot
0 / 0 / 0
Регистрация: 20.01.2010
Сообщений: 7
07.02.2010, 13:54  [ТС] #8
Друзья, есть какой нибудь иллюстрированный справочник, как эти компоненты активировать?
0
Puporev
Модератор
54003 / 41636 / 14719
Регистрация: 18.05.2008
Сообщений: 97,877
07.02.2010, 13:58 #9
Прошу прощения, неправильно написал. Это может быть если создал событие по кнопке, потом зачем-то удалил кнопку с форы и снова поставил.
0
Inadequate
Retired
7709 / 2542 / 184
Регистрация: 17.10.2009
Сообщений: 5,100
07.02.2010, 13:58 #10
Scolot, "активировать"... Вы лучше бы взяли книжку да почитали основы. Если Вы делаете ошибки в таких простых вещах, скорее всего Вы вообще недавно только открыли Delphi. Справочники служат для тех кто знает основы.

Puporev, ааа... ну такое может быть. Но того, что ты написал в первый раз быть не может. Будет ругаться, причем сильно
0
PAZITIV
Реальность Нереальна!
351 / 124 / 3
Регистрация: 02.08.2009
Сообщений: 3,214
Записей в блоге: 1
07.02.2010, 13:59 #11
Scolot, скачай В.Фаронов "Программирование на языке высого уровня", для начинающих самое то, я по ней тоже первую форму клеил! весит <2 мб
1
Puporev
Модератор
54003 / 41636 / 14719
Регистрация: 18.05.2008
Сообщений: 97,877
07.02.2010, 14:02 #12
Цитата Сообщение от Scolot Посмотреть сообщение
как эти компоненты активировать?
Да просто если нужно событие OnClick, то на заготовке формы кликните левой кнопкой мыши по компоненту 2 раза и все.
Если другое событие, то в Object Inspector зайдите на вкладку Events и выберите какое событие нужно и в пустом окошечке 2 раза кликните.

Добавлено через 56 секунд

Не по теме:

Цитата Сообщение от Inadequate Посмотреть сообщение
Будет ругаться, причем сильно
А я колонки отключаю!

2
Scolot
0 / 0 / 0
Регистрация: 20.01.2010
Сообщений: 7
07.02.2010, 14:03  [ТС] #13
Книжка есть, но там нет именно тех примеров, которые мне нужны, Вы правы, я совсем недавно начал пытаться работать в Дельфи, до этого пользовался Паскалем, также посредственно.
Вам всем большое спасибо, за отзывчивость.
Не желаю показаться назойливым.
0
Inadequate
07.02.2010, 14:07
  #14

Не по теме:

Puporev, у меня через встроенный динамик "орёт"...

0
Scolot
0 / 0 / 0
Регистрация: 20.01.2010
Сообщений: 7
07.02.2010, 19:22  [ТС] #15
Цитата Сообщение от Che Burashka Посмотреть сообщение
Scolot, скачай В.Фаронов "Программирование на языке высого уровня", для начинающих самое то, я по ней тоже первую форму клеил! весит <2 мб
Спасибо за книжку!

Добавлено через 4 часа 33 минуты
Разобрался. Всем спасибо
0
07.02.2010, 19:22
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.02.2010, 19:22
Привет! Вот еще темы с ответами:

Заменить Edit на Label - Delphi
Как заменить кнопки edit 5,6,7 на label. Ведь, если просто удалить Edit и вставить label, то будут выдавать ошибки. Заранее благодарю за...

Поиск в Label по edit - Delphi
Вообщем на форме у меня несколько label'ов, хочу сделать поиск так, чтобы по написанию конкретного слова в Edit, находилось это слово...

Проверка Edit и Label - Delphi
Необходимо проверить Edit и Label пусты они или нет. Подскажите пожалуйста как это сделать.

Combobox, Label и Edit - Delphi
Здравствуйте!Подскажите,пожалуйста,как создать связь между компонентами? Например, в Combobox есть три строки с текстовыми фамилиями...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru