Где и как разместить/объявить пользовательскую процедуру.
С Делфи знаком буквально четыре дня. Нужно лабу сделать на любом языке. Выбрал Делфи потому что Паскаль почти :) и чтобы с интерфейсом не сильно заморачиваться. Не могу понять, как и где разместить пользовательскую процедуру, вызывающуюся из процедуры обработчика какого-нибудь события.
Глянь вот на этот кусок кода, не думаю что то тут ты непоймеш.
unit Onit1;
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);
procedure EditlKeyPress(Sender: TObject;
var Key: Char); private
{ Private declarations } public
{ Public declarations } end;
var
Form1: TForm1;
implementation
{$R *.dfm}
[COLOR=green]// процедура программиста[/COLOR]
procedure FuntToKg;
var
f : real; // вес в фунтах
kg : real; // вес в килограммах
begin
f := StrToFloat(Form1.Edit1.Text);
kg := f * 0.4059;
Forml.Label2.Caption := Forml.Edit1.Text + ' ф. — это ' + FloatToStrF(kg, ffGeneral, 4, 2) + 'кг.';
end;
[COLOR=green]// обработчик событий кнопки[/COLOR]
procedure TForml.ButtonlClick(Sender: TObject);
begin
FuntToKg; // вызов процедуры FuntToKg
end;
// нажатие клавиши в поле ввода исходных данных
procedure TForm1.EditlKeyPress(Sender: TObject;
var Key: Char);
begin
if Key = Char(VK_RETURN)
then FuntToKg; // вызов процедуры FuntToKg
end;
end.
Ну все таки если не поймеш ...
Вообщем читай вот здесь http://www.realcoding.net/article/rubric/Delphi/Delphi7_for_beginer там подробнее написанно.
Глянь вот на этот кусок кода, не думаю что то тут ты непоймеш.
Вай, вай... :) Разреши, немного твой код подправлю:
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);
procedure EditlKeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
[COLOR=red]procedure FuntToKg;[/COLOR]
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
[COLOR=green]// процедура программиста[/COLOR]
procedure [COLOR=red]Form1.[/COLOR]FuntToKg;
var
f : real; // вес в фунтах
kg : real; // вес в килограммах
begin
f := StrToFloat(Edit1.Text);
kg := f * 0.4059;
Label2.Caption := Edit1.Text + ' ф. — это ' + FloatToStrF(kg, ffGeneral, 4, 2) + 'кг.';
end;
[COLOR=green]// обработчик событий кнопки[/COLOR]
procedure TForml.ButtonlClick(Sender: TObject);
begin
FuntToKg; // вызов процедуры FuntToKg
end;
// нажатие клавиши в поле ввода исходных данных
procedure TForm1.EditlKeyPress(Sender: TObject;
var Key: Char);
begin
if Key = Char(VK_RETURN)
then FuntToKg; // вызов процедуры FuntToKg
end;
end.
Так, ИМХО, правильнее будет - избавляемся от обращения к глобальной пременной Form1.