AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Auf ein Shape zeichnen (TCanvas)

Ein Thema von Chaosente · begonnen am 28. Jun 2007 · letzter Beitrag vom 28. Jun 2007
Antwort Antwort
Chaosente

Registriert seit: 20. Aug 2006
80 Beiträge
 
#1

Auf ein Shape zeichnen (TCanvas)

  Alt 28. Jun 2007, 12:43
Hallo,
ich möchte gerne etwas auf ein Shape zeichnen, am liebsten mit TCanvas ! Wenn ich die hilfe aufrufe, sagt die mir, das TCanvas vererbt wird, aber wenn ich versuche canvas aufzufrufen sagt er mir es sei ein unbekannter bezeichner...

kennt isch jemand damit aus?
danke
  Mit Zitat antworten Zitat
Benutzerbild von Tiuri
Tiuri

Registriert seit: 22. Sep 2006
Ort: Celle
38 Beiträge
 
Delphi 2005 Personal
 
#2

Re: Auf ein Shape zeichnen (TCanvas)

  Alt 28. Jun 2007, 14:11
Da das Canvas-Objekt erst in TGraphicControl eingeführt wird, aber TShape von TControl abgeleitet wird, kennt TShape das Canvas-Objekt nicht.
An deiner Stelle würde ich einfach das Canvas des Formulars nehmen und damit auf das TShape zeichnen.
  Mit Zitat antworten Zitat
Nuclear-Ping
(Gast)

n/a Beiträge
 
#3

Re: Auf ein Shape zeichnen (TCanvas)

  Alt 28. Jun 2007, 14:23
... oder eine TPaintBox, TImage, etc.
  Mit Zitat antworten Zitat
Benutzerbild von ChrisE
ChrisE

Registriert seit: 15. Feb 2006
Ort: Hechingen
504 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

Re: Auf ein Shape zeichnen (TCanvas)

  Alt 28. Jun 2007, 15:06
Hallo Chaosente,

bevor ich auf deine Frage antworte:
Zitat von Tiuri:
Da das Canvas-Objekt erst in TGraphicControl eingeführt wird, aber TShape von TControl abgeleitet wird, kennt TShape das Canvas-Objekt nicht.
Ich kann mir nicht helfen, aber bei mir ist TShape von TGraphicControl abgeleitet.

Nun zu Deiner Frage:
Zitat von Chaosente:
[...]Wenn ich die hilfe aufrufe, sagt die mir, das TCanvas vererbt wird, aber wenn ich versuche canvas aufzufrufen sagt er mir es sei ein unbekannter bezeichner...
Die Canvas des Shapes ist eine Eigenschaft von TShape (genauer, sie wird von TGraphicControl eingeführt). Diese wird aber als Protected eingeführt, d.h. du kannst innerhalb der Klasse TShape auf die Canvas zugreifen, allerdings nicht von außen, also wenn du eine Instanz der Klasse TShape ansprichst.
Du hast die Möglichkeit entweder eine eigene Klasse von TShape abzuleiten und die Methode (ebenfalls protected) Paint zu überschreiben
Delphi-Quellcode:
TMyShape = class(TShape)
protected
  procedure Paint;override;
end;
[...]
procedure TMyShape.Paint;
begin
  inherited;
// hier tun was du willst
end;
Nachteil: Um die Klasse als Componente wie TShape zu nutzten muss sie zusätzlich Registriert werden etc. Wird wahrscheinlich zu viel aufwand werden.

ODER:


Daher würde ich in Richtung die Richtung von Nuclear-Ping gehen
Zitat von Nuclear-Ping:
... oder eine TPaintBox, TImage, etc.
und anstatt des Shapes eben die gute alte Paintbox verwenden und in der Paintbox z.B. das Ereignis OnPaint nutzen zum zeichen.

Gruß, Chris
Christian E.
Es gibt 10 Arten von Menschen, die die Binär lesen können und die die es nicht können

Delphi programming rules
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:45 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz