BMP als Formularhintergrund
Wie definiere ih eine BMP-Datei als Hintergund für mein Formular?
|
Re: BMP als Formularhintergrund
Nimm z.B. von den JVCL-Komponenten das JvFormWallpaper.
|
Re: BMP als Formularhintergrund
... oder selber machen
Stichwort: WM_ERASEBKGND nutzen |
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.
|
Re: BMP als Formularhintergrund
Zitat:
|
Re: BMP als Formularhintergrund
Zitat:
:hi: |
Re: BMP als Formularhintergrund
Zitat:
Wenn Du damit nichts anfangen kannst, empfehle ich Dir die JVCL-Komponente (s.o.) |
Re: BMP als Formularhintergrund
Delphi-Quellcode:
Nur getippt, nicht getestet.
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; 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. |
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! |
Re: BMP als Formularhintergrund
Funktioniert mein Vorschlag nicht?
|
Re: BMP als Formularhintergrund
Nein an der ein oder anderen Stelle hängt sich der Compiler auf...
|
Re: BMP als Formularhintergrund
an welcher Stelle?
|
Re: BMP als Formularhintergrund
"Image1 besitz keine entsprehende Komponente(Ich galube ich weiß nicht wie ich mein Bild in Image1 "verfügbar mache")!
|
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.
|
Re: BMP als Formularhintergrund
Zitat:
Oder aber auch hier. Die SXSkin-Komponenten z.B. sin gar nicht so übel. |
Re: BMP als Formularhintergrund
Zitat:
P.S. Der Rest läuft... |
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! |
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 ;)
|
Re: BMP als Formularhintergrund
Delphi-Quellcode:
Dieser Quelltext funktioniert. Nur wie passiert das automatisch mit einer speziell definieren BMP-Datei, wenn das Programm ausgeführt wird?
procedure TForm1.Button1Click(Sender: TObject);
begin if OpenPictureDialog1.Execute then begin Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName); end; end; |
Re: BMP als Formularhintergrund
Zitat:
|
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().
|
Re: BMP als Formularhintergrund
Zitat:
Zitat:
|
Re: BMP als Formularhintergrund
Wie schreibt man relative Pfade? Bzw. wie sehen solche z.B. aus?
|
Re: BMP als Formularhintergrund
Zitat:
Das war natürlich dämlich! :duck: |
Re: BMP als Formularhintergrund
Hab's raus! Vielen Dank
Delphi-Quellcode:
Image1.Picture.LoadFromFile(ExtractFilePath(ParamStr(0))+'abi.bmp');
|
Re: BMP als Formularhintergrund
Zitat:
|
Re: BMP als Formularhintergrund
Können wir das Formular mal ansehen, wenn's funktioniert hat?
|
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)! |
Re: BMP als Formularhintergrund
Ja, ich muss zugeben, das schaut gut aus!
Und welche Controls kommen jetzt noch auf das Formular? |
Re: BMP als Formularhintergrund
Liste der Anhänge anzeigen (Anzahl: 1)
Es soll ja eigentlich so aussehen:
siehe Anhang! |
Re: BMP als Formularhintergrund
Hmmm, verstehe ich jetzt nicht
:roll: |
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:
|
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) |
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?) |
Re: BMP als Formularhintergrund
Zitat:
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