Einzelnen Beitrag anzeigen

Finki

Registriert seit: 2. Jul 2013
120 Beiträge
 
FreePascal / Lazarus
 
#1

Liste exceeds bounds (Schnelle Hilfe bitte)

  Alt 21. Aug 2013, 13:44
Hey, dringend (ohne Stress zu machen)

Delphi-Quellcode:
procedure TForm2.btnLoadClick(Sender: TObject);
  var
    txti, lbli, memoi, j : integer;
    anztxti, anzlbli, anzmemoi : integer;
    txtstr, lblstr, memostr : string;
    Edit4 : TEdit;
    Label1 : TLabel;
    Memo2 : TMemo;
begin
    if Form1.OpenDialog1.Execute then
    begin
    Form1.zwischenspeicher.Lines.LoadFromFile(Form1.OpenDialog1.FileName);

    Form1.Memo1.Visible:=false;
    if pnlForm1<>NIL then
    begin
    pnlForm1.Destroy;

    end;

    pnlForm1 := TPanel.Create(Form1);
    pnlForm1.Parent := Form1;
    pnlForm1.SetBounds(8,Form1.Memo1.Top,Form1.Memo1.Width,Form1.Memo1.Height-5);

    pnlForm1.Visible:=true;

     CloseFormular := TSpeedButton.Create(pnlForm1);
     CloseFormular.Parent := pnlForm1;
     CloseFormular.SetBounds(pnlForm1.Width-20,0,20,20);
      //CloseFormular.Glyph.LoadFromFile('menu_close.bmp');
     CloseFormular.Font.Color:=clRed;
     CloseFormular.Font.Bold:=true;
     CloseFormular.Font.Name:='Arial';
     CloseFormular.Caption:='X';
     CloseFormular.OnClick:=@CloseFormularClick;
     CloseFormular.Caption:='X';
     CloseFormular.SetBounds(pnlForm1.Width-16,0,16,16);

    anztxti:=strtoint(Form1.zwischenspeicher.Lines[0]); //position der Anz txt
    anzlbli:=strtoint(Form1.zwischenspeicher.Lines[1]); //position der Anz lbl
    anzmemoi:=strtoint(Form1.zwischenspeicher.Lines[2]);

    for j:=3 to Form1.zwischenspeicher.Lines.Count do
    begin
    if Form1.zwischenspeicher.Lines[(j-3)*8+4]='1then
    begin
    Edit4 :=TEdit.Create(pnlForm1);
    Edit4.Parent := pnlForm1;
    Edit4.Name:=Form1.zwischenspeicher.Lines[(j-3)*8+5];
    Edit4.Enabled:= true;
    Edit4.AutoSize:=false;
    Edit4.Setbounds(strtoint(Form1.zwischenspeicher.Lines[(j-3)*8+7]),
                    strtoint(Form1.zwischenspeicher.Lines[(j-3)*8+8]),
                    strtoint(Form1.zwischenspeicher.Lines[(j-3)*8+9]),
                    strtoint(Form1.zwischenspeicher.Lines[(j-3)*8+10]));
    Edit4.Text:=Form1.zwischenspeicher.Lines[(j-3)*8+6];
    end;
    if Form1.zwischenspeicher.Lines[(j-3)*8+4]='2then
    begin
    Label1 :=TLabel.Create(pnlForm1);
    Label1.Parent := pnlForm1;
    Label1.Name:=Form1.zwischenspeicher.Lines[(j-3)*8+5];
    Label1.Enabled:= true;
    Label1.AutoSize:=true;
    Label1.Setbounds(strtoint(Form1.zwischenspeicher.Lines[(j-3)*8+7]),
                     strtoint(Form1.zwischenspeicher.Lines[(j-3)*8+8]),
                     strtoint(Form1.zwischenspeicher.Lines[(j-3)*8+9]),
                     strtoint(Form1.zwischenspeicher.Lines[(j-3)*8+10]));
    Label1.Caption:=Form1.zwischenspeicher.Lines[(j-3)*8+6];
    end;
    if Form1.zwischenspeicher.Lines[(j-3)*8+4]='3then
    begin
    Memo2 :=TMemo.Create(pnlForm1);
    Memo2.Parent := pnlForm1;
    Memo2.Name:=Form1.zwischenspeicher.Lines[(j-3)*8+5];
    Memo2.Enabled:=true;
    Memo2.AutoSize:=false;
    Memo2.Setbounds(strtoint(Form1.zwischenspeicher.Lines[(j-3)*8+7]),
                    strtoint(Form1.zwischenspeicher.Lines[(j-3)*8+8]),
                    strtoint(Form1.zwischenspeicher.Lines[(j-3)*8+9]),
                    strtoint(Form1.zwischenspeicher.Lines[(j-3)*8+10]));
    end;
    if Form1.zwischenspeicher.Lines[(j-3)*8+4]='4then
    begin
    Label1 :=TLabel.Create(pnlForm1);
    Label1.Parent := pnlForm1;
    Label1.Name:=Form1.zwischenspeicher.Lines[(j-3)*8+5];
    Label1.Enabled:= true;
    Label1.AutoSize:=true;
    Label1.Setbounds(strtoint(Form1.zwischenspeicher.Lines[(j-3)*8+7]),
                     strtoint(Form1.zwischenspeicher.Lines[(j-3)*8+8]),
                     strtoint(Form1.zwischenspeicher.Lines[(j-3)*8+9]),
                     strtoint(Form1.zwischenspeicher.Lines[(j-3)*8+10]));
    Label1.Caption:=datetostr(Now);

    end;

  end;
  Form1.zwischenspeicher.Clear;
  Close;
end;
end;
dieser Code erstellet verschiedene Objekte. aber aus irgendeinem Grund kommt da der Fehler
List index exceeds bounds (28) in der datei, welche geöffnet wird steht

Code:
1
2
0

2
lblFeld1
Labeltext eingeben
135
44
100
16

4
lblFeld2
21.08.2013
137
53
55
16

1
txtFeld1
Name
134
72
50
23
sry für den unübersichtlichen Code, der ist so Step by Step entstanden :/!
  Mit Zitat antworten Zitat