UniqueInstance/pl

From Free Pascal wiki
Jump to navigationJump to search

Deutsch (de) English (en) español (es) français (fr) polski (pl)

Opis

O komponencie

UniqueInstance tuniqueinstance.png 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

Luiz Américo Pereira Câmara

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

Zobacz także