Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi brauche erklärung für typen (https://www.delphipraxis.net/127225-brauche-erklaerung-fuer-typen.html)

Molzer 9. Jan 2009 13:39


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:
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???
lg

DeddyH 9. Jan 2009 13:41

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];

mr_emre_d 9. Jan 2009 14:01

Re: brauche erklärung für typen
 
Mach doch einfach
Delphi-Quellcode:
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'; ...
so in etwa ...

DeddyH 9. Jan 2009 14:02

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.

Sherlock 9. Jan 2009 14:04

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

DeddyH 9. Jan 2009 14:08

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?

Molzer 9. Jan 2009 14:16

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:
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;
fg

Klaus01 9. Jan 2009 14:23

Re: brauche erklärung für typen
 
Zitat:

Zitat von Molzer
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:
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;
fg

Delphi-Quellcode:
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 -> record
Basics -> class

Grüße
Klaus

Molzer 9. Jan 2009 14:31

Re: brauche erklärung für typen
 
danke dir klaus!!

DeddyH 9. Jan 2009 14:34

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 06:50 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz