AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi TJvAppInstances Programmgesteuert weitere Instanzen zulassen
Thema durchsuchen
Ansicht
Themen-Optionen

TJvAppInstances Programmgesteuert weitere Instanzen zulassen

Ein Thema von Hobbycoder · begonnen am 27. Sep 2021 · letzter Beitrag vom 28. Sep 2021
Antwort Antwort
Hobbycoder

Registriert seit: 22. Feb 2017
955 Beiträge
 
#1

TJvAppInstances Programmgesteuert weitere Instanzen zulassen

  Alt 27. Sep 2021, 13:54
Hi,

ich nutze in einem Programm der Einfachheithalber TJvAppInstances um eben nur eine Instanz pro Arbeitsplatz zuzulassen.
Funktioniert auch reibungslos.

Jetzt möchte ich gerne irgentwie während des Startens den KeyState z.B: der CTRL-Taste abfragen um für einen Sonderfall eben doch 2 oder mehr Instanzen zuzulassen.

Weiß jemand wie man das mit TJvAppInstances realisieren könnte?

Wenn's nicht geht, würde ich halt eben selber auf den Prozess prüfen und auf TJvAppInstances verzichten. Aber wenn es damit gehen würde, könnte ich mir die Arbeit ersparen.
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.942 Beiträge
 
Delphi 12 Athens
 
#2

AW: TJvAppInstances Programmgesteuert weitere Instanzen zulassen

  Alt 27. Sep 2021, 22:21
Alternativ Mutex anlegen versuchen. Wenn das schon vorhanden gibt's einen Fehler und du weißt, dass das Programm schon gestartet ist
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#3

AW: TJvAppInstances Programmgesteuert weitere Instanzen zulassen

  Alt 28. Sep 2021, 17:26
TJvAppInstance bietet da direkt nichts an. Mit einem kleinen "Namenstrick" über der Formular/DataModule Deklaration kann man aber die Loaded Methode überschreiben und dort Active deaktivieren, wenn eine der Ctrl+Tasten gedrückt ist.

Delphi-Quellcode:
type
  TJvAppInstances = class(JvAppInst.TJvAppInstances) // same class name above the declaration to "trick" the compiler
  protected
    procedure Loaded; override;
  end;

  TFrmMain = class(TForm)
    JvAppInstances1: TJvAppInstances;
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  FrmMain: TFrmMain;

implementation

{$R *.dfm}

{ TJvAppInstances }

procedure TJvAppInstances.Loaded;
begin
  Active := Active and (GetKeyState(VK_CONTROL) and $80 = 0);
  inherited Loaded;
end;
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:23 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz