AGB  ·  Datenschutz  ·  Impressum  







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

CapiMonitor

Ein Thema von Explorer · begonnen am 24. Sep 2007 · letzter Beitrag vom 26. Sep 2007
Antwort Antwort
Explorer

Registriert seit: 10. Aug 2006
Ort: im Rhein-Main-Gebiet
21 Beiträge
 
Delphi 10.1 Berlin Professional
 
#1

CapiMonitor

  Alt 24. Sep 2007, 12:52
Hallo Forum,
ich hoffe, ich bin der richtigen Forumsparte gelandet.

Zur Sache:
Ich habe mir einen zugegebenermaßen einfachen, kleinen CapiMonitor gebaut, der auch mit dem dazu gehörenden Formular
problemlos funktioniert.

Mein eigentliches Ziel war jedoch, die Funktionen in eine dll einzubauen, um das monitoring in einer delphi-fremden
Datenbank nutzen zu können.

Seit Tagen "baue" ich nun an dem Teil leider ergebnislos herum.

Zwar gelingt es mir, via dll das integrierte Infofenster in der Datenbank zu aktivieren,
aber bei ankommenden Anrufen wird die Nummer nicht wie erwartet im Fenster angezeigt.

Irgendwo steckt ein Denkfehler, den ich nicht finde.
Vielleicht hat im Forum ja jemand den entscheidenden Tipp parat.

Mit besten Grüßen

Kisch


------------hier kommt der code----------

Delphi-Quellcode:

unit Ki_CapiMonitor;

interface

uses
  inifiles, Windows, Messages, SysUtils, Variants, Classes, Graphics,
  Controls, Forms, Dialogs, ComCtrls, StdCtrls, Buttons, ExtCtrls,
  CpMoni, CpConst;


///*** die DLL-Deklarationen
Procedure StarteCapiMonitor; stdcall; export;



implementation

type
  TKisFenster = class (TForm)
  CapiMonitor1 : TCapiMonitor;

  private
    PanelTelefonnummer : TPanel;
    PanelHintergrund : TPanel;


  public
    constructor Create(AOwner: TComponent); override;

    procedure LauscheAnIsdn;

    procedure CapiMonitor1IncomingCall(CallingPartyNumber,
                                   CalledPartyNumber: String;
                                   CipValue: Word;
                                   CipValueString: String);

// Procedure CapiMonitor1IncommingCall(CallingPartyNumber:String);

  end;

var
  KisFenster : TKisFenster = Nil;
  Controller : dWord;
  RejectTimeOut : integer;

{Deklaration einer mit Nil initialisierten Instanzvariablen des Fensters,
damit bei jedem Aufruf einer DLL- Funktion(en) die Instanz verwendet
werden kann }



constructor TKisFenster.Create(AOwner: TComponent);
begin

  CreateNew(AOwner);

  CapiMonitor1 := TCapiMonitor.Create(nil);

{Konstruktor CreateNew verwenden, weil es keine *.DFM- Datei zu dem Form gibt!}

//TKisFenster default-Werte einstellen
//mögliche Einstellungen ermitteln über zB 'KisFenster.SetBounds'
//aber so nicht verwenden, da im construktor-Mode wohl nicht zulässig

  SetBounds (654,579,330,135);
  Caption := 'ISDN Capi Monitor';
  Position := poScreenCenter;
  BorderStyle := bsDialog;


//PanelHintergrund anlegen:
    PanelHintergrund := Tpanel.Create(Self);

{Initialisiere das HintergrundPanel mit default-Eigenschaften}
    PanelHintergrund.Parent := Self;

    PanelHintergrund.ParentBackground := False;
    PanelHintergrund.ParentColor := False;
    PanelHintergrund.SetBounds(8,38,305,28);
    PanelHintergrund.BorderStyle := bsSingle;
    PanelHintergrund.Color := clBtnHighlight;
    PanelHintergrund.Ctl3D := True;
    PanelHintergrund.Font.Charset := Default_CHARSET;
    PanelHintergrund.Font.Color := clWindowText;
    PanelHintergrund.Caption := '';



//PanelTelefonnummer anlegen:
  PanelTelefonnummer := Tpanel.Create(Self);
  PanelTelefonnummer.Parent := Self;

{Initialisiere das TelefonnummerPanel mit default-Eigenschaften}
    PanelTelefonnummer.ParentBackground := False;
    PanelTelefonnummer.ParentColor := False;
    PanelTelefonnummer.ParentCtl3D := False;
    PanelTelefonnummer.ParentFont := False;
    PanelTelefonnummer.SetBounds(10,40,300,23);
    PanelTelefonnummer.Color := clMoneyGreen;
    PanelTelefonnummer.Ctl3D := False;
    PanelTelefonnummer.Font.Charset := ANSI_CHARSET;
    PanelTelefonnummer.Font.Color := clBlue;
    PanelTelefonnummer.Font.Name := 'Arial';
    PanelTelefonnummer.Font.Size := 10;
    PanelTelefonnummer.Font.Style := [fsBold];
    PanelTelefonnummer.Width := 300;

// SetBounds(100, 100, 100, 20);
    PanelTelefonnummer.Caption := 'ISDN Telefonnummer';
// Caption := '0,0 % Fett';
// end;


end;



Procedure TKisFenster.LauscheAnIsdn;
  begin
   Controller := 1;
   RejectTimeOut := 10;
   CapiMonitor1.WaitForCall(Controller,RejectTimeOut)
  end;



Procedure TKisFenster.CapiMonitor1IncomingCall(CallingPartyNumber,
                                   CalledPartyNumber: String;
                                   CipValue: Word;
                                   CipValueString: String);
  begin
 Show;

    if CallingPartyNumber <> ''
       then PanelTelefonnummer.Caption := CallingPartyNumber
       else PanelTelefonnummer.Caption := 'unbekannt';
       if IsIconic(Application.Handle) and (CallingPartyNumber<>'')
          then Application.Title := CallingPartyNumber;


  end;




//----- DLL-Export



Procedure StarteCapiMonitor; stdcall; export;

var
 StringLaenge : integer;
 CallingPartyNumber : string;
 CalledPartyNumber : string;
 CipValue : word;
 CipValueString : string;

begin
  if KisFenster = Nil then
    KisFenster := TKisFenster.Create(Nil);

    KisFenster.LauscheAnIsdn;
    KisFenster.CapiMonitor1IncomingCall(CallingPartyNumber,
                     CalledPartyNumber,CipValue,CipValueString);

/// Update ist wichtig, sonst gibts keine Veränderungsanzeige !!!
    KisFenster.Update;

end;




initialization


finalization

{Fenster wieder löschen}

  KisFenster.Free;

end.
  Mit Zitat antworten Zitat
Benutzerbild von f.siebler
f.siebler

Registriert seit: 15. Jan 2007
Ort: Hamburg
170 Beiträge
 
Delphi 2006 Professional
 
#2

Re: CapiMonitor

  Alt 24. Sep 2007, 15:33
Zitat:
delphi-fremden
Datenbank
was meinst du damit genau?
Viele Grüße aus Hamburg
Fabian
sql-praxis.net: sql von der Theorie in die Praxis...
  Mit Zitat antworten Zitat
Explorer

Registriert seit: 10. Aug 2006
Ort: im Rhein-Main-Gebiet
21 Beiträge
 
Delphi 10.1 Berlin Professional
 
#3

Re: CapiMonitor

  Alt 25. Sep 2007, 12:00
Zitat von f.siebler:
Zitat:
delphi-fremden
Datenbank
was meinst du damit genau?
TDB Studio, falls dies wesentlich zur Klärung meiner Anfrage beitragen sollte.

Mit besten Grüßen

Explorer
  Mit Zitat antworten Zitat
Benutzerbild von f.siebler
f.siebler

Registriert seit: 15. Jan 2007
Ort: Hamburg
170 Beiträge
 
Delphi 2006 Professional
 
#4

Re: CapiMonitor

  Alt 25. Sep 2007, 12:10
die frage ist ja, wie bindest du die dll. denn genau ein? Was machst du da? Wie sieht der Aufruf aus? usw.?


// Edit
Und um genaueres zu testen müsste man deine DLL übersetzten und testen können, was aber schlicht und einfach nicht möglich ist...
viel erfolg noch...
Viele Grüße aus Hamburg
Fabian
sql-praxis.net: sql von der Theorie in die Praxis...
  Mit Zitat antworten Zitat
Explorer

Registriert seit: 10. Aug 2006
Ort: im Rhein-Main-Gebiet
21 Beiträge
 
Delphi 10.1 Berlin Professional
 
#5

Re: CapiMonitor

  Alt 26. Sep 2007, 11:07
Zitat von f.siebler:
die frage ist ja, wie bindest du die dll. denn genau ein? Was machst du da? Wie sieht der Aufruf aus? usw.?


// Edit
Und um genaueres zu testen müsste man deine DLL übersetzten und testen können, was aber schlicht und einfach nicht möglich ist...
viel erfolg noch...
Es sieht so aus, als hätte ich mein Problem grundsätzlich gelöst. Der CapiConnect bedurfte eines Resets.

Mit besten Grüßen

Explorer
  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 05:58 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