Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.04.01;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.51 MB
Время: 0.056 c
2-1173721858
vegarulez
2007-03-12 20:50
2007.04.01
Почему не проходит вот такой запрос на update...(MySQL, datetime)


11-1152395331
Сергеич
2006-07-09 01:48
2007.04.01
Как без нодов жить хорошо


11-1152300569
Maloric
2006-07-07 23:29
2007.04.01
Label - WordWrap с вертикальным выравниванием


1-1170605010
GTR86
2007-02-04 19:03
2007.04.01
Курсор


2-1173690419
NOD
2007-03-12 12:06
2007.04.01
Помогите настроить BDE





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский