AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi ableiten von klassen und überschreiben von ereignissen
Thema durchsuchen
Ansicht
Themen-Optionen

ableiten von klassen und überschreiben von ereignissen

Ein Thema von kiar · begonnen am 12. Okt 2003 · letzter Beitrag vom 12. Okt 2003
Antwort Antwort
Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#1

ableiten von klassen und überschreiben von ereignissen

  Alt 12. Okt 2003, 16:01
folgendes problem, ich leite eine klasse von TCustomControl ab
Delphi-Quellcode:
type
  TZustand = (zOn, zOut);
  TBrandmeldung = class(TCustomControl)

   private
     
     FZustand:TZustand;
     
   protected
     
   public
     constructor Create(Aowner :TComponent); override;
     destructor Destroy; override;
     procedure Paint; override;
     property Zustand: TZustand read FZustand write FZustand ;
end;
als nächstes leite ich von diser klasse ab;
Delphi-Quellcode:
type
   TMelderTyp = (mThermisch, mOptisch, mMulti);
   TMelder = class(TBrandmeldung)
   private

   public
     constructor Create(Aowner: TComponent); override;
     destructor Destroy;override;
     procedure Paint;override;
     procedure MouseDown(Button:TMouseButton;Shift: TShiftState;x,y:Integer);override;
     procedure MyClick(Sender :TObject);
     property Onclick;
end;
wenn ich nun einen klick auf die TMelderKlasse mache, um den zustand zu ändern, muss ich 3 mal klicken, bis der zustand- in gestalt einer anderen farbe - sich ändert.

wo liegt mein fehler?

zum test habe ich mousedown überschrieben und dort das onclick ereignis zugewiesen. in myclick ändere ich nur den status - wenn zon ,dann zout und umgekehrt.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

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

Re: ableiten von klassen und überschreiben von ereignissen

  Alt 12. Okt 2003, 16:54
Moin Kiar,

wie sieht denn Deine OnClick Routine aus, mit der Du es versuchst?
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
Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#3

Re: ableiten von klassen und überschreiben von ereignissen

  Alt 12. Okt 2003, 17:54
hi chris
Delphi-Quellcode:
procedure TMelder.myClick(Sender:TObject);
begin

     if fZustand = Zout then
        begin
          FZustand:= Zon;
          canvas.pen.color:=Clred
        end else
          begin
            FZustand:= Zout;
            canvas.pen.color:=clyellow;
          end;
        
end;
im Create weise ich dem onclick das myclick-ereignis zu.

raik
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#4

Re: ableiten von klassen und überschreiben von ereignissen

  Alt 12. Okt 2003, 18:56
Hallo,
schau Dir mal dies Beispiel an. Das funktioniert
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls;

type

  TMelder = class(TCustomPanel)
  private
    FZustand : Boolean;
  protected
    procedure Click; override;
  public
    constructor Create(AOwner : TComponent);
  end;

  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

{ TMelder }

procedure TMelder.Click;
begin
  FZustand:=Not FZustand;
  Case FZustand Of
    False : Color:=clBtnFace;
    True : Color:=clLime;
    end;
  inherited Click;
end;

constructor TMelder.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  ControlStyle := ControlStyle - [csAcceptsControls,csSetCaption];
end;

{ TForm1}

procedure TForm1.FormCreate(Sender: TObject);
var
  MyMelder : TMelder;
begin
  MyMelder:=TMelder.Create(Self);
  MyMelder.Parent:=Self;
  MyMelder.Left:=50;
  MyMelder.Top:=20;
end;

end.
  Mit Zitat antworten Zitat
Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#5

Re: ableiten von klassen und überschreiben von ereignissen

  Alt 12. Okt 2003, 18:59
hallo jens , wir hatten schon ma das vergnügen ging um ein ähnliches problem
raik

jens ich leite aber von TBrandmeldung ab, ich denke, das Fzustand durch den aufruf der paint methode immer wieder gesetzt wird.

eigentlich ist es besser, fZustand als boolean zu setzen, aber wenn ich mehrere zustände habe, oder mehrere Typen wird es mit boolean nicht gehen
  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 15:01 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