Avatar billede forfatterksl Nybegynder
25. januar 2004 - 15:15 Der er 6 kommentarer og
1 løsning

Hvordan gør jeg objekter gennemsigtige - muligt?

Jeg vil gerne vide hvordan jeg kan lave objekterne på min form gennemsigtige. Mens programmet så er i Run, vil jeg derfor kunne se mit skrivebord eller programmerne der er åbnet, men ikke minimeret. Flytter jeg så formen (mens den er i Run) skal startbilledet på objekterne IKKE være det samme, men hvad der virkeligt ligger bag formen.
Jeg kender koden til at gøre formen gennemsigtig - kan den bruges???
Avatar billede forfatterksl Nybegynder
27. januar 2004 - 19:12 #1
Kunne man evt. lave en memo gennemsigtig, uden at teksten også skal blive gennemsigtig?
Avatar billede hrc Mester
28. januar 2004 - 12:20 #2
Delphi 7+ (og vistnok også 6) har muligheden for at sætte en transparency værdi. Du skal lege med formens AlphaBlend og AlphaBlendValue (men det kræver W2K eller nyere - og det er åbenbart en halvtung operation)
Avatar billede hrc Mester
28. januar 2004 - 12:30 #3
Jeg har ikke besvaret dit spørgsmål, vel? Efter at have gennemlæst det flere gange, må jeg erkende at jeg ikke forstår det, spørgsmålet.

I øvrigt, du snakker om objekter. Det er komponenterne du mener, ikke?
Avatar billede forfatterksl Nybegynder
28. januar 2004 - 21:46 #4
Jeg må indrømme at Delphi 7 nok ikke lige er min version... nærmere 4. Undskyld jeg ikke nævnte det ;-) Ellers har du nu fået rimeligt godt fat i mit spørgsmål
Avatar billede hrc Mester
30. januar 2004 - 09:50 #5
4'eren, åhh ja. Den berygtede version ... Den var faktisk ikke så dårlig endda, men enkelt smutter gav versionen et dårligt ry.

Du leder altså efter en metode til at gøre formen gennemsigtig á la den som Winamp har. Den bedste løsning er at komme op på en nyere version af Delphi, men jeg har fundet følgende kode på den anbefalelsesværdige side www.about.com (under delphi):

OnCreate-eventen:

var
  FullRgn, ClientRgn, ButtonRgn: THandle;
  Margin, X, Y: Integer;
begin
  Margin := (Width - ClientWidth) shr 1;
  FullRgn := CreateRectRgn(0, 0, Width, Height);

  X := Margin; Y := Height - ClientHeight - Margin;
  ClientRgn := CreateRectRgn(X, Y, X + ClientWidth, Y + ClientHeight);
  CombineRgn(FullRgn, FullRgn, ClientRgn, RGN_DIFF) ;

  inc(X,Button1.Left); inc(Y,Button1.Top);
  ButtonRgn := CreateRectRgn(X, Y, X + Button1.Width, Y + Button1.Height);
  CombineRgn(FullRgn, FullRgn, ButtonRgn, RGN_OR);

  SetWindowRgn(Handle, FullRgn, True);
end;

Koden gør formens (ikke overskriften) helt gennemsigtig, mens knappen vises normalt. Bemærk i øvrigt at du kan klikke på de links der ligger under formen. Hvad man skal bruge det til er en anden sag og eksemplet kan heller ikke vise grader af gennemsigtighed.

Se i øvrigt (du skal have en nyere version):
  http://delphi.about.com/library/weekly/aa022202a.htm
Avatar billede forfatterksl Nybegynder
03. februar 2004 - 17:30 #6
Jeg må så sige at det var den rigtige forståelse første gang. Jeg ønsker at gøre memo, edit, button osv. gennemsigtige...
Avatar billede forfatterksl Nybegynder
06. oktober 2004 - 19:25 #7
Jeg lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester