Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.04.01;
Скачать: CL | DM;

Вниз

Создание объектов   Найти похожие ветки 

 
Washington   (2007-03-10 21:04) [0]

Существует компонент Edit1. Пользователь вписывает в него что-либо идолжен в этот момент создаться новый Edit и так далее. Как это сделать?


 
Leonid Troyanovsky ©   (2007-03-10 21:09) [1]


> Washington   (10.03.07 21:04)  

> Существует компонент Edit1. Пользователь вписывает в него
> что-либо идолжен в этот момент создаться новый Edit и так
> далее. Как это сделать?

Использовать TMemo.

--
Regards, LVT.


 
Washington   (2007-03-10 21:19) [2]

А если какой-нибудь другой объект - к примеру кнопка?


 
trubin ©   (2007-03-10 21:33) [3]


> А если какой-нибудь другой объект - к примеру кнопка?

Создавать нужный объект динамически


 
Зм1й ©   (2007-03-10 21:57) [4]

with TButton.Create (form1) do
begin
Left := 10;
Top := 10;
Caption := "cap";
Parent := form1;
Visible := True;
@OnClick := @NewBtnProc;
end;


 
jack128 ©   (2007-03-10 22:07) [5]

Зм1й ©   (10.03.07 21:57) [4]
@OnClick := @NewBtnProc;


Символ @ - убрать


 
Юрий Зотов ©   (2007-03-10 22:17) [6]

Visible := True тоже


 
RASkov   (2007-03-11 04:39) [7]

> [0] Washington   (10.03.07 21:04)

Может это:
Бросить на форму Edit1 и прописать на OnChange

procedure TForm1.Edit1Change(Sender: TObject);
var e, e1: TEdit;
begin
 e:=TEdit(Sender);
 if (e.Tag=0) and (e.Text<>"") then begin
  e1:=TEdit.Create(Self);
  with e1 do begin
   Parent:=Self;
   Left:=e.Left;
   Top:=e.Top+e.Height+5;
   Width:=e.Width;
   OnChange:=Edit1Change;
   e.Tag:=Integer(e1);
  end;
 end else begin
  if (e.Text="") and (e.Tag<>0) then begin
   TEdit(e.Tag).Free;
   e.Tag:=0;
  end;
 end;
end;


 
Washington   (2007-03-12 20:07) [8]

А при динамическом создании объектов они не сохраняются, так?


 
Юрий Зотов ©   (2007-03-12 20:12) [9]

> Washington   (12.03.07 20:07) [8]

Объекты САМИ вообще никогда не сохраняются. Их должна сохранять та программа, которая их и создала. Либо Delphi, либо наша.


 
Washington   (2007-03-12 20:41) [10]

А как их тогда сохранить?


 
RASkov   (2007-03-12 20:43) [11]

> [8] Washington   (12.03.07 20:07)

На вот продолжение моего изврата.... с сохранением в файл сам подумай:

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
 if Key=#13 then begin
  Key:=#0;
  SelectNext(Sender as TWinControl, True, True);
 end;
end;

procedure TForm1.Edit1Change(Sender: TObject);
var e, e1: TEdit;
begin
 e:=TEdit(Sender);
 if(e.Tag=0)and(e.Text<>"") then begin
  e1:=TEdit.Create(Self);
  with e1 do begin
   Parent:=Self;
   Left:=e.Left;
   Top:=e.Top+e.Height+5;
   Width:=e.Width;
   OnChange:=Edit1Change;
   OnKeyPress:=Edit1KeyPress;
   e.Tag:=Integer(e1);
  end;
 end else begin
  if(e.Text="")and(e.Tag<>0) then begin
   TEdit(e.Tag).Text:="";
   TEdit(e.Tag).Free;
   e.Tag:=0;
   SelectNext(e, False, True);
  end;
 end;
end;

procedure TForm1.FormCreate(Sender: TObject);
var F: TextFile; E: TEdit; S: String;
begin
 AssignFile(F, "<Имя файла с текстовыми строками>");
 Reset(F);
 try
  ReadLn(F, S);
  Edit1.Text:=S;
  E:=TEdit(Edit1.Tag);
  while not Eof(F) do begin
   ReadLn(F, S);
   E.Text:=S;
   E:=TEdit(E.Tag);
  end;
 finally
  CloseFile(F);
 end;
end;


 
RASkov   (2007-03-12 20:46) [12]

> с сохранением в файл сам подумай:

Скажу, что "сохранение" будет аналогично "загрузке"...


 
Юрий Зотов ©   (2007-03-13 12:52) [13]

ReadComponent, WriteComponent.


 
Washington   (2007-03-13 13:02) [14]

Что-то совсем уж "изврат" пошёл! Мне осталось только узнать как вновь созданный объект помещать под предыдущим. А так вот-эти ужосы - зачем?


 
Сергей М. ©   (2007-03-13 13:08) [15]


> созданный объект помещать под предыдущим


Что значит "под" ?

Объект он и в Африке объект, для него не существуют понятий "под", "над", "на", "за" ...


> эти ужосы


Какие такие "ужосы" ?!


 
Elen ©   (2007-03-13 13:18) [16]


> Washington   (10.03.07 21:04)

А что StringGrid не кактит?


 
Washington   (2007-03-13 16:55) [17]

Под - это значит ниже.
А stringgrid"ом как пользоваться?


 
Сергей М. ©   (2007-03-13 16:59) [18]


