Autor Beitrag
GR-Thunderstorm
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 206



BeitragVerfasst: Mi 08.11.06 15:32 
Hi!
Ich hoffe das hier ist das richtige Forum dafür.
Ich will mit dem Befehl "line();" ein Strichmänchen erzeugen, sowas hab ich auch mal mit Turbo-Pascal gemacht aber wie genau sieht das in Delphi aus?

Danke schonmal!
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8548
Erhaltene Danke: 477

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Mi 08.11.06 15:55 
Gemalt wird in Delphi grundsätzlich auf einem TCanvas. Dort gibt es dann Sachen wie Form1.Canvas.MoveTo und Form1.Canvas.LineTo. Wie gemalt wird, hängt von Form1.Canvas.Pen und Form1.Canvas.Brush ab. In der Hilfe solltest du dann mehr dazu finden ;-)

(Ich gehe hier davon aus, dass du direkt auf die Form malen willst. Wenn das nicht so ist, nimmst du das entsprechende Canvas-Objekt.)

_________________
We are, we were and will not be.
GR-Thunderstorm Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 206



BeitragVerfasst: Mi 08.11.06 16:03 
Danke schonmal!

Ich will ein laufendes Strichmännchen per Quelltext erzeugen. Geht das auch mit diesem Canvas? Was muss ich noch alles einbauen? Irgendwas unter Uses?
In TP gabs ja auch immer was mit "InitGraph" und so...
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8548
Erhaltene Danke: 477

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Mi 08.11.06 16:12 
Wenn ich mich richtig erinnere, brauchte man InitGraph, um vom Textmodus in den Grafikmodus umzuschalten, damit man dann mit Line und Putpixel auf dem Monitor malen konnte, richtig?
Unter Windows malt man nicht mehr direkt auf den Monitor, sondern (mal abgesehen von Konsolenanwendungen) man malt in das Fenster. Dafür braucht man kein InitGraph, und auch sonst nix weiteres, das geht einfach so. :)

Animationen sind natürlich komplizierter, weil man ggf. das bishergemalte wieder löschen muss - am einfachsten geht das, wenn man einfach das gesamte Canvas mit einem Rechteck füllt - dafür gibts auch nen Befehl: Fillrect. Aber ansonsten kannst du mit "diesem Canvas" alles machen, was unter Pascal mit dem Line-Gedöns auch ging ;-)

Alternativ könnte man das Männchen als Gif vorher erstellen und mittels einer geeigneten GIF-Komponente (gibts bestimmt bei Torry) in die Anwendung einbauen.

_________________
We are, we were and will not be.
GR-Thunderstorm Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 206



BeitragVerfasst: Mi 08.11.06 16:20 
Mit Gif wäre das zu einfach... ;)

Wenn ich also line1(1/2); habe und dann hinterher die Koordinaten umändere bleibt die alte Linie weiterhin bestehen wie in TP? -.- Ginge das mit DoubleBuffered evtl weg?
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8548
Erhaltene Danke: 477

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Mi 08.11.06 16:23 
Nein, mit Doublebuffered geht das nicht weg. Schau mal hier, da wurde kürzlich auch einfach so auf der Form rumgemalt, vielleicht hilft das ja als kleiner Einstieg.

_________________
We are, we were and will not be.
GR-Thunderstorm Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 206



BeitragVerfasst: Mi 08.11.06 16:52 
Ah THX mit "Repaint;" ginge das also...
Und kann ich auf ein Canvas auch mehrere Linien machen? In deinem gelinkten Thread hat man ja nur eine Linie gehabt.
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8548
Erhaltene Danke: 477

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Mi 08.11.06 16:54 
Na komm, probier doch mal was aus ;-)

Mit Moveto geht man zum neuen Startpunkt, und kann da wieder ne neue Linie machen. Oder einen Kreis, eine Ellipse, ein Rechteck, ein Polygon, sonstwas.

_________________
We are, we were and will not be.
GR-Thunderstorm Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 206



BeitragVerfasst: Mi 08.11.06 16:57 
Momentan is nix mit probieren, mein eigentlicher Rechner is out of order.. :roll:
GR-Thunderstorm Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 206



BeitragVerfasst: Mi 08.11.06 21:41 
Ich habe jetzt Delphi auf diesem PC installiert und alles estmal hinbekommen. Nun habe ich aber noch ein Prob:
Wenn ich das Prog minimiere und dann wieder anzeigen lasse is alles verschwunden..


Zuletzt bearbeitet von GR-Thunderstorm am Mi 08.11.06 22:13, insgesamt 1-mal bearbeitet
delfiphan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2684
Erhaltene Danke: 32



BeitragVerfasst: Mi 08.11.06 21:58 
Das erste OnPaint Ereignis kommt erst nach dem FormCreate-Ereignis, somit wird dein Männchen gelöscht (bzw. nie angezeigt).
Die Zeichenbefehle kommen am besten ins OnPaint Ereignis.