Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi BMP als Formularhintergrund (https://www.delphipraxis.net/126748-bmp-als-formularhintergrund.html)

AlexanderBrade 1. Jan 2009 19:18


BMP als Formularhintergrund
 
Wie definiere ih eine BMP-Datei als Hintergund für mein Formular?

blawen 1. Jan 2009 19:51

Re: BMP als Formularhintergrund
 
Nimm z.B. von den JVCL-Komponenten das JvFormWallpaper.

taaktaak 1. Jan 2009 21:10

Re: BMP als Formularhintergrund
 
... oder selber machen
Stichwort: WM_ERASEBKGND nutzen

AlexanderBrade 1. Jan 2009 22:07

Re: BMP als Formularhintergrund
 
Kann mir jemand eine Art Pseudocode liefern? Zumindest einen Ansatz, denn bisherige Hilfen/Stichwörter liefern weder in der Hilfe noch über Google brauchbare Resultate.

Die Muhkuh 1. Jan 2009 22:11

Re: BMP als Formularhintergrund
 
Zitat:

Zitat von AlexanderBrade
Das ist nich wahr, allerdings musst du konkrete Probleme aufzeigen und nicht daher kommen und einen fertigen Anatz verlangen!

:zwinker:

haentschman 1. Jan 2009 22:12

Re: BMP als Formularhintergrund
 
Zitat:

Nimm z.B. von den JVCL-Komponenten das JvFormWallpaper.
...ist ein Ansatz und noch dazu völlig unkompliziert.

:hi:

blawen 1. Jan 2009 22:12

Re: BMP als Formularhintergrund
 
Zitat:

Zitat von AlexanderBrade
Kann mir jemand eine Art Pseudocode liefern? Zumindest einen Ansatz, denn bisherige Hilfen/Stichwörter liefern weder in der Hilfe noch über Google brauchbare Resultate.

Schaue Dich mal hier um.

Wenn Du damit nichts anfangen kannst, empfehle ich Dir die JVCL-Komponente (s.o.)

taaktaak 1. Jan 2009 22:18

Re: BMP als Formularhintergrund
 
Delphi-Quellcode:
type
TForm1 = class(TForm)
  Image1: TImage;
  private
    procedure WMEraseBkgnd (var Msg:TMessage); message WM_ERASEBKGND;
//..

procedure TForm1.WMEraseBkGnd;
var Rect   : TRect;
    MyBrush : THandle;
begin
  Rect.Left :=0;
  Rect.Top  :=0;
  Rect.Right :=ClientWidth;
  Rect.Bottom:=ClientHeight;

  MyBrush:=CreatePatternBrush(Image1.Picture.Bitmap.Handle);
  FillRect(Canvas.Handle,Rect,MyBrush);
  DeleteObject(MyBrush);

  Msg.Result:=0
end;
Nur getippt, nicht getestet.

Anmerkung: Dein Bild muss in Image1 verfügbar sein. Zum Füllen von Hintergründen werden aber besser kleine Bitmaps verwendet, die mehrfach nebeneinander eingeblendet werden können, deren Muster also zueinander passen müssen. Ob der Vorschlag für ein großes Bild taugt, probiere bitte selbst aus.

AlexanderBrade 1. Jan 2009 22:37

Re: BMP als Formularhintergrund
 
Das ganze soll darauf hinauslaufen, dass ich mein Formularlayout optisch etwas aufpolieren kann. Das mit den Skin-Komponenten ist mir zu undurchsichtig, außerdem kosten die alle was(jedes Mal wenn ich compilieren will blockiert er aufgrund der "Demo-Version").
So dachte ich einfach ein Bitmap-File im Hintergrund und es sähe auch schon ganz gut aus...
siehe folgendem Link:
http://www.delphipraxis.net/internal...kinkomponenten

Wie kriegt man so etwas hin?(siehe Bild im vorigen Link) Das scheint so einfach zu sein!

taaktaak 1. Jan 2009 22:41

Re: BMP als Formularhintergrund
 
Funktioniert mein Vorschlag nicht?

AlexanderBrade 1. Jan 2009 22:43

Re: BMP als Formularhintergrund
 
Nein an der ein oder anderen Stelle hängt sich der Compiler auf...

taaktaak 1. Jan 2009 22:44

Re: BMP als Formularhintergrund
 
an welcher Stelle?

AlexanderBrade 1. Jan 2009 22:51

Re: BMP als Formularhintergrund
 
"Image1 besitz keine entsprehende Komponente(Ich galube ich weiß nicht wie ich mein Bild in Image1 "verfügbar mache")!

taaktaak 1. Jan 2009 22:55

Re: BMP als Formularhintergrund
 
Na, du musst ein Image aus der Komponentenpalette auf's Form ziehen (oder selbst erzeugen/löschen) und in dieses Image ein Bild laden. Erst dann kann das funktionieren.

blawen 1. Jan 2009 23:02

Re: BMP als Formularhintergrund
 
Zitat:

mit den Skin-Komponenten ist mir zu undurchsichtig, außerdem kosten die alle was(jedes Mal wenn ich compilieren will blockiert er aufgrund der "Demo-Version").
Siehe mal hier Hier im Forum suchenskin da findest Du doch einige kostenlose Varianten.

Oder aber auch hier.
Die SXSkin-Komponenten z.B. sin gar nicht so übel.

AlexanderBrade 1. Jan 2009 23:05

Re: BMP als Formularhintergrund
 
Zitat:

und in dieses Image ein Bild laden
Aber wie?
P.S. Der Rest läuft...

taaktaak 1. Jan 2009 23:08

Re: BMP als Formularhintergrund
 
Schau dir mal Image.Picture.LoadFromFile() an

PS: Ich finde eine schlechte, aber selbst erstellte Funktionalität, grundsätzlich wertvoller als eine nicht verstandene Fremdkomponente zu nutzen. Insofern, immer erst 'mal selbst versuchen!

Die Muhkuh 1. Jan 2009 23:14

Re: BMP als Formularhintergrund
 
Blawe, der erste Suchlink verweist auf Deine Search-ID, welcher mittlerweile nicht mehr aktuell ist, Du musst den Link mit Suchtags posten ;)

