Avatar billede orca Nybegynder
11. januar 2003 - 03:04 Der er 3 kommentarer og
1 løsning

Opfange resize

Hej alle.

Jeg bruger Delphi 7. I min form er der en event der hedder OnResize, denne eksekverer med det samme jeg begynder at trække i formen. Er det ikke muligt kun at opfange når brugere har givet slip på formen igen, altså så koden kun bliver udført efter brugeren har resizet formen?

Mvh Mark
Avatar billede hreiff Nybegynder
11. januar 2003 - 09:52 #1
Hvis du prøver følgende vil a først ændres når museknappen slippes
(det gør den ihvertfald hos mig)

var a: integer;

procedure TForm1.FormResize(Sender: TObject);
begin
  form1.Paint;
  inc(a);
  label2.caption := 'Størrelse ændret '+inttostr(a)+' gange';
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  a := 0;
end;
Avatar billede orca Nybegynder
11. januar 2003 - 14:31 #2
Hej hreiff. Jeg kan godt se meningen i koden, men det er ikke helt brugbart. Såvidt jeg forstår det, så bliver den sidste linie som viser a jo faktisk eksekveret hver gang formens størrelse bliver ændret, det kan bare ikke ses fordi du kalder Paint inden du ændrer det. Det jeg har brug for er at formen kan ændres 30px ad gangen, altså skal jeg ændre formens størrelse ned til nærmenste afrunding af 30, efter at brugeren har sluppet musen. Med din kode så tror jeg ikke det vil virke.

Altså skal min forms størrelse kunne ændres, som når man ændrer på et objekts størrelse i IDE'en.

Eller misforstår jeg noget?

Mvh Mark
Avatar billede hreiff Nybegynder
12. januar 2003 - 20:07 #3
I din resize kan du sagtens ændre størrelse:

Form1.height := round(Form1.height/30) * 30;
Form1.width := round(Form1.width/30) * 30;

{ afrunding til hele 30 }
Avatar billede orca Nybegynder
12. januar 2003 - 20:22 #4
Ja men det virker jo heller ikke, for det bliver jo eksekveret med det samme brugeren har ændret størrelsen 1 pixel, og så bliver den jo smidt tilbage til normal størrelse, osv osv.

Jeg har fundet ud af at jeg kan lytte efter WM_SIZE til at finde ud af hvornår formen er resizet.
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