Erklärung: Wie eigene Komponente mit SubKompos erstellen

Zur Vorstellung von Komponenten und Units für Lazarus
Antworten
alexander
Beiträge: 423
Registriert: Di 5. Feb 2008, 12:45
OS, Lazarus, FPC: Linux, Lazarus svn, FPC svn
CPU-Target: 64Bit
Kontaktdaten:

Erklärung: Wie eigene Komponente mit SubKompos erstellen

Beitrag von alexander »

Hi,

nachdem ich viel gegrübelt und programmiert, gefragt und, etc. habe habe ich nun folgende Zutaten gefunden um eigene Komponenten mit enthaltenen SubKomponenten erstellen zu können.

1.)
Also eure SubKomponente bindet ihr folgendermaßen in eure Komponente ein:
in private

Code: Alles auswählen

FButton:TBoundButton;

und in published

Code: Alles auswählen

property Button:TBoundButton read FButton;

Dann könnte ihr die Komponente während der designzeit anklicken und sehr auch innerhalb eurer Komponente im OI ein Feld für eure Subkomponente und könnt sie auch da bearbeiten.


2.)
Ihr müsst im Create eurer SubKomponenten

Code: Alles auswählen

SetSubComponent(True);

hinzugügen, damit in der Designzeit eure Einstellungen die ihr (oder ein Nutzer eurer Komponente) macht überhaupt gespeichert werden.



3.)
Dann wäre das auch schon fast alles.
Wenn ihr allerdings wollt, dass egal wo ihr in eurer Komponente hinklickt (als auch vielleicht auf eine SubKompo), eure Hauptkomponente ausgewählt wird.
das ist sinnvoll wenn innerhalb euerer Kompo mehrere SubKompos den gesamten Platz einnemehn und ihr sonst eure HauptKompo nicht mehr auswählen könntet.
Das ist anscheinend auch sehr einfach:
Einfach ins create folgendes hinzufügen:

Code: Alles auswählen

ControlStyle := ControlStyle + [csNoFocus, csNoDesignSelectable];


Und schon klappt.

Ich werde entsprechend meine eigene Komponenten auch derhingehend verbessern, denn ich habe das obrige erst eben rausgefunden.


Gruß Alexander


PS: Gefunden habe ich die meisten Sachen indem ich mir andere Komponenten von Lazarus angeschaut habe. In Punkt 3 war es z.B. TUpDown
Du magst Freiheit? Gönne es auch deinem Computer mit Linux!
www.alexanderroth.eu

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

ach und SetSubComponent ist eine Procedure die jede Komponente hat ?
Interessant.
MFG
Michael Springwald

alexander
Beiträge: 423
Registriert: Di 5. Feb 2008, 12:45
OS, Lazarus, FPC: Linux, Lazarus svn, FPC svn
CPU-Target: 64Bit
Kontaktdaten:

Beitrag von alexander »

also ein button hats.
Welche denn nicht?
Du magst Freiheit? Gönne es auch deinem Computer mit Linux!
www.alexanderroth.eu

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Nein, das war nur eine Frage. Ausprobiert habe ich das noch nicht. :( Mach ich aber aufjedenfall noch.
Bei meinem Colorfeld z.b. dort habe ich 100te Shape Komponenten auf ein Panel und noch ein weiteren Panel.
da wollte ich es nochmal ausprobieren !
MFG
Michael Springwald

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Beitrag von Euklid »

Hallo Alexander,

danke für dein Kurztutorial. Noch ein Tipp: Für Tutorials, Tipps und Tricks u.s.w. gibt es in diesem Forum eine Wissensdatenbank - damit der Text möglichst auch von allen gefunden wird.
(rechts oben: WissensDB)

kb.php

Viele Grüße, Alexander

alexander
Beiträge: 423
Registriert: Di 5. Feb 2008, 12:45
OS, Lazarus, FPC: Linux, Lazarus svn, FPC svn
CPU-Target: 64Bit
Kontaktdaten:

Beitrag von alexander »

pluto hat geschrieben:ach und SetSubComponent ist eine Procedure die jede Komponente hat ?
@pluto: ohne dein nächsten Post hätte man das sehr negativ interpretieren können.....
aber so ist ja alles ok...


pluto hat geschrieben:Bei meinem Colorfeld z.b. dort habe ich 100te Shape Komponenten auf ein Panel und noch ein weiteren Panel.
da wollte ich es nochmal ausprobieren !
wäre es da vielleicht nicht besser einfach selbst auf ein canvas zu zeichnen? Der geschwindigkeit dürfte das sehr gut tun.....

@Euklid: soll ich es da eintragen?
Zuletzt geändert von alexander am So 4. Mai 2008, 22:38, insgesamt 1-mal geändert.
Du magst Freiheit? Gönne es auch deinem Computer mit Linux!
www.alexanderroth.eu

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Beitrag von Euklid »

alexander hat geschrieben:@Euklid: soll ich es da eintragen?


Nach meiner Einschätzungen würde es dort in den Unterbereich "Tipps und Tricks" passen, was meinst du?


Euklid

alexander
Beiträge: 423
Registriert: Di 5. Feb 2008, 12:45
OS, Lazarus, FPC: Linux, Lazarus svn, FPC svn
CPU-Target: 64Bit
Kontaktdaten:

Beitrag von alexander »

ok
Du magst Freiheit? Gönne es auch deinem Computer mit Linux!
www.alexanderroth.eu

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

@alexander ich wollte auf keinen Fall "negativ" klingen. Im gegenteil. Die Sorucen von Lazarus ist eine wahre Goldgrube wenn man so möchte. *G*
MFG
Michael Springwald

alexander
Beiträge: 423
Registriert: Di 5. Feb 2008, 12:45
OS, Lazarus, FPC: Linux, Lazarus svn, FPC svn
CPU-Target: 64Bit
Kontaktdaten:

Beitrag von alexander »

ok. klar. es wurde durch deinen zweiten post auch deutlich. ;-)
ja. das ist echt cool. :-)
Du magst Freiheit? Gönne es auch deinem Computer mit Linux!
www.alexanderroth.eu

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Bei Delphi habe ich sowas vermist, wobei es gibt dort ja umfkreiche LIBS wo man hätte reinschauen können. aber das ist nicht das gleiche !
MFG
Michael Springwald

alexander
Beiträge: 423
Registriert: Di 5. Feb 2008, 12:45
OS, Lazarus, FPC: Linux, Lazarus svn, FPC svn
CPU-Target: 64Bit
Kontaktdaten:

Beitrag von alexander »

hmmm in die meißten Komponenten konnte ich auch reinschauen..... oder irrt mein Gedächnis da?
TurboDelphi und früher delphi 7
Du magst Freiheit? Gönne es auch deinem Computer mit Linux!
www.alexanderroth.eu

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Nicht bei der Delphi PE Versionen(meine ich aufjedenfall).

Und bei sehr vielen Komponenten macht das auch leider kein sin, da sie nur DLL Funktionen vom unterstützten Toolkit kapseln wie ich z.b. bei meinem Button Projekt gesehen habe.
Allerdings wird so wie es für mich aussieht das Panel von Lazarus gestellt das ist wohl in keinem Toolkitt drin(weil diese Komponente hat eine eigene Paint Procedure die Überschrieben ist,
sowas habe ich sonst nur bei meinen eigenen Komponenten oder bei Fremd Komponenten gesehen.)

Kann sein das der Soruce bei TurboDelphi dabei ist, ich bin vor einiger Zeit ausgestiegen von Delphi und verfolge das auch nicht mehr.
MFG
Michael Springwald

Antworten