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 1 von 2  1 2      
Benutzerbild von Taladan
Taladan

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

Textbox das Click ereignis hinzufügen.

  Alt 8. Dez 2005, 13:49
Wie man einer Textbox ein Click ereignis zur Laufzeit hinzufügt, ist mir bekannt. Doch da es sich um viele viele Textboxen handelt, möchte ich gerne eine eigene Komponente schreiben, wo man dies bereits über den Objectinspektor machen kann. Wie mache ich das?

Das ich dieses Erben muß ist mir klar, aber er findet angeblich nie etwas in der Basisklasse. Hier mein bisheriger Versuch

Delphi-Quellcode:
unit CTalasTextBox;

interface

uses
  System.Windows.Forms, System.Drawing, System.Collections, System.ComponentModel;

type

  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;
    procedure OnClick(sender: System.Object; e: System.EventArgs); override;
  private
    { Private-Deklarationen }
  public
    constructor Create; overload;
    constructor Create(Container: System.ComponentModel.IContainer); overload;
  published
    Property Click : OnClick;
  end;

implementation

uses
  System.Globalization;

{$AUTOBOX ON}

{$REGION 'Vom Windows Form-Designer erzeugter Code'}
/// <summary>
/// Erforderliche Methode zur Unterstützung des Designers -
/// ändern Sie die Methode nicht mit dem Quelltext-Editor
/// </summary>
procedure TalasTextBox.InitializeComponent;
begin
  Self.Components := System.ComponentModel.Container.Create;
end;
{$ENDREGION}

constructor TalasTextBox.Create;
begin
  inherited Create;
  //
  // Erforderlich für die Unterstützung des Windows Forms-Designers
  //
  InitializeComponent;
  //
  // TODO: Fügen Sie nach dem Aufruf von InitializeComponent Konstruktorcode hinzu.
  //
end;

constructor TalasTextBox.Create(Container: System.ComponentModel.IContainer);
begin
  inherited Create;
  //
  // Erforderlich für die Unterstützung des Windows Forms-Designers
  //
  Container.Add(Self);
  InitializeComponent;
  //
  // TODO: Fügen Sie nach dem Aufruf von InitializeComponent Konstruktorcode hinzu.
  //
end;

procedure TalasTextBox.Dispose(Disposing: Boolean);
begin
  if Disposing then
  begin
    if Components <> nil then
      Components.Dispose();
  end;
  inherited Dispose(Disposing);
end;

end.
Marco
Wer Rechtschreibfehler findet, der darf sie behalten

Carpe Diem - Nutze den Tag (und zwar den ganzen!)
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

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

Re: Textbox das Click ereignis hinzufügen.

  Alt 8. Dez 2005, 14:11
Mir ist nicht wirklich klar, was du machen willst. Man kann doch Events schon im OI zuweisen und wozu willst du Click redefinieren?
Click ist in TextBoxBase so definiert:
Code:
[EditorBrowsable(EditorBrowsableState.Always), Browsable(true)]
public event EventHandler Click; // von Control.Click
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Benutzerbild von Taladan
Taladan

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

Re: Textbox das Click ereignis hinzufügen.

  Alt 8. Dez 2005, 16:30
Richtig. Aber bei einer TextBox gibt es das Event Click im Objectinspekotor nicht. Dort gibt es nur DoubleClick, aber kein Click. Zuordnen kann man jedoch ein Click verhalten wärend der Laufzeit für eine Textbox. Warum zeigt der OI dieses Event nicht an?
Marco
Wer Rechtschreibfehler findet, der darf sie behalten

Carpe Diem - Nutze den Tag (und zwar den ganzen!)
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

Re: Textbox das Click ereignis hinzufügen.

  Alt 8. Dez 2005, 16:34
Zitat von Taladan:
Richtig. Aber bei einer TextBox gibt es das Event Click im Objectinspekotor nicht. Dort gibt es nur DoubleClick, aber kein Click. Zuordnen kann man jedoch ein Click verhalten wärend der Laufzeit für eine Textbox. Warum zeigt der OI dieses Event nicht an?
Naja im Notfall leitestest du halt schnell ne Komponente von der Textbox ab und schreibst in den published Teil einfach:

Delphi-Quellcode:
published
 property OnClick;
das müsste wenn ich mich nicht irre ohne Probleme gehen... (und erspart viel Code )

EDIT: Ich habe grad das Gefühl das ich ziemlich sicher Mist geredet hab
Michael
  Mit Zitat antworten Zitat
Benutzerbild von Taladan
Taladan

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

Re: Textbox das Click ereignis hinzufügen.

  Alt 9. Dez 2005, 12:51
Bekomme zwei Fehlermeldungen.
'OnClick' wurde vorher nicht als Property deklariert
Read und Write-Klausel erwartet, aber 'end' gefunden
Marco
Wer Rechtschreibfehler findet, der darf sie behalten

Carpe Diem - Nutze den Tag (und zwar den ganzen!)
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

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

Re: Textbox das Click ereignis hinzufügen.

  Alt 9. Dez 2005, 20:07
Zitat von Taladan:
Richtig. Aber bei einer TextBox gibt es das Event Click im Objectinspekotor nicht.
Du hast Recht, allerdings nur im alten 1.1 Framework. Das konnte ich wirklich nicht ahnen .
Zitat:
'OnClick' wurde vorher nicht als Property deklariert
Stimmt, das Event heißt schließlich Click.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Elvis

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

Re: Textbox das Click ereignis hinzufügen.

  Alt 9. Dez 2005, 22:38
Hmmm ganz schön viel Code um einfach ein Event mit epnem anderen Attribut zu versehen....
Code:
public class ClickableTextBox : TextBox
{
   [Browsable(true)]
   public new event EventHandler Click
   {
      add { base.Click += value; }
      remove { base.Click -= value; }
   }
}
Es gibt übrigens einen guten Grund, warum das Event für TextBox im Designer versteckt wurde:
Es gibt nämlich kaum gute Gründe, warum man das Event für TextBox im Designer besetzen sollte. (Mir fällt nichtmal ein einziger ein... )

btw: Dass es wirklich so easy geht sieht du wenn das Li.. äh wenn du auf den screenie schaust.
Miniaturansicht angehängter Grafiken
clickable_textbox_im_designer_186.png  
Robert Giesecke
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Textbox das Click ereignis hinzufügen.

  Alt 9. Dez 2005, 22:56
Also so leid es mir tut, aber ich verstehe den Sinn darin nicht.
Ich habe auch bei einer System.Windows.Forms.TextBox ein Click - Event.

@Elvis:
Wie hast du das gemacht, dass du den Code in Zeile 9 bekommst, ohne dass dir der Designer entgegen springt? Eine zweite Datei angelegt?

Habs gerade im Reiter gesehen: ClickableTextBox.cs

Grüße
Faux
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

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

Re: Textbox das Click ereignis hinzufügen.

  Alt 9. Dez 2005, 23:07
Zitat von faux:
Also so leid es mir tut, aber ich verstehe den Sinn darin nicht.
Ich habe auch bei einer System.Windows.Forms.TextBox ein Click - Event.
Wie ich oben schon geschrieben habe, erst ab 2.0 lässt sich das Event im OI finden.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Elvis

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

Re: Textbox das Click ereignis hinzufügen.

  Alt 9. Dez 2005, 23:07
Zitat:
Also so leid es mir tut, aber ich verstehe den Sinn darin nicht.
Ich habe auch bei einer System.Windows.Forms.TextBox ein Click - Event.
Stümmt in 2.0 Ist TextBoxBase.Click nicht mehr Browsable(false)! Warum auch immer...

Edit: Nur um sicher zugehen habe ich mir gerade nochmal das alte #d gesaugt und es damit probiert: Es klappt natürlich.

Zitat:
Wie hast du das gemacht, dass du den Code in Zeile 9 bekommst, ohne dass dir der Designer entgegen springt? Eine zweite Datei angelegt?
Indem ich es einfach tippe? Natürlich springt bei dir der Designer an, wenn du bei Componenten tandardmäßig den Designer starten lässt.(btw, ekelhafte default Einstellung im VS...)
Robert Giesecke
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 23:09 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