AGB  ·  Datenschutz  ·  Impressum  







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

Textbox das Click ereignis hinzufügen.

Ein Thema von Taladan · begonnen am 8. Dez 2005 · letzter Beitrag vom 11. Dez 2005
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Taladan
Taladan

Registriert seit: 5. Aug 2003
Ort: Osnabrück
505 Beiträge
 
Delphi 2005 Professional
 
#11

Re: Textbox das Click ereignis hinzufügen.

  Alt 10. Dez 2005, 16:46
Zitat von Elvis:
Code:
public class ClickableTextBox : TextBox
{
   [Browsable(true)]
   public new event EventHandler Click
   {
      add { base.Click += value; }
      remove { base.Click -= value; }
   }
}
Kann mir jemand das mal für Pascal übersetzen. Ich bekomme das nicht hin

Ich habe das gemacht, funktioniert jedoch nicht, da das ereignis nirgends ausgelöst wird.
Delphi-Quellcode:
  OnClick = procedure(sender: System.Object; e: System.Windows.Forms.MouseEventArgs) of Object;

  TalasTextBox = class(System.Windows.Forms.Textbox)
  {$REGION 'Vom Designer verwalteter Code'}
  strict private
    /// <summary>
    /// Erforderliche Designervariable.
    /// </summary>
    Components: System.ComponentModel.Container;
    /// <summary>
    /// Erforderliche Methode zur Unterstützung des Designers -
    /// ändern Sie die Methode nicht mit dem Quelltext-Editor
    /// </summary>
    procedure InitializeComponent;
  {$ENDREGION}
  strict protected
    /// <summary>
    /// Ressourcen nach der Verwendung bereinigen
    /// </summary>
    procedure Dispose(Disposing: Boolean); override;
  private
    { Private-Deklarationen }
    FClick : OnClick;
  public
    constructor Create; overload;
    constructor Create(Container: System.ComponentModel.IContainer); overload;
  published
    [Category('Aktion'),
    Description('Tritt auf, wenn das Steuerelement geklickt wird'),
    Browsable(true)]
    property Click : OnClick add FClick remove FClick;
  end;
Marco
Wer Rechtschreibfehler findet, der darf sie behalten

Carpe Diem - Nutze den Tag (und zwar den ganzen!)
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#12

Re: Textbox das Click ereignis hinzufügen.

  Alt 10. Dez 2005, 21:14
Zitat:
Kann mir jemand das mal für Pascal übersetzen. Ich bekomme das nicht hin
Ich habe das gemacht, funktioniert jedoch nicht, da das ereignis nirgends ausgelöst wird.
Bist du dir sicher, dass du weißt was du und vor allem was der designer da für dich macht?
Hast du irgendwo in meinem Code in Feld gesehen? (Soviel C# sollte man schon erwarten können )
Nein. Warum _sollte_ eigentlich klar sein: Ich will den Event des Vorgängers nur mit einem Attribute versehen.
Ihn also durchschleifen, nicht verstecken! Da er nicht virtuell deklariert ist, musste ich ihn verpacken und, wie gesagt, alle Zugriffe auf Click des Vorgängers durchreichen.
Das hier könnte gehen:
Delphi-Quellcode:
ClickableTextBox = class(Textbox)
public
  Browsable(true)]
  property Click;
end;
Geht es nicht, bräuchte man eine 1:1 Umsetzung meines C# Codes zu D.Net:
Delphi-Quellcode:
ClickableTextBox = class(Textbox)
private
  procedure add_Click(value : EventHandler);
  procedure remove_Click(value : EventHandler);
public
  Browsable(true)]
  property Click : EventHandler add add_Click remove remove_Click; reintroduce;
end;
...
procedure ClickableTextBox.add_Click(value : EventHandler);
begin
  include(inherited Click, value);
end;

procedure ClickableTextBox.remove_Click(value : EventHandler);
begin
  exclude(inherited Click, value);
end;
Es kann sein, dass der Compiler am reintroduce abkackt. (habe keinen D.Net compiler und es auch ewig nicht angefast)
Wenn er es nicht kapiert, nimm es einfach weg.

Zu meiner Frage oben: Das war keine rocket science und auch keine architektonische Meisterleistung. Es scheiterte schon am Deklarieren eines einzigen Events...
Robert Giesecke
  Mit Zitat antworten Zitat
Benutzerbild von Taladan
Taladan

Registriert seit: 5. Aug 2003
Ort: Osnabrück
505 Beiträge
 
Delphi 2005 Professional
 
#13

Re: Textbox das Click ereignis hinzufügen.

  Alt 11. Dez 2005, 14:34
Danke dafür. Wobei nach meinen Tests man nur folgendes machem muß

Delphi-Quellcode:
ClickableTextBox = class(System.Windows.Forms.Textbox)
public
    [Category('Aktion'),
    Browsable(true)]
    property Click;
end;
Wichtig ist das beides, also Category und Browsable angegeben wird. An sonnsten wird das Event immer noch versteckt
Marco
Wer Rechtschreibfehler findet, der darf sie behalten

Carpe Diem - Nutze den Tag (und zwar den ganzen!)
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#14

Re: Textbox das Click ereignis hinzufügen.

  Alt 11. Dez 2005, 16:24
Zitat von Taladan:
Wichtig ist das beides, also Category und Browsable angegeben wird. An sonnsten wird das Event immer noch versteckt
Schaue mal ganz unten unter "misc.".
Man nimmt auch generell niemals deutsche Namen für Kategorien. Generell nimmt eigentlich niemals deutsche Bezeichner, Kommentare,... (wer weiß, wer den Code später bearbeiten muss...)
Nimm den englischen und er wird in jeder Sprache richtig dargestellt.
Robert Giesecke
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 21:57 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