| Autor |
Beitrag |
adler
      
Beiträge: 511
Windows XP
Delphi 05 Pers
|
Verfasst: Mo 30.08.04 01:16
Hi!
Habe noch nie mit ner "Paintbox" gearbeitet, habe aber auch nichts anderes gefunden in dem ich etwas "zeichnen" kann.
Ich habe in der Hilfe geschaut, aber nichts gefunden.
Als befehl schrieb ich folgendes:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| var punkt:TPoint; begin punkt.X := 1; punkt.Y := 1; paintbox1.ClientToScreen(punkt); paintbox1.Repaint; |
Aber irgendwie habe ich keinen Punkt gesehen, sollte da jetzt nicht nen punkt kommen?
ich seh keinen. Bin ich vllt. ganz aufem Holzweg?
Also, wenn ja, ich möchte nur mal eine box, in der ich punkte setzen kann.
ThX
PS: Oder stört da vllt. das XPManifest?
_________________ Wo's nix zu gucken gibt, gibts vielleicht was zu hören.
|
|
Raphael O.
      
Beiträge: 1596
VS 2013
|
Verfasst: Mo 30.08.04 10:41
wenn ich etwas zeichnen möchte (2D), dann benutze ich immer ein Image...
und da einen Punkt zu zeichnen geht folgendermaßen:
Delphi-Quelltext 1:
| image1.canvas.pixels[x,y]:=clBlack; |
ansonsten dürften v.a. die Befehle moveto und lineto interessant sein, sowie canvas.brush.color,. canvas.pen.color, rectangle usw.
<schleichwerbung>das das funktioniert kannst du z.B. an dem Screenschot in diesem Thread sehen: www.delphi-forum.de/...hiebeteil_20972.html </schleichwerbung>
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 30.08.04 13:34
Die Paintzbox ist schon die richtige Komponente zum Zeichen. TImage ist nur für das Darstenne von "fertigen" Grafiken gedacht. Du zeichens nur falsch. ClientToScreen rechnet nur Koordinaten um. Zum Setzen von einzelnen Pixel benutz SetPixel und wenn du Linien und ähnliches zeichenen willst nutz MoveTo und Line To bzw. die Zeichenfunktionen für geometrische Objekte: Ellipse, FillRect, DrwaRect, etc.
|
|
adler 
      
Beiträge: 511
Windows XP
Delphi 05 Pers
|
Verfasst: Mo 30.08.04 18:27
Ja, Danke, das ist gut.
Aber nun habe ich einen "Stift" programmiert.
So, leider funktioniert das net so gut.
Wenn ich diesen "zu" schnell bewege, fehlen zwischendrin pixel, weil MouseMove wahrscheinlich nicht so
schnell hinter einander ausgeführt werden kann.
Antwort bitte  wie kann ich das am besten lösen?
ThX!
_________________ Wo's nix zu gucken gibt, gibts vielleicht was zu hören.
|
|
Elite
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 30.08.04 19:14
Wie wärs mal mit selber denken? ^^
ne Möglichkeit wäre es zum Beispiel, ein LineTo vom ersten MouseMove zum zweiten MouseMove zu machen.
|
|
adler 
      
Beiträge: 511
Windows XP
Delphi 05 Pers
|
Verfasst: Mo 30.08.04 19:15
Habe ich mir auch schon gedacht, aber ist das net doof?
wenn der vllt. ganz schnell nen "kreis" zieht, dann ist da vllt. nur ein zwei linien.
EDIT:
Ok, habe halt Linien erstmal gemacht.
Nun: Die Sind nur SCHWARZ, dabei will ich sie so wie ich auch die Punkte machen kann.
ThX!
_________________ Wo's nix zu gucken gibt, gibts vielleicht was zu hören.
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 30.08.04 19:44
| adler hat folgendes geschrieben: | | Nun: Die Sind nur SCHWARZ, dabei will ich sie so wie ich auch die Punkte machen kann. |
Ist es zu viel verlangt, ein gramatiklisch Korrektes deutsch zu schreiben und dabei noch eine Satz zu produzieren, der auch vom Inhalt Sinn macht? Könnte aber die Gefahr bestehen, dass man versteht, was du willst. 
|
|
adler 
      
