Hi,
Ich habe da ein Problem beim auslesen der Punkte von einem Rechteck.
Wenn ich ein oder mehrere Rechtecke per Randomize erstelle..
Und mir die lage der/des Punktes, und die Lage von wight und height ausgeben lasse
passiert folgendes:
Das Rechteck wird mal von oben-links nach rechts-unten "aufgezogen" und mal von rechts-unten nach oben-links...usw.
Folge:
Ist ne ziemlich dumme Sache wenn man die Punkte zu weiteren Rechnungen brauch.
Ich habe euch mal den Quellcode gepostet. Und des weiteren die Projekt.exe.
Ich hoffe ihr schaut euch das ganze mal an.
Und noch eins, falls ihr euch die Projekt.exe anschaut.
Gebt eine 1 bei der Eingabe ein und klickt so oft auf rechteck erstellen...
bis das Problem anhand der Werte sichtbar wird.
Danke an alle die versuchen werden mir zu helfen !
Delphi-Quellcode:
var
Form1: TForm1;
a1,a2,a,aa,x2,y2:integer;
implementation
{$R *.dfm}
procedure zeichneRechteck(canv: Tcanvas; x1, y1,x2,y2: integer; farbeRand:Tcolor);
const dicke = 3;
begin
with canv do Begin
Pen.Width := dicke;
Pen.Color := farbeRand;
Brush.Style := bssolid;
Pen.Mode:=pmNotXor;
x1:=random(200);
y1:=x1;
x2:=random(200);
y2:=x2 div 2;
Rectangle (x1 -dicke, y1-dicke, x2-dicke, y2 - dicke);
a:=x1;
aa:=y1;
a1:=x2;
a2:=y2;
End
end;
procedure TForm1.Button1Click(Sender: TObject);
var w, h,w2,i,n:integer;
begin
randomize;
n:=strtoint(form1.Edit1.text);
sg1.ColCount :=2;
sg1.RowCount :=n+1;
for i:=1 to n do begin
with image1 do begin
zeichneRechteck(image1.canvas,a, aa, a1,a2,clgray);
label1.Caption:= inttostr(a)+(',')+inttostr(aa)+(',')+inttostr(a1)+(',')+inttostr(a2);
end;
sg1.Cells[0,i]:=inttostr(a)+(',')+inttostr(aa);
sg1.Cells[1,i]:=inttostr(a1+a)+(',')+inttostr(a2+aa);
end;
end;
end.
[edit=Admin]BBCodes aktiviert. Mfg, Daniel[/edit]