AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Datasnap Server mit Timer?
Thema durchsuchen
Ansicht
Themen-Optionen

Datasnap Server mit Timer?

Ein Thema von Koloss · begonnen am 17. Jun 2014 · letzter Beitrag vom 17. Jun 2014
Antwort Antwort
Koloss

Registriert seit: 21. Jul 2010
74 Beiträge
 
Delphi 2 Desktop
 
#1

Datasnap Server mit Timer?

  Alt 17. Jun 2014, 11:13
Wiedermal ganz einfaches Beispiel, Datasnap Server mit Assistenten und einen Timer reingeleg!
Ich komme nicht in den Timer Event hinein, wo liegt das Problem?
Für die Frage warum ich da einen Timer möchte, weil ich von wo anderes für diesen Client Daten hole!


Delphi-Quellcode:
unit ServerMethodsUnit1;

interface

uses System.SysUtils, System.Classes, System.Json,
    Datasnap.DSServer, Datasnap.DSAuth, DataSnap.DSProviderDataModuleAdapter,
  Vcl.ExtCtrls;

type
  TServerMethods1 = class(TDSServerModule)
    Timer1: TTimer;
    procedure Timer1Timer(Sender: TObject);
    procedure DSServerModuleCreate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
    function EchoString(Value: string): string;
    function ReverseString(Value: string): string;
  end;

implementation


{$R *.dfm}


uses System.StrUtils;

procedure TServerMethods1.DSServerModuleCreate(Sender: TObject);
begin

end;

function TServerMethods1.EchoString(Value: string): string;
begin
  Result := Value;
end;

function TServerMethods1.ReverseString(Value: string): string;
begin
  Result := System.StrUtils.ReverseString(Value);
end;

procedure TServerMethods1.Timer1Timer(Sender: TObject);
begin
  Tag := 5; // Da komme ich nicht rein, wieso den nicht?
end;
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Datasnap Server mit Timer?

  Alt 17. Jun 2014, 11:19
Ein Server bekommt eine Anfrage und antwortet auf diese. Für was benötigst Du einen Timer?
Markus Kinzler
  Mit Zitat antworten Zitat
Koloss

Registriert seit: 21. Jul 2010
74 Beiträge
 
Delphi 2 Desktop
 
#3

AW: Datasnap Server mit Timer?

  Alt 17. Jun 2014, 11:20
Ich hole zyklisch Daten von einen anderen Server!
  Mit Zitat antworten Zitat
Der schöne Günther
Online

Registriert seit: 6. Mär 2013
6.157 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Datasnap Server mit Timer?

  Alt 17. Jun 2014, 11:24
Ich kenne mich mit Windows und Services nicht aus, aber ich meine doch, der Timer ist doch letzten Ende über Windows-Messages realisiert. WM_TIMER oder so wahrscheinlich.

Und diese Message braucht wahrscheinlich ein Fenster? Hat dein Server überhaupt eins? Was für komische Dinge sind zu beachten wenn eine Anwendung vom Benutzer "System" ausgeführt wird?

Ich bin besser still. Aber ich würde mal schauen nach Timer und Konsolenanwendung. Ich meine ein Timer braucht so unbedingt ein Fenster.

Ansonsten wenn du Daten holen willst, mach doch einfach einen Hintergrund-Thread der solange schläft, Daten holt, wieder schläft...
  Mit Zitat antworten Zitat
Koloss

Registriert seit: 21. Jul 2010
74 Beiträge
 
Delphi 2 Desktop
 
#5

AW: Datasnap Server mit Timer?

  Alt 17. Jun 2014, 11:30
Ich habe den Timer ganz normal raufgelegt auf das TDSServerModule.

Ja, ein Timer braucht Windows Messages das weis ich, aber wieso erlaubt mir Delphi den Timer raufzulegen?
Mein Server hat ein Fenster und ist keine Konsolenanwendung.

Das Problem mit den Thread ist dann wieder das man ihn schützen muss!

Geändert von Koloss (17. Jun 2014 um 11:39 Uhr)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Datasnap Server mit Timer?

  Alt 17. Jun 2014, 11:38
Und warum?
Markus Kinzler
  Mit Zitat antworten Zitat
Photoner

Registriert seit: 6. Dez 2012
Ort: Nürnberg
103 Beiträge
 
Delphi 10.1 Berlin Starter
 
#7

AW: Datasnap Server mit Timer?

  Alt 17. Jun 2014, 11:48
Jetzt mal ganz simpel a la "haben Sie überprüft ob das Kabel eingesteckt ist?" :

Ist der Timer gestartet? Timer1.Enabled := True
Chris
  Mit Zitat antworten Zitat
Koloss

Registriert seit: 21. Jul 2010
74 Beiträge
 
Delphi 2 Desktop
 
#8

AW: Datasnap Server mit Timer?

  Alt 17. Jun 2014, 11:52
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.053 Beiträge
 
Delphi 12 Athens
 
#9

AW: Datasnap Server mit Timer?

  Alt 17. Jun 2014, 16:00
aber ich meine doch, der Timer ist doch letzten Ende über Windows-Messages realisiert. WM_TIMER oder so wahrscheinlich.
Ja ist es.

Aber da damals keiner eine umständliche Behandlung der Timer-IDs implementieren wollte, erstellt sich TTimer immer selber ein MessageOnlyWindow im Hintergrund und registriert sich darauf, mit der ID 0.
Also das Fenster ist somit immer da.

Außerdem müsste sich so der TTimer über seinen Owner erst ein Parent-Window suchen und dort aufpassen ob und welche anderen TTimer es gibt, um sich eine eigene ID zu berechnen. (wobei es keine Möglichkeit gibt, beim Windows anzufragen, ob eine ID belegt ist, z.B. durch einen direkten API-Aufruf)
Ach ja, das WM_TIMER kommt dann natürlich beim Parent-Control (z.B. der Form) an und nicht bei der TTimer-Komponente, weswegen man dann entweder das Event in alle möglichen Parentcontrols implementieren müsste, oder Dieses "umständlich" hooken müsste, um an das Event ranzumommen.
Und was ist mit dynmaischen Timern, welche einen Owner besitzen?
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (17. Jun 2014 um 16:07 Uhr)
  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 19: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