Avatar billede danielks Nybegynder
02. december 2002 - 13:26 Der er 4 kommentarer og
1 løsning

Drag + Shape på formen

Hvordan laver man drag på selve formen, så man kan rykke rundt med programmet uden at have en menubar...
Jeg har lavet designet til selve formen, men hvordan laver man en shape på den... Rundehjørner mm ???
Avatar billede morten_s Nybegynder
02. december 2002 - 13:31 #1
Måske du kan bruge dette, hentet fra www.pythia.dk

"Rund" formular
Hvis du altid har gået og ønsket dig at efterligne Microsofts (tm) analoge ur, så er her den fix og færdige kode til at lave en rund form.

procedure TForm1.FormCreate(Sender: TObject);
var
  Rgn: hRgn;
  BorderSizeW, BorderSizeH, CaptionHeight: integer;
begin
  BorderSizeW := GetSystemMetrics(SM_CXSIZEFRAME);
  BorderSizeH := GetSystemMetrics(SM_CYSIZEFRAME);
  CaptionSize := GetSystemMetrics(SM_CYCAPTION);
  Rgn := CreateEllipticRgn(BorderSizeW, BorderSizeH + CaptionHeight,
                          ClientWidth, ClientHeight);
  SetWindowRgn(Handle, Rgn, false);
end;
Avatar billede danielks Nybegynder
02. december 2002 - 13:37 #2
Den bliver vel HELT rund... der er ingen koordinater i den...
Avatar billede morten_s Nybegynder
02. december 2002 - 13:39 #3
Nej det bliver til en Elipse, så du må kunne nøjes med runde hjørner

i.flg delphi hjælp på CreateEllipticRgn

In Microsoft® Windows®, a region is a rectangle, polygon, or ellipse (or a combination of two or more of these shapes) that can be filled, painted, inverted, framed, and used to perform hit testing (testing for the cursor location).
Avatar billede danielks Nybegynder
02. december 2002 - 13:49 #4
Oki prøver når jeg kommer hjem...
Det var egentlig også mest den med drag jeg gerne ville have svar på...
Avatar billede morten_s Nybegynder
02. december 2002 - 14:02 #5
Også fra Pythia

Flyt en form uden caption
For at lave en applikation, der tillader brugeren at flytte rundt på en TForm uden at anvende en form med caption, så kan du anvende følgende kode. Den fungerer ved at opfange den message der afsendes ved mousehit, og derefter lade Windows tro at der i virkeligheden er tale om et klik i formens caption.

type
  TForm1 = class(TForm)
  ...
  private
    procedure WMNCHitTest(var M: TWMNCHitTest); message wm_NCHitTest;
  end;

...

procedure TForm1.WMNCHitTest(var M: TWMNCHitTest);
begin
  inherited;                   
  if M.Result = htClient then  { er klikket i "client area"?        }
    M.Result := htCaption;      { så lad windows tro der er tale om  }
                                { et klik i caption.                }
end;
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