Erklärung: Wie eigene Komponente mit SubKompos erstellen

Zur Vorstellung von Komponenten und Units für Lazarus

Erklärung: Wie eigene Komponente mit SubKompos erstellen

Beitragvon alexander » 3. Mai 2008, 22:03 Erklärung: Wie eigene Komponente mit SubKompos erstellen

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
alexander
 
Beiträge: 423
Registriert: 5. Feb 2008, 13:45
OS, Lazarus, FPC: Linux, Lazarus svn, FPC svn | 
CPU-Target: 64Bit
Nach oben

Beitragvon pluto » 4. Mai 2008, 18:51

ach und SetSubComponent ist eine Procedure die jede Komponente hat ?
Interessant.
MFG
Michael Springwald
Aktuelles Projekt: ContentManager2(Ehmals NoteManager2).
pluto
Lazarusforum e. V.
 
Beiträge: 6998
Registriert: 19. Nov 2006, 13:06
Wohnort: Oldenburg(Oldenburg)
OS, Lazarus, FPC: Linux Mint 19.2 | 
CPU-Target: AMD
Nach oben

Beitragvon alexander » 4. Mai 2008, 19:25

also ein button hats.
Welche denn nicht?
Du magst Freiheit? Gönne es auch deinem Computer mit Linux!
www.alexanderroth.eu
alexander
 
Beiträge: 423
Registriert: 5. Feb 2008, 13:45
OS, Lazarus, FPC: Linux, Lazarus svn, FPC svn | 
CPU-Target: 64Bit
Nach oben

Beitragvon pluto » 4. Mai 2008, 21:03

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
Aktuelles Projekt: ContentManager2(Ehmals NoteManager2).
pluto
Lazarusforum e. V.
 
Beiträge: 6998
Registriert: 19. Nov 2006, 13:06
Wohnort: Oldenburg(Oldenburg)
OS, Lazarus, FPC: Linux Mint 19.2 | 
CPU-Target: AMD
Nach oben

Beitragvon Euklid » 4. Mai 2008, 22:10

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
Euklid
 
Beiträge: 2746
Registriert: 22. Sep 2006, 10:38
Wohnort: Hessen

Beitragvon alexander » 4. Mai 2008, 22:35

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 4. Mai 2008, 22:38, insgesamt 1-mal geändert.
Du magst Freiheit? Gönne es auch deinem Computer mit Linux!
www.alexanderroth.eu
alexander
 
Beiträge: 423
Registriert: 5. Feb 2008, 13:45
OS, Lazarus, FPC: Linux, Lazarus svn, FPC svn | 
CPU-Target: 64Bit
Nach oben

Beitragvon Euklid » 4. Mai 2008, 22:37

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
Euklid
 
Beiträge: 2746
Registriert: 22. Sep 2006, 10:38
Wohnort: Hessen

Beitragvon alexander » 4. Mai 2008, 22:59

ok
Du magst Freiheit? Gönne es auch deinem Computer mit Linux!
www.alexanderroth.eu
alexander
 
Beiträge: 423
Registriert: 5. Feb 2008, 13:45
OS, Lazarus, FPC: Linux, Lazarus svn, FPC svn | 
CPU-Target: 64Bit
Nach oben

Beitragvon pluto » 5. Mai 2008, 14:11

@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
Aktuelles Projekt: ContentManager2(Ehmals NoteManager2).
pluto
Lazarusforum e. V.
 
Beiträge: 6998
Registriert: 19. Nov 2006, 13:06
Wohnort: Oldenburg(Oldenburg)
OS, Lazarus, FPC: Linux Mint 19.2 | 
CPU-Target: AMD
Nach oben

Beitragvon alexander » 5. Mai 2008, 15:36

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
alexander
 
Beiträge: 423
Registriert: 5. Feb 2008, 13:45
OS, Lazarus, FPC: Linux, Lazarus svn, FPC svn | 
CPU-Target: 64Bit
Nach oben

Beitragvon pluto » 5. Mai 2008, 16:34

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
Aktuelles Projekt: ContentManager2(Ehmals NoteManager2).
pluto
Lazarusforum e. V.
 
Beiträge: 6998
Registriert: 19. Nov 2006, 13:06
Wohnort: Oldenburg(Oldenburg)
OS, Lazarus, FPC: Linux Mint 19.2 | 
CPU-Target: AMD
Nach oben

Beitragvon alexander » 5. Mai 2008, 23:17

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
alexander
 
Beiträge: 423
Registriert: 5. Feb 2008, 13:45
OS, Lazarus, FPC: Linux, Lazarus svn, FPC svn | 
CPU-Target: 64Bit
Nach oben

Beitragvon pluto » 6. Mai 2008, 11:10

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
Aktuelles Projekt: ContentManager2(Ehmals NoteManager2).
pluto
Lazarusforum e. V.
 
Beiträge: 6998
Registriert: 19. Nov 2006, 13:06
Wohnort: Oldenburg(Oldenburg)
OS, Lazarus, FPC: Linux Mint 19.2 | 
CPU-Target: AMD
Nach oben

• Themenende •

Zurück zu Units/Komponenten



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

porpoises-institution
accuracy-worried