AlexanderBrade 1. Jan 2009 23:22

Re: BMP als Formularhintergrund
 
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenPictureDialog1.Execute then
begin
Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
end;
end;
Dieser Quelltext funktioniert. Nur wie passiert das automatisch mit einer speziell definieren BMP-Datei, wenn das Programm ausgeführt wird?

blawen 1. Jan 2009 23:25

Re: BMP als Formularhintergrund
 
Zitat:

Zitat von Die Muhkuh
Blawe, der erste Suchlink verweist auf Deine Search-ID, welcher mittlerweile nicht mehr aktuell ist, Du musst den Link mit Suchtags posten ;)

Hallo Muhku - Danke für den Hinweis, ich hab's angepasst.

taaktaak 1. Jan 2009 23:28

Re: BMP als Formularhintergrund
 
Nun, du übergibst einen festen Pfad (d.h. verwendest nicht OpenPictureDialog) und rufst die Methode an geeigneter Stelle auf. Ob das im OnCreate() möglich ist, musst du testen, sonst z.B. im OnShow().

blawen 1. Jan 2009 23:28

Re: BMP als Formularhintergrund
 
Zitat:

Zitat von AlexanderBrade
Dieser Quelltext funktioniert. Nur wie passiert das automatisch mit einer speziell definieren BMP-Datei, wenn das Programm ausgeführt wird?

Du meinst beim starten des Programms? -> Einfach z.B. "OnCreate" verwenden.

Zitat:

Zitat von taaktaak
Nun, du übergibst einen festen Pfad

Feste Pfade sollten NIE verwendet werden! Nimm relative Pfade, ansonsten wirst Du unweigerlich Probleme bekommen, wenn Du das Programm auf einem anderen Computer startest.

AlexanderBrade 1. Jan 2009 23:33

Re: BMP als Formularhintergrund
 
Wie schreibt man relative Pfade? Bzw. wie sehen solche z.B. aus?

taaktaak 1. Jan 2009 23:35

Re: BMP als Formularhintergrund
 
Zitat:

Feste Pfade sollten NIE verwendet werden!
Autsch, du hast ja Recht!
Das war natürlich dämlich!
:duck:

AlexanderBrade 1. Jan 2009 23:39

Re: BMP als Formularhintergrund
 
Hab's raus! Vielen Dank
Delphi-Quellcode:
Image1.Picture.LoadFromFile(ExtractFilePath(ParamStr(0))+'abi.bmp');

blawen 1. Jan 2009 23:40

Re: BMP als Formularhintergrund
 
Zitat:

Zitat von AlexanderBrade
Hab's raus! Vielen Dank
Delphi-Quellcode:
Image1.Picture.LoadFromFile(ExtractFilePath(ParamStr(0))+'abi.bmp');

:thumb:

taaktaak 1. Jan 2009 23:41

Re: BMP als Formularhintergrund
 
Können wir das Formular mal ansehen, wenn's funktioniert hat?

AlexanderBrade 1. Jan 2009 23:43

Re: BMP als Formularhintergrund
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ja natürlich:


Aber irgendwie habe ich dabei deine Pozedur garnicht verwendet, sodern einfach TImage der Größe des Formulars angepasst...
Außerdem sieht das auch noch nicht so aus, wie in dem anderen Programm(siehe vorigem Link)!

taaktaak 1. Jan 2009 23:47

Re: BMP als Formularhintergrund
 
Ja, ich muss zugeben, das schaut gut aus!
Und welche Controls kommen jetzt noch auf das Formular?

AlexanderBrade 1. Jan 2009 23:47

Re: BMP als Formularhintergrund
 
Liste der Anhänge anzeigen (Anzahl: 1)
Es soll ja eigentlich so aussehen:
siehe Anhang!

taaktaak 1. Jan 2009 23:52

Re: BMP als Formularhintergrund
 
Hmmm, verstehe ich jetzt nicht
:roll:

AlexanderBrade 1. Jan 2009 23:59

Re: BMP als Formularhintergrund
 
Naja das mit dem BMP als Hintergrund ist ein Anfang, aber das erfasst ja wirklich nur den "TImage-bereich". Nicht z.B. den Steuerbereich mit Maximieren, Minimieren, usw.
Mein BMP sollte das ganze Formular "ausfüllen". Es wäre eben so noch besser. Das ist alles was ich möchte.

hedie, der dieses Programm geschrieben hat sagt:
Zitat:

Die lösung heisst: Microsoft Powerpoint 2007

Damit lassen sich schnell und einfach 3D Effekte und vieles mehr erzeugen
Screenshot --> Paint ausgeschnitten --> BMP einbinden und fertig ist das spitzen design
Aber wie binde ich die BMP-Datei SO ein???

blawen 2. Jan 2009 00:05

Re: BMP als Formularhintergrund
 
Liste der Anhänge anzeigen (Anzahl: 1)
Genau gleich. Beim Formular musst Du einfach die Ränder weglassen. Die entsprechenden Funktionen (schliessen, etc.) musst Du dann aber selber nachbilden.

Bei einem meiner Projekte habe ich es ähnlich gemacht (s. Anhang)

AlexanderBrade 2. Jan 2009 15:09

Re: BMP als Formularhintergrund
 
Wie lässt man denn die Ränder weg?
und wie bekommt man solche "Windows"-Buttons?
Diese Schattierung ist mir auch noch ein Rätsel(oder ist das ganze einfach das BMP?)

Klaus01 2. Jan 2009 15:23

Re: BMP als Formularhintergrund
 
Zitat:

Zitat von AlexanderBrade
Wie lässt man denn die Ränder weg?

Bei der Form
borderStyle = bsNone stellen

Grüße
Klaus


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:31 Uhr.

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