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

Вниз

помогите разобраться с TEdit   Найти похожие ветки 

 
Evgen88 ©   (2011-11-29 14:04) [0]

Привет! В проге в процессе выполнения создаются Edit-ы

........................
for i:=1 to rang do
begin
with TEdit.Create(Form1)
   do begin
      Parent := Form1;
      Top := 80;
      Left := i * 50;
      Width := 25;
      Height := 18;
      Text := "";
      Name:="C" + IntToStr(i);
      end;

далее пользователь вводит в них числа, как из созданных Edit-ов считать эти числа???
mas[i]:=Ci.Text не получается, т.к. этих Edit-ов еще нет.
Помогите плз!!!!!


 
Anatoly Podgoretsky ©   (2011-11-29 14:11) [1]

> Evgen88  (29.11.2011 14:04:00)  [0]

mas нет в тексте, Не понятно кто такой этот CI, да и вообще, что сделать то
хочешь?


 
Медвежонок Пятачок ©   (2011-11-29 14:16) [2]

т.к. этих Edit-ов еще нет.

Этих эдитов уже есть. Причем всех.
Иначе куда же юзер вводил цифири?


 
Омлет ©   (2011-11-29 14:18) [3]

В Tag записывай уникальный идентификатор.
Если нужно считывать значения во время их редактирования, то присваивай ещё обработчик OnChange. В обработчике по TEdit(Sender).Tag определяй, какой едит редактируется.

Кстати, как ты их потом удаляешь?


 
Evgen88 ©   (2011-11-29 14:44) [4]

Я их создаю в зависимости от введенного числа с именами С1, С2 и т.д. Потом ввожу в них числа. есть mas:array of real
Как эти числа записать в массив mas? На mas[i]:=StrToFloat(С1.Text) компилятор ругается, т.к. этот Edit еще не создан.


 
Anatoly Podgoretsky ©   (2011-11-29 14:52) [5]

Еще раз никакого mas в коде нет, но теперь вдруг откуда то появились какие то С1, С2, которых в коде тоже нет.

Ты с кем разговариваешь то?


 
anonims   (2011-11-29 14:57) [6]


> создаю в зависимости от введенного числа с именами С1, С2
> и т.д.


> компилятор ругается, т.к. этот Edit еще не создан.

имя компонента <>имя переменной.
они Edit c с именем С1 есть. но нет переменной С1, C2, и т.д.
рещение зависит от того где и когда вы желаете считывать данные из Edit.
можно использовать разные механизмы.


 
И. Павел ©   (2011-11-29 14:59) [7]

> На mas[i]:=StrToFloat(С1.Text) компилятор ругается, т.к.
> этот Edit еще не создан.

Просто от того, что вы зададите для Edit свойство Name, его нельзя будет использовать так, как будто в форме появился элемент с этим именем.
Проще говоря &#151; нельзя так делать.
Просто сохраняйте массив ссылок на созданные Edit-ы. Или ищите их перебором, но это более запутанно.


 
Evgen88 ©   (2011-11-29 15:03) [8]


var rang:integer;
procedure TForm1.Button1Click(Sender: TObject);
var
i,j,ogran:integer;
begin
rang:=StrToInt(Edit1.Text);
ogran:=StrToInt(Edit2.Text);
// поля ввода для функции f(x)
for i:=1 to rang do
begin
with TEdit.Create(Form1)
   do begin
      Parent := Form1;
      Top := 80;
      Left := i * 50;
      Width := 25;
      Height := 18;
      Text := "";
      Name:="C" + IntToStr(i);
      end;
procedure TForm1.Button2Click(Sender: TObject);
var
i:integer;
mas:array of real;
begin
for i:=0 to rang-1 do mas[i]:=StrToFloat(C+IntToStr(i).Text);{так не получается}
end;

как в массив записать те значения, которые введут в созданные TEdit с именами С1, С2 ит.д.


 
Омлет ©   (2011-11-29 15:07) [9]


> Evgen88 ©   (29.11.11 15:03) [8]


При создании TEdit надо хранить на него ссылку.

type
 TForm1 = class(TForm)
   Button2: TButton;
   procedure FormCreate(Sender: TObject);
   procedure Button2Click(Sender: TObject);
 private
   Edits: array of TEdit;
   mas: array of double;
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

const
 range = 10;

procedure TForm1.FormCreate(Sender: TObject);
var
 i : integer;
begin
 SetLength(Edits, range);
 SetLength(mas, range);
 for i := 0 to high(Edits) do
 begin
   Edits[i] := TEdit.Create(nil);
   with Edits[i] do
   begin
     Parent := self;
     Top := 80;
     Left := i * 50;
     Width := 25;
     Height := 18;
     Text := "";
   end;
 end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
 i: integer;
begin
 for i := 0 to high(Edits) do
   mas[i] := StrToFloat(Edits[i].Text)
end;


 
И. Павел ©   (2011-11-29 15:07) [10]

Иногда возникает такое ощущение, что кто-то обкатывает на сайте ботов.


 
Evgen88 ©   (2011-11-29 15:07) [11]

ок. спасибо, попробую с сылками


 
MBo ©   (2011-11-29 15:10) [12]

В статьях здесь - "Массив компонентов"
на www.delphikingdom.ru - "Жизнь и смерть в режиме run-time"


 
Ega23 ©   (2011-11-29 15:11) [13]


> Омлет ©   (29.11.11 14:18) [3]
> Кстати, как ты их потом удаляешь?


with TEdit.Create(Form1)

Оно, конечно, не правильно, надо от Self создавать. Но для новичка прокатит.


 
Evgen88 ©   (2011-11-29 15:14) [14]

p.s: в первый раз на форуме)


 
MBo ©   (2011-11-29 15:18) [15]

http://www.delphikingdom.ru/asp/viewitem.asp?catalogid=342


 
Anatoly Podgoretsky ©   (2011-11-29 15:18) [16]

Тем более должен мысли более четко формулировать.


 
Evgen88 ©   (2011-11-29 15:18) [17]

Parent := self; он ошибку выдавал


 
Ega23 ©   (2011-11-29 15:37) [18]


> Parent := self; он ошибку выдавал


Врёшь.

unit Unit27;

interface

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

type
 TForm27 = class(TForm)
   procedure FormCreate(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form27: TForm27;

implementation

{$R *.dfm}

procedure TForm27.FormCreate(Sender: TObject);
begin
 with TEdit.Create(Self) do
 begin
   Parent := Self;
   SetBounds(100, 100, 100, 25);
   Text := "bla-bla-bla";
 end;
end;

end.


 
Anatoly Podgoretsky ©   (2011-11-29 15:44) [19]


> Parent := self; он ошибку выдавал

Это он тебе выдавал.


 
Dimka Maslov ©   (2011-11-29 18:45) [20]

TStringGrid для указанной цели не проще ли использовать?



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

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

Наверх




Память: 0.51 MB
Время: 0.01 c
15-1321220394
KilkennyCat
2011-11-14 01:39
2012.03.11
TCanvas &amp; HTML


2-1322581917
toropoff
2011-11-29 19:51
2012.03.11
потоки и ядра


2-1322555028
Cobalt
2011-11-29 12:23
2012.03.11
IFDEF, не та версия?


2-1322648800
wflow
2011-11-30 14:26
2012.03.11
ADOConnection. Событие onExecuteComplete


15-1321628043
Dimka Maslov
2011-11-18 18:54
2012.03.11
Баг или фича