Autor Téma: vytvorenie eventu  (Přečteno 317 krát)

Offline František

  • Guru
  • *****
  • Příspěvků: 519
  • Karma: 6
    • Verze Delphi: primárne v XE5, občas 10.2.3 comunity
vytvorenie eventu
« kdy: 07-10-2019, 08:08:49 »
ako vytvoriť event na, ktorý zachytí pripojenie/odpojenie usb zariadenia

Offline Morrison

  • Hrdina
  • ****
  • Příspěvků: 273
  • Karma: 12
    • Verze Delphi: D5, XE2
Re:vytvorenie eventu
« Odpověď #1 kdy: 07-10-2019, 09:43:31 »
Už jsi založil jedno téma, v němž jsi se na toto ptal:

https://forum.delphi.cz/index.php/topic,15602.0.html
nil

Offline František

  • Guru
  • *****
  • Příspěvků: 519
  • Karma: 6
    • Verze Delphi: primárne v XE5, občas 10.2.3 comunity
Re:vytvorenie eventu
« Odpověď #2 kdy: 07-10-2019, 18:14:13 »
dakujem za upozornenie.... ale teraz ma zaujima skor ten mechanizmus vytvoenia eventu.v delfi.. tak vseobecne... teraz to mam cez timer ale nezda sa mi to "to prave orechove" ...

Offline Morrison

  • Hrdina
  • ****
  • Příspěvků: 273
  • Karma: 12
    • Verze Delphi: D5, XE2
Re:vytvorenie eventu
« Odpověď #3 kdy: 07-10-2019, 22:35:47 »
Excellent
Rated 1 time
Tak můžeš si třeba udělat message handler jako metodu formuláře.

Kód: Delphi [Vybrat]
  1. type
  2.   TForm1 = class(TForm)
  3.   private
  4.     procedure MyWMDeviceChangeHandler(var Msg:TMessage); message WM_DEVICECHANGE;
  5.   end;
  6.  
  7. implementation
  8.  
  9. procedure TForm1.MyWMDeviceChangeHandler(var Msg: TMessage);
  10. begin
  11.   // tato proc. bude zavolana po prijeti zpravy WM_DEVICECHANGE
  12.   // obsluha a dekodovani parametru message viz dokumentace Microsoftu
  13. end;
  14.  
nil

Offline miroB

  • Guru
  • *****
  • Příspěvků: 519
  • Karma: 17
    • Verze Delphi: D1,2,3,4,7,2005,2009, XE8,S,B,T10.2.2 Pro
Re:vytvorenie eventu
« Odpověď #4 kdy: 08-10-2019, 09:55:34 »
Tak můžeš si třeba udělat message handler jako metodu formuláře.

Kód: Delphi [Vybrat]
  1. type
  2.   TForm1 = class(TForm)
  3.   private
  4.     procedure MyWMDeviceChangeHandler(var Msg:TMessage); message WM_DEVICECHANGE;
  5.   end;
  6.  
  7. implementation
  8.  
  9. procedure TForm1.MyWMDeviceChangeHandler(var Msg: TMessage);
  10. begin
  11.   // tato proc. bude zavolana po prijeti zpravy WM_DEVICECHANGE
  12.   // obsluha a dekodovani parametru message viz dokumentace Microsoftu
  13. end;
  14.  
Okrem detekcie udalosti (odobrané/pridané), treba zistiť aj pridelené písmeno (Letter) USB disku.
Nie je to triviálne. Preto prikladám odkaz na hotové a funkčné riešenie:
Improve code for detecting USB drive insertion & removal, odpoveď od Geert G.
https://www.experts-exchange.com/questions/24135127/Improve-code-for-detecting-USB-drive-insertion-removal.html

Offline František

  • Guru
  • *****
  • Příspěvků: 519
  • Karma: 6
    • Verze Delphi: primárne v XE5, občas 10.2.3 comunity
Re:vytvorenie eventu
« Odpověď #5 kdy: 08-10-2019, 10:53:18 »
1. ďakujem, nejedná sa mi o USB disk, ale o zariadenie FTDI, ktoré si už potom očekujem rutinou, stačí mi zachytiť len zmenu pripojenie/odpojene USB všeobecne ....
2. čo sa týka eventu všeobecne, myslel som skôr na vytvorenie eventu typu: zmenila sa premenná, povedz ostatným, koho to zaujíma, (vyvolaj udalosť/event) že sa to stalo (niečo ako TFDEventAlerter - EXCEPTION z Firebird)

Offline Jirka

  • Plnoletý
  • ***
  • Příspěvků: 150
  • Karma: 8
    • Verze Delphi: XE2
Re:vytvorenie eventu
« Odpověď #6 kdy: 08-10-2019, 12:22:24 »

2. čo sa týka eventu všeobecne, myslel som skôr na vytvorenie eventu typu: zmenila sa premenná, povedz ostatným, koho to zaujíma, (vyvolaj udalosť/event) že sa to stalo (niečo ako TFDEventAlerter - EXCEPTION z Firebird)

použití  WM_USER  by nepomohlo ?