![]() |
Komponente mit Event versehen.
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:
Die Klasse SqlUpdateEventArgs sieht dabei so aus:
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))); } } }
Code:
Leider bekomme ich folgenden Fehler:
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; } } 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 :) |
Re: Komponente mit Event versehen.
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) |
Re: Komponente mit Event versehen.
Ahh, vielen Dank. Das war's.
Muss aber schon zu geben, dass C# doch eigentlich gar nicht so schlecht ist :P. |
Re: Komponente mit Event versehen.
Zitat:
|
Re: Komponente mit Event versehen.
Natürlich, dass war auch alles zusammen gemeint ;)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:37 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz