Autor |
Beitrag |
$veno
      
Beiträge: 42
|
Verfasst: Mi 02.11.05 14:56
Hallo.
Gibt es eine Komponente in der ich eizelne Pixel zeichnen lassen kann?
Danke und Gruss Sven:)
|
|
AXMD
      
Beiträge: 4006
Erhaltene Danke: 7
Windows 10 64 bit
C# (Visual Studio 2019 Express)
|
Verfasst: Mi 02.11.05 15:14
Wie, wo, was? Worauf Pixel zeichnen? Canvas, Form oder auf der Compo selbst... wär evtl. nicht schlecht, wenn du deine Fragestellung etwas klarer formulierst
AXMD
|
|
$veno 
      
Beiträge: 42
|
Verfasst: Mi 02.11.05 15:18
Ich möchte das ic in einer Procedure einzelne Pixel einer Zeichenfläche schwarz färben kann. Die Zeichenfläche sollte eine Komponente sein, zB Image oder etwas ähnliches, hauptsache ich kann einzelne Pixel schwarz färben.
|
|
Stefan.Buchholtz
      
Beiträge: 612
WIN 2000, WIN XP, Mac OS X
D7 Enterprise, XCode, Eclipse, Ruby On Rails
|
Verfasst: Mi 02.11.05 15:20
Die TPaintBox ist das, was du suchst.
Stefan
|
|
$veno 
      
Beiträge: 42
|
Verfasst: Mi 02.11.05 16:27
|
|
$veno 
      
Beiträge: 42
|
Verfasst: Mi 02.11.05 17:16
Hmm, habe in der Hilfe nacgeschaut und die canvas methode drawpoint gefunden, aber wenn ich dann schreibe
Delphi-Quelltext 1:
| paintbox1.canvas.drawpoint(3,5); |
sagt er mir unbekannter Bezeichner "drawpoint".
Kann mir eienr ein Beispiel geben wie ich zB den Punkt (3/5) der Paintbox schwarz färbe?
Danke und Gruss Sven
|
|
Tilman
      
Beiträge: 1405
Erhaltene Danke: 51
Win 7, Android
Turbo Delphi, Eclipse
|
Verfasst: Mi 02.11.05 17:25
paintbox.canvas.pixels[3,5] := clBlack;
Du musst aber sicherstellen das die Einfärbung in der Routine OnPaint vorgenommen wird, sonst verschwindet die färbung sobald z.B. ein anderes Fenster über dein gemaltes gezogen wird.
|
|
$veno 
      
Beiträge: 42
|
Verfasst: Mi 02.11.05 17:28
ahh, dankeschön  Es klappt:)
|
|
$veno 
      
Beiträge: 42
|
Verfasst: Do 03.11.05 20:35
Tilman hat folgendes geschrieben: | Du musst aber sicherstellen das die Einfärbung in der Routine OnPaint vorgenommen wird, sonst verschwindet die färbung sobald z.B. ein anderes Fenster über dein gemaltes gezogen wird. |
Gibts auch die Möglichkeit dies nicht in der Routine onpaint vorzunehmen, die Färbung aber bleibt wenn man ein anderes Fenster darüberzieht?
|
|
galagher
      
Beiträge: 2556
Erhaltene Danke: 45
Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
|
Verfasst: Do 03.11.05 23:03
$veno hat folgendes geschrieben: | Gibts auch die Möglichkeit dies nicht in der Routine onpaint vorzunehmen, die Färbung aber bleibt wenn man ein anderes Fenster darüberzieht? |
Soviel ich weiss, musst du sicherstellen, dass deine Zeichnung wiederhergestellt wird, und das geht nunmal in OnPaint. Es sei denn, es genügt dir, den Code in eine extra Prozedur zu schreiben un diese in OnPaint aufzurufen. Aber ob du ganz um OnPaint herum kommst, möchte ich bezweifeln.
_________________ gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
|
|
Tilman
      
Beiträge: 1405
Erhaltene Danke: 51
Win 7, Android
Turbo Delphi, Eclipse
|
Verfasst: Fr 04.11.05 12:24
Die einfachste Möglichkeit die ich kenne: benutze ein TImage statt einer TPaintBox. die Speichert dann automatisch die Pixel, es kann aber unter Umständen auch Nachteile haben.
Andere Möglichkeit: du erstellst ein TBitmap-Objekt:
Bild := TBitmap.Create;
Bild. Width := paintbox.Width;
Bild.Height := paintbox.Height;
alle Operationen werden jetzt auf Bild.Canvas ausgeführt,
und OnPaint wird dann mittels paintbox.canvas.draw(0,0,Bild) das Bild auf die Paintbox gemalt.
|
|