UniqueInstance/pl
│
Deutsch (de) │
English (en) │
español (es) │
français (fr) │
polski (pl) │
Opis
O komponencie
UniqueInstance jest wizualnym komponentem na zakładce Common Controls Palety Komponentów, który zapewnia widok listy powiązanych z nim elementów. Elementy mogą być reprezentowane przez jeden z zestawów ikon powiązanych z TImageList: SmallImages, LargeImages i StateImages.
UniqueInstance zapewnia łatwy sposób wymuszenia uruchomienia tylko jednego wystąpienia aplikacji w tym samym czasie. Aby zainstalować ten komponent na swojej palecie komponentów, najłatwiej jest użyć Menedżera pakietów online z Lazarusa. Obsługuje on systemy Windows i Linux (macOS domyślnie zapobiega wielu instancjom).
Cechy
- Łatwy w użyciu: po prostu upuść komponent na głównym formularzu
- Zapewnia mechanizm odbierania danych z wiersza poleceń innych instancji
Jak używać (komponent)
Po prostu upuść komponent na główny formularz aplikacji LCL (znajduje się w zakładce System, poszukaj czerwonego pełnego koła z cyfrą „1” w środku).
Właściwości:
- Enabled: włącza/wyłącza komponent
- Identifier: służy do zapewniania sposobu identyfikacji aplikacji
- UpdateInterval: interwał w milisekundach, przez który komponent będzie monitorował komunikaty pod kątem nowych instancji. Ma znaczenie tylko pod Uniksem, ponieważ pod Win32 wiadomość jest odbierana przez pętlę komunikatów systemu Windows
Zdarzenie
- OnOtherInstance: jest wywoływane, gdy zainicjowana zostanie inna instancja. Odbiera parametry przekazane do wystąpienia tej nowej instancji.
Jak używać (w kodzie)
Dodaj moduł uniqueinstanceraw do sekcji uses.
Wywołaj funkcję InstanceRunning: zwróci ona true, jeśli instancja już działa.
Istnieją dwa warianty:
- Bez argumentów: użyje nazwy pliku wykonywalnego jako identyfikatora i nie wyśle parametrów wiersza poleceń
- Z dwoma argumentami:
- Identifier: identyfikator aplikacji
- SendParameters(domyślnie = false): wysyła parametry wiersza poleceń do już działającej instancji, jeśli taka istnieje, przed zakończeniem swojego działania.
Uwagi
- Testowane z win32 (XP SP2) i Linux (Ubuntu 9.04) z fpc 2.4.2.
- Jeśli umieścisz dwa komponenty TUniqueInstance w tej samej aplikacji z tym samym identyfikatorem, Twoja aplikacja nie zostanie załadowana.
- Identifier jest opcjonalny zarówno dla funkcji, jak i komponentu. W przypadku, gdy nie jest używany, to używana jest nazwa pliku wykonywalnego jako identyfikator. Konsekwencją tego jest to, że jeśli ktoś zmieni nazwę exe, inna instancja takiej aplikacji nie zostanie zidentyfikowana. Z drugiej strony, jeśli dwie różne aplikacje używają tego samego identyfikatora, jedna uniemożliwi uruchomienie drugiej.
- WSKAZÓWKA: aby mieć pewność, że aplikacja nie przeszkodzi w uruchomieniu innej, możesz użyć identyfikatora GUID jako identyfikatora.
Historia
- 11/01/17 - Wersja 1.1
- Zapewnia kompatybilność z fpc 3.0 i nowszymi
- Czyszczenie kodu
- 17/04/11 - Wersja 1.0
- Naprawiono wykrywannie aplikacji jako działającej po awarii w systemie Unix
- Naprawiono występowanie awarii podczas kompilacji za pomocą zestawu widżetów Gtk2
- Ustawiono domyślne wartości dla właściwości publicznych
- Optymalizacje i czyszczenie kodu
- Nowa ikona
- 02/10/07 - Wersja 0.2
- Oparta na fpc 2.2.0
- Zaimplementowany odbiór parametrów pod systemami unix
- Ogólne optymalizacje i czyszczenie kodu
- 16/12/06 - Pierwsze wydanie. Zobacz mój blog, aby dowiedzieć się, jak to się zaczęło.
Autor
Licencja
Zmodyfikowana LGPL
Pobieranie
Wersja 1.1: Pobierz z GitHub
Ostatnia wersja przeniesiony do repozytorium GitHub: https://github.com/blikblum/luipack/tree/master/uniqueinstance
Możesz też użyć klienta SVN:
svn co https://github.com/blikblum/luipack.git/trunk/uniqueinstance