![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Не создается динамически компонент в форме [D7, WinXP]
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;