Добрый день! Необходимо написать графический редактор следующего вида: Окно разбито на 2 части, в левой вводятся параметры фигуры, в правой она отрисовывается. Например: для начала задан прямоугольник высотой 50 и шириной 100. Указываем высоту - 25, на ней ширина 50 и фигура должна преобразоваться, приняв форму песочных часов и далее в этом духе. Надеюсь нормально объяснил...
Программу еще не начал, код писать не прошу, необходима консультация в том, какие элементы выбрать для разработки, TPaintBox или TImage и т.д. и как лучше всё это отрисовывать, может кто может дать совет?
Проходи в одной процедуре по всем компонентам, и пиши все в один файл:
procedure TForm1.SaveToFile(const FileName: TFileName); var f : TextFile; j, R: Integer; begin AssignFile(f, FileName); Rewrite(f);
for j := 0 to ComponentCount - 1 do if Components[j] is TEdit then with Components[j] as TEdit do begin // Saving Edits WriteLn(f, 'TEdit' + #13#10 + Name + #13#10 + Text); end else if Components[j] is TStringGrid then with Components[j] as TStringGrid do begin // Saving Grigs WriteLn(f, 'TGrid' + #13#10 + Name + #13#10 + IntToStr(RowCount)); for R := 0 to RowCount - 1 do WriteLn(f, StringReplace(Rows[R].Text, #13#10, #9, [rfReplaceAll])); end; CloseFile(f); end;
procedure TForm1.LoadFromFile(const FileName: TFileName); var f : TextFile; i, R: Integer; TheClassName, TheComponentName, s : string; begin AssignFile(f, FileName); Reset(f); while not Eof(f) do begin ReadLn(f, TheClassName); ReadLn(f, TheComponentName); if TheClassName = 'TEdit' then begin ReadLn(f, s); (FindComponent(TheComponentName) as TEdit).Text := s; end else if TheClassName = 'TGrid' then with FindComponent(TheComponentName) as TStringGrid do begin ReadLn(f, R); RowCount := R; for i := 0 to R - 1 do begin ReadLn(f, s); Rows[i].Text := StringReplace(s, #9, #13#10, [rfReplaceAll]); end; end; end;