Beiträge: 511
Windows XP
Delphi 05 Pers
|
Verfasst: Mo 30.08.04 20:46
| Luckie hat folgendes geschrieben: | | adler hat folgendes geschrieben: | | Nun: Die Sind nur SCHWARZ, dabei will ich sie so wie ich auch die Punkte machen kann. |
Ist es zu viel verlangt, ein gramatiklisch Korrektes deutsch zu schreiben und dabei noch eine Satz zu produzieren, der auch vom Inhalt Sinn macht? Könnte aber die Gefahr bestehen, dass man versteht, was du willst.  |
Ist doch klar wie Glasbrühe.
Also:
Die LINIEN sind nur Schwarz, dabei will ich die LINIEN in der Farbe, wie ich auch die Punkte mache. bzw panel1.color
Verstanden?
_________________ Wo's nix zu gucken gibt, gibts vielleicht was zu hören.
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 30.08.04 20:53
Jetzt ist es klar. Dann kuck dir mal die Eigenschft Pen.Color von TCanvas an.
|
|
adler 
      
Beiträge: 511
Windows XP
Delphi 05 Pers
|
Verfasst: Mo 30.08.04 21:03
Ok, Danke.
Aber eine Frage bleibt noch.
Das ist echt sche****, dass der inhalt verschwindet, wenn ich ne form oder so drüber ziehe.
Wie kann ich das ändern? 
_________________ Wo's nix zu gucken gibt, gibts vielleicht was zu hören.
|
|
Böser Borstel
      
Beiträge: 154
|
Verfasst: Di 31.08.04 08:23
mußt alle immer in OnPaint von der Paintbox malen, dann wird das verdeckte beim aufdecken wieder neugemalt.
|
|
adler 
      
Beiträge: 511
Windows XP
Delphi 05 Pers
|
Verfasst: Di 31.08.04 11:12
Also muss ich mir eigentlich noch nen array mit den Farben speichern?
Weil die sind ja sonst nicht mir in der PaintBox enthalten.
Dann speichere ich jetzt mein Bild einfach in nen eigenen array.
und im OnPaint übergebe ich die Pixelfarben, soll ichs so machen, ja?
Oder haste was besseres?
_________________ Wo's nix zu gucken gibt, gibts vielleicht was zu hören.
|
|
Böser Borstel
      
Beiträge: 154
|
Verfasst: Di 31.08.04 14:05
du mußt dir jeden einzelnen pixel mit seinen eigenschaften(farbe,x,y,...) merken und sie in onpaint neuzeichnen.
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Di 31.08.04 14:19
Nein. Man zeichent auf ein Bitmap im Speicher und kopiert das bei Änderungen oder wenn erforderlich (Neuzeichnen etc.) auf die Painbox. Siehe hier: www.luckie-online.de...OffScreenBitmap.html
|
|
adler 
      
Beiträge: 511
Windows XP
Delphi 05 Pers
|
Verfasst: Di 31.08.04 14:34
Warum ist dann ne PaintBox besser als ein Image?
Was gibt es dort für unterschiede.
_________________ Wo's nix zu gucken gibt, gibts vielleicht was zu hören.
|
|
adler 
      
Beiträge: 511
Windows XP
Delphi 05 Pers
|
Verfasst: Di 31.08.04 19:52
`Nochwas:
Wie kann ich es wieder leeren?
.clear gibts net.
ACHTUNG: net weiß, sondern Leer! Das man sieht, was dahinter ist. Danke 
_________________ Wo's nix zu gucken gibt, gibts vielleicht was zu hören.
|
|