Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi TCanvas (https://www.delphipraxis.net/2340-tcanvas.html)

nailor 18. Jan 2003 20:26


TCanvas
 
Wo gibt es eine Einführung zu der Komponente. Ich komm damit nicht zurecht. Ich will nur ein Canvas erstellen, die Größe einstellen, etwas drauf rummalen (das kann ich mittlerweile) und es dann in Image1 anzeigen. Aber irgendwie krieg ich es nicht hin.

jbg 19. Jan 2003 00:02

TCanvas ist keine Komponente. Es ist eine Kapselung der GDI Funktionen von Windows. Wenn du im Hintergrund (also nicht sichtbar) zeichnen und das Ergebnis dann in einer TImage Komponente darstellen willst, solltest du auf die Canvas eins TBitmap zeichnen.

Delphi-Quellcode:
var Bmp: TBitmap;
begin
  Bmp := TBitmap.Create;
  try
    Bmp.Width := 200;
    Bmp.Height := 200;

    with Bmp.Canvas do
    begin
      Rectangle(10, 10, 190, 190);
    end;

    Image1.Picture.Assign(Bmp); // Bild anzeigen
  finally
    Bmp.Free;
  end;
end;

nailor 19. Jan 2003 00:52

Das wars eigentlich auch schon. Aber warum beschwert Delphi sich nicht, wenn man eine Variable als TCanvas deklariert, und ihr dann TCanvas.Create(self) zuweist?

Christian Seehase 19. Jan 2003 02:17

Moin Nailor,

warum sollte sich Delphi beschweren, wenn einer Variablen vom Typ TCanvas ein Objekt von Typ TCanvas zugewiesen wird?
Dann dürfte auch die Zuweisung eines integer Wertes an eine als integer deklarierte Variable nicht funktionieren.

Oder hab' ich da jetzt etwas falsch verstanden?

jbg 19. Jan 2003 08:34

Zitat:

Zitat von Nailor
Aber warum beschwert Delphi sich nicht, wenn man eine Variable als TCanvas deklariert, und ihr dann TCanvas.Create(self) zuweist?

Der Konstruktor von Canvas hat keine Parameter.

nailor 19. Jan 2003 11:36

Zitat:

Zitat von Christian Seehase
Moin Nailor,

warum sollte sich Delphi beschweren, wenn einer Variablen vom Typ TCanvas ein Objekt von Typ TCanvas zugewiesen wird?
Dann dürfte auch die Zuweisung eines integer Wertes an eine als integer deklarierte Variable nicht funktionieren.

Oder hab' ich da jetzt etwas falsch verstanden?

nö, richtig verstanden. Aber warum sollte man eine Variable erstellen, bzw. einer Variablen was zuweisen können, wenn man damit nachher eh nix mehr mit anfangen kann? Wenn man die TCanvas-Variable dann einem Image zuweisen könnte wäre ja alles OK, aber es geht ja nicht.

Zitat:

Zitat von jbg
Der Konstruktor von Canvas hat keine Parameter.

ups. Kommt davon, wenn man es nicht erst nochmal in Delphi testet. Aber jedenfalls, wenn man sie erstellt, kann man nicht mit weiterarbeiten. Wenn man ein TBitmap erstellt, kann man aber mit dessen Canvas arbeiten...

jbg 19. Jan 2003 16:08

Eine Canvas ist nicht die Zeichenfläche selbst. Sie liefert nur die Funktionen, um auf einer Zeichenfläche zu malen. Wenn du also eine neue Canvas erstellst, gibt es nichts worauf diese zeichnen kann. Damit dies erst möglich wird, muss man der Handle-Eigenschaft der Canvas einen (gültigen) Gerätekontext (DC) zuweisen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:45 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz