Autor Beitrag
Sam09
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mo 23.03.09 16:21 
Hallo,

Ich habe ein kleines Problem:
Ich habe ein zweidimensionales Array von Shapes dynamisch erstellt. Bei der Ausgabe im Panel hätte ich es gerne Reihe für Reihe ausgegeben, aber egal wie ich es anstelle ich bekomme es nicht hin.. ich hoffe Ihr könnt mir helfen..
Danke schonmal!

Hier der Quellcode:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
var
  Form1: TForm1;
  Myshapes: array of array of Tshape;

 Procedure zeichnen;
 var
    x,y, links:integer;

  begin
  setlength(Myshapes,4,4);
 links:=-1;
  for x:= 0 to high(Myshapes) do
    begin
  for y:=0 to high(Myshapes[x]) do
  begin
   Myshapes[x][y]:=TShape.Create(Form1.Panel1);
   myshapes[x][y].Shape:=stCircle;
   myshapes[x][y].Parent:=Form1.Panel1;
   myshapes[x][y].Top:=0 ;
   myshapes[x][y].left:=links*50;
   myshapes[x][y].width:=150;
   myshapes[x][y].height:=50;
   myshapes[x][y].Brush.Color:=clwhite;
   inc(links);
   end;
    end;
     end;
Xentar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2077
Erhaltene Danke: 2

Win XP
Delphi 5 Ent., Delphi 2007 Prof
BeitragVerfasst: Mo 23.03.09 16:41 
Was passiert denn (nicht)? Fehlermeldung?

_________________
PROGRAMMER: A device for converting coffee into software.
Sam09 Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mo 23.03.09 16:46 
Also, es gibt keine Fehlermeldung! Beim create werden alle shapes in einer Reihe auf dem Panel angezeigt. Ich möchte aber mehrere Reihen haben!!
Bsp. ich habe die größe mit setlenght(Myshapes,4,4) gesetzt, dann möchte ich 4 Reihen á 4 Shapes haben. Ich bekome das aber nicht hin, egal wie ich es versuche!!
Ich hoffe ich konnte mein Problem plausibel erklären!
Keldorn
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 2266
Erhaltene Danke: 4

Vista
D6 Prof, D 2005 Pro, D2007 Pro, DelphiXE2 Pro
BeitragVerfasst: Mo 23.03.09 16:49 
Hallo

Zitat:

myshapes[x][y].Top:=0 ;
myshapes[x][y].left:=links*50;
myshapes[x][y].width:=150;
myshapes[x][y].height:=50;


na, du tust doch alle übereinander erstellen, an der Erstellposition wird doch gar nix geändert

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
  Breite := 150;
  Hoehe  := 50;
  ...
   //+10 = Abstand zu einander
   myshapes[x][y].Top:=x*(Breite+10);
   myshapes[x][y].left:=y*(Hoehe+10);
   myshapes[x][y].width:= breite;
   myshapes[x][y].height:=hoehe;


wenn du mit deinem Links arbeiten willst, mußt du die Schleifen drehen (y zuerst und dann x durchlaufen) und links in der y-Schleife am anfang wieder auf 0 setzen. Bringt dir für das Setzen der Top-Eogenschaft aber auch 0 Punkte

Gruß Frank

_________________
Lükes Grundlage der Programmierung: Es wird nicht funktionieren.
(Murphy)
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Mo 23.03.09 16:49 
naja, eh klar, dein Top is ja statisch! da kanns ja nur in einer reihe angezeigt werden. du müsstest dein top mit dem x bzw dem y deiner schleifen koppeln.

lg elundril

//edit: lol gleichzeitig :D

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
Sam09 Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mo 23.03.09 16:54 
Perfekt!!
Läuft genau so wie ich es wollte!!
Vielen Dank für die schnelle Hilfe!!!
Xentar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2077
Erhaltene Danke: 2

Win XP
Delphi 5 Ent., Delphi 2007 Prof
BeitragVerfasst: Mo 23.03.09 17:01 
Und gewöhn dir bitte diese vielen Ausrufezeichen ab. Oder schreist im richtigen Leben auch jeden an, wenn du mit ihm sprichst?

_________________
PROGRAMMER: A device for converting coffee into software.
Sam09 Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mo 23.03.09 17:08 
Alles klar, danke.
Sam09 Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mi 25.03.09 20:14 
Habe noch eine Frage dazu:
Jetzt habe ich die shapes in richtiger Reihenfolge, möchte diese per dynamisch erstellter Buttons (array of TButton) färben.
Das bedeutet ich klicke den Button über den shapes an und es soll das letzte in der Spalte gefärbt werden.

Meine Procedure klappt zwar, aber es werden immer mehrere Shapes gefärbt, es soll aber immer nur das letzte Shape gefärbt werden.
Ich hoffe Ihr könnt mir nochmal helfen.

/Edit erledigt