Autor Beitrag
DaniSahne
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Mi 05.01.05 12:36 
Hallo

ich suche jemanden der mir hilft ein delphiprgramm zu entwickeln, wo man zufällig in einem image rechtecke,kreise,quadrate und dreiecke sehen möchte, dazu soll der computer selbst entscheiden welche Farbe und dann auch noch die anzahl der anzuzeigenden Flächen. Wer echt nett von euch, ich weiß es das sehr easy ist, aber zur zeit hängt es bei mir etwas.
WeBsPaCe
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 2322
Erhaltene Danke: 1

FireFox 3, Internet Explorer 6 SP1
D1, D3Prof, D6Pers, D7Pers+Indy, VisualStudio Express
BeitragVerfasst: Mi 05.01.05 13:00 
Also, das machst du am besten mit Canvas:

Zum Rechtecke zeichnen:
Zitat:
Die Methode Rectangle zeichnet ein Rechteck mit der linken oberen Ecke am Punkt (X1, Y1) und der rechten unteren Ecke am Punkt (X2, Y2).

procedure Rectangle(X1, Y1, X2, Y2: Integer);

Beschreibung

Mit Rectangle können Sie unter Verwendung des aktuellen Stifts ein Rechteck zeichnen und es mit dem aktuellen Pinsel füllen. Um einen rechteckigen Bereich zu füllen, ohne für den Umriß den aktuellen Pinsel zu verwenden, bedienen Sie sich der Methode FillRect. Mit FrameRect oder Polygon können Sie den Umriß eines rechteckigen Bereichs zeichnen, ohne diesen zu füllen. Mit RoundRect können Sie ein Rechteck mit abgerundeten Ecken zeichnen.


Zum Kreise zeichnen:
Zitat:
Die Methode Ellipse zeichnet auf der Zeichenfläche eine Ellipse, die durch ein umgebendes Rechteck definiert ist.

procedure Ellipse(X1, Y1, X2, Y2: Integer);

Beschreibung

Mit Ellipse können Sie auf der Zeichenfläche einen Kreis oder eine Ellipse zeichnen. Die linke obere Ecke des umgebenden Rechtecks befindet sich an den Pixel-Koordinaten (X1, Y1), die rechte untere Ecke an den Koordinaten (X2, Y2). Wenn die Ecken des Recktecks ein Quadrat bilden, wird ein Kreis gezeichnet.
Die Ellipse wird mit dem aktuellen Stift gezeichnet und mit dem aktuellen Pinsel gefüllt.

Hinweis

Unter Windows 95 dürfen die Summen X1 + X2 und Y1 + Y2 den Wert 32768 nicht überschreiten. Das gleiche gilt für die Summe X1 + X2 + Y1 + Y2.


Zum Quadrate zeichnen, das mit den Rechtecken, nur mit gleicher Höhe und Breite...

Zum Dreiecke zeichnen ein Rechteck verwenden, und einmal für zwei Punkte, den selben Wert nehmen...

Das mit der Farbe machst du so:
ausblenden Delphi-Quelltext
1:
2:
randomize;
Canvas.Brush.Color := RGB(random(256), random(256), random(256));


Viel Spaß...

_________________
Steht der Bauer im Gemüse, hat er später grüne Füße.
WeBsPaCe
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 2322
Erhaltene Danke: 1

FireFox 3, Internet Explorer 6 SP1
D1, D3Prof, D6Pers, D7Pers+Indy, VisualStudio Express
BeitragVerfasst: Mi 05.01.05 13:29 
Die Unit dazu sähe ungefähr' so aus: :wink:

ausblenden volle Höhe 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:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var
farbe: TColor;
aktion: Integer;
wert: array[1..6] of Integer;
begin
Form1.Color := clWhite;
randomize;
Canvas.Pen.Color := RGB(random(256), random(256), random(256));
Canvas.Brush.Color := Form1.Color;
aktion := random(4);
if aktion = 0 then begin
//Kreis zeichnen
wert[1] := random(Form1.Width);
wert[2] := random(Form1.Height);
wert[3] := random(Form1.Width);
wert[4] := random(Form1.Height);
Canvas.Ellipse(wert[1], wert[2], wert[3], wert[4]);
end;
if aktion = 1 then begin
//Rechteck zeichnen
wert[1] := random(Form1.Width);
wert[2] := random(Form1.Height);
wert[3] := random(Form1.Width);
wert[4] := random(Form1.Height);
Canvas.Rectangle(wert[1], wert[2], wert[3], wert[4]);
end;
if aktion = 2 then begin
//Quadrat zeichnen
wert[1] := random(Form1.Width);
wert[2] := random(Form1.Height);
wert[3] := random(Form1.Width);
Canvas.MoveTo(wert[1], wert[2]);
Canvas.LineTo(wert[3], wert[2]);
Canvas.LineTo(wert[3], wert[2]+wert[3]-wert[1]);
Canvas.LineTo(wert[1], wert[2]+wert[3]-wert[1]);
Canvas.LineTo(wert[1], wert[2]);
end;
if aktion = 0 then begin
//Dreieck zeichnen
wert[1] := random(Form1.Width);
wert[2] := random(Form1.Height);
wert[3] := random(Form1.Width);
wert[4] := random(Form1.Height);
wert[5] := random(Form1.Width);
wert[6] := random(Form1.Height);
Canvas.MoveTo(wert[1], wert[2]);
Canvas.LineTo(wert[3], wert[4]);
Canvas.LineTo(wert[5], wert[6]);
Canvas.LineTo(wert[1], wert[2]);
end;
end;

end.

_________________
Steht der Bauer im Gemüse, hat er später grüne Füße.