Autor Beitrag
Boerdi
Hält's aus hier
Beiträge: 13



BeitragVerfasst: So 28.09.08 21:18 
Hallo zusammen,

ich würde gerne meine Linien, die ich mit "moveto" und "lineto" erstelle durchnummerieren lassen. Wie kann ich denn da am besten vorgehen?

MfG
pennyWISE
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 49

Win XP
Delphi 2005 PE (getunt), QBasic 4.5
BeitragVerfasst: So 28.09.08 21:47 
Hallo!

sichtbar durchnummerieren auf der Canvas oder im Programm, damit du drauf zugreifen kannst?

_________________
„Philosophie ist der Versuch, eine schwarze Katze in einem dunklen Zimmer zu fangen. Theologie ist der Versuch, eine schwarze Katze in einem dunklen Zimmer zu fangen, jedoch eine Katze, die gar nicht im Zimmer ist - und immer zu rufen: Ich hab' sie!“
Boerdi Threadstarter
Hält's aus hier
Beiträge: 13



BeitragVerfasst: Mo 29.09.08 14:38 
Nee es wäre schon schön, wenn ich neben die Strecken die Nummern sehe.

MfG
Calculon
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 676

Win XP Professional
Delphi 7 PE, Delphi 3 PRO
BeitragVerfasst: Mo 29.09.08 15:43 
user profile iconBoerdi hat folgendes geschrieben:
Nee es wäre schon schön, wenn ich neben die Strecken die Nummern sehe.

MfG

Kennst du die Canvas Methode TextOut?

Gruß
--

_________________
Hallo Mutti
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 29.09.08 15:48 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
var oben, i: integer;
begin
  oben := 10;
  for i := 1 to 10 do
    begin
      Canvas.Textout(5,oben,IntToStr(i));
      Canvas.MoveTo(25,oben);
      Canvas.LineTo(Width,oben);
      inc(oben,10);
    end;
end;


Getippt und nicht getestet.
Boerdi Threadstarter
Hält's aus hier
Beiträge: 13



BeitragVerfasst: Mo 29.09.08 18:39 
Alles dankeschön, aber was meinst du mit dem oben in den Klammern?

MfG
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 29.09.08 19:20 
Das ist die Y-Koordinate, die nach jeder Linie um 10 Pixel erhöht wird.
Boerdi Threadstarter
Hält's aus hier
Beiträge: 13



BeitragVerfasst: Mo 29.09.08 19:36 
Ok das funktioniert. :-) Ich muss gestehen, dass meine Anfrage ein bisschen ungenau war. Ich erstelle in einem Painting Panel Punkte und verbinde diese mit Moveto und Lineto durch Linien. Und genau diese Linien würde ich ganz gerne nummerieren. Das ist dann ja so eine Art Linienbeschriftung. Für meine Punkte habe ich das ganze schon mit den Koordinaten gemacht, aber für die Linien fehlt mir leider die Idee, wie ich es umsetzen könnte,

MfG
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 29.09.08 19:40 
Heißt das, dass das Problem immernoch besteht?

Da, wo du die Linien zeichenst, mit TextOut eine Zahl daneben malen - wo ist das Problem?

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



BeitragVerfasst: Mo 29.09.08 20:04 
Genau das würde ich gerne. Aber die Linien gehen halt alle kreuz und quer durch das Panel. Könnte man die eventuell noch in Kreise packen?

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
for i := 0 to High( arPoints ) - 1 do
      begin
        for j := i+1 to High( arPoints)+ 0 do
            begin
                Canvas.MoveTo(arPoints[i].X, arPoints[i].Y);
                Canvas.LineTo(arPoints[j].X, arPoints[j].Y);
            end;
      end;


Damit verbinde ich meine Punkte.

MfG Markus
pennyWISE
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 49

Win XP
Delphi 2005 PE (getunt), QBasic 4.5
BeitragVerfasst: Mo 29.09.08 20:51 
ach das hab ich doch in nem andern thread shconma gesehn ^^

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
const radius=10;
...
for i := 0 to High( arPoints ) - 1 do
      begin
        for j := i+1 to High( arPoints)+ 0 do
            begin
                Canvas.MoveTo(arPoints[i].X, arPoints[i].Y);
                Canvas.LineTo(arPoints[j].X, arPoints[j].Y);
                canvas.brush.color:=clWhite;
                canvas.ellipse(arPoints[j].X-radius,arPoints[j].Y-radius,arPoints[j].X+radius,arPoints[j].Y+radius);
                canvas.textout(arPoints[j].X-radius div 2,arPoints[j].Y-radius div 2,IntToStr((i+1)*j));
            end;
      end;


nich getestet! aber mit der radius konstante könnteste n bissel rumprobieren

€: fehler im Quelltext verändert

_________________
„Philosophie ist der Versuch, eine schwarze Katze in einem dunklen Zimmer zu fangen. Theologie ist der Versuch, eine schwarze Katze in einem dunklen Zimmer zu fangen, jedoch eine Katze, die gar nicht im Zimmer ist - und immer zu rufen: Ich hab' sie!“