Rechteck zeichnen im Maltool, aber wie?
-
@<murph>: Schau mal genauer in der Hilfe nach, was TCanvas::Rectangle() macht. Das geht nur, wenn TCanvas::Brush::Style auf bsClear steht.
-
Uff, ich hatte beim Aufbau das Prinzip verletzt. Der erste Weg erfolgt mit dem MovePt, der zweite Weg zum Xor-Löschen arbeitet dann mit (X,Y). Es klappt mit Canvas->LineTo blitzsauber.
Image->Canvas->MoveTo(Origin.x, Origin.y); Image->Canvas->LineTo(Origin.x, MovePt.y); Image->Canvas->LineTo(MovePt.x, MovePt.y); Image->Canvas->LineTo(MovePt.x, Origin.y); Image->Canvas->LineTo(Origin.x, Origin.y); Image->Canvas->LineTo(Origin.x, Y); Image->Canvas->LineTo(X, Y); Image->Canvas->LineTo(X, Origin.y); Image->Canvas->LineTo(Origin.x, Origin.y);
Nur die Ecken sind um die Canvas->Pen->Width ausgespart. Da muß ich expirimentieren. Denn grundsätzlich kann das Rechteck in alle 4 Richtungen aufgezogen bzw. beim Aufziehen auch korrigiert werden.
Mit Polyline hat der gleiche Aufbau jetzt nicht geklapt. Kann aber ein Übertragungsfehler Schuld gewesen sein.
-
Tja, meinen Post hattest du dir nicht angeschaut, oder?
-
*Ich_halt's_im_Kopf_nicht_aus*, natürlich! Im Xor-Mode wird bei dem Brush-Style bsClear wieder das Original, wenn ich den Weg doppelt geh. Will ich was anderes? Ich will genau das. Und es funzt sowas von perfekt... Super Dank an Euch. Das löst auch das Ellipse-Problem.
-
Ahem, und wenn du noch einen Post von mir weiter oben schaust, dann siehst du auch die Lösung per PolyLine().
-
@WebFritzi, im Nachhinein bin ich sogar froh, daß ich dein Post noch nicht gesehen hatte. Der Dialog zwischen @murph und dir half. die Aufgabe perfekt zu lösen.
-
Dadurch, dass du jetzt parallel mit mir gepostet hast, wirst du wiederum meinen Post übersehen. Deswegen nochmal: Schau einen Post über dem Dialog mit murph. Da hast du die Lösung für dein PolyLine.
-
@Omega-X-Fake, der Ichmenschlein ist registriert. Irgendwas mach ich falsch, mir gelingt das Login nicht. Werd immer im Kreis geführt.
@WebFritzi, oh ja, deine Lösung hatte ich gesehen. Da steckt noch mehr drin, als nur der korrekte Code. Auch die Syntax ist interessant. Hab die seite für die Schnipselsammlung gespeichert. - Dann wollte der Code optimiert werden, damit ich wieder den Überblick hab. Jetzt hab ich's getestet. Klappt UFB. War auch nicht anders zu erwarten, wenn Profis Tips geben. Dank auch noch mal an @Jansen.
-
hallo,
hi fritz, zu:
"Schau mal genauer in der Hilfe nach, was TCanvas::Rectangle() macht. Das geht nur, wenn TCanvas::Brush::Style auf bsClear steht."...und, wo ist das problem?
murph
-
@murph, da nicht drauf zu kommen, ist das Problem. Was meinst du, was ich für Kulleraugen bekam, als ich das einfach mal ausprobierte. :p
Jetzt laufen die gefüllten und ungefüllten DrawTools mit den gleichen Routinen. Eine zentrale Function PenCheck(Sender,Button,Shift,X,Y) steuer alle Standards und Besonderheiten. Das schafft ziemlich kompakten Code mit kleinen Routinen, wie es sein soll.