AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi TClientSocket - OnError Event per Code zuweisen
Thema durchsuchen
Ansicht
Themen-Optionen

TClientSocket - OnError Event per Code zuweisen

Ein Thema von Yheeky · begonnen am 8. Okt 2006 · letzter Beitrag vom 8. Okt 2006
 
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.124 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: TClientSocket - OnError Event per Code zuweisen

  Alt 8. Okt 2006, 14:06
Moin Christian,

das class ist nicht notwendig, aber dann musst Du, um die Methode nutzen zu können, eine Instanz der Klasse bilden (MyDummy := TMyDummy.Create.
Klassenmethoden können aber genutzt werden, ohne dass man eine Instanz erzeugen muss, dafür kann man in diesen nur nicht alles nutzen, was man in einer "normalen" Methode nutzen könnte (Felder der Klasse, Eigenschaften, "normale" Methoden, self verweist auf di e Klasse, nicht auf das Objekt).
Diese Einschränkungen dürften aber in dem Zusammenhang, in dem Du es nutzen willst, keine Rolle spielen (zumindest so wie es jetzt aussieht).

Anderenfalls lässt Du das class weg, und legst Dir ein Feld, z.B., in Deinem Formular vom Typ der Dummyklasse an.

Mal ein Beispiel mit beiden Varianten. Dazu benötigst Du nur ein Formular, und zwei Button.

Delphi-Quellcode:
type
  TMyDummyNormal = class(TObject)
  public
    procedure MyClick(Sender: TObject);
  end;

  TMyDummyClass = class(TObject)
  public
    class procedure MyClick(Sender: TObject);
  end;

type
  TForm1 = class(TForm)
    btnNormal: TButton;
    btnClass: TButton;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    { Private declarations }
    FMyDummyNormal : TMyDummyNormal;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

// "normale" Methode
procedure TMyDummyNormal.MyClick(Sender: TObject);
begin
  ShowMessage('NORMAL');
end;

// Klassenmethode
class procedure TMyDummyClass.MyClick(Sender: TObject);
begin
  ShowMessage('CLASS');
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  // Instanz der Klasse erzeugen
  FMyDummyNormal := TMyDummyNormal.Create;
  // Methode zuweisen
  // Man beachte das F, denn es wird die
  // Instanz FMyDummyNormal der Klasse TMyDummyNormal benutzt
  btnNormal.OnClick := FMyDummyNormal.MyClick;
  // Methode zuweisen
  // Man beachte des T, denn es wird direkt die
  // Klassenmethode benutzt
  btnClass.OnClick := TMyDummyClass.MyClick;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  // Instanz wieder freigeben
  FreeAndNil(FMyDummyNormal);
end;
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
 


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 10:29 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