Показать сообщение отдельно
  #3  
Старый 24.11.2012, 10:42
Rabid Coyote Rabid Coyote вне форума
Прохожий
 
Регистрация: 08.06.2012
Сообщения: 32
Версия Delphi: 10 Lite, 2007
Репутация: 10
По умолчанию lmikle

Объединил. Но в одной процедуре (выделена красным) возникает ошибка "незадекларированный идентификатор" вот код:

unit EditLetNum;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

type
TEditAlignment=(eaLeft, eaCenter, eaRight);
TEditLetNum = Class(TEdit)
private
{private declarations}
FClear:TNotifyEvent;{Поля события OnClear}
FEnableNum:boolean;
FenableLet:boolean;
FModified:boolean;
FAlignment: TEditAlignment;
protected
{protected declarations}
procedure SetAlignment (value: TEditAlignment);
procedure SetEnableNum(Value:boolean);{Процедура записи}
procedure SetEnableLet(Value:boolean);{Процедура записи}
procedure KeyPress(var Key:Char);override;
public
{public declarations}
property Modified:boolean read FModified default true;
constructor create(AOwner:TComponent);override;{Конструктор}
procedure Clear;override;
published
{published declarations}
property Alignment: TEditAlignment read FAlignment write SetAlignment;
property OnClear:TNotifyEvent read FClear write FClear;{событие}
property EnableNum:boolean read FEnableNum write SetEnableNum default true;
property EnableLet:boolean read FEnableLet write SetEnableLet default true;
end;

procedure Register;
implementation

procedure TEditLetNum.SetEnableNum(Value:boolean);
begin
FEnableNum:=Value; {Присвоение значения полю FEnableNum}
{Если значения FEnableNum и FEnableLet =false, то полю FenableLet присваевается true}
if (not Value)
then if (not FEnableLet) then FEnableLet:=true;
end;

procedure TEditLetNum.SetEnableLet(Value:boolean);
begin
FEnableLet :=Value;{присвоение значения полю FEnableLet}
{Если значения FEnableNum и FEnableLet=false, то полю FEnableNum присваевается true}
if (not Value)
then if (not FEnableNum) then FEnableNum:=true;
end;

procedure Register;
begin
RegisterComponents('MyComponents',[TEditLetNum]);
end;

constructor TEditLetNum.create(AOwner:TComponent);
begin
inherited create(AOwner);{Вызов конструктора класса родителя}
FEnableNum:=True;
FenableLet:=True;
FModified:=False;
end;

procedure TEditLetNum.CreateParams(var Params:TCreateParams);
begin
inherited;
Case FAlignment of
eaLeft:Params.Style:=Params.Style or ES_LEFT;
eaCenter: Params.Style:=Params.Style or ES_CENTER;
eaRight:Params.Style:=Params.Style or ES_RIGHT;
end;


procedure TEditLetNum.SetAlignment(value:TEditAlignment);
begin
if FAlignment<> Value then begin
FAlignment:=Value;
end;RecreateWnd;
end;

procedure TEditLetNum.KeyPress(var Key:Char);
begin
if (not FEnableNum) and (Key in ['0'..'9'])
then Key:=#0;
if (not FenableLet) and not (Key in ['0'..'9'])
then Key:=#0;
if (Key<>#0) then FModified:=true;
inherited KeyPress(Key);
end;

procedure TEditLetNum.Clear;
begin
{Вызов обработчика пользователя}
if assigned(FClear) then OnClear(Self);
{Вызов родительского метода}
inherited Clear;
FModified:=false;
end;
end.
Ответить с цитированием