Autor Beitrag
adler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 511

Windows XP
Delphi 05 Pers
BeitragVerfasst: 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:

ausblenden 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.
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1596


VS 2013
BeitragVerfasst: 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:
ausblenden 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



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 511

Windows XP
Delphi 05 Pers
BeitragVerfasst: 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



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 511

Windows XP
Delphi 05 Pers
BeitragVerfasst: 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



BeitragVerfasst: 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. :roll:
adler Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 511

Windows XP
Delphi 05 Pers
BeitragVerfasst: 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. :roll:


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



BeitragVerfasst: Mo 30.08.04 20:53 
Jetzt ist es klar. Dann kuck dir mal die Eigenschft Pen.Color von TCanvas an.
adler Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 511

Windows XP
Delphi 05 Pers
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 154



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 511

Windows XP
Delphi 05 Pers
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 154



BeitragVerfasst: 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



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 511

Windows XP
Delphi 05 Pers
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 511

Windows XP
Delphi 05 Pers
BeitragVerfasst: 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.