ClipRect bei TCanvas
-
Hallo,
ich möchte Messdaten in einem TCanvas-Objekt darstellen.
Probleme ergeben sich nun, wenn ich das Fenster über seine ursprüngliche Größe hinaus vergrößere. Dann ist nur noch eine Bildfläche von der ursprünglichen Größe be"mal"bar, der Rest bleibt grau, auch wenn in diesm Bereich explizit gezeichnet wird.
Offensichtlich spielt da das ClipRect eine Rolle, nur weiß ich nicht, wie man dieses Rechteck setzen kann. Wer weiß Rat?
-
Hallo
da es keine selbstständigen Canvas-Objekte gibt : zu welchem Control gehört die Canvas-Fläche? Zu dem Form? Dann vergrößert sich auf jedenfall auch desen Canvas automatisch.
bis bald
akari
-
Es ist ein Objekt unter TImage.
Das übergeordnete TImage-Objekt hat übrigens die vergrößerten Werte für Height und Width.
-
Hallo
dann must du bei dem TImage die Eigenschaft Align auf alClient setzen, damit es automatisch mitwächst.
Alternativ auch in der Eingeschaft Anchor alle Optionen auf true./Edit : Hintergrund ist das das TImage eben nicht automatisch auf die Größenveränderung von den form reagiert, sondern erst wenn du diese Optionen setzt.
Und damit wird dann auch die Canvas-Fläche automatisch vergößert.bis bald
akari
-
Das Image hat die Eigenschaft Align = alClient.
Es ist aber - damit noch ein paar Steuerelemente im Formular untergebracht werden sollen - in ein Panel eingebettet, welches die Eigenschaft Align = alTop und die Anchors akLeft, akTop, akRight jeweils true hat.
Die Höhe und Breite des Panel verändere ich auch schon mit dem OnCanResize-Ereignis des Formulars...
-
Hallo
- wenn dein Panel bereits die Anchors hat, warum willts du dann noch selber manuell im Event desen Größe verändern? Di Anchors machen das automatisch
- warum benutzt du OnCanResize und nicht OnResize?
- sehe ich nicht was dein Problem ist. In meinem Bespiel wird das Image ordnungsgemäß vergrößert. Ich verstehe eh nicht was du mit ClipRect meinst... die aktuellen Dimensionen des Image und damit auch die der Canvas-Fläche bekommst du über Image->Width und Image->Height.bis bald
akari
-
Wenn das TImage sich zur Laufzeit vergrößert/verkleinert und das Bitmap bemalt wurde ändert sich nicht die größe des Bitmaps des TImages.
Also muß man nach einem Resize die Bitmapgröße den Image anpassen.Image1->Picture->Bitmap->Height = Image1->ClientHeight; Image1->Picture->Bitmap->Width = Image1->ClientWidth;
-
Hallo akari,
deine Frage, unter welchem Objekt das TCanvas-Objekt steht, hat mich auf den genialen Einfall gebracht, statt TImage TPaintBox zu verwenden. Damit geht's jetzt.
Vielen Dank!