![]() |
|
#1
|
|||
|
|||
![]() Добрый день, проблема заключается в следующем: сохранил в файл memo. Далее при открытии данной программы, она обращается к файлу, чтоб считать данные и снова записывает их в memo. Делаю memo1.Visible:=true; показывает все правильно..затем пробую считать отдельные линии:
Код:
Memo1.Lines.LoadFromFile('Save.cys'); Form1color:=Memo1.Lines[0]; Panel1color:=Memo1.Lines[1]; KoordColor:=Memo1.Lines[2]; QuadColor:=Memo1.Lines[3]; LinesColor:=Memo1.Lines[4]; DQuadColor:=Memo1.Lines[5] Вместо того, чтоб им присвоить значение по линии, она присваивает им значения по символу. То есть если в файле было: 16777215 14215660 15524115 0 255 8388736 То значения переменных выдает как 1,6,7,7,7,2 то есть первые цифры Пробовал делать Memo2.Lines:=Memo1.Lines; Мемо второе имело вид 1 6 7 7 и т.д. Надеюсь на вашу помощь) Код:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Menus, ExtCtrls; type TForm1 = class(TForm) Panel1: TPanel; MainMenu1: TMainMenu; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit; Edit5: TEdit; Edit6: TEdit; Edit7: TEdit; Edit8: TEdit; Edit9: TEdit; Edit10: TEdit; Button1: TButton; Panel2: TPanel; Memo1: TMemo; Button2: TButton; Panel3: TPanel; Button3: TButton; Button4: TButton; Button5: TButton; Panel4: TPanel; Print1: TMenuItem; Print2: TMenuItem; Clear1: TMenuItem; About1: TMenuItem; Settings1: TMenuItem; Background1: TMenuItem; Color1: TMenuItem; Figure1: TMenuItem; Panel5: TMenuItem; Quadrangle1: TMenuItem; Koord1: TMenuItem; Parallelograms1: TMenuItem; Lines1: TMenuItem; DQuadrangle1: TMenuItem; Save1: TMenuItem; ColorDialog1: TColorDialog; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure Figure1Click(Sender: TObject); procedure Panel5Click(Sender: TObject); procedure Quadrangle1Click(Sender: TObject); procedure Koord1Click(Sender: TObject); procedure Save1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; Form1color,Panel1color,QuadColor,KoordColor,DQuadColor,LinesColor: string; X0,Y0,XA,XB,XC,XD,YA,YB,YC,YD,i,k1,n,k2: integer; a: TColor; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin Form1.Width:=Screen.Width; Form1.Height:=Screen.Height; Form1.Left:=0; Form1.Top:=0; Form1.Panel1.Top:=0; Form1.Panel1.Left:=Form1.Width-Form1.Panel1.Width; Form1.Panel1.Width:=105; Form1.Panel1.Height:=625; // if FileExists('Save.cys') then Begin Memo1.Lines.LoadFromFile('Save.cys'); Form1color:=Memo1.Lines[0]; Panel1color:=Memo1.Lines[1]; KoordColor:=Memo1.Lines[2]; QuadColor:=Memo1.Lines[3]; LinesColor:=Memo1.Lines[4]; DQuadColor:=Memo1.Lines[5]; end else Begin Form1color:=inttostr(RGB(255,255,255)); Panel1color:=inttostr(RGB(236,233,216)); KoordColor:=inttostr(RGB(19,225,236)); QuadColor:=inttostr(RGB(0,0,0)); LinesColor:=inttostr(RGB(255,0,0)); DQuadColor:=inttostr(RGB(128,0,128)); end; // Form1.Color:=strtoint(Form1color); Panel1.Color:=strtoint(Panel1color); // Edit1.Top:=Form1.Panel1.Top+8; Edit1.Left:=Form1.Panel1.Left+8; Edit2.Top:=Form1.Panel1.Top+8; Edit2.Left:=Form1.Panel1.Left+64; Edit3.Top:=Form1.Panel1.Top+40; Edit3.Left:=Form1.Panel1.Left+8; Edit4.Top:=Form1.Panel1.Top+40; Edit4.Left:=Form1.Panel1.Left+64; Edit5.Top:=Form1.Panel1.Top+72; Edit5.Left:=Form1.Panel1.Left+8; Edit6.Top:=Form1.Panel1.Top+72; Edit6.Left:=Form1.Panel1.Left+64; Edit7.Top:=Form1.Panel1.Top+104; Edit7.Left:=Form1.Panel1.Left+8; Edit8.Top:=Form1.Panel1.Top+104; Edit8.Left:=Form1.Panel1.Left+64; Edit9.Top:=Form1.Panel1.Top+176; Edit9.Left:=Form1.Panel1.Left+8; Edit10.Top:=Form1.Panel1.Top+336; Edit10.Left:=Form1.Panel1.Left+8; // Button1.Top:=Form1.Panel1.Top+136; Button1.Left:=Form1.Panel1.Left+16; Button2.Top:=Form1.Panel1.Top+208; Button2.Left:=Form1.Panel1.Left+16; Button3.Top:=Form1.Panel1.Top+256; Button3.Left:=Form1.Panel1.Left+16; Button4.Top:=Form1.Panel1.Top+288; Button4.Left:=Form1.Panel1.Left+16; Button5.Top:=Form1.Panel1.Top+368; Button5.Left:=Form1.Panel1.Left+16; // Form1.Panel2.Width:=Form1.Panel1.Width; Form1.Panel2.Left:=Form1.Panel1.Left; Form1.Panel2.Top:=Form1.Panel1.Top+170; Form1.Panel3.Width:=Form1.Panel1.Width; Form1.Panel3.Left:=Form1.Panel1.Left; Form1.Panel3.Top:=Form1.Panel1.Top+245; Form1.Panel4.Width:=Form1.Panel1.Width; Form1.Panel4.Left:=Form1.Panel1.Left; Form1.Panel4.Top:=Form1.Panel1.Top+324; // Form1.Repaint; X0:=(Form1.Width-Form1.Panel1.Width) div 2; Y0:=Form1.Height div 2; {Memo1.Visible:=false;} end; procedure TForm1.Button1Click(Sender: TObject); begin Canvas.Pen.Color:=strtoint(QuadColor); XA:=StrToInt(Edit1.text)+X0; XB:=StrToInt(Edit3.text)+X0; XC:=StrToInt(Edit5.text)+X0; XD:=StrToInt(Edit7.text)+X0; YA:=Y0-StrToInt(Edit2.text); YB:=Y0-StrToInt(Edit4.text); YC:=Y0-StrToInt(Edit6.text); YD:=Y0-StrToInt(Edit8.text); Canvas.MoveTo(XA,YA); Canvas.LineTo(XB,YB); Canvas.MoveTo(XB,YB); Canvas.LineTo(XC,YC); Canvas.MoveTo(XC,YC); Canvas.LineTo(XD,YD); Canvas.MoveTo(XD,YD); Canvas.LineTo(XA,YA); end; procedure TForm1.Button5Click(Sender: TObject); begin Canvas.MoveTo(0,y0); Canvas.LineTo(2*x0,y0); Canvas.MoveTo(x0,0); Canvas.LineTo(x0,2*y0); Canvas.Pen.Color:=strtoint(KoordColor); n:=StrToInt(Edit10.text); k1:=y0 div n; k2:=x0 div n; for i:=1 to n do Begin Canvas.MoveTo(0,i*k1+y0); Canvas.LineTo(2*x0,i*k1+y0); Canvas.MoveTo(0,y0-i*k1); Canvas.LineTo(2*x0,y0-i*k1); end; for i:=1 to n do Begin Canvas.MoveTo(i*k2+x0,0); Canvas.LineTo(i*k2+x0,2*y0); Canvas.MoveTo(x0-i*k2,0); Canvas.LineTo(x0-i*k2,2*y0); end; end; procedure TForm1.Figure1Click(Sender: TObject); begin if ColorDialog1.Execute then Form1.Color:=ColorDialog1.Color; end; procedure TForm1.Panel5Click(Sender: TObject); begin if ColorDialog1.Execute then Form1.Panel1.Color:=ColorDialog1.Color; end; procedure TForm1.Quadrangle1Click(Sender: TObject); begin if colorDialog1.Execute then Begin Canvas.Pen.Color:=ColorDialog1.color; QuadColor:=inttostr(Canvas.Pen.Color); XA:=StrToInt(Edit1.text)+X0; XB:=StrToInt(Edit3.text)+X0; XC:=StrToInt(Edit5.text)+X0; XD:=StrToInt(Edit7.text)+X0; YA:=Y0-StrToInt(Edit2.text); YB:=Y0-StrToInt(Edit4.text); YC:=Y0-StrToInt(Edit6.text); YD:=Y0-StrToInt(Edit8.text); Canvas.MoveTo(XA,YA); Canvas.LineTo(XB,YB); Canvas.MoveTo(XB,YB); Canvas.LineTo(XC,YC); Canvas.MoveTo(XC,YC); Canvas.LineTo(XD,YD); Canvas.MoveTo(XD,YD); Canvas.LineTo(XA,YA); end; end; procedure TForm1.Koord1Click(Sender: TObject); begin if colordialog1.Execute then Begin Canvas.Pen.Color:=colordialog1.color; KoordColor:=inttostr(Canvas.Pen.Color); for i:=1 to n do Begin Canvas.MoveTo(0,i*k1+y0); Canvas.LineTo(2*x0,i*k1+y0); Canvas.MoveTo(0,y0-i*k1); Canvas.LineTo(2*x0,y0-i*k1); end; for i:=1 to n do Begin Canvas.MoveTo(i*k2+x0,0); Canvas.LineTo(i*k2+x0,2*y0); Canvas.MoveTo(x0-i*k2,0); Canvas.LineTo(x0-i*k2,2*y0); end; end; end; procedure TForm1.Save1Click(Sender: TObject); begin Memo1.Lines.Add(inttostr(Form1.color)); Memo1.Lines.Add(inttostr(Panel1.color)); Memo1.Lines.Add(Koordcolor); Memo1.Lines.Add(Quadcolor); Memo1.Lines.Add(Linescolor); Memo1.Lines.Add(DQuadcolor); Memo1.Lines.SaveToFile('Save.cys'); end; end. Последний раз редактировалось Admin, 02.08.2011 в 16:18. |
#2
|
|||
|
|||
![]() похоже на свойство wordwrap.
хотя оба способа не-кошерны, можно ещё все цвета хранить не в тексте а а в картинке - примерно так PHP код:
|
#3
|
||||
|
||||
![]() Использовать INI файл или реестр религия не позволяет? Нужен обязательно свой "велосипед"?
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#4
|
||||
|
||||
![]() Используй Memo.Lines.Strings[i] для доступа к отдельным строкам
|
#5
|
|||
|
|||
![]() Спасибо за подсказку)))Сам не знаю почему у Memo стояло Memo1.WordWrap как true. Поменял, работает)
|
#6
|
||||
|
||||
![]() Цитата:
![]() Пишу программы за еду. __________________ |