Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Не создается динамически компонент в форме [D7, WinXP]


Страницы:   1 2

tf_kiev ©   (2004-11-27 19:57:00) 

В ходе программы должен динамически создаваться компонент в форме, а именно поле редактирования

procedure TForm1.FormCreate(Sender: TObject);
begin
myEdit := TNkEdit.Create(self);
myEdit.Parent := self;
myEdit.Left := 8;
myEdit.Top := 64;
end;


Anatoly Podgoretsky   (2004-11-27 21:04:00) [21]

В коде это не наблюдается и значения не известны.


tf_kiev   (2004-11-27 20:55:00) [22]

Height, Width, Visible указаны, но не помагает


Anatoly Podgoretsky   (2004-11-27 20:47:00) [23]

Это выкинуть constructor TNkEdit.Create(AOwner: TComponent);, ничего не делает.
Ушел от ответа на вопрос про Height, Width, Visible


tf_kiev   (2004-11-27 20:44:00) [24]

unit NkEdit1;

interface

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

type
 TNkEdit = class(TEdit)
 private
   FNumb: single;
   function GetNumb: single;
   procedure SetNumb(value: single);
 protected
   procedure KeyPress(var Key: Char);
   override;
 public
   { Public declarations }
 published
   constructor Create(AOwner: TComponent);
   override;
   property Numb: single
   read GetNumb write SetNumb;
 end;

procedure Register;

implementation

procedure Register;
begin
 RegisterComponents('Samples', [TNkEdit]);
end;

constructor TNkEdit.Create(AOwner: TComponent);
 begin
   inherited Create(AOwner);
 end;

function TNkEdit.GetNumb: single;
 begin
   try
     Result:=StrToFloat(text); except
       on EConvertError do begin
     Result:=0; text:=' ';
   end;
 end;
end;

procedure TNkEdit.SetNumb(Value: single);
 begin
   FNumb:=Value;
   Text:=FloatToStr(value);
 end;

procedure TNkEdit.KeyPress(var key: char);
 begin
   case key of
   '0'..'9', #8, #13: ;
   '-': if Length(text)<>0 then key:=#0;
   else
   if not ((key = DecimalSeparator) and
   (Pos(DecimalSeparator,text)=0))
   then key:=#0;
 end;
 inherited KeyPress(key);
end;

end.


begin...end   (2004-11-27 20:36:00) [25]


> [4] Anatoly Podgoretsky ©   (27.11.04 20:34)

Тогда уж можно спросить, чему равно значение Visible :-)


Anatoly Podgoretsky   (2004-11-27 20:34:00) [26]

А значение Height и width чему равны?


OneFragLeft   (2004-11-27 20:01:00) [27]

var myEdit:TEdit;
begin
myEdit := TEdit.Create(self);
myEdit.Parent := self;
myEdit.Left := 8;
myEdit.Top := 64;
end;
Так работает.


OneFragLeft   (2004-11-27 20:00:00) [28]

А есть такая строчка:
myEdit:TNkEdit;?


ssk   (2004-11-27 19:59:00) [29]

myEdit := TNkEdit.Create(Form1);
myEdit.Parent := Form1;


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо