Eine Eigene Komponente erstellen ?
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Eine Eigene Komponente erstellen ?
Hallo,
im Moment versuche ich für Lazarus kleine Komponenten zu erstellen.
Das Klappt auch so weit ganz gut. Allerdings habe ich die Komponenten entweder von der Listbox oder ComboBox abgeleitet. Jetzt wollte ich eine Vollkommen neue Komponente ableiten.
Intern soll sie aus eine ScrollBox, einer Shape, einem Label bestehen.
Das Problem ist jetzt wie mache ich sowas am besten ?
die Probleme fangen schon bei der Positionierung der Internen Komponenten an.
und bei der Größen Änderungen. Gibt es für die Position Änderung ein Ereignis ?
und für das Setzten vom Parent.
Ich wollte diese Komponente nämlich von TCustumControl ableiten.
und die drei Variablen Installisieren.
Ich hoffe ihr habt es soweit verstanden.
im Moment versuche ich für Lazarus kleine Komponenten zu erstellen.
Das Klappt auch so weit ganz gut. Allerdings habe ich die Komponenten entweder von der Listbox oder ComboBox abgeleitet. Jetzt wollte ich eine Vollkommen neue Komponente ableiten.
Intern soll sie aus eine ScrollBox, einer Shape, einem Label bestehen.
Das Problem ist jetzt wie mache ich sowas am besten ?
die Probleme fangen schon bei der Positionierung der Internen Komponenten an.
und bei der Größen Änderungen. Gibt es für die Position Änderung ein Ereignis ?
und für das Setzten vom Parent.
Ich wollte diese Komponente nämlich von TCustumControl ableiten.
und die drei Variablen Installisieren.
Ich hoffe ihr habt es soweit verstanden.
MFG
Michael Springwald
Michael Springwald
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Und wie mache ich das mit der Position ? Wenn ich z.b. eine Komponente schreiben möchte die aus drei teilen besteht. Also aus drei Standard Komponenten. Wie schaffe ich dann das sich alle auto. mit bewegen. Dafür brauche ich das Parent...
Denn Alle Komponenten sollen einem Internen Panel angehören.
Problem dabei ist nur, wenn ich die Komponente verschiebe, wie bekomme ich das mit ?
Evlt. kann ich die Komponente auch von TPanel ableiten. Dann währe das ganze einfacher glaube ich.... oder ?
Denn Alle Komponenten sollen einem Internen Panel angehören.
Problem dabei ist nur, wenn ich die Komponente verschiebe, wie bekomme ich das mit ?
Evlt. kann ich die Komponente auch von TPanel ableiten. Dann währe das ganze einfacher glaube ich.... oder ?
MFG
Michael Springwald
Michael Springwald
-
- Beiträge: 1187
- Registriert: Mi 13. Dez 2006, 10:58
- OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
- CPU-Target: AMD A4-6400 APU
- Wohnort: Hamburg
Dann ist TPanel oder TCustomPanel schon ganz richtig. Im constructor mußt du allerdings deine Standardkompos von Hand initialisieren. Dann kannst du aber mit Anchors dafür sorgen das sie z.B. entsprechend mit wandern (rechtsbündig) oder stehen bleiben (linksbündig). Wenn Panel der Vater ist darf dann eben auch nur Panel insgesamt verschoben werden, dann bleibt intern alles beim Alten. Beim Resize mußt du allerdings die entsprechende Methode der Komponenten aufrufen und das dort angleichen.
Andere Methode wäre, die einzelnen Komponenten auf jeweils ein eigenes Panel setzen und dort Align entsprechend zu setzen.
Andere Methode wäre, die einzelnen Komponenten auf jeweils ein eigenes Panel setzen und dort Align entsprechend zu setzen.
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.
(Ringelnatz)
(Ringelnatz)
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Danke, für eure Antworten, aber ich habe gestern den wald voller Bäume nicht mehr gesehen..... Ich habe jetzt von Panel abgeleitet, und es geht so wie ich es mir vorgestellt habe...
Dann bleibt nur noch die frage offen wie das mit dem ICON geht, das später in der IDE angezeigt werden kann.....
(Wenn alles Fertig ist kommt es in eine lpk Datei und dann werde ich es auch hochladen, es handelt sich allerdings nur um einfache Komponenten, aber evlt. Praktische )
Dann bleibt nur noch die frage offen wie das mit dem ICON geht, das später in der IDE angezeigt werden kann.....
(Wenn alles Fertig ist kommt es in eine lpk Datei und dann werde ich es auch hochladen, es handelt sich allerdings nur um einfache Komponenten, aber evlt. Praktische )
MFG
Michael Springwald
Michael Springwald
-
- Beiträge: 1187
- Registriert: Mi 13. Dez 2006, 10:58
- OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
- CPU-Target: AMD A4-6400 APU
- Wohnort: Hamburg
Das ICON muß als xpm-file vorliegen. Dann baust du dir das lrs-file mit lazres zusammen.
lazres ../mypackagepath/lazresfile.lrs TMyCompnentName.xpm
achte darauf, das der Name der xpm-Datei gleich dem Typnamen deiner Komponente ist. 24*24 pixel sind ideal.
lazres ../mypackagepath/lazresfile.lrs TMyCompnentName.xpm
achte darauf, das der Name der xpm-Datei gleich dem Typnamen deiner Komponente ist. 24*24 pixel sind ideal.
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.
(Ringelnatz)
(Ringelnatz)
-
- Beiträge: 1187
- Registriert: Mi 13. Dez 2006, 10:58
- OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
- CPU-Target: AMD A4-6400 APU
- Wohnort: Hamburg