Форум: "Начинающим";
Текущий архив: 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, его нельзя будет использовать так, как будто в форме появился элемент с этим именем.
Проще говоря — нельзя так делать.
Просто сохраняйте массив ссылок на созданные 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.003 c