![]() |
Einem Label (mit SS_BITMAP) eine tBitmap-Variable zuweisen?
Schönen sonnigen Tag euch. :)
Ich würde gerne folgende Erweiterung bewerkstelligen: Vorher: Habe ein Label mit u.a. dem Parameter "SS_BITMAP", welcher per Kombination von einer Bildressource und der SendMessage-Funktion, zu einem funktionierenden "Speedbutton" umfungiert wurde. Jegliche Routinen und Nachrichteninteraktionen klappen auch zufriedenstellend.
Delphi-Quellcode:
Mein neuer Ansatz/mein Problem:
(*******************************************)
(* Hier ein Stückchen Beispielcode. *) (* Soweit klappt der Quellcode einwandfrei,*) (* ich habe keine Probleme. *) (*******************************************) const IDC_Beispiel_Label = 123; var Beispiel_Label : DWord; Bitmap_handle : HBITMAP; [...] (* Erstellung eines Labels, mit einem Bildparameter. *) Beispiel_Label := CreateWindowEx ( 0, 'STATIC', '', WS_VISIBLE or WS_CHILD or SS_BITMAP or SS_REALSIZEIMAGE, 0, 0, 200, 200, FormMain.hWnd, IDC_Beispiel_Label, hInstance, nil ); (* Das Handle (hier: Bitmap_handle) hat nun das Ressourcebild am Anker. *) Bitmap_handle := LoadBitmap( hInstance, MAKEINTRESOURCE(180)); (* Dem Label wird per Handle das Bild zugewiesen. *) SendMessage(Beispiel_Label,STM_SETIMAGE,IMAGE_BITMAP,Bitmap_handle); [...] Ich würde gerne diesem Button, nicht direkt das Ressourcebild zuweisen, sondern eine Variable von tBitmap. Sinn dieser Idee: Ich bastele mir ein schwarzes Rechteck (0,0,100,100) und setze dort mein Ressourcebild(width=50,height=50) an der Stelle "left := 25" und "top := 25" ein. Danach wird die tBitmap-Variable an meinen Button gesendet. Ich habe jetzt schon einiges versucht und mir ewiges Zeugs in Google durchgelesen. Weitergekommen bin ich leider nicht. :-| Cii jaa©$me graphicar |
Re: Einem Label (mit SS_BITMAP) eine tBitmap-Variable zuweis
Moin!
Ein TBitmap hat eine Property Handle die das Handle (HBITMAP) des Bitmaps zurück gibt. MfG Muetze1 |
Re: Einem Label (mit SS_BITMAP) eine tBitmap-Variable zuweis
Die Frage gilt weiterhin als unbeantwortet.
Danke für deine Antwort, sie bringt mir nur leider nichts. In der exakten Welt der WinApi-Programmierung existiert tBitmap nur als einfacher Record, welcher nicht das von mir gewünschte Feldelement beinhaltet.
Delphi-Quellcode:
Die Delphibibliothek-Graphics beinhaltet eine genormete
{$EXTERNALSYM tagBITMAP}
tagBITMAP = packed record bmType: Longint; bmWidth: Longint; bmHeight: Longint; bmWidthBytes: Longint; bmPlanes: Word; bmBitsPixel: Word; bmBits: Pointer; end; TBitmap = tagBITMAP; {$EXTERNALSYM BITMAP} BITMAP = tagBITMAP; Klassenstruktur, welche u.a. das benannte Attribiut .handle offenlegt. Danke für die Hilfe, doch das ist hier das Win32Api-Board. Kann wer etwas mit dem record anfangen? Ist da vielleicht irgendwo ein handle versteckt und ich bin so blauäugig und sehe es nicht? :-| Cii jaa©$me graphicar |
Re: Einem Label (mit SS_BITMAP) eine tBitmap-Variable zuweis
Moin!
1. Unabhängig ob es nun das WinAPI Board ist - du kannst doch trotzdem ein Graphics.TBitmap nutzen (wollen). 2. Diese ![]() ![]() 3. Ich kapier bis heute nicht was du willst. MfG Muetze1 |
Re: Einem Label (mit SS_BITMAP) eine tBitmap-Variable zuweis
Nee, du hast schon recht. So löse ich es auch bisher. Doch dies ist
nicht der der Weg, wie ich ihn mir dachte. Meine Exe-Datei gewinnt (meines Erachtens: ) "unnötig" an Dateigröße, durch die Delphibilbiotheks- einbindung der Graphics.pas (und dazu noch der Classes.pas). Sinn der nonVCL-Programmierung war ja die Vermeidung der Delphi- Standardbibliotheken und das Augenmerk auf die Dateigröße. Es kann nicht sein, dass ich von einer 16 KB auf eine 86 KB-Anwendung komme, nur da ich ein simples Bild zeichnen will. Habe gestern angefangen die Graphics-Delphibibliothek auf meine Bedürfnisse umzubasteln. Bin nun bei einer 64 KB-Anwendung und fange heute (oder morgen) mit der Classes.pas an. Mein jetzigen Projekt hat 23 KB Spielraum, welcher durch die Nutzung der Delphi-Bibliothek Graphics auf gut 39 Kb wächst - sinnlos wie ich finde. Ich bekomme die Datei kleiner und wenn ich noch zehn weitere Delphibibliotheken dafür umschreiben muss. Ich bin vernarrt auf die Möglichkeit kleine Exen zu schreiben, bitte verzeihe mir diese Passion. Cii jaa©$me graphicar |
Die Frage gilt fortan als gelöst.
Die Frage gilt fortan als gelöst.
Habe erfolgreich gegen meinen inneren Schweinenhund die Oberhand gewonnen und die Graphics-Standardbibliothek durch den Fleischwolf gejagt. Mein Fazit: Exe von 86,5 auf 23,0 KB runtergeschraubt. Eine Exa^10-Menge "sinnlos" Zeit verschwendet und die Einsicht, dass ich doch recht hatte. Es lebe nonVCL. :) Cii jaa©$me graphicar :: member of Aitiba |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:58 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 by Thomas Breitkreuz