Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Prism Komponente für .net Projekt entwickeln.. [Falsches Forum] (https://www.delphipraxis.net/98920-komponente-fuer-net-projekt-entwickeln-%5Bfalsches-forum%5D.html)

CarstenP 4. Sep 2007 09:17


Komponente für .net Projekt entwickeln.. [Falsches Forum]
 
Hallo liebe Delphi Praxis und .NET Experten!

Ich habe im Moment ein Problem. Ich habe hier "alten" Delphi 6 Sourcecode der Grafiken in ein Canvas malt.

Das funktionierte bisher so, dass wenn man eine normale Windowsanwendung mit einem Formular schreibt, man sich den Canvas eines GUI Elementes schnappt, und selber eigene kleine Grafiken im Draw in das Projekt malt.

Nun wollte Ich daraus gerne ein .NET User Control für Windows Forms Package machen. Die Idee dahinter ist, das jeder der einfach meine Package mit einbindet, eine neue Komponente in seine GUI einbinden kann, in der er dann eine Methode aufrufen kann, die dann eine kleine Grafik malt.

Nun bin ich schon dank Elmar Warken (Delphi Buch) so weit das ich ein Package habe, das ein System.Windows.Forms.UserControl implementiert. In dem GUI Designer kann ich auch Windows GUI Elemente "einbauen", wenn ich dann aber im Source an den CANVAS des GUI Elements ran will, stelle ich fest das es die GUI Elemente keine Canvas Eigenschaft haben. Wie komme ich an den Canvas ran? Oder funktioniert das unter .NET irgendwie anders?

Wäre für jeden Tipp sehr dankbar!

mit freundlichen Grüßen,
Carsten

PS:Jetzt wo ich nochmal drüber nachdenke, habe ich das ins falsche Forum gepackt, das gehört doch glaube ich eher zu WinForms und co.

CarstenP 5. Sep 2007 09:07

Re: Komponente für .net Projekt entwickeln.. [Falsches Forum
 
Ich antworte mir mal selber, vielleicht findet jemand anderes das noch nützlich.

1. Wenn man ein C# Projekt mit VCL Komponenten (TImage, o.ä.) austatten will, funktioniert das nicht.

2. WinForms Komponenten kennen das Canvas - "Prinzip" nicht, praktisch formuliert, sie bieten nicht die notwendigen Methoden/Eigenschaften.

3. Man kann aber VCL Formulare in ein Package packen, das dann aus C# heraus aufgerufen werden kann. In dem VCL Formular, kann ich dann auch das Canvas Prinzip wiederfinden.

Um böse Kommentaren direkt entgegenzuwirken.

Zu 1. :
Wenn man drüber nachdenkt ist das recht offensichtlich, aber die ganzen Begriffe und Technologien muss man erstmal erkennen und dann voneinander abgrenzen können. Ich konnte das vorher zumindest noch nicht.

Zu 2. :
Das wusste ich aus der C# Welt schon vorher, ich hatte aber irgendwie gehofft, das Borland bzw. CodeGear die WinForms in irgendeiner Form erweitert hat.

Zu 3. : Das ist nicht 100%ig die schickste Lösung, weil die Einbindung in die C# GUI flöten geht, aber ist wohl der vernünftigste Kompromiss aus "alte Sourcen wiederverwenden" und ".NET Unterstützung". Die Probleme mit dem Plattformabhängigen Code sind bekannt. Was ja irgendwie die .NET Idee untergräbt, aber das habe ich nicht zu entscheiden.

mit freundlichen Grüßen,
Carsten

Alter Mann 5. Sep 2007 14:33

Re: Komponente für .net Projekt entwickeln.. [Falsches Forum
 
Hi,

wer hindert dich daran sich in das Paint einzuklinken und dann deine Routine aufzurufen?
Der void Paint(object sender, PaintEventArgs e) wird doch schon alles mitgegeben und Canvas heißt
jetzt eben 'e.graphics'.

Gruß

CarstenP 5. Sep 2007 15:38

Re: Komponente für .net Projekt entwickeln.. [Falsches Forum
 
Oh, danke! Daran habe ich garnicht gedacht, das werde ich mir nochmal genauer angucken.

stoxx 5. Sep 2007 16:03

Re: Komponente für .net Projekt entwickeln.. [Falsches Forum
 
Zitat:

Zitat von CarstenP
Oh, danke! Daran habe ich garnicht gedacht, das werde ich mir nochmal genauer angucken.

ich würde aber sowieso in das Canvas einen TBitmaps schreiben, und dieses dann erst komplett fertig zeichnen ....
(wegen der Geschwindigkeit)
erst dann die Kopie in das Canvas vom Form oder Paintbox ...

Mach zwar noch nix unter .Net.
Aber irgendein Bitmap sollte es dort ja auch geben :-)
Somit könntest Du dann Deine Canvas funktionen noch nutzen, und müsstest nur den Copy Befehl ändern ..


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:36 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