☰
✕
Главная
© 2002 - 2025
Diary.ru
компонент
programming
| четверг, 27 декабря 2012
подскажите, какой компонент нужно создать, чтобы хватило на целую дипломку? Вот код компонента на основе Edit, но он слишком прост и на дипломную работу не тянет.
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; procedure CreateParams(var Params: TCreateParams); 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; 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.
Delphi
Смотрите также
Мінскае мора і данбо
"Свояси".
M3GAN 2.0
Tadaima, okaeri
[scans] Instagram Story♥: Miyata Toshiya 6 апреля
Mirax Ultra-mini. Часть 5. Зима