![]() |
brauche erklärung für typen
Hallo!
Ich muss einen typ erstellen von TB mit länge,breite,höhe und bez, von TB gibt es 10
Delphi-Quellcode:
lg
TB = class
l,b,h:integer; bez:string; end; //Den Typ hab ich erstellt. var x:array [1..10] of TB; for i:1 to 10 do x[i]=stringgrid1.cells[0,1]//das funkt natürlich nicht, aber ich stehe hier leider an... //wie kann ich jetzt von einem stringgrid die werte einlesen??? |
Re: brauche erklärung für typen
Du kannst den String ja nicht der Objektinstanz zuweisen, sondern nur dem Stringfeld der Instanz.
Delphi-Quellcode:
x[i].bez := stringgrid1.cells[0,1];
|
Re: brauche erklärung für typen
Mach doch einfach
Delphi-Quellcode:
so in etwa ...
TB = [b]record[/b]
l,b, h:integer; bez:string; end; var x: TB; ... x.l := 10; x.b := 20; x.h := 30; x.bez := 'bez'; ... |
Re: brauche erklärung für typen
Das löst das Problem aber auch nicht. Auch so muss er auf ein Feld eines Array-Elements seines Typs zugreifen.
|
Re: brauche erklärung für typen
Ich verstehe das Problem nicht.
:oops: Ganz von alleine passiert in Delphi nunmal gar nichts. Ein bisschen was muss man halt programmieren... Sherlock |
Re: brauche erklärung für typen
Ich hab doch bereits in #2 gepostet, was zu tun ist. Wieso da nun Records ins Spiel kommen, was weiß denn ich?
|
Re: brauche erklärung für typen
Liste der Anhänge anzeigen (Anzahl: 1)
ein typ ist in diesem fall einfacher wie ein record oder? bin leider blutiger anfänger...
soll aber typ verwenden.. hab ein bild anbei, steh da voll an...
Delphi-Quellcode:
fg
var x:array [1..10] of TB;
i:integer; procedure TForm2.Button1Click(Sender: TObject); begin for i := 1 to 10 do begin x[i].bez := stringgrid1.cells[0,1],stringgrid1.cells[0,2],stringgrid1.cells[0,3],stringgrid1.cells[0,4],; end; end; |
Re: brauche erklärung für typen
Zitat:
Delphi-Quellcode:
Basics ->
var x:array [1..10] of TB;
i:integer; procedure TForm2.Button1Click(Sender: TObject); begin for i := 1 to 10 do begin x[i] := TB.create; // Instanz erstellen, wenn das nicht vorher passiert ist // und nicht vergessen sie wieder freizugeben, wenn Du sie nicht mehr brauchst x[i].bez := stringgrid1.cells[0,i]; // Bezeichnung zuweisen end; end; ![]() Basics -> ![]() Grüße Klaus |
Re: brauche erklärung für typen
danke dir klaus!!
|
Re: brauche erklärung für typen
Und nun nochmal im Ganzen:
Delphi-Quellcode:
var x: array[1..10] of TB;
//Beim Erzeugen des Formulars die Objekte anlegen procedure TForm2.FormCreate(Sender: TObject); var i: integer; begin for i := Low(x) to High(x) do x[i] := TB.Create; end; //auf ButtonKlick mit Daten füllen procedure TForm2.Button1Click(Sender: TObject); var i: integer; begin for i := Low(x) to High(x) do begin //Länge, Breite und Höhe sind Zahlen, daher Umwandlung nötig x[i].l := StrToIntDef(StringGrid1.Cells[1,x],0); x[i].b := StrToIntDef(StringGrid1.Cells[2,x],0); x[i].h := StrToIntDef(StringGrid1.Cells[3,x],0); x[i].bez := StringGrid1.Cells[4,x]; end; end; //Im OnDestroy Objekte wieder freigeben procedure TForm2.FormDestroy(Sender: TObject); var i: integer; begin for i := Low(x) to High(x) do x[i].Free; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:48 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz