Entwickler-Ecke

Multimedia / Grafik - Lineale in Delphi?


FR399Y - Do 03.04.03 22:56
Titel: Lineale in Delphi?
moin,

wir machen immoment canvas funktionen in delphi und dazu waeren lineale sehr hilfreich.. wie kann man die anzeigen, wenn delphi ueberhaupt ueber so etwas verfuegt..

danke
cu FLO!


Alibi - Do 03.04.03 22:58

Mal dir doch eins auf den Canvas, dürfte doch kein Problem sein. :)


FR399Y - Do 03.04.03 23:08

:oops: trau mich nicht .. :oops:

nein, sagt mal ehrlich; kann man lineale irgendwie anzeigen?

*hhhmmmmm*
...
..
.
ja nen lineal selber zeichnen ist garned so dumm..

so?


Quelltext
1:
2:
canvas.moveto (0,0)
canvas.lineto (1,0)


son nun das ganze in eine while aunweisung 8ich weis nicht wie so eine aussieht.. ;( :schaem: )
so das der x wert immer +1 wird bis der bildrand erreicht ist..
und immer wenn er +1 genommen hat soll er einen strich in y richtung machen das wuerde nen lineal ergeben..
doch leider faehlen mir dafuer die kenntnisse :(

cu
FLO!

Moderiert von user profile iconAya: Code-Tags hinzugefügt.


Alibi - Do 03.04.03 23:17

20 Lücken im Lineal, gut sieht's erst aus, wenn die Breite der Form durch 20 teilbar ist, 700 z.B.. :)
So, oder so ähnlich:

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
procedure TForm1.Button1Click(Sender: TObject);
var
  I, diff: integer;
begin
  diff := Width div 20;
  canvas.Brush.Color := clWhite;
  canvas.FillRect(Rect(0,0,width,10));
  for i := 1 to diff do begin
    canvas.moveto(i*diff,0);
    canvas.LineTo(i*diff,10);
  end;
  canvas.moveto(0,10);
  canvas.LineTo(width,10);
end;


Aya - Do 03.04.03 23:19

Hi,

nen Lineal einfach einblenden geht nich, gibt's net ;)
mit ner while Schleife würd ich das so lösen:


Quelltext
1:
2:
3:
4:
5:
while i<Height do begin
  Canvas.MoveTo(0,i);
  Canvas.LineTo(10,i);
  Inc(i,10); //i um 10 erhöhen
end;


Au'revoir,
Aya~


FR399Y - Fr 04.04.03 00:11

ich hab nun:

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
procedure TForm1.Button1Click(Sender: TObject);
var x: integer;
begin
  for x := 1 to width do
  begin
    if x mod 10 = 0 then
    begin
      canvas.MoveTo(x,0);
      canvas.LineTo(x,10);
    end else
    if x mod 2 = 0 then
    begin
      canvas.MoveTo(x,0);
      canvas.LineTo(x,5);
    end  else
        end;
  end;
end;

end.

und das geht wunner bar..
nur noch jeweils die xe auf die andere seite des kommars stellen udn schon ist auch die y-ache mit einen lineal versehen..


FR399Y - Fr 04.04.03 08:57
Titel: karos...
moin nach edr selbigen methode habe ich ein koordinaten netz erstellt:

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
procedure TForm1.Button2Click(Sender: TObject);
var
x : integer;
begin
for x := 1 to height do
  begin
    if x mod 10 = 0 then
    begin
    canvas.pen.color:= clblack  ;
      canvas.MoveTo(0,x);
      canvas.LineTo(width,x);
      end
      end;
  for x := 1 to width do
  begin
    if x mod 10 = 0 then
    begin
      canvas.MoveTo(x,0);
      canvas.LineTo(x,height);
      end
    end;


wunderbar.. 8) :shock:

wie kann ich nun mit floodfill jedes zweite karo mit einer farbe füllen?