Delphi-PRAXiS
Seite 1 von 2  1 2   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   TBitmap und NonVcl (https://www.delphipraxis.net/190265-tbitmap-und-nonvcl.html)

EWeiss 19. Sep 2016 03:27


TBitmap und NonVcl
 
Nur mal Interesse halber.

In wie weit widerspricht sich das wenn man TBitmap anstelle von HBitmap verwendet? (also reines WinApi)
Sollte man konsequent darauf verzichten ? Und anstelle dessen nur Graphics verwenden.

Sollte sich das widersprechen muss ich wohl noch etwas an meiner ScrollBox basteln.
Die zwar intern kein TBitmap verwendet aber halt im Example selbst.

gruss

jaenicke 19. Sep 2016 06:46

AW: TBitmap und NonVcl
 
Wenn du die Anwendung mit NonVcl klein halten willst, kannst du TBitmap natürlich raus lassen um nicht die VCL, in dem Fall die Unit Vcl.Graphics, einbinden zu müssen.

Ansonsten erstelle ich um die API-Handles gerne mal ein TCanvas oder TBitmap um diese einfacher zu nutzen.

EWeiss 19. Sep 2016 07:02

AW: TBitmap und NonVcl
 
Zitat:

Zitat von jaenicke (Beitrag 1347971)
Wenn du die Anwendung mit NonVcl klein halten willst, kannst du TBitmap natürlich raus lassen um nicht die VCL, in dem Fall die Unit Vcl.Graphics, einbinden zu müssen.

Ansonsten erstelle ich um die API-Handles gerne mal ein TCanvas oder TBitmap um diese einfacher zu nutzen.

Ok..
Ich halte mich innerhalb meiner DLL an die Win32 API.
Ich denke mal in den Beispielen TBitmap zu verwenden dürfte nicht so ein Problem sein wenn man von der größe einer Datei mal absieht.

Ich habe die Frage mal so hingeworfen da man eigentlich VCL und WIN32 Api nicht mixen sollte.
Letztendlich tut aber die VCL auch nichts anderes.

Ohne die WIn32 API kommt die VCL auch nicht aus.

gruss

Zacherl 19. Sep 2016 07:12

AW: TBitmap und NonVcl
 
Zitat:

Zitat von EWeiss (Beitrag 1347972)
Ich habe die Frage mal so hingeworfen da man eigentlich VCL und WIN32 Api nicht mixen sollte.

Wer sagt das? Die VCL ist ja nichts anderes als ein Wrapper für die Win32 API. Meiner Meinung nach spricht nichts dagegen beides zu mischen (sofern man ausschließlich für Windows compiled). An manchen Stellen stößt die VCL halt an ihre Grenzen und man kommt ohne ein paar direkte Aufrufe der WinAPI nicht weiter. Grundsätzlich ist die Verwendung der VCL natürlich schöner, da man hier objektorientiert arbeitet.

EWeiss 19. Sep 2016 07:22

AW: TBitmap und NonVcl
 
Zitat:

Grundsätzlich ist die Verwendung der VCL natürlich schöner, da man hier objektorientiert arbeitet.
Das ist Geschmacksache und Aufwendungsbedingt.
Du sagst doch selbst das man mit der VCL an seine grenzen stößt. (Ohne teure Zusatz Komponente).

Nebenbei ich werde noch einen Designer entwerfen mit dem man meine Visuellen Komponente incl. Window
zusammen stellen kann ohne das man alles jedes Mal von Hand im Code machen muss.
Ist schwierig aber umsetzbar.

Im Moment bin ich mit einer ProgressBar dran.

Zitat:

Die VCL ist ja nichts anderes als ein Wrapper für die Win32 API.
Ich habe nichts anderes behauptet..

Zitat:

Wer sagt das?
Suche mal hier NonVcl und mischen ;)
Luckie ist einer der dieser Meinung ist/war.

gruss

jaenicke 19. Sep 2016 10:17

AW: TBitmap und NonVcl
 
Zitat:

Zitat von EWeiss (Beitrag 1347974)
Nebenbei ich werde noch einen Designer entwerfen mit dem man meine Visuellen Komponente incl. Window
zusammen stellen kann ohne das man alles jedes Mal von Hand im Code machen muss.
Ist schwierig aber umsetzbar.

Wir haben das auch bisher selber gemacht gehabt, aber für wenig Geld gibt es für die VCL visuelle Designer, in die man bei eigener Umsetzung ansonsten so viel Entwicklungszeit stecken müsste, dass es sich schlicht überhaupt nicht lohnen würde...
Ob man die für deine Zwecke umfunktionieren könnte, wäre die Frage.

Medium 19. Sep 2016 10:18

AW: TBitmap und NonVcl
 
Es kommt beim Mischen natürlich immer darauf an, dass man weiss was man tut ;) Sonst könnte es an manchen Stellen passieren, dass man mit direkten API Aufrufen zu via VCL erstellten Ressourcen Dinge verdreht, ohne dass das zugehörige VCL-Objekt davon etwas merkt, und sich fortan nicht mehr so nett verhält. Kommt aber immer sehr individuell auf die konkret eingesetzten Klassen und Operationen an. Rein technisch ist das kein Problem, man muss nur die Fallstricke sehr genau kennen. Und das tun die meisten (mir inklusive) nicht überall.

himitsu 19. Sep 2016 10:23

AW: TBitmap und NonVcl
 
TBitmap ist nicht VCL. (Visual Control Library)

TBitmap ist NonVCL bzw. RTL, da nicht visible. :stupid:


PS: Man kann auch mit der VCL eine TForm erstellen, bindet dann diese Ressource (DFM) in sein Programm ein und dann ist es nicht verboten diese DFM selber zu parsen und daraus zur Laufzeit eine NonVCL-Form zu generieren, oder vorher sich daraus einen Quellcode generieren zu lassen, der diese Form dann erstellt.
Delphi-Referenz durchsuchenTReader
Oder man baut sich NonVCL-Ersatzklassen (von TComponent abgeleitet) mit den selben Namen/Alias und gleichen Property (die, welche nötig sind) und kann sich dann vom DFM-Loader diese Komponenten aus der DFM-Erstellen lassen.

Neutral General 19. Sep 2016 10:24

AW: TBitmap und NonVcl
 
Zitat:

Zitat von himitsu (Beitrag 1347983)
TImage ist nicht VCL. (Visual Control Library)

TImage ist NonVCL bzw. RTL, da nicht visible. :stupid:

To be or not to be :mrgreen:

Ich schätze das 2. sollte TBitmap heißen ;)

EWeiss 19. Sep 2016 10:26

AW: TBitmap und NonVcl
 
Zitat:

Ob man die für deine Zwecke umfunktionieren könnte, wäre die Frage.
Ist gut gemeint aber auf der Basis von Fremden Code etwas aufbauen zu wollen halte ich für nicht angemessen.
Denke auch nicht das Wenn ich eine Komponente Kaufe es gern gesehen würde wenn ich deren Skins, Code was auch immer für eigene Zwecke missbrauche.
Auf meine weise trete ich niemanden auf den Schlips.

Wo bleibt dann der Spaß? ;)
Ich denke zwar nicht das die Leute hier mit meinen Projekten allzu viel anfangen können.
Aber zumindest haben doch einige von meinen Beiträgen bzg. NonVcl sich etwas abschauen können.


Zitat:

TImage ist NonVCL bzw. RTL
Du meinst TBitmap ist NonVcl ?
Dann dürfte es kein Problem sein :)


gruss


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:43 Uhr.
Seite 1 von 2  1 2   

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