AGB  ·  Datenschutz  ·  Impressum  







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

Komponente mit Event versehen.

Ein Thema von Alexander · begonnen am 20. Jul 2007 · letzter Beitrag vom 20. Jul 2007
Antwort Antwort
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#1

Komponente mit Event versehen.

  Alt 20. Jul 2007, 14:07
Hallo DP'ler ,
ich probiere gerade mal ein wenig C# aus und schreibe mir eine kleine Komponente für SQL.
Jetzt möchte ich der Komponente Events hinzufügen. Probiert habe ich das so:
Code:
namespace QueryBuilder
{
    public partial class SQLQueryPanel : Panel
    {
        //-------- EVENTS ----------------------------------------------------------------------------------
        public delegate void SqlEventHandler(object sender, SqlUpdateEventArgs e);
        public event SqlEventHandler SqlChanged;

        protected void OnSqlChanged(SqlUpdateEventArgs e) // hier mag der Compiler nicht mehr weiter arbeiten
        {
            if (SqlChanged != null)
            {
                SqlChanged(this, e);
            }
        }

        public void updateSql()
        {
            ISqlExporter exporter = new AnsiSql92Exporter();
            OnSqlChanged(new SqlUpdateEventArgs(exporter.getSql(children, joinList)));
        }
    }
}
Die Klasse SqlUpdateEventArgs sieht dabei so aus:
Code:
using System;
using System.Collections.Generic;
using System.Text;

namespace QueryBuilder
{
    class SqlUpdateEventArgs : System.EventArgs
    {

        public SqlUpdateEventArgs(string sql)
        {
            this.sql = sql;
        }
        public string Sql
        {
            get
            {
                return(sql);
            }
        }
        string sql;
    }
}
Leider bekomme ich folgenden Fehler:
Inkonsistenter Zugriff: Parametertyp "QueryBuilder.SqlUpdateEventArgs" ist weniger zugreifbar als Methode "QueryBuilder.SQLQueryPanel.OnSqlChanged(QueryBuil der.SqlUpdateEventArgs)".
Verwiesen wir auf die markierte Stelle im Quelltext oben.

Kann mir da jemand helfen? Ich verstehe den Fehler leider nicht .

Besten Dank
Alexander
  Mit Zitat antworten Zitat
Sidorion

Registriert seit: 23. Jun 2005
403 Beiträge
 
#2

Re: Komponente mit Event versehen.

  Alt 20. Jul 2007, 14:30
Dein Delegat ist public, die eventargs-Klasse nicht.
Demzufolge kann man dem Event keinen Handler zuordnen, da man den Typ der Übergabe nicht angeben kann (es ist also nicht möglich eine passende Handler-Prozedur zu deklarieren)
Manchmal sehen Dinge, die wie Dinge aussehen wollen mehr wie Dinge aus, als Dinge
<Esmerelda Wetterwachs>
  Mit Zitat antworten Zitat
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#3

Re: Komponente mit Event versehen.

  Alt 20. Jul 2007, 17:48
Ahh, vielen Dank. Das war's.
Muss aber schon zu geben, dass C# doch eigentlich gar nicht so schlecht ist .
Alexander
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#4

Re: Komponente mit Event versehen.

  Alt 20. Jul 2007, 17:55
Zitat von Alexander:
Muss aber schon zu geben, dass C# doch eigentlich gar nicht so schlecht ist .
Die Sprache ist eigentlich ziemlich witzlos, richtig lustig wird es erst in Verbindung mit Framework(s), IDE und Blogosphäre .
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#5

Re: Komponente mit Event versehen.

  Alt 20. Jul 2007, 17:58
Natürlich, dass war auch alles zusammen gemeint
Alexander
  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 17:53 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