/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
nogen der har lavet designer til vinduefor~
Fra : Filibaba brusk


Dato : 10-12-00 15:46

Er der nogen der har lavet en designer så man kan forme kanten af sine
vinduer som man vil? Det bliver jo efterhånden kedeligt man kun kan lave dem
runde og det umuligt at sidde og finde koordinaterne til en custom form.


mvh
Filibaba?



 
 
Niels (10-12-2000)
Kommentar
Fra : Niels


Dato : 10-12-00 16:20

In article <HFMY5.4401$7E2.358487@news101.telia.com>,
"Filibaba brusk" <skod@aha.skod> wrote:
> Er der nogen der har lavet en designer så man kan forme kanten af
sine
> vinduer som man vil? Det bliver jo efterhånden kedeligt man kun kan
lave dem
> runde og det umuligt at sidde og finde koordinaterne til en custom
form.

Et eller andet sted har jeg fundet et program der hedder "Gabes OddForm
Assistant". Det kan lave Delphi koden til en Window Region ud fra et
bitmap. Jeg kan bare ikke huske hvor jeg fandt det.

--
Niels
--
- I have become Windozed!


Sent via Deja.com http://www.deja.com/
Before you buy.

Nikse (14-12-2000)
Kommentar
Fra : Nikse


Dato : 14-12-00 23:08

Hejsa!

Jeg har lavet en function, der på baggrund af et bitmap billede fjerner en
bestemt farve:

procedure Form1.MakeTransparent(frm: TForm; img: TImage);
// Create transparent region for window.
// First create non transparent intervals for horizontal line.
// Add it to the scanline region. When scanline done, add
// it to the total non transparent region. Move to next horizontal line.
// When all done, set the total non transparent region to the form
// window region.
var
WindowRgn : hrgn;
SpanRgn : hrgn;
x, y : integer;
spanleft : integer;
trColor : longint;
begin
trColor:=StrToInt64(RGB(0,0,0));
WindowRgn := CreateRectRgn(0,0,0,0);
for y:=1 to frm.Height-1 do
begin
spanleft:=1;
for x:=1 to frm.Width-1 do
if img.Canvas.Pixels[x,y]=trColor then
begin // this pixel shall be invisible
if spanleft < x then
begin
SpanRgn := CreateRectRgn(spanleft,y,x,y+1);
CombineRgn(WindowRgn, WindowRgn, SpanRgn, RGN_OR);
DeleteObject(SpanRgn);
end;
spanleft:=x+1;
end
else // add this pixel to current region
begin
if x = frm.Width-1 then
begin
SpanRgn := CreateRectRgn(spanleft,y,x,y+1);
CombineRgn(WindowRgn, WindowRgn, SpanRgn, RGN_OR);
DeleteObject(SpanRgn);
end;
end;
end;
SetWindowRgn(frm.Handle,WindowRgn,true);
end; // MakeTransparent

Mvh
Nikolaj
http://home11.inet.tele.dk/nikse

PS: I windows 2000 er der en nemmere måde at gøre det på - men den virker
kun på win 2000!




Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408929
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste