AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Komponentenentwicklung LED über TShape ?

Ein Thema von Chris211183 · begonnen am 23. Sep 2013 · letzter Beitrag vom 16. Jun 2015
Antwort Antwort
Seite 3 von 5     123 45   
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#21

AW: Komponentenentwicklung LED über TShape ?

  Alt 27. Sep 2013, 14:12
*Psst* ein Code-Beispiel steht bereits da oben
[Flüster ON]stimmt ja[Flüster OFF]
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Chris211183

Registriert seit: 19. Sep 2013
Ort: Braunschweig
204 Beiträge
 
Delphi 6 Professional
 
#22

AW: Komponentenentwicklung LED über TShape ?

  Alt 27. Sep 2013, 14:14
Vielen Dank erstmal für eure Hilfe,

ich glaub ich fang nochmal von ganz vorn an, da wollt ich zu viel auf einmal.
Christian
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#23

AW: Komponentenentwicklung LED über TShape ?

  Alt 27. Sep 2013, 14:20
Ich kommentiere mal das Beispiel von DeddyH

Delphi-Quellcode:
type
  (* Mögliche Stati *)
  TLEDState = (lsOff, lsActive, lsInactive);
  
  TLED = class(TGraphicControl)
  private
    FState: TLEDState;
    procedure SetState(const Value: TLEDState);
  protected
    // Überschreiben der Zeichen-Methode
    procedure Paint; override;
  published
    // Eigenschaft für den Status
    property State: TLEDState read FState write SetState;
  end;
  
procedure TLED.Paint;
var
  LEDColor: TColor;
begin
  inherited;

  // Abhängig vom Status die Zeichenfarbe festlegen
  case FState of
    lsActive:
      LEDColor := clGreen;
    lsInactive:
      LEDColor := clRed;
    else
      LEDColor := clGray;
  end;

  // Zeichnen

  // Hintergrundfarbe festlegen
  Canvas.Brush.Color := LEDColor;
  // Eine Ellipse zeichnen
  Canvas.Ellipse( 0, 0, ClientWidth, ClientHeight );
end;

procedure TLED.SetState(const Value: TLEDState);
begin
  // Ist der neue Wert ungleich dem aktuellen
  if FState <> Value then
    // dann
    begin
      // diesen neuen Wert speichern
      FState := Value;
      // und diese Komponente zum Neuzeichnen vormerken
      Invalidate;
    end;
end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.259 Beiträge
 
Delphi 10.4 Sydney
 
#24

AW: Komponentenentwicklung LED über TShape ?

  Alt 27. Sep 2013, 14:22
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
Chris211183

Registriert seit: 19. Sep 2013
Ort: Braunschweig
204 Beiträge
 
Delphi 6 Professional
 
#25

AW: Komponentenentwicklung LED über TShape ?

  Alt 27. Sep 2013, 14:40
Christian
  Mit Zitat antworten Zitat
Chris211183

Registriert seit: 19. Sep 2013
Ort: Braunschweig
204 Beiträge
 
Delphi 6 Professional
 
#26

AW: Komponentenentwicklung LED über TShape ?

  Alt 27. Sep 2013, 15:59
Oh mannnnnn, das wird ein Delphi Wochenende, bin froh, wenn zur Laufzeit überhaupt mal was in der Testform erscheint, bis jetzt ist mir da immernoch nichts gelungen.
Der Fehler liegt da speziell zwischen den Ohren
Christian
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli
Online

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.196 Beiträge
 
Delphi 10.4 Sydney
 
#27

AW: Komponentenentwicklung LED über TShape ?

  Alt 27. Sep 2013, 16:07
Nimm Dir Zeit - das wird schon

Ich schlage nochmal das TRedPanel vor. Da musst Du nix malen und hast erst mal klare Ergebnisse.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.259 Beiträge
 
Delphi 10.4 Sydney
 
#28

AW: Komponentenentwicklung LED über TShape ?

  Alt 27. Sep 2013, 16: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
Chris211183

Registriert seit: 19. Sep 2013
Ort: Braunschweig
204 Beiträge
 
Delphi 6 Professional
 
#29

AW: Komponentenentwicklung LED über TShape ?

  Alt 27. Sep 2013, 16:55
Super, danke, werd das glei mal ausprobieren Danke euch ! Echt super hier mit eurer Hilfe !!!
Christian
  Mit Zitat antworten Zitat
Chris211183

Registriert seit: 19. Sep 2013
Ort: Braunschweig
204 Beiträge
 
Delphi 6 Professional
 
#30

AW: Komponentenentwicklung LED über TShape ?

  Alt 28. Sep 2013, 13:06
So hab das mal ausprobiert, egal was ich mache, auf meiner Testform wird nichts angezeigt

Delphi-Quellcode:
unit LedTestUnit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Unit1;

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

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
   MyLed := TLed.Create(Self);
   MyLed.Parent := Self;
   MyLed := Show;
end;

end.
Das ist der Code um die Komponente zur Laufzeit zu testen, steckt da ein Fehler drin ? bei nem anderen Project hat es so gefunzt
Christian
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 +2. Es ist jetzt 13:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf