Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Fensterform bestimmen (https://www.delphipraxis.net/32738-fensterform-bestimmen.html)

Mysterious Spirit 27. Okt 2004 21:46


Fensterform bestimmen
 
Hallo, ich will das Formularfenster meines Programmes wie die Form eines bestimmten Bitmaps aussehen lassen. Dazu ahbe ich folgendes gefudnen

http://www.swissdelphicenter.ch/de/showcode.php?id=582

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

Nothine 28. Okt 2004 04:07

Re: Fensterform bestimmen
 
mit diesem auch bei swissdelphicenter gefundenen code ( http://www.swissdelphicenter.ch/de/showcode.php?id=1774 ) lässt sich eine Grafik (TGraphic) in ein TBitmap umwandeln, daraus ergäbe sich dann (angelehnt an den link von dir) in etwa folgender code fürs FormCreate:
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;

Mysterious Spirit 28. Okt 2004 10:52

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

Dax 28. Okt 2004 10:58

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?

Mysterious Spirit 28. Okt 2004 11:03

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?

Nothine 28. Okt 2004 18:48

Re: Fensterform bestimmen
 
Zitat:

Zitat von Mysterious Spirit
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

ein TImage besitzt eine property Picture: TPicture die wiederum ihrerseits ein Graphic (TGraphic) objekt enthält, dementsprechend ist es nicht direkt ein anderer typ

Mysterious Spirit 29. Okt 2004 13:29

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