TODO: ======================================== - opravit startování minimalizovaně hotovo zapsáno-chyby - v online hráčích nabízet online hráče serverů hotovo zapsáno - export/iport serveru do XML souboru hotovo zapsáno - možnost nastavit vlastní RSS čtečku hotovo zapsáno - oprava zobrazování detajlů serveru hotovo zapsáno-chyby - po spuštění serveru minimalizovat hotovo zapsáno-chyby - zobrazovat lokace a mapu v online hráčích hotovo zapsáno - u importu xml zobrazovat editovací okno hotovo ---- - ukládat pozice sloupců u online hráčů hotovo nezapisuju - používat komponentu webbrouser místo memo hotovo zapsáno - okno pro zadávání vyhledávání, atd. + náš hotovo zapsáno - ukládání nastavení do souboru hotovo zapsáno - v detajlech interaktivní odkazy hotovo zapsáno - přidat náš vyhledávač hotovo zapsáno-vyhledáváč - detajly přemístit do hlavního formuláře hotovo zapsáno - friendlis // ve spodní části zobrazovat hotovo zapsáno - chyba ukládání při zavření křížkem hotovo zapsáno-chyby - zvuky u friendlistu hotovo zapsáno-friendlist - možnost nastavit pevnou addresu online hráčů hotovo zapsáno-onlinehráči - wowstatus hotovo zapsáno - při uložení nastavení zobrazovat/online hráče hotovo nevím - bublinová nápověda všude v nastavení hotovo nezapisuju - v nastavení friend listu popup nabídka hotovo ---- - zvuky v aktualitách hotovo zapsáno - import serverů z serverlistu hotovo - bez realmlistu nemají ho - vlastní číselná řada, zjišťování aktualit hotovo vyzkoušet - odchytávat klávesu del, ptát se na smazání //keydel funguje - zavírání při dvojkliku //zrušeno zvíraznění - testovat zda existuje obrázek hotovo-vypisovat že obrázek nebyl nalezen - info o serveru (odezva online/ofline, hotovo - ping v vlastní vláknu mám - obnovení defaultního nastavení hotovo zapsáno - ukládat počty serverů, u posledního načtení hotovo - nerozlišovat velké a malé písmena v přátelích hotovo - nápovědu hotovo zapsáno - přidat czfont do instalace v programu hotovo - zvuky v instalaci - vyzkoušet přechd z 3.0 na 3.1 registry, stáhnutí... - zobrazit obrázek při načítání aplikace nejde další - mezní hranice posouvacích panelů - zvuk, pro každého frienda - zobrazování počtu hráčů na tray ikoně - poznámka k příteli - zobrazovat/ne bublinovou nápovědu - stahovat a instalovat nové verze automaticky (nejlépe z torrentu) - možnost exportovat importovat větší počet serverů najednou - možnost vybrat sloupce online hráčů - cool panely - řadit v importu serverů - pamatování seřazení v online hráčích - chat - přehlednější registry opravit při přechodu Pohyb okna Rovněž pohyb okna aplikace je velmi zajímavá a hlavně detekovatelná činnost (či lépe řečeno stav) a samozřejmě i v tomto případě půjde o zprávy systému. Využití je taktéž široké, namátkou mě napadá třeba využití při dnes velmi oblíbeném "přichytávání" či "přilepování" okna aplikace k okrajům pracovní plochy (viz. například Winamp). Zde je však třeba upozornit na jeden detail. Jak uvidíte později ve zdrojovém kódu, při pohybu okna jsou čteny aktuální souřadnice okna (které jsou v naší ukázce vypisovány do titulkového pruhu formuláře). Těch se dá právě využít například k již výše zmíněnému efektu přichytávání okna na okraje pracovní plochy. Jedná se o souřadnice levého horního rohu formuláře, avšak bez titulkového pruhu. Souřadnice 0,0 jsou tedy "o něco níže", než by se na první pohled mohlo zdá. Nicméně zpět k našemu původnímu záměru odchytit pohyb okna (příklad s přilepováním na okraje plochy si ukážeme snad jindy, ale věřím že jej každý zvládne sám). Zdrojový kód tedy vypadá takto: . . . private { Private declarations } procedure WndMove(var msg: TMessage); message WM_Move; . . . procedure TForm1.WndMove(var msg: TMessage); begin Form1.Caption := `Pozice okna x: ` + IntToStr(longrec(Msg.LParam).lo) + ` y: ` + IntToStr(longrec(Msg.LParam).hi); end; // odchytávání ukázání na item listboxu {procedure TFMForm.FileListBox1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if Button = mbLeft then with Sender as TFileListBox do begin if ItemAtPos(Point(X, Y), True) >= 0 then BeginDrag(False); end; end;}