![]() |
|
|
#1
|
||||
|
||||
|
Мне нужно из 7-ми Edit-ов прочитать информацию, занести в файл, очистить Edit-ты и так по циклу.......
Код:
Procedure TForm1.Button1Click(Sender:TObject);
const
n_file = 'c:\rec_file.bin';
Var
F: File Of TRepp;
RD: Array[0..200] of TRepp;
PCount,j,i: integer;
begin
AssignFile(F, n_file);
RD[j].FID := Edit1.Text;
RD[j].PSurname := Edit2.Text;
RD[j].PName := Edit3.Text;
RD[j].PPatronymic := Edit4.Text;
RD[j].Weight := StrToFloat(Edit5.Text);
RD[j].Deqt := Edit6.Text;;
RD[j].FDate := StrToDate(Edit7.Text);
Writeln(F, RD[j]); ! Здесь выдает ошибку
CloseFile(F);
j:=j + 1;
PCount:=j;
For i := 0 To ComponentCount-1 Do ! Здесь выдает ошибку
If Components[i] is TEdit Then
(Components[i] as TEdit).Text := '';
end; |
|
#2
|
|||
|
|||
|
1. Файл надо не только назначить (AssignFile), но и открыть (Reset, например).
2. По моему, для типизированных файлов надо пользовать write, а не writeln. 3. По поводу последней ошибки - какая ошибка вылетает? Текст в студию. |
|
#3
|
||||
|
||||
|
ComponentCount неизвестный идентификатор, так же Components[i]
|
|
#4
|
|||
|
|||
|
попробуй так:
Код:
For I := 0 To Self.ComponentCount-1 Do
If Self.Components[i] Is TEdit Then
(Self.Components[i] As TEdit).Text := ''; |
|
#5
|
||||
|
||||
|
Код:
Код:
For I := 0 To Self.ComponentCount-1 Do
If Self.Components[i] Is TEdit Then
(Self.Components[i] As TEdit).Text := ''; |
|
#6
|
|||
|
|||
|
ЧЕГО???
М-м-м... а может ты это делаешь не в форме (не в методе формы)? Self дает ссылку на сам объект, которому принадлежит метод. Свойства ComponentCount и Components - это свойства формы. Проверь этот момент. Ну или весь код в студию. |
|
#7
|
||||
|
||||
|
Код:
unit PWeigth;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Buttons, XPMan;
type
TRepp = record
FID: String[10];
PSurname: String[30];
PName: String[30];
PPatronymic: String[30];
Weight: Double;
Deqt: String[50];
FDate: TDateTime;
end;
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Button1: TButton;
BitBtn1: TBitBtn;
XPManifest1: TXPManifest;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
const
n_file = 'C:\Program Files\Borland\Delphi7\Projects\RecPasFile.dat';
var
Form1: TForm1;
F: File Of TRepp;
RD: Array[0..249] of TRepp;
PCount,j,i: integer;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
AssignFile(F, n_file);
Reset(F);
Seek(F,FileSize(F));
RD[j].FID := Edit1.Text;
RD[j].PSurname := Edit2.Text;
RD[j].PName := Edit3.Text;
RD[j].PPatronymic := Edit4.Text;
RD[j].Weight := StrToFloat(Edit5.Text);
RD[j].Deqt := Edit6.Text;;
RD[j].FDate := StrToDate(Edit7.Text);
Write(F, RD[j]);
CloseFile(F);
j:=j + 1;
PCount:=j;
For I:=0 to Self.ComponentCount-1 do ! Здесь выдает ошибку
If Self.Components[i] Is TEdit then
(Self.Components[i] As TEdit).Text:=’’;
end;
end.
|
|
#8
|
|||
|
|||
|
А если перед началом цикла сделать так:
comp := Self.ComponentCount-1 (объяви переменную comp как integer в начале процедуры), а потом цикл: For I:=0 to comp do If Self.Components[i] Is TEdit then (Self.Components[i] As TEdit).Text:=’’; Может сработает... Последний раз редактировалось Z@voorchik, 10.09.2008 в 18:40. |
|
#9
|
|||
|
|||
|
Ну, мужик!
Ругается то на I!!! Добавление выделено жирным. Код:
procedure TForm1.Button1Click(Sender: TObject);
var I :Integer;
begin
AssignFile(F, n_file);
Reset(F);
Seek(F,FileSize(F));
RD[j].FID := Edit1.Text;
RD[j].PSurname := Edit2.Text;
RD[j].PName := Edit3.Text;
RD[j].PPatronymic := Edit4.Text;
RD[j].Weight := StrToFloat(Edit5.Text);
RD[j].Deqt := Edit6.Text;;
RD[j].FDate := StrToDate(Edit7.Text);
Write(F, RD[j]);
CloseFile(F);
j:=j + 1;
PCount:=j;
For I:=0 to Self.ComponentCount-1 do ! Здесь выдает ошибку
If Self.Components[i] Is TEdit then
(Self.Components[i] As TEdit).Text:=’’;
end;
end. |