AGB  ·  Datenschutz  ·  Impressum  







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

Visual c# code nach Delphi?

Ein Thema von RStorm · begonnen am 25. Feb 2007 · letzter Beitrag vom 27. Feb 2007
Antwort Antwort
RStorm

Registriert seit: 27. Nov 2005
12 Beiträge
 
#1

Visual c# code nach Delphi?

  Alt 25. Feb 2007, 21:22
Hallo Freunde,

habe eine frage? Ich programmiere schon länger mit delphi (Privat und Geschäftlich) etwas. Da ich mir jetzt einen carpc eingebaut habe und die software Centrafuse nutze, wollte ich mir jezt mal ein plugin schreiben. Da bei Centrafuse ein SDK mit beispiel dabei war dacht ich mir ich versuche es mal ob ich es hinbekomme, aber das problem ist das es in visual c# geschreiben ist und ich zeilen wie:

this.CFSetup_ok += new EventHandler(section1_CFSetup_ok);

nicht weiss wie ich es in Delphi umschreiben kann. Vielicht kennt einer die Software und hat mal damit was gemacht und könnte ein paar beispiele zu verfügung stellen. Oder kann mir jemand sagen wie ich das in Delphi umschreibe.

Das wäre echt super

Danke und Gruss

Rudolf
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.641 Beiträge
 
#2

Re: Visual c# code nach Delphi?

  Alt 25. Feb 2007, 21:25
Das ist ein ganz normales Event.

this = self.

Dem Event CFSetup_ok wird der Eventhandler (also die aufrufende Funktion) section1_CFSetup_ok zugewiesen.

Das war's eigentlich schon. In C# gibts Multicast-Delegates, also ein Event kann mehrere Funktionen aufrufen, deswegen += und nicht nur =.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
RStorm

Registriert seit: 27. Nov 2005
12 Beiträge
 
#3

Re: Visual c# code nach Delphi?

  Alt 25. Feb 2007, 21:33
Hi

wow das war ne blitz antwort danke. Also da ich c# überhaupt net kenne hab ich mal nen kollegen gefragt der sich etwas aus kennt damit und er meinet, das durch das += das CFSetup_ok kopiert und irgentwie die das event section1_cfSetup_ok zugewissen wird. Naja ob der sich da so sicher war weiss ich auch net.

gruss
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.641 Beiträge
 
#4

Re: Visual c# code nach Delphi?

  Alt 25. Feb 2007, 21:37
Nicht ganz

Es werden die Eventhandler, die schon auf CFSetup_ok zugewiesen wurden behalten, und section1_CFSetup_ok hinzugefügt ( += -> hinzufügen).

Das wäre das gleiche wie
Code:
this.CFSetup_ok = this.CFSetup_ok + new EventHandler(section1_CFSetup_ok);
Wenn Du nur
Code:
this.CFSetup_ok = new EventHandler(section1_CFSetup_ok);
schreiben würdest, würden alle vorher auf CFSetup_ok zugewiesenen Eventhandler überschrieben werden und nicht mehr angestossen werden, wenn dieses Ereignis eintritt.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
RStorm

Registriert seit: 27. Nov 2005
12 Beiträge
 
#5

Re: Visual c# code nach Delphi?

  Alt 25. Feb 2007, 21:44
Ok so hab ich es verstanden. Aber wie würde das in delphi aussehen könntest du mir ein kleines beispiel zeigen wenn das ginge ich habe mit EventHandler noch nie was gemacht. hab zwar schon selber versucht aber ständig fehler bekommen habe:

procedure section1_CFSetup_ok; deklariert und versucht das zu zuweissen, aber das funzte nicht.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Visual c# code nach Delphi?

  Alt 25. Feb 2007, 21:47
Ein Event-Handler ist eine Methode und Signatur dieser Methode muß stimmen
Markus Kinzler
  Mit Zitat antworten Zitat
Jürgen Thomas

Registriert seit: 13. Jul 2006
Ort: Berlin
750 Beiträge
 
#7

Re: Visual c# code nach Delphi?

  Alt 26. Feb 2007, 09:22
Hallo,

