| | |
| Stránka: 1 z 1
| [ Príspevkov: 6 ] | |
Autor | Správa |
---|
Registrovaný: 23.05.09 Prihlásený: 16.01.18 Príspevky: 95 Témy: 39 Bydlisko: Michalovce |
Keby ste mi vedeli pomoct, ako dosiahnem to:
Na formulary mam canvas na ktory sa narocnym vypoctom vykresluje graf. Chcel by som aby sa mi canvas zvacsoval ked menim velkost formulara. No ked som to spravil na akciu onResize tak pri zvacsovani formulara mi program zacal sekat a blikat a podobne somariny. Deje sa to preto lebo pri meneni velkosti formulara vypocet prebehne velmi vela krat. Totizto sa spusta na akciu onResize. Ja by som chcel aby sa spustil az ked sa prestane menit velkost formulara. Nieco ako onEndResizing. Vedel by mi niekto pomoct?
|
|
Registrovaný: 11.01.09 Prihlásený: 26.04.24 Príspevky: 1385 Témy: 9 Bydlisko: Hrinova | Napísal Fico: 16.08.2011 19:18 | |
|
Kedze neviem, ako mas rieseny svoj projekt, tak napisem ti len odpoved na tvoju otazku - ako zavolat kod az po ukonceni zmeny velkosti formulara.
Sprava typu WM_END_RESIZING zrejme neexistuje, takze treba na to ist inak. Mozme sa napriklad zamysliet, ako clovek chape zmenu velkosti formu. Klikne sa na okraj aplikacie a taha sa do pozadovanej velkosti ( pripadne pomocou klavesnice, maximilizovanim, apod ). Kazdou zmenou prichadzaju spravy WM_SIZE. Po uvoleni tlacidla mysi ( klavesy, apod ) uz spravy nechodia. Tzn mozes vytvorit nejaky timer s intervalom napr 2 sekundy, do ktoreho tela by si dal pozadovany vypocetny a kresliaci kod.
Priklad:
Kód: procedure TForm1.FormResize( TObject Sender ) begin
if ( Timer1.Enabled ) then Timer1.Enabled := false;
Timer1.Enabled := true;
end;
//---------------------------------------------------------------------------
procedure TForm1.Timer1Timer( TObject Sender ) begin
ShowMessage( "end of resizing" ); Timer1.Enabled := false;
end;
Interval timeru nech je 2000 a na zaciatku nech je vypnuty.
|
|
Registrovaný: 29.10.08 Prihlásený: 30.07.12 Príspevky: 933 Témy: 2 | Napísal coldak: 16.08.2011 20:46 | |
|
|
|
Registrovaný: 23.05.09 Prihlásený: 16.01.18 Príspevky: 95 Témy: 39 Bydlisko: Michalovce | Napísal autor témy Siriuse: 23.08.2011 15:46 | |
|
no tak nakoniec WM_END_RESIZING neexistuje ale existuje WM_ENTERSIZEMOVE, diki moc chlapci...
|
|
Registrovaný: 23.05.09 Prihlásený: 16.01.18 Príspevky: 95 Témy: 39 Bydlisko: Michalovce | Napísal autor témy Siriuse: 25.08.2011 11:51 | |
|
Ale WM_ENTERSIZEMOVE nezahrnuje maximalizaciu toho formulara, a taka akcia onMaximize nejestvuje, neviete mi poradit?
|
|
Registrovaný: 29.10.08 Prihlásený: 30.07.12 Príspevky: 933 Témy: 2 | Napísal coldak: 25.08.2011 14:02 | |
|
|
|
| Stránka: 1 z 1
| [ Príspevkov: 6 ] | |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|