![]() |
Fensterform bestimmen
Hallo, ich will das Formularfenster meines Programmes wie die Form eines bestimmten Bitmaps aussehen lassen. Dazu ahbe ich folgendes gefudnen
![]() Schön und gut, funktioniert auch einwandfrei. Nur ich will bei dem programm nciht das Bitmap bei packen, deshalb ahbe ich es versucht in einer Imagelist zu hinterlegen, was aber das programm so groß amcht dass ich es weder speichern noch kompilieren lassne kann. Kann ich soetwas auch mit JPGs oder Gifs realisieren, da diese ja kleiner sind, oder gibt es einen Umweg wie ich ohne ein Bild immer zu laden die Fensterform bestimmen kann |
Re: Fensterform bestimmen
mit diesem auch bei swissdelphicenter gefundenen code (
![]()
Delphi-Quellcode:
function GraphicToBMP(Graphic: TGraphic): TBitmap;
begin Result := TBitmap.Create; Result.Width := Graphic.Width; Result.Height := Graphic.Height; Result.Canvas.Draw(0,0,Graphic); end; procedure TForm1.FormCreate(Sender: TObject); var Picture: TPicture; begin Picture := TPicture.Create; try Picture.LoadFromFile('...'); {JPG- und BMP-Dateien, GIF sind in Delphi nicht standartmäßig implementiert} FRegion := CreateRegion( GraphicToBMP(Picture.Graphic) ); SetWindowRgn(Handle,FRegion,True); finally Picture.Free; end; end; |
Re: Fensterform bestimmen
Ersteinmal danke für den Tipp, aber dann müsste ich das Bild immernoch extern laden oder kann man irgendwo eine TGrafik Datei hinterlegenen, TIMage und Timagelist sind ja halt, wie der Name schon sagt von einem anderen Typ
|
Re: Fensterform bestimmen
Wenn du die Bitmaps nicht veränderst, könntest du doch aus den Outlines der Bitmap ein Array erstellen, dass die begrentenden Punkte enthält, und dann mit CreatePolygonRgn eine Window-Region erstellen.
Dann rufst du SetWindowRgn(DeineRgn) auf, und dein Problem sollte gelöst sein. Die andere Möglichkeit wäre, die Bitmaps ZLib-komprimiert zu speichern und zu laden. BtW: Sind deine Bitmaps monochrom? |
Re: Fensterform bestimmen
Ja die Bitmaps sind manochrom, da ich sie ja nur als Formvorlage brauche, wie komm ich den an das Array dran und dann an den dazu passenden Befehl?
|
Re: Fensterform bestimmen
Zitat:
|
Re: Fensterform bestimmen
Danke erstmal,d as ahbe ich auchgesehen, ich hatte den code an eienr stelle falsch angewandr. Jetzt funzt aber alles. Danke für eure Hilfe.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:00 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