AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Positionsaktualisierung von Komponenten wie z.B. TEdit
Thema durchsuchen
Ansicht
Themen-Optionen

Positionsaktualisierung von Komponenten wie z.B. TEdit

Ein Thema von Ookami · begonnen am 9. Apr 2010 · letzter Beitrag vom 9. Apr 2010
Antwort Antwort
Benutzerbild von Ookami
Ookami

Registriert seit: 20. Nov 2009
Ort: Baden Württemberg
77 Beiträge
 
Delphi 2009 Architect
 
#1

Positionsaktualisierung von Komponenten wie z.B. TEdit

  Alt 9. Apr 2010, 14:25
Hallo zusammen und speziell an diejenigen, die selbst VCL-Komponenten entwickeln.

Ich tue mir noch schwer, mit der Entwicklung von Komponenten im Allgemeinen. Habe aber inzwischen eine Lektüre gefunden, die mir das Thema einigermaßen verständlich machte.
Jetzt im Moment kämpfe ich noch mit mehreren Problemen herum, wie z.B. einen Font einbinden, usw.
Aber die Frage, die mich im Moment beschäftigt ist die, dass ich mich wundere, dass die Position der Komponente sich beim verschieben nicht ändert. Also genauer gesagt die Positionsangaben wie .Left, .Top und so weiter.
Bei Komponenten wie TEdit, TLabel und den anderen geht das ja automatisch.

Delphi-Quellcode:
type
  TTitleRect = class(TControl)
    Canvas: TCanvas;
    FFont: TFont;
  private
    { Private-Deklarationen }
    FFrameStyle: TFrameStyle;
    FLeft: Integer;
    FWidth: Integer;
    FTop: Integer;
    FHeight: Integer;
    FFrWidth: Integer;
    FTitle: String;
    FBkColor: TColor;
    FFtColor: TColor;
    FFrColor: TColor;
    FShowFrame: Boolean;
    Procedure SetLeft (Value: Integer);
    Function GetLeft : Integer;
  protected
    { Protected-Deklarationen }
    Rect: TRect;
  public
    { Public-Deklarationen }
    Constructor Create (aOwner: TComponent); override;
    Destructor Destroy; override;
    Procedure Draw;
  published
    { Published-Deklarationen }
    property Left: Integer Read FLeft Write FLeft;
    property Width: Integer Read FWidth Write FWidth;
    property Top: Integer Read FTop Write FTop;
    property Height: Integer Read FHeight Write FHeight;
    property FrWidth: Integer Read FFrWidth Write FFrWidth;
    property Font: TFont Read FFont Write FFont;
    property Title: String Read FTitle Write FTitle;
    property BkColor: TColor Write FBkColor;
    property FtColor: TColor Write FFtColor;
    property FrColor: TColor Write FFrColor;
    property ShowFrame: Boolean Write FShowFrame;
    property onClick;
    property onDblClick;
    property onMouseDown;
    property onMouseMove;
    property onMouseUp;
  end;
Es ist nichts besonderes, im eigentlichen Sinne noch weniger als ein TPanel. Es geht mir hier auch einfach nur um das Verständnis.

Gruß an Alle
Wolfgang
Wolfgang
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.079 Beiträge
 
Delphi 12 Athens
 
#2

Re: Positionsaktualisierung von Komponenten wie z.B. TEdit

  Alt 9. Apr 2010, 14:28
TControl besitzt doch schon Eigenschaften für Left, Width, Top und Height
und diese werden auch von der VCL genutzt.
Deine eigenen Eigenschaften sind TControl nicht bekannt und werden daher nicht verwendet.

TControl ist der Vorfahre aller VCL-Komponenten und über diesen werden diese Dinge auch geregelt, da die VCL-Steuerung selber keinen dessen Nachfahren direkt kennen kann.

Wenn du die Positionsbestimmung beeinflussen willst, dann mußt du SetBounds überschreiben.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von Ookami
Ookami

Registriert seit: 20. Nov 2009
Ort: Baden Württemberg
77 Beiträge
 
Delphi 2009 Architect
 
#3

Re: Positionsaktualisierung von Komponenten wie z.B. TEdit

  Alt 9. Apr 2010, 14:39
Hallo Himitsu,

was du mir damit sagen willst, ist dass ich mich nicht an die Konventionen gehalten habe. Sprich die Parameter, die mir Probleme bereiten sind schon definiert und von mir überschrieben worden und das auch noch falsch.

D.h. für Dummies: Alles was im Vorgänger definiert wurde brauche ich nicht mehr definieren. Und das gilt dann wohl nicht nur für Variable sondern auch für die Properties oder Events u.s.w?
Wolfgang
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Positionsaktualisierung von Komponenten wie z.B. TEdit

  Alt 9. Apr 2010, 14:44
Ja. Das ist das Prinzip der Vererbung
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Ookami
Ookami

Registriert seit: 20. Nov 2009
Ort: Baden Württemberg
77 Beiträge
 
Delphi 2009 Architect
 
#5

Re: Positionsaktualisierung von Komponenten wie z.B. TEdit

  Alt 9. Apr 2010, 14:46
Danke Dir, das heißt dann ein langes Wochenende zwischenschalten, um das alles zu verdauen.
Gottseidank habe ich nichts vor.
Wolfgang
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.079 Beiträge
 
Delphi 12 Athens
 
#6

Re: Positionsaktualisierung von Komponenten wie z.B. TEdit

  Alt 9. Apr 2010, 14:51
Zitat von mkinzler:
Ja. Das ist das Prinzip der Vererbung
Jupp, das was in Vorfahren schon existierst, muß du auch nutzen ... was eigenes Einführen bringt meißt nicht viel, wie du ja siehst.

Wenn eine Methode z.B. schon als VIRTUAL deklariert ist, dann könnte man sie nachträglich noch überschreiben/verändern.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  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 19:27 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