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
Antwort Antwort
Benutzerbild von DeddyH
DeddyH

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

AW: Komponentenentwicklung LED über TShape ?

  Alt 27. Sep 2013, 10:41
Du hast da begins und ends sowie Typdeklarationen wild im Code verteilt. Was gehört denn wozu? Und woher soll der Compiler das wissen? Und wozu ein GraphicControl und zusätzlich noch ein TShape?
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
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.358 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Komponentenentwicklung LED über TShape ?

  Alt 27. Sep 2013, 12:28
Du solltest Dich erst einmal mit der Komponentenentwicklung grundsätzlich befassen.

Ein schönes Beispiel (und auch mein erstes ) ist die "Entwicklung" eines TRedPanels. Das soll in der Komponentenpalette stehen und wenn man es in´s Formular zieht soll es rot sein.

Wenn Du das geschafft hast sollte es auch möglich werden, andere Komponenten zu entwickeln, die etwas komplexer sind.
Mit dem TRedPanel bleibt es aber erst mal schön übersichtlich und man lernt die Abläufe kennen.

Welche Delphi-Version hast Du denn? Die könntest Du auch mal in Deinem Profil angeben.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  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
 
#3

AW: Komponentenentwicklung LED über TShape ?

  Alt 27. Sep 2013, 13:04
Bei einer "visuellen" Komponente, muss ja auch etwas visualisiert werden.

Dieses erreicht man, indem etwas gezeichnet wird. Folglich muss die Paint-Methode entsprechend angepasst (überschrieben) werden, denn genau diese ist für das Zeichnen zuständig.

Das ist so eigentlich das große Geheimnis bei dieser Art von Komponente die du haben willst.

Wie und was du da zeichnest und warum (Berücksitigung von Parametern) genau so ist egal, Hauptsache es wird gezeichnet.

Bei einer Änderung der Parameter wird der Komponente einfach mit Invalidate mitgeteilt, dass eine Änderung passiert ist und ein Neuzeichnen erforderlich ist.

Ein Code-Beispiel folgt sogleich ...
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.667 Beiträge
 
Delphi 12 Athens
 
#4

AW: Komponentenentwicklung LED über TShape ?

  Alt 27. Sep 2013, 13:09
*Psst* ein Code-Beispiel steht bereits da oben
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
Benutzerbild von Sir Rufo
Sir Rufo

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

AW: Komponentenentwicklung LED über TShape ?

  Alt 27. Sep 2013, 13: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
 
#6

AW: Komponentenentwicklung LED über TShape ?

  Alt 27. Sep 2013, 13: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
 
#7

AW: Komponentenentwicklung LED über TShape ?

  Alt 27. Sep 2013, 13: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.667 Beiträge
 
Delphi 12 Athens
 
#8

AW: Komponentenentwicklung LED über TShape ?

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