> Washington   (13.03.07 16:55) [17]
>
> Под - это значит ниже.


Гениально.

И что же при этом значит фраза "объект2 ниже объект1" ?


 
Washington   (2007-03-13 17:03) [19]

это значит что
Label1.left=Label2.left
Label2.top=Label1.top+Label1.height+n,
где n-некоторое число.

Да, stringgrid не подходит, мне надо отдельные label"ы


 
Сергей М. ©   (2007-03-13 17:07) [20]


> Washington   (13.03.07 17:03) [19]


Ах вон оно что !!

ну так и кто кроме тебя задаст значение св-ва Label2.top ?

Оно ж не с луны свалится, оно, как ты сказал, зависит от Label1.top+Label1.height+n

..


 
Нуб   (2007-03-13 17:11) [21]

он имел ввиду наверное

  Left:=e.Left;

  Top:=e.Top+e.Height+5;    // вашингтон дубовее меня в 2 раза :)

  Width:=e.Width;


 
Washington   (2007-03-13 18:05) [22]

with TButton.Create (form1) do
begin
Left := 10;
Top := 10;
Caption := "cap";
Parent := form1;
Visible := True;
@OnClick := @NewBtnProc
Используя это, откуда я возьму это ваше "e"???!!!!!!!!!!!!!
Сами вы дубовые, если не можете понять чо яхочу.


 
Нуб   (2007-03-13 18:09) [23]


> Washington

ты сначала научись выводить на экран сумму двух чисел, которые в Label"ах записаны, а потом уже по-тихоньку увеличивай изогнутость своих извелин в серой жидкости, а не обижаться сразу, обижаться все умеют, а вот творить :)


 
Нуб   (2007-03-13 18:12) [24]


> Washington   (13.03.07 18:05) [22]
> with TButton.Create (form1) do
> begin
> Left := 10;
> Top := 10;
> Caption := "cap";
> Parent := form1;
> Visible := True;
> @OnClick := @NewBtnProc
> Используя это, откуда я возьму это ваше "e"???!!!!!!!!!!
> !!!
> Сами вы дубовые, если не можете понять чо яхочу.


RASKov же написал тебе все !!!

RASkov   (11.03.07 04:39) [7]
> [0] Washington   (10.03.07 21:04)

Может это:
Бросить на форму Edit1 и прописать на OnChange

procedure TForm1.Edit1Change(Sender: TObject);
var e, e1: TEdit;
begin
e:=TEdit(Sender);
if (e.Tag=0) and (e.Text<>"") then begin
 e1:=TEdit.Create(Self);
 with e1 do begin
  Parent:=Self;
  Left:=e.Left;
  Top:=e.Top+e.Height+5;
  Width:=e.Width;
  OnChange:=Edit1Change;
  e.Tag:=Integer(e1);
 end;
end else begin
 if (e.Text="") and (e.Tag<>0) then begin
  TEdit(e.Tag).Free;
  e.Tag:=0;
 end;
end;
end;



комбинацией клавиш ctrl + c и ctrl + v вставляешь все это добро , "это" смотри ниже в новую application бросаешь на нее один компонент класса TEdit и у тебя все заработает
"это" =

procedure TForm1.Edit1Change(Sender: TObject);
var e, e1: TEdit;
begin
e:=TEdit(Sender);
if (e.Tag=0) and (e.Text<>"") then begin
 e1:=TEdit.Create(Self);
 with e1 do begin
  Parent:=Self;
  Left:=e.Left;
  Top:=e.Top+e.Height+5;
  Width:=e.Width;
  OnChange:=Edit1Change;
  e.Tag:=Integer(e1);
 end;
end else begin
 if (e.Text="") and (e.Tag<>0) then begin
  TEdit(e.Tag).Free;
  e.Tag:=0;
 end;
end;
end;

удачи тебе или Вам , но я сомневаюсь насчет Вам :), дерзай ...


 
MsGuns ©   (2007-03-13 21:46) [25]

Засстрелиться..
Прям как в том анекдоте, где новый русский решил приобрести новый мерс только потому, что у купленного накануне пепельница переполнилась.


 
RASkov   (2007-03-13 23:03) [26]

> [19] Washington   (13.03.07 17:03)
....
> Да, stringgrid не подходит, мне надо отдельные label"ы

Ну ты определись в конец, что тебе надо... в вопросе(на который я тебе вполне ответил в [11]) - тебе надо было с Едитом...
StringGrid тебе не подходит...
В Лэйблы вводить что-то с клавиатуры(из вопроса [0]) просто так не получится.

> Сами вы дубовые, если не можете понять чо яхочу.

Что ты хочешь-то? :)))) Если толпой не могут понять одного, то - кто дубовый? :)



Страницы: 1 вся ветка

Текущий архив: 2007.04.01;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.066 c
11-1153305248
DmiSb
2006-07-19 14:34
2007.04.01
Не получается через ADO открыть *.dbf


2-1173093131
vtur
2007-03-05 14:12
2007.04.01
курсор мыши


3-1168414258
Шмель
2007-01-10 10:30
2007.04.01
UNION query. SQL


15-1173181338
novill
2007-03-06 14:42
2007.04.01
Кто пользуется Emule? Поделитесь какие у вас скорости скачивания


4-1163174628
SkySpeed
2006-11-10 19:03
2007.04.01
Как можно отлавливать запускаемые процессы?