delphi - beliebig geformtes Programmfenster
lima-city → Forum → Programmiersprachen → Delphi & Pascal
anzeigen
bild
button
code
durchsichtige bereiche
ewig langen quellcode
form
frage
glauben
hilfe
hintergrundfarbe
image
laden
programm
regelfall
region
sender
setzen
stilbruch
windows
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Im Regelfall handelt es sich dabei ledigtlich um ein Bild das durchsichtige Bereiche hat! Die Button und ?hnliches werden in solchen F?llen auch meist durch Bilder ersetzt um keine Stilbruch zu verursachen!
Elandir
P.S. Ja das mit dem Visible:=false is mir im Nachhinein auch aufgefallen ^^! Aber ansonsten wars denk ich ok ! Wie gesagt.. bild in die Form.. und dann kann man irgendwie ne durchsichtige Farbe definieren! Kannst die Form nat?rlich wie unten gesagt auch mittels Windowsfunktionen selber kritzeln.. macht aber normal keiner.
Beitrag ge?ndert am 25.01 07:58 von elandir -
Im Regelfall handelt es sich dabei ledigtlich um ein Bild das durchsichtige Bereiche hat! Deine eigentliche Form kannst du einfach verstecken (Form1.visible=true) und statt dessen das Bild anzeigen lassen. Die Button und ?hnliches werden in solchen F?llen auch meist durch Bilder ersetzt um keine Stilbruch zu verursachen!
sry, aber du hast gr??ten Teils vollkommenen Schwachsinn verzapft. Du kannst das Bild eh nur auf einer Form anzeigen lassen, und wenn und diese ausblendest (?brigens mit Visible:= false), wird das Bild ebenfalls unsichtbar.
aber zur Frage: SetWindowRgn() und CreatePolygonRgn() k?nnte dir weiterhelfen... -
man k?nnte doch einfach die Transparenzfarbe z.B. auf wei? setzen und dann die Hintergrundfarbe der Form auch auf wei? setzen und dann ein Image einf?gen... alles wei?e wird dann durchsichtig..
-
das w?re zu einfach, ich glaub kaum, dass das so geht. sonst w?rde es ja daf?r nich son ewig langen quellcode geben in der hilfe siehe oben.
-
hugo1990 schrieb:
das w?re zu einfach, ich glaub kaum, dass das so geht. sonst w?rde es ja daf?r nich son ewig langen quellcode geben in der hilfe siehe oben.
also ich habs bei mir in Delphi ausprobiert:
so gehts am einfachsten:
Erkl?rung: Das Bild wird in ein Image geladen. Die Hintergrundfarbe des Bildes muss die TransparenzFarbe sein. Die Form wird in die TransparenzFarbe eingef?rbt und diese Farbe wird durchsichtig.
procedure TForm1.FormCreate(Sender: TObject);
var TransparenzFarbe: TColor;
begin
TransparenzFarbe := clWhite;
form1.TransparentColor := True;
form1.TransparentColorValue := TransparenzFarbe;
form1.Color := TransparenzFarbe;
form1.BorderStyle := bsNone;
form1.Image1.Picture.LoadFromFile(ExtractFilePath(Application.ExeName) + '\Bild1.bmp');
form1.Image1.Transparent := False; // wichtig!
end; -
Nagut dann geb ich mich geschlagen, aber warum "einfach", wenn's auch "umst?ndlich" geht. Es f?hren halt viele wege nach Rom.
-
*Mal auch mein Senf dazugeb*
Also es is auch m?glich wenn man eine Region als Datei gespeichert hat (gut dazu m?sst man noch extra ein Programm schreiben was diese Region abspeichert. Hierbei lautet das Zauberwort GetRegionData) diese zu laden.
Hier mal der Beispielcode(zum laden) is also auch ziemlich easy bzw. ?bersichtlich :D
. procedure TForm1.FormCreate(Sender: TObject); var region :TMemoryStream; rgn :HRGN; begin region := TMemoryStream.Create(); region.LoadFromFile('e:\region.dat'); rgn := ExtCreateRegion(nil,region.Size,TRgnData(region.Memory^)); SetWindowRgn(Handle,rgn,true); region.Free; end; .
Beitrag ge?ndert am 12.06.2006 22:13 von funkdoobiest -
Noch mal zur TransparentColor: Das ist zwar schön,aber ich glaube,dass es nur ab Windows 2000 geht. Ich hatte mal soetwas gemacht,aber bei Windows ME ging es soweit ich mich entsinnen kann nicht.
-
Ich glaube auch das es erst ab Windows 2009 geht.
Ich finde die Möglichkeit mit dem Image als Hintergrund ist sehr schlecht. Wenn du ein Formular erstellst, welches rund ist, dann kannst du auch auf eine Ecke klicken, und die Form wird trotzdem aktiviert. Von daher sollte man auf die funktion SetWindowRGN zurückgreifen, welche auch bei Buttons oder Änhlichem funktioniert.
MfG,
dic -
ist sie nicht ich habs grad ausprobiert:
mauszeiger auf sichtbarem bild:mauszeiger selektiert prog beim klick
mauszeiger auf transparenz:mauszeiger selektiert das dahinterliegende delphi beim klick
sprich: dein argument ist haltlos
Beitrag geändert: 23.6.2008 20:49:07 von herrrscher -
Frage:
ab welcher Version haben Forms die Eigenschaft transparentcolor?
Delphi5 kennt sie nicht.
Da funktioniert nur die Variante mit der Region.
grüsse,
limonero
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage