Hallo Leute.
Bin neu hier, das ist mein erster Beitrag. Habe folgendes Problem:
Bin von Borland Pascal 7.0 auf Lazarus umgestiegen. Musste mich erst
daran gewöhnen, dass ich nun auf Canvas zeichne, aber immerhin benutzt
Lazarus ja noch die alten Pinsel und Stifte .
Nun möchte ich aber in einem rechteckigen Bereich auf ein Canvas zeichnen.
Bei Delphi geht das wohl mit SelectClipRect(); oder so. Ich habe also nun
solch ein 'Beispiel' auf Lazarus compiliert und bekam die Fehlermeldung,
dass der Compiler die HRgn nicht kennt. Auch SelectClipRect(); kennt er nicht. Hat jemand ne Idee? Ist dringend
MfG Antrepolit
Clipping auf Canvas?
-
- Lazarusforum e. V.
- Beiträge: 2809
- Registriert: Sa 9. Sep 2006, 18:05
- OS, Lazarus, FPC: Linux (L trunk FPC trunk)
- CPU-Target: 64Bit
- Wohnort: Dresden
- Kontaktdaten:
also ich würde mal sagen, einen viereckigen Bereich zeichnet man am einfachsten so:
Und dabei einfach die koordinaten der beiden Eckpunkte übergeben.
Code: Alles auswählen
Canvas.Rectangle(x1,y1,x2,y2);
Und dabei einfach die koordinaten der beiden Eckpunkte übergeben.
-
- Beiträge: 340
- Registriert: Di 12. Sep 2006, 08:57
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Kontaktdaten:
-
- Lazarusforum e. V.
- Beiträge: 2809
- Registriert: Sa 9. Sep 2006, 18:05
- OS, Lazarus, FPC: Linux (L trunk FPC trunk)
- CPU-Target: 64Bit
- Wohnort: Dresden
- Kontaktdaten:
Ach so, da habe ich dich falsch verstanden.
Um den Bereich zu begrenzen gibts doch eigentlich eine TPaintBox, über deren Canvas dann nur in der Paintbox gezeichnet werden kann, suchst du vielleicht soetwas?
Würde dein Problem, wenn auch mit zusätzlicher Komponete eigentlich lösen, wenn ich dich nicht schon wieder missverstanden hab.
Um den Bereich zu begrenzen gibts doch eigentlich eine TPaintBox, über deren Canvas dann nur in der Paintbox gezeichnet werden kann, suchst du vielleicht soetwas?
Würde dein Problem, wenn auch mit zusätzlicher Komponete eigentlich lösen, wenn ich dich nicht schon wieder missverstanden hab.
-
- Beiträge: 340
- Registriert: Di 12. Sep 2006, 08:57
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Kontaktdaten:
Habe mein Problem nun gelöst.
Ein schlauer mensch sagte einst, dass nichts so lästig sei, wie niedergeschriebene Fehler.
Er hat Recht! In den kursierenden Exaples für Clipping (portiert
von Delphi) steht sowas wie:
Uses LCLTypes, LCLIntf;
[]
Var Rgn : HRgn;
Rgn := SelectClipRgn([TRECT]);
SelectClipRgn(Canvas.Handle, Rgn);
[/]
Mittlerweile weiß ich, dass die unit LCLTypes nur LCLType heißt, ohne S.
Mit Hilfe der Clipping-Methode kann man in einer Paintbox einen Bereich
zum Zeichnen eingrenzen. Beispielsweise, wenn man in ein Diagramm mit
einem brush der Dicke 6 etwas zeichnet. Der Brush wird zwangsläufig, aufgrund
seiner Dicke über die schönen Diagrammlinien gehen. Wenn man, wie ich,
das nicht will, rezeugt man nun den Clipping-Bereich innerhalb der Diagramm-Achsen.
Dann wird nur darin gezeichnet, und die dicken, runden Enden der Linie
werden quasi abgeschnitten .
Der Clipping-Bereich kann auch ellipsenförmig oder polygonal sein . Das ermöglicht Anwendungen wie Photoshop erst das Füllen
von Selektionen.
MfG
Ein schlauer mensch sagte einst, dass nichts so lästig sei, wie niedergeschriebene Fehler.
Er hat Recht! In den kursierenden Exaples für Clipping (portiert
von Delphi) steht sowas wie:
Uses LCLTypes, LCLIntf;
[]
Var Rgn : HRgn;
Rgn := SelectClipRgn([TRECT]);
SelectClipRgn(Canvas.Handle, Rgn);
[/]
Mittlerweile weiß ich, dass die unit LCLTypes nur LCLType heißt, ohne S.
Mit Hilfe der Clipping-Methode kann man in einer Paintbox einen Bereich
zum Zeichnen eingrenzen. Beispielsweise, wenn man in ein Diagramm mit
einem brush der Dicke 6 etwas zeichnet. Der Brush wird zwangsläufig, aufgrund
seiner Dicke über die schönen Diagrammlinien gehen. Wenn man, wie ich,
das nicht will, rezeugt man nun den Clipping-Bereich innerhalb der Diagramm-Achsen.
Dann wird nur darin gezeichnet, und die dicken, runden Enden der Linie
werden quasi abgeschnitten .
Der Clipping-Bereich kann auch ellipsenförmig oder polygonal sein . Das ermöglicht Anwendungen wie Photoshop erst das Füllen
von Selektionen.
MfG