![]() |
|
#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. |