[ 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 | 2
NapísalOffline : 27.07.2010 16:28 | Popup okno v Delphi

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 | 2
NapísalOffline : 27.07.2010 16:41 | Popup okno v Delphi

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 | 2
Napísal autor témyOffline : 27.07.2010 17:02 | Popup okno v Delphi

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.26
Príspevky: 1399
Témy: 10 | 10
Bydlisko: Hrinova
NapísalOffline : 27.07.2010 17:39 | Popup okno v Delphi

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 | 2
Napísal autor témyOffline : 27.07.2010 18:02 | Popup okno v Delphi

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.26
Príspevky: 1399
Témy: 10 | 10
Bydlisko: Hrinova
NapísalOffline : 27.07.2010 18:14 | Popup okno v Delphi

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 | 2
Napísal autor témyOffline : 27.07.2010 18:44 | Popup okno v Delphi

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.26
Príspevky: 1399
Témy: 10 | 10
Bydlisko: Hrinova
NapísalOffline : 27.07.2010 20:19 | Popup okno v Delphi

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 | 2
Napísal autor témyOffline : 27.07.2010 20:49 | Popup okno v Delphi

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 | 2
NapísalOffline : 27.07.2010 22:03 | Popup okno v Delphi

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.26
Príspevky: 1399
Témy: 10 | 10
Bydlisko: Hrinova
NapísalOffline : 27.07.2010 22:09 | Popup okno v Delphi

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 | 2
NapísalOffline : 27.07.2010 22:18 | Popup okno v Delphi

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.26
Príspevky: 1399
Témy: 10 | 10
Bydlisko: Hrinova
NapísalOffline : 27.07.2010 22:29 | Popup okno v Delphi

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 | 2
Napísal autor témyOffline : 27.07.2010 22:50 | Popup okno v Delphi

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 | 2
NapísalOffline : 27.07.2010 23:08 | Popup okno v Delphi

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.26
Príspevky: 1399
Témy: 10 | 10
Bydlisko: Hrinova
NapísalOffline : 28.07.2010 11:30 | Popup okno v Delphi

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 | 2
Napísal autor témyOffline : 28.07.2010 13:06 | Popup okno v Delphi

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


 [ Príspevkov: 17 ] 


Popup okno v Delphi



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 Frontend

7

1086

07.06.2009 9:49

shaggy

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

POPUP okno, stylovanie

v Frontend

11

817

08.07.2010 20:01

Ďuri

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 Frontend

3

481

23.06.2010 19:00

petanorech

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

[Delphi] Okno

v Ostatné

6

803

15.01.2010 21:42

vama

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

Delphi: ked je neaktivne okno

v Ostatné

5

1405

02.08.2009 13:00

feromakovi

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

delphi zapis cisla do editu v delphi

v Ostatné

3

1210

11.05.2008 12:02

p360t

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

POPUP

v Frontend

10

814

28.04.2010 16:45

djsulo

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

popup box

v Frontend

7

485

25.02.2013 21:12

shaggy

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

popup reklama

v Frontend

0

411

31.08.2013 16:04

boss382

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

PM Popup Blocker Fix

v CMS

0

596

14.10.2006 14:49

JanoF

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

Z popup okna do textarei

v Frontend

7

870

15.03.2008 2:20

chrono

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

[RoR] vytvorenie popup okna v urcitom case

v Backend

1

526

04.02.2015 14:41

chrono

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

Ako nastaviť všetkým EditBoxom jedno PopUp menu s funkciami?

v Ostatné

9

866

01.08.2010 22:22

Manny

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

Popup okienko (alebo ako sa to vola) pri tray ikonkach

v Windows

1

559

05.03.2007 14:30

Tom@S

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

javascript wysiwyg v javascript popup

v Frontend

1

963

25.07.2009 19:29

Ďuri

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

okno

v Ostatné programy

1

430

10.09.2014 9:24

tatko Tom



© 2005 - 2026 PCforum, edited by JanoF