AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Service oder Anwendung

Ein Thema von Kowelenz · begonnen am 11. Jul 2007 · letzter Beitrag vom 4. Nov 2007
Antwort Antwort
Seite 1 von 2  1 2      
Kowelenz

Registriert seit: 11. Jul 2007
2 Beiträge
 
Delphi 7 Professional
 
#1

Service oder Anwendung

  Alt 11. Jul 2007, 19:33
Hallo zusammen,

ich habe eine Funktion die in einer eigenen Unit liegt, welche per uses in mehreren Programmen eingebunden wird.
Die Funktion müsste jetzt irgendwie ermitteln, ob das Programm in welche sie eingebunden ist eine normale Anwendung oder ein Dienst ist. Gibts dafür irgend eine Property von Application oder wie kann man das rausfinden? Oder was bietet die Windows API da für Möglichkeiten?
Jemand ne idee?


Danke,
der Kowelenzer
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Service oder Anwendung

  Alt 11. Jul 2007, 20:23
Herzlich willkommen in der Delphi-PRAXiS, Kowelenz.

Du könntest einfach den Typ von Application abfragen:

Delphi-Quellcode:
if Application is TServiceApplication then
  ShowMessage('Wir sind Service')
else
  ShowMessage(Application.ClassName);
Freundliche Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Service oder Anwendung

  Alt 11. Jul 2007, 20:46
aber die Globale Application ist doch erst verfügbar wenn man die Unit Forms einbindet oder das äquivalent für den Service. Und sobald die Unit Forms eingebunden wird, dächte ich, wird auch das TApplication was man aus der normalen Anwendung kennt instanziert.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von GuenterS
GuenterS

Registriert seit: 3. Mai 2004
Ort: Österreich > Bad Vöslau
760 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Service oder Anwendung

  Alt 11. Jul 2007, 21:24
Zitat von SirThornberry:
aber die Globale Application ist doch erst verfügbar wenn man die Unit Forms einbindet oder das äquivalent für den Service. Und sobald die Unit Forms eingebunden wird, dächte ich, wird auch das TApplication was man aus der normalen Anwendung kennt instanziert.

Äh ja und was ist an Marabus Vorschlag jetzt das Problem? Er wirt wohl die eine oder andere Unit eingebunden haben
Günter
Pünktlichkeit ist die Fähigkeit vorherzusagen um wieviel sich der Andere verspäten wird.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Service oder Anwendung

  Alt 11. Jul 2007, 21:28
eben, wenn meine annahme stimmt, hängt das Ergebnis davon ab welche Unit in der Unit wo der Test ist stattfindet.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von GuenterS
GuenterS

Registriert seit: 3. Mai 2004
Ort: Österreich > Bad Vöslau
760 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Service oder Anwendung

  Alt 11. Jul 2007, 21:32
Zitat von Delphi Hilfe:
Fügen Sie einem Projekt nur eine der Unit Forms, Cgiapp, Isapiapp, Svcmgr oder Ctlpanel hinzu. Wenn die Ausführung eines Programms beginnt, wird die Variable Application so instantiiert, wie sie in der betreffenden Unit-Datei deklariert ist, und ruft deren Methoden Initialize, CreateForm und Run auf. Das Verhalten der Anwendung ist von der Implementierung dieser Methoden in der Klasse des erstellten Anwendungsobjekts abhängig.
Das würde doch bedeuten, dass man es beim Ausführen dieser Funktion weiß, wenn man sich an oben genannten Ratschlag der Online Hilfe hält.
Günter
Pünktlichkeit ist die Fähigkeit vorherzusagen um wieviel sich der Andere verspäten wird.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Service oder Anwendung

  Alt 11. Jul 2007, 21:42
@GuenterS: Eben, das würde funktionieren wenn er in seinem Hauptprogramm wo eine der Units eingebunden ist das ganze prüft. Aber er hat ja folgende Situation:

Unit1: Unit mit Funktion welche überprüfen soll ob es ein Service ist oder nicht
Unit2: Hauptprogramm-> bindet Unit1 ein wo funktion ist welche feststellt ob es ein service ist oder nicht

in Unit1 ist "Application" aber nur verfügbar wenn es per uses eingefügt ist. Und da ist eben die Frage welche Unit in die Uses soll. Sobald die Unit Forms in Unit1 eingebunden wird ist es immer eine normale Anwendung obwohl in der Hauptunit eventuell ein Service steckt.

Wenn die Prüfung direkt in Unit2 statt finden würde wäre es also kein Problem. Aber dadurch das in Unit1 die Funktion sein soll welche prüft kommt es eben zu genanntem problem.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#8

Re: Service oder Anwendung

  Alt 11. Jul 2007, 22:15
Ach, es ist alles noch viel schlimmer: Wird SvcMgr eingebunden, dann existieren sogar zwei Application-Objekte. Vergesst meinen Vorschlag, er war nicht sehr durchdacht. Wenn ihr bis morgen früh keine Lösung findet, dann denke ich nochmal drüber nach.

Gute Nacht
  Mit Zitat antworten Zitat
Benutzerbild von gsh
gsh

Registriert seit: 24. Okt 2004
1.542 Beiträge
 
Delphi XE Architect
 
#9

Re: Service oder Anwendung

  Alt 11. Jul 2007, 23:11
Hmm einfach mal so in die runde geworfen:
Vllt. bringen dir Compiler schalter was

Da kannst du dann in etwa so schreiben:
Delphi-Quellcode:
Programm:
{$Define Ich_bin_ein_Programm}

Service:
{$Define Ich_bin_ein_Service}

Deine Unit:
procedure SagMirWasDuBist;
begin
{$IFDEF Ich_bin_ein_Programm}
  ShowMessage("Bin ein Programm");
{$ENDIF}
{$IFDEF Ich_bin_ein_Service}
  ShowMessage("Bin ein Service");
{$ENDIF}
end;
Ich bin totmüde also kann ich dir jetzt nicht mehr genau sagen wie die dinger heißen aber Forum suche Hier im Forum suchenCompilerschalter oder in der Delphi Hilfe findest du des alles ganz genau

Gut nacht *umfall*
Alex
"Sage nicht alles, was du weißt, aber wisse alles, was du sagst!" Matthias Claudius
"Wer sich über Kritik ärgert, gibt zu, daß er sie verdient hat." Tacitus
  Mit Zitat antworten Zitat
Kowelenz

Registriert seit: 11. Jul 2007
2 Beiträge
 
Delphi 7 Professional
 
#10

Re: Service oder Anwendung

  Alt 12. Jul 2007, 08:41
Hallo und Danke dass ihr euch so reinhängt!


Zu den Compilerschaltern, gute Idee, aber:

Wenn ich {$Define Ich_bin_ein_Programm} in der Hauptunit mache und in der Funktionsunit das {$IFDEF Ich_bin_ein_Programm}, dann ist es dort nicht definiert. Das funktioniert bei mir nur, wenn ich das define innerhalb der selben Unit mache. Auch das Definieren in der dpr-Datei hat keinen Erfolg gebracht...

Grüße,
der Kowelenzer
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 16: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