Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание компонентов 
:(
    Опции темы
Kataros
  Дата 19.1.2014, 10:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 19.1.2014

Репутация: нет
Всего: нет



Здраствуйте!
Нужно подобие анкеты.Создаешь динамически компоненты,Label'ы заполняются из текстового документа Task и ответы идут в текстовый документ Otvet.
На кнопку пишется программа,которая сохраняет ответы в текстовый документ.
Происходит ошибка
Не могли бы вы проверить ,что не так.


Код

unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
 
type
  TForm1 = class(TForm)
    NewLabel1: TLabel;
    NewEdit1: TEdit;
    NewComboBox1: TComboBox;
    Button1: TButton;
    NewLabel2: TLabel;
    NewEdit2: TEdit;
    NewLabel3: TLabel;
    NewLabel4: TLabel;
    NewEdit3: TEdit;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
  i:integer;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.FormCreate(Sender: TObject);
var
FileName:string;
f:TextFile;
buf,buf1,buf2,buf3,buf4:String;
i:Integer;
 
begin
 
FileName:='Task.txt';
AssignFile(f,FileName);
reset(f);
 
begin
i:=1;
while not eof(f) do
 
begin
 
readln(f,buf);
readln(f,buf1);
readln(f,buf2);
readln(f,buf3);
readln(f,buf4);
begin
 
NewLabel1:=Tlabel.Create(self);
NewLabel1.parent:=self;
NewLabel1.Left:=100;
NewLabel1.top:=50;
NewLabel1.caption:=buf;
 
NewEdit1:=tedit.create(self);
NewEdit1.parent:=self;
NewEdit1.left:=300;
NewEdit1.top:=50;
 
NewLabel2:=Tlabel.Create(self);
NewLabel2.parent:=self;
NewLabel2.Left:=100;
NewLabel2.top:=70;
NewLabel2.caption:=buf1;
 
NewEdit2:=tedit.create(self);
NewEdit2.parent:=self;
NewEdit2.left:=300;
NewEdit2.top:=70;
 
NewLabel3:=Tlabel.Create(self);
NewLabel3.parent:=self;
NewLabel3.Left:=100;
NewLabel3.top:=90;
NewLabel3.caption:=buf2;
 
NewEdit3:=tedit.create(self);
NewEdit3.parent:=self;
NewEdit3.left:=300;
NewEdit3.top:=110;
 
NewLabel4:=Tlabel.Create(self);
NewLabel4.parent:=self;
NewLabel4.Left:=100;
NewLabel4.top:=110;
NewLabel4.caption:=buf3;
 
NewComboBox1:=Tcombobox.create(self);
NewComboBox1.parent:=self;
NewComboBox1.left:=300;
NewComboBox1.top:=90;
NewComboBox1.items.add('да');
NewComboBox1.items.add('нет');
inc(i);
 
end;
closeFile(f);
end;
end;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
FileName:string;
f:TextFile;
 
begin
 
for i:=0 to componentCount-1 do
 
begin
If components[i] is Tedit then
 
begin
FileName:='Otvet.txt';
AssignFile(f,FileName);
Append(f);
Writeln(f,Tedit(Components[i]).Text)
end;
 
 
begin
if components[i] is TCombobox then
 
begin
FileName:='Otvet.txt';
AssignFile(f,FileName);
Append(f);
Writeln(f,TCombobox(Components[i]).Text);
CloseFile(f);
 
end;
end;
end;
end;
 
end.

PM MAIL   Вверх
kami
Дата 20.1.2014, 08:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1806
Регистрация: 25.8.2007
Где: Санкт-Петербург

Репутация: 22
Всего: 72



Цитата(Kataros @  19.1.2014,  10:05 Найти цитируемый пост)
Происходит ошибка

Прям-таки и пишет "Ошибка"?
Полный текст ошибки и строку на которой она возникает в студию.
И - пожалуйста, отформатируйте код с использованием отступов для каждого уровня вложенности. Не знаю, как других участников форума, а меня вводят в ступор  smile  участки кода типа
Цитата(Kataros @  19.1.2014,  10:05 Найти цитируемый пост)

end;
end;
end;
end;

непонятно какой из end к чему относится.

Добавлено через 4 минуты и 39 секунд
А так - на вскидку, 
Цитата(Kataros @  19.1.2014,  10:05 Найти цитируемый пост)
If components[i] is Tedit then

вот в этом блоке нехватает CloseFile.
PM MAIL WWW   Вверх
Агрох
Дата 20.1.2014, 10:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 176
Регистрация: 6.4.2013
Где: Москва

Репутация: 1
Всего: 6



Наверно будет правильнее открыть файл для записи результата перед циклом
Код

for i:=0 to componentCount-1 do


 и соответственно закрыть после него.
--------------------
Putin here, Putin there, Putin almost everywhere!
PM MAIL   Вверх
milskaja
Дата 30.1.2014, 21:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 29.1.2014
Где: Перник

Репутация: нет
Всего: нет



Бывают же уникалы:)) А я думала, что я туплю и как то боюсь спрашивать все роюсь все искаю что то:(( А тут с такими вопросами форму ложат, что я в шоке:))
PM MAIL WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1011 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.