AGB  ·  Datenschutz  ·  Impressum  







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

Komponentenentwicklung LED über TShape ?

Ein Thema von Chris211183 · begonnen am 23. Sep 2013 · letzter Beitrag vom 16. Jun 2015
 
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.656 Beiträge
 
Delphi 12 Athens
 
#27

AW: Komponentenentwicklung LED über TShape ?

  Alt 27. Sep 2013, 15:10
Width und Height sind > 0? Ich habe meinen eigenen Code mal ausprobiert, nach einer kleinen Erweiterung (Überschreiben des Konstruktors) tut das wie gedacht:
Delphi-Quellcode:
unit uLED;

interface

uses
  SysUtils, Classes, Controls, Graphics;

type
  (* Mögliche Stati *)
  TLEDState = (lsOff, lsActive, lsInactive);

  TLED = class(TGraphicControl)
  private
    { Private-Deklarationen }
    FState: TLEDState;
    procedure SetState(const Value: TLEDState);
  protected
    { Protected-Deklarationen }
    procedure Paint; override;
  public
    { Public-Deklarationen }
    constructor Create(AOwner: TComponent); override;
  published
    { Published-Deklarationen }
    property State: TLEDState read FState write SetState;
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Samples', [TLED]);
end;

{ TLED }

constructor TLED.Create(AOwner: TComponent);
begin
  inherited;
  Width := 16;
  Height := 16;
end;

procedure TLED.Paint;
var
  LEDColor: TColor;
begin
  inherited;
  case FState of
    lsActive:
      LEDColor := clGreen;
    lsInactive:
      LEDColor := clRed;
    else
      LEDColor := clGray;
  end;
  Canvas.Brush.Color := LEDColor;
  Canvas.Ellipse( 0, 0, ClientWidth, ClientHeight );
end;

procedure TLED.SetState(const Value: TLEDState);
begin
  if FState <> Value then
    begin
      FState := Value;
      invalidate;
    end;
end;

end.
[edit] Einen Schönheitspreis gewinnt das natürlich nicht, aber man kann ja auch hübscher zeichen. Hier ging es ja nur um das Prinzip. [/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  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 05:04 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