AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Problem: Eine Klasse in eine andere implementieren
Thema durchsuchen
Ansicht
Themen-Optionen

Problem: Eine Klasse in eine andere implementieren

Offene Frage von "NickelM"
Ein Thema von NickelM · begonnen am 13. Dez 2007 · letzter Beitrag vom 14. Dez 2007
Antwort Antwort
NickelM

Registriert seit: 22. Jul 2007
Ort: Carlsberg
445 Beiträge
 
Delphi 2009 Professional
 
#1

Problem: Eine Klasse in eine andere implementieren

  Alt 13. Dez 2007, 16:23
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
Nickel
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#2

Re: Problem: Eine Klasse in eine andere implementieren

  Alt 13. Dez 2007, 16:25
Diese Unterklasse muss einfach nur von TPersistent abgeleitet werden. Du musst entsprechend die Assign() Methode implementieren und ansonsten die gewollten properties definieren.
  Mit Zitat antworten Zitat
NickelM

Registriert seit: 22. Jul 2007
Ort: Carlsberg
445 Beiträge
 
Delphi 2009 Professional
 
#3

Re: Problem: Eine Klasse in eine andere implementieren

  Alt 13. Dez 2007, 16:30
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.
Nickel
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#4

Re: Problem: Eine Klasse in eine andere implementieren

  Alt 13. Dez 2007, 17:45
Zitat von NickelM:
Ich konnte im Objektinspektor die Daten reinschreiben und Daten ändern, aber das Panel zeichnete sich nicht neu ...
Das musst du selber auslösen - genauso wie bei anderen Properties.

Zitat von NickelM:
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.
Und wie hast du es versucht?
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Problem: Eine Klasse in eine andere implementieren

  Alt 13. Dez 2007, 18:48
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.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
NickelM

Registriert seit: 22. Jul 2007
Ort: Carlsberg
445 Beiträge
 
Delphi 2009 Professional
 
#6

Re: Problem: Eine Klasse in eine andere implementieren

  Alt 14. Dez 2007, 09:58
Hm....Als das mit dem Neuzeichnen habe ich so gemacht:

Delphi-Quellcode:
{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;
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
Nickel
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Problem: Eine Klasse in eine andere implementieren

  Alt 14. Dez 2007, 10:06
ist SetBorderWidth keine Methode sondern wirklich eine globale Funktion?
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  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 07:09 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz