| Autor |
Beitrag |
Chryzler 
      
Beiträge: 1097
Erhaltene Danke: 2
|
Verfasst: So 13.05.07 17:33
|
|
Summerjam
Hält's aus hier
Beiträge: 11
|
Verfasst: So 13.05.07 17:42
Titel: .
ja udn deswegen kriegt der noch mal bescheid...
ähmm.ja weiß jemadn den noch wie das mit dem grau geht während des zeichnens
Moderiert von UGrohne: Beleidigung entfernt und Beiträge zusammengefasst.
|
|
Marco D.
      
Beiträge: 2750
Windows Vista
Delphi 7, Delphi 2005 PE, PHP 4 + 5 (Notepad++), Java (Eclipse), XML, XML Schema, ABAP, ABAP OO
|
Verfasst: So 13.05.07 19:17
Schaust du mal, was Chryzler gepostet hat?
Außerdem: Hat dein "Frei zeichnen" was mit "die Linie ziehen" zu tun? Ich habe immer noch nicht verstanden, was genau erreicht werden soll.
_________________ Pascal keeps your hand tied. C gives you enough rope to hang yourself. C++ gives you enough rope to shoot yourself in the foot
|
|
Summerjam
Hält's aus hier
Beiträge: 11
|
Verfasst: Mo 14.05.07 08:13
Titel: .
nein das freizeichen hat nichts mit dem linien ziehen zu tun. Wenn man ein rechteck zieht oder eine linie oder eine Ellipse soll es beim zeichen grau gekenntzeichnet sein und wenn man nicht mehr auf die maus drückt in der gewünschten Frabe erscheinen.
|
|
Chryzler 
      
Beiträge: 1097
Erhaltene Danke: 2
|
Verfasst: Mo 14.05.07 14:39
Titel: Re: .
Summerjam hat folgendes geschrieben: | | nein das freizeichen hat nichts mit dem linien ziehen zu tun. Wenn man ein rechteck zieht oder eine linie oder eine Ellipse soll es beim zeichen grau gekenntzeichnet sein und wenn man nicht mehr auf die maus drückt in der gewünschten Frabe erscheinen. |
Achso.
Nun, da bleibt dir nichts anderes übrig, als wenn die Maustaste wieder losgelassen wird, das Rechteck oder die Linie nocheinmal mit schwarz drübermalen.
Also sobald die Maustaste gedrückt wird musst du die Farbe auf Grau setzen und eben das Rechteck zeichnen. Wenn die Maustaste losgelassen wird, musst du nochmal das selbe Rechteck zeichnen, diesmal jedoch mit Schwarz. D.h. du musst dir die X- und Y-Koordinaten intern merken (hast du ja glaub ich bereits in xstart und ystart).
|
|
Marco D.
      
Beiträge: 2750
Windows Vista
Delphi 7, Delphi 2005 PE, PHP 4 + 5 (Notepad++), Java (Eclipse), XML, XML Schema, ABAP, ABAP OO
|
Verfasst: Mo 14.05.07 15:14
Chryzler hat folgendes geschrieben: | [
Nun, da bleibt dir nichts anderes übrig, als wenn die Maustaste wieder losgelassen wird, das Rechteck oder die Linie nocheinmal mit schwarz drübermalen.
Also sobald die Maustaste gedrückt wird musst du die Farbe auf Grau setzen und eben das Rechteck zeichnen. Wenn die Maustaste losgelassen wird, musst du nochmal das selbe Rechteck zeichnen, diesmal jedoch mit Schwarz. D.h. du musst dir die X- und Y-Koordinaten intern merken (hast du ja glaub ich bereits in xstart und ystart). |
Grundsätzlich richtig. Aber:
Was ist, wenn man das Rechteck erst zu groß wählt und die Maus dann wieder quasi zurück bewegt?
Ich selber weiß nicht wirklich, wie man so etwas umsetzt.
_________________ Pascal keeps your hand tied. C gives you enough rope to hang yourself. C++ gives you enough rope to shoot yourself in the foot
|
|
ZeitGeist87
      
Beiträge: 1593
Erhaltene Danke: 20
Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
|
Verfasst: Mo 14.05.07 15:38
also is ganz einfach:
2 Privat-Variablen deklarieren:
Delphi-Quelltext 1: 2: 3: 4: 5:
| private myRect: TRect; Farbe: TColor; public ... |
Über den Farbeauswahldialog, weißt du einfach über Farbe:= Farbbox.color die gewünschte Farbe zu.
Im OnMouseDown-Ereignis setzt du über Image.Pen.Color:= clSilver die Farbe deines Zeichenstiftes auf Silber/Grau.
Am Schluss in der OnMouseMove-Prozedure deklarierst du folgendes:
Delphi-Quelltext 1: 2: 3: 4:
| myRect.Topleft.x:= TopLeft.x; myRect.Topleft.y:= TopLeft.y; myRect.BottomRight.x:= BottomRight.x; myRect.BottomRight.y:= BottomRight.y; |
Dann gibts da ne Drawing-Prozedure
Da baust du einen Case auf drawingtool ein:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9:
| Image.Canvas.Pen.Color:= Farbe;
case drawingtool of dtRectangle: Image.Canvas.Rectangle(myRect); dtEllipse: Image.Canvas.Ellipse(myRect); dtRoundedRect: Image.Canvas.RoundedRect(x1, y1, x2, y2, x3, y3); end; |
LG
Stefan
PS Das eine *reck*ack hab ich gelesen
_________________ Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
|
|
|