![]() |
Problem: Eine Klasse in eine andere implementieren
Hallo Miteinander,
ich wollte mir mal ein Panel erstellen, mit dem man alle Farben ändern kann (Light, Showdown, usw.) Diese Eigenschaften sollte man für innerBevel und outerBevel ändern können. Um die Übersicht zu verbessern wollte ich, dass die Eigenschaften Lightcolor, Showdowncolor und Borderweight im Objektinspektor unter einer bestimmten Klasse ausgeklappt werden können. Z.B. wie bei Font: - Font (TFont) Color Size usw... aber das mit dem implementieren einer Klasse in meiner Panelklasse funktioniert nicht. Ich habe mir auch Beispiele von Delphi-Komponenten angeschaut und versucht, zu verstehen, wie diese aufgebaut sind. Aber trotzdem funktioniert es nicht wirklich Ich hoffe ihr habt verstanden was ich meine und Könnt mir weiterhelfen. Danke im Vorraus Gruß NickelM |
Re: Problem: Eine Klasse in eine andere implementieren
Diese Unterklasse muss einfach nur von TPersistent abgeleitet werden. Du musst entsprechend die Assign() Methode implementieren und ansonsten die gewollten properties definieren.
|
Re: Problem: Eine Klasse in eine andere implementieren
Ok, das habe ich auch schon versucht, aber irgendwie funktionierte es nicht. Ich konnte im Objektinspektor die Daten reinschreiben und Daten ändern, aber das Panel zeichnete sich nicht neu und ich konnte es nur zur Laufzeit ändern, sodass es sich neu zeichnet. Ich habe irgendwie versucht, auf die Panelklasse zuzugreifen, damit es sich neu zeichnet aber dies verursachte entweder eine Zugriffsverletzung oder es zeichnete sich gar nicht neu.
|
Re: Problem: Eine Klasse in eine andere implementieren
Zitat:
Zitat:
|
Re: Problem: Eine Klasse in eine andere implementieren
um hier effektiv helfen zu können wird es unabdingbar sein das du uns deinen Quelltext offenbarst und wir sehen auf welche Art und Weise du versucht hast das Ziel zu erreichen.
|
Re: Problem: Eine Klasse in eine andere implementieren
Hm....Als das mit dem Neuzeichnen habe ich so gemacht:
Delphi-Quellcode:
Ich hoffe dass ihr wisst wie ich es meine, wenn nicht muss ich halt mal schauen ob ich hingebkomme mit der Datei als Text reinzuposten
{in der von TPersistent abgeleitete Klasse die Set...prozeduren}
{habe in private ein Feld mit TColorPanel(meinPanel) gemacht, der beim Create von TColorPanel zugewiesen wird d.h. in TColorPanel ist ein Feld mit TInnereOption(TPersistent)} procedure SetBorderWidth(Value : TBorderWidth); begin FBorderWidth := Value{feld für BorderWidth; TColorPanel(FColorPanel).Relividate{halt die neuzeichen befehl, der auch beim normalen Panel benutzt wird} end; |
Re: Problem: Eine Klasse in eine andere implementieren
ist SetBorderWidth keine Methode sondern wirklich eine globale Funktion?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:08 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