unter Delphi.NET werden EventHandler für Multicast-Events mit Delphi-Referenz durchsucheninclude eingebunden:
include(Klasse.Ereignis, Self.EventHandler); Dein Schnipsel sollte also so lauten:
include(CFSetup_ok, section1_CFSetup_ok); Ich habe zwar angezeigt, aber meine 2005-Hilfe hat das nicht aufgerufen. Ich habe es nur aus einem Buch übernommen und selbst nicht benutzt.

Gruß Jürgen
#D mit C# für NET, dazu Firebird
früher: Delphi 5 Pro, Delphi 2005 Pro mit C# (also NET 1.1)
Bitte nicht sauer sein, wenn ich mich bei Delphi-Schreibweisen verhaue; ich bin inzwischen an C# gewöhnt.
  Mit Zitat antworten Zitat
RStorm

Registriert seit: 27. Nov 2005
12 Beiträge
 
#8

Re: Visual c# code nach Delphi?

  Alt 27. Feb 2007, 09:05
Hallo Leute

Vielen vielen Dank für die Antworten und Aufklärungen.
Danke Jürgen für das Beispiel mit dem Include, ich hatte es schon vorher mal mit include versucht, aber erhilt ständig eine Fehlermeldung. Dann habe ich durch dein Beispiel mir mal das Include näher angesehen und habe es dann so zum laufen bekommen.

Delphi-Quellcode:
unit Setup;

interface

uses
   SysUtils, Classes,
   System.Reflection,
   System.Runtime.InteropServices,
   centrafuse.Plugins,
   System.Xml,
   System.Drawing,
   system.Web;

 type
  TSetup = class(CFSetup)
        configxml : XmlDocument;
        languagexml: XmlDocument;

        procedure loadSetupPage;
        procedure readConfig;

        procedure buildControls;

             // *** Sektion der Buttons Anfang ***
        procedure section1_CFSetup_ok(sender: System.Object; e: System.EventArgs); // Diese procedure habe ich noch so deglarieren
                                                                                   // müssen
   ...
   ...
   ...

procedure TSetup.section1_CFSetup_ok(sender: System.Object; e: System.EventArgs);
begin
 // hier steht gedöhns was passieren soll
end;

procedure TSetup.buildControls;
begin
  Include(CFSetup_ok, section1_CFSetup_ok);
end;
   ...
   ...
   ...
zumindest bekomme ich jetzt keine Fehlermeldungen mehr.

So nebenbei könnte mir einer sagen was für eine Bedeutung der befehl SWITCH und CATCH habe, also mit was das in Delphi zu vergleichen wäre ich glaube CATCH ist das gleich wie EXECPTION also ein TRY .. EXCEPT ..END anweissung. Sehe ich das so richtig.

Vielen Dank und grüsse

Rudolf
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Visual c# code nach Delphi?

  Alt 27. Feb 2007, 09:08
Zitat:
So nebenbei könnte mir einer sagen was für eine Bedeutung der befehl SWITCH und CATCH habe, also mit was das in Delphi zu vergleichen wäre ich glaube CATCH ist das gleich wie EXECPTION also ein TRY .. EXCEPT ..END anweissung. Sehe ich das so richtig.
ja und ein switch ist eine Case-Anweisung in Delphi, wobei man die Beschränkungen von Case beachten muß.
Markus Kinzler
  Mit Zitat antworten Zitat
Jürgen Thomas

Registriert seit: 13. Jul 2006
Ort: Berlin
750 Beiträge
 
#10

Re: Visual c# code nach Delphi?

  Alt 27. Feb 2007, 09:36
mkinzler hat switch und catch richtig erläutert. Ich kann mir aber vorstellen, dass dazu weitere Fragen folgen; deshalb hier noch ein paar Hinweise:

switch()
Die einzelnen Fälle werden durch case sowie ggf. default unterschieden. Wichtig ist, dass jeder Fall mit break beendet werden muss; das ist ja unter Delphi anders geregelt.

catch
Bei C# können try-catch-finally in einem Rutsch verbunden sein. Bei Delphi musst Du es bekanntlich verschachteln: try-(try-except)-finally.

Ich hoffe, das hilft Dir zusätzlich. Jürgen
#D mit C# für NET, dazu Firebird
früher: Delphi 5 Pro, Delphi 2005 Pro mit C# (also NET 1.1)
Bitte nicht sauer sein, wenn ich mich bei Delphi-Schreibweisen verhaue; ich bin inzwischen an C# gewöhnt.
  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 08:03 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