![]() |
Bottom und Right für alle graphischen Componenten
Ich achte bei meinen Programmen immer auf die gleichmäßige Platzierung (Abstand zwischen Objekten...).
Ich würde gern allen Objekten, die über die Eigenschaft Top und Left, sowie Width und Height verfügen eine Eigenschaft Right und Bottom geben. Das muss nur eine Nurlesen-Eigenschaft sein, würde sich dann jeweils aus Top+Height bzw.Left+Width zusammen setzen. Das ist nur damit das Platzieren ein Bisschen schneller geht. Jetzt treten aber 2 Probleme auf: 1. Ich hab das noch nie gemacht, denke aber, dass ich es möglicher Weise allein hinbekomme 2. Das wichtigere: Ich weiß nicht wo ich da was hinschreiben soll Danke schonmal im Voraus! |
Re: Bottom und Right für alle graphischen Componenten
Da müsstest du dir jeweils eine eigene Komponente ableiten, etwa so:
Delphi-Quellcode:
//...
interface type TMyEdit = class(TEdit) protected function GetRight : Integer; function GetBottom : Integer; published property Right : Integer; read GetRight; property Bottom : Integer; read GetBottom; end; procedure Register; implementation function TMyEdit.GetRight : Integer; begin result := Width + Left; end; function TMyEdit.GetBottom : Integer; begin result := Height + Top; end; procedure Register; begin RegisterComponents('MyCompos', [TMyEdit]); end; |
Re: Bottom und Right für alle graphischen Componenten
1. Bekomme ich dann eine Componente in der Componentepalette dazu?
2. Muss ich das in jedem Projekt, das ich anlege dazuschreiben? Kann man nicht einfach dort, wo die "echten" Delphi Componenten ihre Sachen stehen haben das noch anfügen? Weil ich das ja dann nicht nur für das Edit brauche, sondern für soziemlich alles. |
Re: Bottom und Right für alle graphischen Componenten
Wenn du die Komponente nachdem du sie erstellt hast, installierst, bekommst du eine neue Komponente in die Komponentenpalette.
Du könntest denke ich schon die Delphi Kompos umschreiben, aber ich würde dir das nicht umbedingt empfehlen. Wenn du dann nen Fehler machst, sind das nur zusätliche Umstände. :wink: Wenn du hingegen eine extra Komponente ableitest (Siehe hierzu das Komponenten Tutorial von Sakura oder auf ![]() Man liest sich, Stanlay :hi: |
Re: Bottom und Right für alle graphischen Componenten
1. Ja, wenn du die komponente über Komponente -> Komponente installieren... registrierst.
2. Was meinst du mit dazuschreiben??? Wenn du die Komponente aus der Palette auf deine Form holst, dann schreibt er doch automatisch alles rein. Das ist ja das Problem: Den Quelltext der Original-Komponenten zu verändern, ist fast das schlimmste, was man machen kann. Deshalb musst du jede Kompo, die das haben soll ableiten. Oder du machst es anders:
Delphi-Quellcode:
So kannst du von jeder beliebiegen Compo, die von TControl abgeleitet ist (sind ziemlich viele), denn Bottom über die Funktion abrufen.
function GetBottom(AControl : TControl) : Integer;
begin result := AControl.Height + AControl.Top; end; Z.B.:
Delphi-Quellcode:
i := GetBottom(Edit1);
|
Re: Bottom und Right für alle graphischen Componenten
Mit dazuschreiben meinte ich, ob ich die Komponente jedesmal neu ableiten muss(also immer in den interface Abschnitt type... property...). Ok!
Sind bei den ganzen Wegen auch immer die Eigenschaften(Bottom und Right) im Objekt inspector zusehen? |
Re: Bottom und Right für alle graphischen Componenten
Wenn die Eigenschaften Published deklariert werden, schon.
Was mir grade aufgefallen ist. Der Titel deines Threads sagt "alle graphischen Komponenten". Bitte jetzt nicht auf die Idee kommen, TControl zu verändern...das kann richtig in die Hose gehen. :pale: Man liest sich, Stanlay :hi: |
Re: Bottom und Right für alle graphischen Componenten
Oops, hätte mal die vorherigen Posts lesen sollen :oops:
|
Re: Bottom und Right für alle graphischen Componenten
Hi,
wenn Du neue Komponenten ableitest, verwendest Du die genauso wie du Komponenten jetzt auch verwendest, mußt auch nichts dazuschreiben. Überleg Dir mal, ob nicht die Verwendung der Ausrichtngspalette das beste Aufwands - Leistungsverhältnis für dich bietet. Eine Alternative wäre noch, eine Komponente zu bauen, die die Plazierung nach Deinen Vorstellungen übernimmt. Auf jeden Fall solltest Du davon Abstand nehmen, die Borlandsourcen zu verändern, überleg mal was daa bedeutet. Nach jedem Update, jeder Neuinstallation mußt du die Änderungen neu einarbeiten, darfst dabei nichts vergessen, sie wirken sich auf alle davon abgeleiteten Komponenten aus, niemand sonst kann mit diesen Sourcen sinnvoll arbeiten können - das wäre wirklich schlechter Stil. Grüsse Woki |
Re: Bottom und Right für alle graphischen Componenten
Zitat:
Allerdings, wie oben schon gesagt, es mus dann in published stehen, nicht in public, habs verwechselt. |
Re: Bottom und Right für alle graphischen Componenten
Nagut, ich werd mir mal überlegen, wie ich's mache, vielleicht lass ich's auch, bin ja noch "Anfänger". Mal seh'n.
Aber auf alle Fälle danke an euch! :coder: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:42 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