Archívum - január 4, 2009
Hogyan akadályozzuk meg, hogy egy Delphi form a képernyőn kívülre kerüljön?
A Delphi TForm objektuma rendelkezik minden olyan szükséges tulajdonsággal és eseménnyel, amelyek általában szükségesek. Néha előfordulhat, hogy ezek közül néhány mégis hiányzik valami. Próbáljunk készíteni egy egszer alkalmazást, majd mozgassuk a formot a képernyőnk kívülre. Ezt nagyon egyszerűen megtehetjük, ha a form címsoránál megragadjuk az egérrel mozgatjuk.
De mi van akkor, ha nem szeretném, hogy az alkalmazást ne kerülhessen a képernyőn kivülre? Ilyenkor jól jönne egy OnMoving esemény amivel kezelhetnénk, de sajnos nincs ilyen. Szerencsére a Delphivel könnyű ilyet készíteni.
- Az OnMoving esemény kezeléséhez adjuk hozzá a következő definíciót a form privát szekciójához:
Mozgatásakor WM_MOVING üzenetet kap az ablak. Az üzenet feldogozásával ellenőrizhetjük az elmozdulási téglalapot és ha szükséges, módosíthatjuk a méretét vagy a pozícióját.private
{ Private declarations }
procedure WMMoving(var Msg:TWMMoving); message WM_MOVING; - Írjuk meg a form elmozdulásait kezelő kódot, ami megakadályozza a képernyőn kívülre kerülést:
procedure TForm1.WMMoving(var Msg:TWMMoving) ;
var WorkArea: TRect;
begin
WorkArea:=Screen.WorkAreaRect;
with Msg.DragRect^ do begin
if Left<WorkArea.Left then OffsetRect(Msg.DragRect^,WorkArea.Left-Left,0);
if Top<WorkArea.Top then OffsetRect(Msg.DragRect^,0,WorkArea.Top-Top);
if Right>WorkArea.Right then OffsetRect(Msg.DragRect^,WorkArea.Right-Right,0) ;
if Bottom>WorkArea.Bottom then OffsetRect(Msg.DragRect^,0,WorkArea.Bottom-Bottom);
end;
inherited;
end;
A fenti WM_MOVING eseménykezelő megakadályozza, hogy a form a képernyőn kívülre kerüljön.
Märket
Märket egy kis sziget Svédország és Finnország között. Nincs ebben semmi különös, hiszen rengeteg sziget van Balti-tengerben. Az érdekes a szigeten áthúzódó határvonal. Mivel a sziget egy fontos kereskedelmi útvonalon fekszik, 1885-ben a finnek és az oroszok egy világítótornyot építettek a szigetre. Azonban a sziget felmérése nélkül, ez véletlenül a svéd oldalra sikerült. 1985-ben azonban a helyzetet érdekes módon oldották meg: átrajzolták a határt. Ez mégiscsak egyszerűbb volt mint odébbvinni a világítótornyot vagy a másik országnak adni a területet. Az egyes országokra jutó területet nem lehetett megváltoztatni, ahogy a partvonalat se, hogy ne befolyásolják az egyes országok halászati jogait. A dilemma eredménye lett a szokatlan alakú határ, mely találékonyan kielégítette a finn és a svéd érdekeket is. A határmódosítás óta egy fordított S-re emlékeztett, a világítótornyot csupán egy kis földdarab köti össze Finnország többi részével. A határt 25 évente rendszeresen újrafelméri egy a két ország képviselőiből álló csoport, az utolsó felmérés 2006. augusztusában volt.
A világítótorony egyébként 1979 óta személyzet nélkül, automatikusan működik. Navigációs jelentőségét a korszerűbb navigációs eszközök (GPS) megjelenésével elvesztette. A sziget lakatlan, időnként lelkes rádióamatőrök keresik fel.





Friss hozzászólások
6 nap 7 óra
6 nap 8 óra
1 hét 4 nap
2 hét 3 nap
3 hét 4 óra
3 hét 2 nap
3 hét 2 nap
4 hét 1 nap
4 hét 1 nap
4 hét 2 nap