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

Вниз

помогите разобраться с 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.004 c
2-1322555028
Cobalt
2011-11-29 12:23
2012.03.11
IFDEF, не та версия?


15-1321516927
CRLF
2011-11-17 12:02
2012.03.11
Цin7, Записки


1-1288777384
ArtemKolesnikov
2010-11-03 12:43
2012.03.11
OLE Word. Как вставить формулу со знаком корня?


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


2-1322663788
_qwerty_
2011-11-30 18:36
2012.03.11
организация работы с таблицами





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский