Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 17 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 03.02.10
Prihlásený: 27.07.10
Príspevky: 9
Témy: 2
Príspevok NapísalOffline : 27.07.2010 16:28

Ako si mozem vytvorit jednoduche vyskakovacie okno nad listou? Ako aplikacie oznamuju nieco, napr. AV novy update databazy. Predpokladajme ze moja aplikacie je schovana v tray.


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 29.10.08
Prihlásený: 30.07.12
Príspevky: 933
Témy: 2
Príspevok NapísalOffline : 27.07.2010 16:41

tak nam prezrad ako si schoval svoju aplikaciu do tray ?


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 03.02.10
Prihlásený: 27.07.10
Príspevky: 9
Témy: 2
Príspevok Napísal autor témyOffline : 27.07.2010 17:02

Kód:
 TrayIcon1.Visible:=true;
 hide;


Offline

Skúsený užívateľ
Skúsený užívateľ
Popup okno v Delphi

Registrovaný: 11.01.09
Prihlásený: 25.04.24
Príspevky: 1385
Témy: 9
Bydlisko: Hrinova
Príspevok NapísalOffline : 27.07.2010 17:39

Trieda TTrayIcon by mala obsahovať vlastnosť PopUpMenu. Takže na formulár si daj komponent TPopupMenu z palety Standard. Na formulár to umiestní iba ikonu, na ktorú teraz klikni pravým tlačidlom a vyber prvú možnosť - Menu designer.... Tu si vytvor vlastné menu podľa potrieb. Potom už len niekde v kóde priraď toto menu vlastnosti PopUpMenu:

Kód:
TrayIcon1.PopUpMenu := PopupMenu1;


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 03.02.10
Prihlásený: 27.07.10
Príspevky: 9
Témy: 2
Príspevok Napísal autor témyOffline : 27.07.2010 18:02

Nemyslel som popupmenu ale vyskakovacie okno. Ako napr. FF ked dokonci download tak sa vysunie info o dokonceni stahovania, alebo AV ked dokonci update tak vyhodi info nad listu.

nieco take co vyskoci samo pri istej udalosti
Popup okno v Delphi


Offline

Skúsený užívateľ
Skúsený užívateľ
Popup okno v Delphi

Registrovaný: 11.01.09
Prihlásený: 25.04.24
Príspevky: 1385
Témy: 9
Bydlisko: Hrinova
Príspevok NapísalOffline : 27.07.2010 18:14

Aha, zle som pochopil. Ja to riešim vytvorením nového Formu, na ktorý naukladám, čo potrebujem - ten je samozrejme zbavený záhlavia, je zmenená farba a prípadne sa môže použiť transparentnosť. Ďalej získam súradnice obrazovky:

Kód:
Screen.WorkAreaWidth      // sirka
Screen.WorkAreaHeight     // vyska


a potom form umiestním za celú výšku a šírku obrazovky. Nakoniec už len po vykonaní určitej udalosti pomocou timera mením Form.Top premennú daného formu. Počká sa určitý čas a opäť sa schová.
Ak potrebuješ konkrétny príklad, tak napíš.

// Poznámka: existuje aj Screen.Width a Screen.Height vlastnosť. Ale tie vyššie spomenuté vlastnosti (WorkArea...), vracajú šírku a výšku bez zarátania hlavného panelu. Tým sa zabráni, aby kus okna vykukovalo spod obrazovky, respektíve, aby nebolo príliš nízko.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 03.02.10
Prihlásený: 27.07.10
Príspevky: 9
Témy: 2
Príspevok Napísal autor témyOffline : 27.07.2010 18:44

takto som to skusal, ale so Screen.width Screen.Height , neviem ako ten formular dat nad vsetky okna. (aby bolo vidiet ze sa vobec nieco vysunulo).Skusal som nastavit na ten druhy form fsStayOnTop ale nic.

Edit: ved mozes dat aj priklad ak ti to nerobi problem


Offline

Skúsený užívateľ
Skúsený užívateľ
Popup okno v Delphi

Registrovaný: 11.01.09
Prihlásený: 25.04.24
Príspevky: 1385
Témy: 9
Bydlisko: Hrinova
Príspevok NapísalOffline : 27.07.2010 20:19

1.) File | New | Form
Týmto vytvor nový formulár. Nahádž naň, čo potrebuješ. Nastav vlastnosť BorderStyle na bsNone. Pridaj tu aj jeden timer (budem sa naňho odvolávať cez názov tmShow), ktorého interval nech je 1 ms.

2.) do udalosti OnTimer timeru tmShow daj toto:
Kód:
// ak je tag 0, formular sa roluje dole, ak je 1, hore

  if ( tmShow.Tag = 0 ) then begin
    if ( Form2.Top >= ( Screen.WorkAreaHeight - Form2.Height ) ) then begin
      Form2.Top := Form2.Top - 1;
      exit;
    end;
    Form2.Top := Screen.WorkAreaHeight - Form2.Height;
    tmShow.Tag := 1;   // zmena dalsieho rolovania na smer hore
  end

  else begin
    if ( Form2.Top <= Screen.WorkAreaHeight ) then begin
      Form2.Top := Form2.Top + 1;
      exit;
    end;
    Form2.Top := Screen.WorkAreaHeight;
    tmShow.Tag := 0;   // zmena dalsieho rolovania na smer dole
  end;

  tmShow.Enabled := false;

3.) a do OnCreate tohto formu toto:
Kód:
  Self.Left := Screen.WorkAreaWidth - Form2.Width;
  Self.Top := Screen.WorkAreaHeight + 2;
  Show;

Týmto sa popup form umiestni do pravého dolného rohu.

4.) v tvojom hlavnom unite pridaj do uses unit s novým formom - napr unit2.

5.) Teraz už iba stačí kdekoľvek v tvojom projekte zapnúť timer tmShow (vypne sa sám, o to sa netreba starať)
Kód:
Form2.tmShow.Enabled := true;

pre vyvolanie a pre zatvorenie popup formu - čiže pre každé zvlášť.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 03.02.10
Prihlásený: 27.07.10
Príspevky: 9
Témy: 2
Príspevok Napísal autor témyOffline : 27.07.2010 20:49

Vdaka, presne takto som to chcel :). Len problem je vtom, ze ak mam hlavny Form1 schovany (v tray) tak ani to vysuvacie okno nevidno. A prave toto je zaklad


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 29.10.08
Prihlásený: 30.07.12
Príspevky: 933
Témy: 2
Príspevok NapísalOffline : 27.07.2010 22:03

skus tomu form2 nastavit parenta desktop


Offline

Skúsený užívateľ
Skúsený užívateľ
Popup okno v Delphi

Registrovaný: 11.01.09
Prihlásený: 25.04.24
Príspevky: 1385
Témy: 9
Bydlisko: Hrinova
Príspevok NapísalOffline : 27.07.2010 22:09

Alebo skús dať ako prvý riadok v OnTimer timera tmShow tento riadok:
Kód:
Form2.Show;


// neviem, či to pomôže, lebo mne to funguje správne, aj ak je hlavný form skrytý, ale skús to


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 29.10.08
Prihlásený: 30.07.12
Príspevky: 933
Témy: 2
Príspevok NapísalOffline : 27.07.2010 22:18

netreba ziadny timmer, staci pri vytvarani popup okna nastavit parenta desktop
Kód:
frm := TForm2.CreateParented(getDesktopWindow());
  frm.Show;


Offline

Skúsený užívateľ
Skúsený užívateľ
Popup okno v Delphi

Registrovaný: 11.01.09
Prihlásený: 25.04.24
Príspevky: 1385
Témy: 9
Bydlisko: Hrinova
Príspevok NapísalOffline : 27.07.2010 22:29

Parent už je nastavený na desktop. Ak vytvoril form podľa hore uvedeného postupu, vlastník nie je pôvodný formulár, keďže sa od neho vytváral nezávisle (preto musel pridať do uses názov novovytvoerného unitu.
Skúška: Nasledujúca správa
Kód:
ShowMessage( IntToStr( Form2.ParentWindow ) );

zobrazila nulu, čo je, pokiaľ viem, handle desktopu.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 03.02.10
Prihlásený: 27.07.10
Príspevky: 9
Témy: 2
Príspevok Napísal autor témyOffline : 27.07.2010 22:50

Zle som sa vyjadril. Pri Hide je to v poriadku. Pri minimalizovani zmizne aj Form2.
A dalsia vec. Ak mam focus na neakom cudzom okne ci uz co je na tej pozicii alebo maximalizovane tak ten form2 nevidno. Co stym?


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 29.10.08
Prihlásený: 30.07.12
Príspevky: 933
Témy: 2
Príspevok NapísalOffline : 27.07.2010 23:08

fsStayOnTop by malo stacit no ale pre istotu si prestuduj toto http://delphi.about.com/od/formsdialogs/l/aa073101b.htm


Offline

Skúsený užívateľ
Skúsený užívateľ
Popup okno v Delphi

Registrovaný: 11.01.09
Prihlásený: 25.04.24
Príspevky: 1385
Témy: 9
Bydlisko: Hrinova
Príspevok NapísalOffline : 28.07.2010 11:30

V coldak-ovom linku máš riešenie. Pridaj do unitu druhého formu túto procedúru:
Kód:
procedure TForm2.CreateParams(var Params: TCreateParams);
begin

  inherited;
  Params.ExStyle := Params.ExStyle or WS_EX_TOOLWINDOW or WS_EX_TOPMOST;
  Params.WndParent := GetDesktopWindow;

end;

+ do deklarácie TForm2 pridaj toto:
Kód:
  protected
     procedure CreateParams(var Params: TCreateParams); override;

PopUp okno sa nebude minimalizovať spoločne s vlastníkom a bude viditeľný nad ostatnými oknami.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 03.02.10
Prihlásený: 27.07.10
Príspevky: 9
Témy: 2
Príspevok Napísal autor témyOffline : 28.07.2010 13:06

Vcera som to skusal ibaze som to daval do private jak je na tej prvej strane a nevedel som to spustit. Vdaka :)


Odpovedať na tému [ Príspevkov: 17 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. POPUP okno

v JavaScript, VBScript, Ajax

7

958

07.06.2009 9:49

shaggy Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. POPUP okno, stylovanie

v JavaScript, VBScript, Ajax

11

723

08.07.2010 20:01

Ďuri Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. JS Popup okno s možnosťou pridávania do košíka

v JavaScript, VBScript, Ajax

3

384

23.06.2010 19:00

petanorech Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. [Delphi] Okno

v Delphi, Visual Basic

6

687

15.01.2010 21:42

vama Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Delphi: ked je neaktivne okno

v Delphi, Visual Basic

5

1311

02.08.2009 13:00

feromakovi Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. delphi zapis cisla do editu v delphi

v Delphi, Visual Basic

3

1107

11.05.2008 12:02

p360t Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. POPUP

v JavaScript, VBScript, Ajax

10

713

28.04.2010 16:45

djsulo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. popup box

v JavaScript, VBScript, Ajax

7

359

25.02.2013 21:12

shaggy Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. popup reklama

v JavaScript, VBScript, Ajax

0

308

31.08.2013 16:04

boss382 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. PM Popup Blocker Fix

v Redakčné systémy

0

485

14.10.2006 14:49

JanoF Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Z popup okna do textarei

v JavaScript, VBScript, Ajax

7

782

15.03.2008 2:20

chrono Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. [RoR] vytvorenie popup okna v urcitom case

v Perl, Python, Ruby, CGI

1

448

04.02.2015 14:41

chrono Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Ako nastaviť všetkým EditBoxom jedno PopUp menu s funkciami?

v Delphi, Visual Basic

9

743

01.08.2010 22:22

Manny Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Popup okienko (alebo ako sa to vola) pri tray ikonkach

v Operačné systémy Microsoft

1

495

05.03.2007 14:30

Tom@S Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. javascript wysiwyg v javascript popup

v JavaScript, VBScript, Ajax

1

849

25.07.2009 19:29

Ďuri Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Okno

v JavaScript, VBScript, Ajax

4

849

01.12.2007 17:32

qacer Zobrazenie posledných príspevkov


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

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra