AGB  ·  Datenschutz  ·  Impressum  







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

Delphi Code Umbauen

Ein Thema von msickel · begonnen am 3. Mai 2008 · letzter Beitrag vom 4. Mai 2008
Antwort Antwort
msickel

Registriert seit: 14. Mai 2005
108 Beiträge
 
Delphi 2005 Professional
 
#1

Delphi Code Umbauen

  Alt 3. Mai 2008, 18:50
Hallo

Ich habe da mal ne Frage, im Moment habe ich folgenden Code..
Delphi-Quellcode:

  //--------------------------------------------------------------------------
  // User 1
  //--------------------------------------------------------------------------
  try
    JvMemo1.Lines.Add('Recording User Anmeldung läuft');
    JvMemo1.Refresh;

    Randomize;
    v7Session1.Logon(frmUser.Edit4.Text,frmUser.Edit1.Text,frmUser.Edit3.Text,StrToInt(frmUser.Edit2.Text),tvApplicationTypeClient,32100,tvServerConnectionLevelFull,FALSE,tvStationUsageOwner);
    oCallFolder1 := v7Session1.GetDefaultFolder(tvFolderCalls);
    oCallItems1 := oCallFolder1.Items;
    oSystemTargetFolder1 := v7Session1.GetDefaultFolder(tvFolderSystemTarget);
    oTarget1 := _SystemTarget(oSystemTargetFolder1.Items.Item(frmUser.Edit1.Text,tvSearchkey));

    V7Session1.OnCallStatusChange := V7Session1CallStatusChange;
    sOwnerName1 := oCallFolder1.Name;

    JvMemo1.Lines.Add('Recording User wurde angemeldet');
    JvMemo1.Refresh;

  except
    //bFehler := True;
    JvMemo1.Lines.Add('Fehler bei der Anmeldung von Recordinguser');
    forms.Application.Terminate;
    //frmSetup.ShowModal;
  end;
und folgenden Code auch noch

Delphi-Quellcode:

procedure TfrmMain.v7Session1CallStatusChange(ASender: TObject; const ID: WideString; Status, OldStatus: TOleEnum);
begin
  //--------------------------------------------------------------------------
  // ID des Calls zuweisen
  //--------------------------------------------------------------------------
  oCurrentCall1 := _Call(v7Session1.GetItem(ID,''));
  sHistoryCall1 := oCurrentCall1.CallHistoryID;
  sCallID1 := ID;
  //--------------------------------------------------------------------------
  // Satus des Anrufes auswerten und darauf reagieren
  //--------------------------------------------------------------------------
  case Status of
    tvPartyStatusUnknown:
        JvMemo1.Lines.Add('unknown ' + sUser1Name);
    tvPartyStatusNone:
        JvMemo1.Lines.Add('none ' + sUser1Name);
    tvPartyStatusActive:
        begin
            JvMemo1.Lines.Add('ringing ' + sUser1Name);
  // usw......
da ich das aber nun sehr oft brauche wollte ich das in Funktionen und Prozeduren umbauen und mit Arrays arbeiten (wenn das geht ?)
Dabei habe ich folgendes gemacht

Delphi-Quellcode:

function LogOn(const sServer: string;const sUser, sPass, sID: string;var iCount:integer): boolean;
var
  v7Session : Array[0..5] of Tv7Session;
begin
  v7Session[1] := Tv7Session.Create(Application);
  v7Session[1].Logon(sServer,sUser,sPass,StrToInt(sID),tvApplicationTypeClient,32100,tvServerConnectionLevelFull,FALSE,tvStationUsageOwner);
  oCallFolder[1] := v7Session[1].GetDefaultFolder(tvFolderCalls);
  oCallItems[1] := oCallFolder[1].Items;
  oSystemTargetFolder[1] := v7Session[1].GetDefaultFolder(tvFolderSystemTarget);
  oTarget[1] := _SystemTarget(oSystemTargetFolder[1].Items.Item(sUser,tvSearchkey));
  
   // diese zeile geht nicht warum bzw wie muss ich es machen ???

   V7Session[1].OnCallStatusChange := V7Session[1]CallStatusChange;


   sOwnerName[1] := oCallFolder[1].Name;

end;


procedure TfrmMain.v7Session[1]CallStatusChange(ASender: TObject; const ID: WideString; Status, OldStatus: TOleEnum);
begin

end;

[Fehler] Main.pas(110): ';' erwartet, aber '[' gefunden
[Fehler] Main.pas(110): '=' erwartet, aber ';' gefunden
[Fehler] Main.pas(127): Inkompatible Typen: 'Tv7Session[1]CallStatusChange' und 'Tv7Session'
usw...
Nun bekomme ich bei der markierten Zeile einen Fehler, wie muss ich es Umbauen das es geht?

Martin
ich weiss, das ich nichts weiss!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Delphi Code Umbauen

  Alt 3. Mai 2008, 18:52
Und der genaue Fehler ist wohl geheim
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#3

Re: Delphi Code Umbauen

  Alt 3. Mai 2008, 18:56
V7Session[1].OnCallStatusChange := V7Session1CallStatusChange;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
msickel

Registriert seit: 14. Mai 2005
108 Beiträge
 
Delphi 2005 Professional
 
#4

Re: Delphi Code Umbauen

  Alt 3. Mai 2008, 18:59
Sorry war noch nicht ganz fertig
ich weiss, das ich nichts weiss!
  Mit Zitat antworten Zitat
Benutzerbild von tomsel
tomsel

Registriert seit: 8. Dez 2005
Ort: am Chiemsee
304 Beiträge
 
Delphi 7 Professional
 
#5

Re: Delphi Code Umbauen

  Alt 3. Mai 2008, 19:45
Zitat:
Delphi-Quellcode:
procedure TfrmMain.v7Session[1]CallStatusChange(ASender: TObject; const ID: WideString; Status, OldStatus: TOleEnum);
begin

end;
Das "[1]" im Funkionsbezeichner ist der Fehler. Ich ahne, was du damit bezweckst, aber du kannst dieselbe Funktion allen V7Sessions zuweisen und dann über den ASender ermitteln, welche Session CallStausChange aufruft.

Wa sich nicht raffe: In der Funktion LogOn hast du ein lokales Array, arbeitest aber nur mit dem index 1, solte der Index nicht als Parameter übergeben werden - oder ist das noch nicht ganz fertig?
Ein Experte ist ein Mann, der hinterher genau sagen kann, warum seine Prognose nicht gestimmt hat. (Winston Churchill)
  Mit Zitat antworten Zitat
msickel

Registriert seit: 14. Mai 2005
108 Beiträge
 
Delphi 2005 Professional
 
#6

Re: Delphi Code Umbauen

  Alt 3. Mai 2008, 20:45
Zitat von tomsel:
Zitat:
Delphi-Quellcode:
procedure TfrmMain.v7Session[1]CallStatusChange(ASender: TObject; const ID: WideString; Status, OldStatus: TOleEnum);
begin

end;
Das "[1]" im Funkionsbezeichner ist der Fehler. Ich ahne, was du damit bezweckst, aber du kannst dieselbe Funktion allen V7Sessions zuweisen und dann über den ASender ermitteln, welche Session CallStausChange aufruft.

Wa sich nicht raffe: In der Funktion LogOn hast du ein lokales Array, arbeitest aber nur mit dem index 1, solte der Index nicht als Parameter übergeben werden - oder ist das noch nicht ganz fertig?
Jep das ist noch nicht ganz fertig, aber kannst Du mir kurz erklären wie das funktioniert mit dem Ermitteln über den ASender, und wie geht das dann mit der Zuweisung ?


Martin
ich weiss, das ich nichts weiss!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Delphi Code Umbauen

  Alt 3. Mai 2008, 20:48
Im Parameter Sender befindet sich eine Referenz des auslösenden Objekts
Markus Kinzler
  Mit Zitat antworten Zitat
msickel

Registriert seit: 14. Mai 2005
108 Beiträge
 
Delphi 2005 Professional
 
#8

Re: Delphi Code Umbauen

  Alt 4. Mai 2008, 08:39
wäre es möglich das etwas mehr zu Umschreiben, vielleicht auch mit ein paar Codezeilen!

Wäre sehr nett.

Gruss Martin
ich weiss, das ich nichts weiss!
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#9

Re: Delphi Code Umbauen

  Alt 4. Mai 2008, 09:53
Anstatt
oCurrentCall1 := _Call(v7Session1.GetItem(ID,'')); schreibst du

Delphi-Quellcode:
if Sender is Tv7Session then // Überprügung, ob Sender vom Typ Tv7Session
  oCurrentCall1 := _Call(Tv7Session(Sender).GetItem(ID,''));
Thomas
  Mit Zitat antworten Zitat
msickel

Registriert seit: 14. Mai 2005
108 Beiträge
 
Delphi 2005 Professional
 
#10

Re: Delphi Code Umbauen

  Alt 4. Mai 2008, 14:19
Danke erst mal, werde ich versuchen

Martin
ich weiss, das ich nichts weiss!
  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:02 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