AGB  ·  Datenschutz  ·  Impressum  







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

Neue Komponente entwickeln

Ein Thema von josef-b · begonnen am 23. Aug 2017 · letzter Beitrag vom 25. Aug 2017
Antwort Antwort
josef-b

Registriert seit: 6. Jun 2004
Ort: bei Jena in Thüringen
95 Beiträge
 
Delphi 11 Alexandria
 
#1

Neue Komponente entwickeln

  Alt 23. Aug 2017, 21:21
Heute ist der Tag

Ich möchte erstmals eine neue Komponente entwickeln..

bis jetzt habe ich einige neue Properties hinzugefügt.

(Abgeleitet von TShape)

Delphi-Quellcode:
 private
    FKK_Rechts : boolean;
    FKK_Links : boolean;
    FRM_KK_Rechts : boolean;
    FRM_KK_Links : boolean;
    FQuittierung : boolean;
    FFreigabe : boolean;
    FStoerung : boolean;
    FRechts: boolean;


    { Private-Deklarationen }
  protected
    { Protected-Deklarationen }
  public
    { Public-Deklarationen }

  published
    { Published-Deklarationen }
    property KK_Rechts: boolean read FKK_Rechts write FKK_Rechts;
    property KK_Links: boolean read FKK_Links write FKK_Links;
    property RM_KK_Rechts: boolean read FRM_KK_Rechts write FRM_KK_Rechts;
    property RM_KK_Links: boolean read FRM_KK_links write FRM_KK_Rechts;
    property Quittierung: boolean read FQuittierung write FQuittierung;
    property Freigabe: boolean read FFreigabe write FFreigabe;
    property Stoerung: boolean read FStoerung write FStoerung;
    property Rechts: boolean read FRechts write FRechts;

  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('SPS-Visualisierung', [TKlappkasten]);
end;
ich möchte jetzt, dass meine neue Eigenschaften im Objektinspektor unter einer gemeinsamen Kategorie,
nennt man das so ? stehen...

die Kategorie soll heissen "SPS"

also dann im Objektinspektor

SPS.KK_Rechts,
SPS.KK_Links,
usw...

so ähnlich halt wie

Pen.Color,
Pen.Width,
usw.

Danke schon mal im Voraus, ich habe da bestimmt demnächst noch vieeeele Fragen
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: Neue Komponente entwickeln

  Alt 23. Aug 2017, 21:46
Mach doch eine Menge draus.
Delphi-Quellcode:
type
  TSPS = set of (<Deine Werte>);
Was jetzt die einzelnen Booleans definieren ergibt sich dann dadurch, ob sie im Set enthalten sind.
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 himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.341 Beiträge
 
Delphi 12 Athens
 
#3

AW: Neue Komponente entwickeln

  Alt 23. Aug 2017, 23:29
Jupp, der Enum wird einfacher sein.
Dafür gibt es einen Standard-PropertyEditor, der das wie einzelne Booleans (Checkboxen) im OI darstellt.

Und bei Kategorie dachte ich erst an Kategorie.
Objektinspektor > Kontextmenü > Anordnen > Nach Kategorie
OpenToolsAPI: Delphi-Referenz durchsuchenRegisterPropertyInCategory Delphi-Referenz durchsuchenRegisterPropertiesInCategory

Pen ist eine Klasse, also eine Unterkomponente in deiner Hauptklasse.
Delphi-Referenz durchsuchenSetSubComponent
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (23. Aug 2017 um 23:44 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

AW: Neue Komponente entwickeln

  Alt 24. Aug 2017, 01:15
Gibt es mehr Infos zu deine Komponente? Was soll sie machen? Usw.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
josef-b

Registriert seit: 6. Jun 2004
Ort: bei Jena in Thüringen
95 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Neue Komponente entwickeln

  Alt 24. Aug 2017, 13:12
Danke erstmal für Eure Antworten.

Es geht darum, eine Visualisierung für eine Anlagensteuerung zu entwickeln.

Dazu habe ich mir überlegt, ich baue mir für die einzelnen Bestandteile, von jeder Art
gibt es auch mehrere einzelne visuelle Komponenten...

z.B.

Silo, Förderband, Siebmaschine, Elevator usw...

so ein Bildchen habe ich mir mal auf einer Form gebastelt...(Anhang)


Dieses grafische/technische Element soll dann ein paar Eigenschaften haben, wie
z.B. LeerMeldung, Vollmeldung (Die LEDS in dem Bildchen z.B. sollen dann verschiedene
Farben zur Laufzeit erhalten.

Ich möchte auch gerne die Größe des gesamten Bildchens zur Entwurfszeit verändern können,
z.B. ungefähr an die masstabsgetreue Länge eines Förderbandes anpassen, oder die Höhe eines
Elevators..

so ein Bildchen habe ich mir mal auf einer Form gebastelt...

Delphi-Quellcode:

procedure TForm1.Button1Click(Sender: TObject);
var edit1 : tedit;
Silo: tshape;
VollMelder: tshape;
LeerMelder: tshape;
begin
Silo := tshape.create(self);
with silo do
  begin
  Parent := form1;
  width := 90;
  height := 200;
  brush.color := clmoneygreen;
  shape := strectangle;
  visible := true;
  end;

VollMelder := tshape.create(self);
with Vollmelder do
  begin
  Parent := form1;
  width := 20;
  height := 20;
  top := 20;
  left := 35;
  brush.color := clred;
  shape := stCircle;
  visible := true;
  end;

LeerMelder := tshape.create(self);
with LeerMelder do
  begin
  Parent := form1;
  width := 20;
  height := 20;
  top := 160;
  left := 35;
  brush.color := clyellow;
  shape := stCircle;
  visible := true;
  end;


with form1.canvas do
  begin
  moveto (0,200);
  lineto (45,270);
  lineto (90,200);
  lineto (0,200);
  brush.color := clmoneygreen;
  floodfill(50,210,clblack,fsborder);
  end;

end;

Kann ich das so ähnlich auf eine Komponente übertragen, so dass ich dann das ganze Bildchen
auf der Form habe, wenn ich die Komponente neu aus der Tool-Palette auf die Form schiebe?

Kann ich als Grundlage für die Vererbung ein Panel nehmen und dann die einzelnen Elemente auf
das Panel packen? Oder muss ich das bei der Komponentenentwicklung komplett mit Canvas einzeln
zeichnen? Dann auf eine Paintbox?

Wovon leite ich das ab? TPanel, TPaintbox, Nehme ich dann TPanel oder TPaintbox als Container?

Einfach gesagt, ich bräuchte mal ne grobe Anleitung wie man sowas am besten macht, ich sehe glaub
ich vor lauter Bäumen den Wald nicht mehr
Angehängte Grafiken
Dateityp: jpg Silo.JPG (11,1 KB, 16x aufgerufen)
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#6

AW: Neue Komponente entwickeln

  Alt 24. Aug 2017, 13:39
Als Container würd' ich ein TFrame nehmen.

Da kann man andere Komponenten nach Lust und Laune drauf plazieren und schon die Grundlogik drin implementieren.

Für jedes separate "Teil", das Du dann auf Deinem Form brauchst, nimmst Du ein Frame und kannst dann die einzelnen Komponenten darauf entsprechend ansprechen.

Zuerst machst Du Dir am Sinnvollsten für Silo, Förderband, Siebmaschine, Elevator usw ... jeweils ein Frame.

Davon kannst Du dann beliebig viele und beliebige Kombinationen auf dem Formular / den Formularen anordenen.
  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 20:52 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