AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Bottom und Right für alle graphischen Componenten
Thema durchsuchen
Ansicht
Themen-Optionen

Bottom und Right für alle graphischen Componenten

Ein Thema von F.W. · begonnen am 7. Jan 2004 · letzter Beitrag vom 9. Jan 2004
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von F.W.
F.W.

Registriert seit: 28. Jul 2003
Ort: Zittau
636 Beiträge
 
#1

Bottom und Right für alle graphischen Componenten

  Alt 7. Jan 2004, 19:15
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!
  Mit Zitat antworten Zitat
scp

Registriert seit: 31. Okt 2003
1.120 Beiträge
 
Delphi 7 Personal
 
#2

Re: Bottom und Right für alle graphischen Componenten

  Alt 7. Jan 2004, 20:01
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;
  Mit Zitat antworten Zitat
Benutzerbild von F.W.
F.W.

Registriert seit: 28. Jul 2003
Ort: Zittau
636 Beiträge
 
#3

Re: Bottom und Right für alle graphischen Componenten

  Alt 7. Jan 2004, 20:24
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.
  Mit Zitat antworten Zitat
Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#4

Re: Bottom und Right für alle graphischen Componenten

  Alt 7. Jan 2004, 20:43
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.
Wenn du hingegen eine extra Komponente ableitest (Siehe hierzu das Komponenten Tutorial von Sakura oder auf www.delphi-source.de die Tutorials) ist das alles viel übersichtlicher.

Man liest sich, Stanlay
  Mit Zitat antworten Zitat
scp

Registriert seit: 31. Okt 2003
1.120 Beiträge
 
Delphi 7 Personal
 
#5

Re: Bottom und Right für alle graphischen Componenten

  Alt 7. Jan 2004, 20:55
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:
function GetBottom(AControl : TControl) : Integer;
begin
  result := AControl.Height + AControl.Top;
end;
So kannst du von jeder beliebiegen Compo, die von TControl abgeleitet ist (sind ziemlich viele), denn Bottom über die Funktion abrufen.
Z.B.:
i := GetBottom(Edit1);
  Mit Zitat antworten Zitat
Benutzerbild von F.W.
F.W.

Registriert seit: 28. Jul 2003
Ort: Zittau
636 Beiträge
 
#6

Re: Bottom und Right für alle graphischen Componenten

  Alt 7. Jan 2004, 21:20
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?
  Mit Zitat antworten Zitat
Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#7

Re: Bottom und Right für alle graphischen Componenten

  Alt 7. Jan 2004, 21:24
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.

Man liest sich, Stanlay
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#8

Re: Bottom und Right für alle graphischen Componenten

  Alt 7. Jan 2004, 22:05
Oops, hätte mal die vorherigen Posts lesen sollen
  Mit Zitat antworten Zitat
woki

Registriert seit: 29. Mär 2003
563 Beiträge
 
Delphi 2006 Architect
 
#9

Re: Bottom und Right für alle graphischen Componenten

  Alt 7. Jan 2004, 22:09
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
  Mit Zitat antworten Zitat
scp

Registriert seit: 31. Okt 2003
1.120 Beiträge
 
Delphi 7 Personal
 
#10

Re: Bottom und Right für alle graphischen Componenten

  Alt 7. Jan 2004, 23:17
Zitat von F.W.:
Sind bei den ganzen Wegen auch immer die Eigenschaften(Bottom und Right) im Objekt inspector zusehen?
Jepp, wenn du die allererste Methode anwendest (ableiten), dann schon.
Allerdings, wie oben schon gesagt, es mus dann in published stehen, nicht in public, habs verwechselt.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 11:56 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