Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Button bei größen Änderung an gleicher Stelle (https://www.delphipraxis.net/177839-button-bei-groessen-aenderung-gleicher-stelle.html)

Patrick Star 30. Nov 2013 16:41


Button bei größen Änderung an gleicher Stelle
 
Hallo Delphi Begeisterte,

Bin Neu in diesem Forum und hoffe meine Frage in die Richtige Abteilung geschickt zu haben.

PROBLEM:

Auf meiner Form1 befinden sich Rechts drei Button untereinander. Nun wenn ich das Programm starte,
und die Form1 auf Fullscreen setze, sind die drei Button nicht mehr dort wo ich sie vorher hatte.
Ich möchte die Button an der Stelle quasi fest haben. Sie sollen - egal wie groß die Form1 gezogen wird -
immer an der gleichen Stelle bleiben.
Geht das überhaupt ???

Danke für die Hilfe schon mal im Voraus.:lol:

Patrick Star

Arbeite mit Delphi 6 unter Win 7 32Bit

zeras 30. Nov 2013 16:43

AW: Button bei größen Änderung an gleicher Stelle
 
Arbeite doch mit Panels und baue die 3 Buttons in ein Panel, was nach rechts ausgerichtet ist. Dazu noch fix und die linke Seite stellst du dann auf alClient.

jaenicke 30. Nov 2013 17:37

AW: Button bei größen Änderung an gleicher Stelle
 
Das Zauberwort hier ist Anchors. Damit kannst du festlegen, mit welchem Rand der Elternkomponente die Buttons ihre Position mitziehen. Standardmäßig ist das nur links und oben, so dass die Position sich nicht ändert, wenn die Fenstergröße verändert wird.

Helmi 30. Nov 2013 17:37

AW: Button bei größen Änderung an gleicher Stelle
 
Hallo,

du musst die Property "Anchors" der Button verändern.
Standardgemäß sind "akLeft" und "akTop" angewählt
Wenn ich dich richtig verstanden habe, dann bräuchtest du: "akRight" und "akTop"

Einfach mal ausprobieren.

Ach ja - Button mit o statt e im Titel

hathor 30. Nov 2013 18:17

AW: Button bei größen Änderung an gleicher Stelle
 
SCALEBY

http://www.delphipraxis.net/78746-fo...-anpassen.html

Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
begin
  Form1.ScaleBy(90,100); //-10%
  Label1.Caption:=IntToStr(self.Width);
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
  Form1.ScaleBy(110,100); //+10%
  Label1.Caption:=IntToStr(self.Width);
end;

Bernhard Geyer 30. Nov 2013 18:53

AW: Button bei größen Änderung an gleicher Stelle
 
Zitat:

Zitat von Helmi (Beitrag 1237996)
Hallo,

du musst die Property "Anchors" der Button verändern.
Standardgemäß sind "akLeft" und "akTop" angewählt
Wenn ich dich richtig verstanden habe, dann bräuchtest du: "akRight" und "akTop"

Einfach mal ausprobieren.

Funktioniert denn das mittlerweile? Bei D6 und größenveränderlichen Formularen wird bei großer Schriftart die Skalierung falsch durchgeführt so das der Button nicht mehr an der gewünschten Position liegt.

jaenicke 30. Nov 2013 19:11

AW: Button bei größen Änderung an gleicher Stelle
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1238004)
Funktioniert denn das mittlerweile? Bei D6 und größenveränderlichen Formularen wird bei großer Schriftart die Skalierung falsch durchgeführt so das der Button nicht mehr an der gewünschten Position liegt.

Bei XE5 funktioniert es problemlos, getestet auf Windows 8.1.

Dass es bei Delphi 6 nicht funktioniert, wundert mich absolut nicht, denn da wurde der Fensterrand bei der Berechnung der Komponentenanordnung und Clientgröße des Fensterbereichs nicht mit berücksichtigt, so dass Delphi 6 generell für die Entwicklung für Vista und höher kaum einen Sinn macht. Das hinzubekommen, dass es auf allen Systemen korrekt aussieht, ist damit sehr schwer.

Bernhard Geyer 30. Nov 2013 19:17

AW: Button bei größen Änderung an gleicher Stelle
 
Zitat:

Zitat von jaenicke (Beitrag 1238006)
Dass es bei Delphi 6 nicht funktioniert, wundert mich absolut nicht, denn da wurde der Fensterrand bei der Berechnung der Komponentenanordnung und Clientgröße des Fensterbereichs nicht mit berücksichtigt, so dass Delphi 6 generell für die Entwicklung für Vista und höher kaum einen Sinn macht. Das hinzubekommen, dass es auf allen Systemen korrekt aussieht, ist damit sehr schwer.

Mit ein paar Grundregeln (Trägerpanel, Keine Verwendung Anchors, ...) geht das schon

blondervolker 30. Nov 2013 20:06

AW: Button bei größen Änderung an gleicher Stelle
 
Kennt das jemand?

http://www.imagekit.com/resizekit2.html

Hab es mal getestet.Aber mit TMS Komponenten.Naja...

jaenicke 30. Nov 2013 22:37

AW: Button bei größen Änderung an gleicher Stelle
 
Zitat:

Zitat von blondervolker (Beitrag 1238014)

Die Unit dafür in unseren Projekten ist sehr überschaubar. Ein wenig RTTI Spielerei usw. und das war es. Die kann vermutlich weniger, aber die von uns verwendeten Komponenten behandelt sie jedenfalls problemlos, auch 3rd-Party.

blondervolker 1. Dez 2013 13:23

AW: Button bei größen Änderung an gleicher Stelle
 
Gibt es da noch andere Komponenten zur automatischen Anpassung? :cyclops:

Medium 2. Dez 2013 00:42

AW: Button bei größen Änderung an gleicher Stelle
 
Nur um es auch noch sprachlich korrekt zu machen:
Zitat:

Zitat von Patrick Star (Beitrag 1237989)
Nun wenn ich das Programm starte, und die Form1 auf Fullscreen setze, sind die drei Button nicht mehr dort wo ich sie vorher hatte.

Doch, sie sind ganz genau dort, wo sie vorher waren.
Zitat:

Ich möchte die Button an der Stelle quasi fest haben.
Nein, du möchtest, dass sich ihre Position mit Änderung des rechten Fensterrandes mit ändert.

Hintergrund: Visuelle Komponenten werden immer mit ihrem Abstand zur oberen linken Ecke positioniert. Möchte man aber, dass sich der Abstand relativ zum rechten und/oder unteren Rand nicht ändert, so muss man aktiv werden, und die hier genannten Maßnahmen ergreifen. (Nicht alle gleichzeitig natürlich ;))

messie 2. Dez 2013 07:57

AW: Button bei größen Änderung an gleicher Stelle
 
Zitat:

Zitat von blondervolker (Beitrag 1238014)
Kennt das jemand?

http://www.imagekit.com/resizekit2.html

Hab es mal getestet.Aber mit TMS Komponenten.Naja...

Ich benutze das hier besprochene: http://www.delphipraxis.net/888399-post4.html
Mit D2009 und vorher mit TMS-Komponenten. Geht ganz gut, einen Unterschiedn zwischen XP und Win7 habe ich bisher nicht gesehen.

Grüße, Messie

jaenicke 2. Dez 2013 08:02

AW: Button bei größen Änderung an gleicher Stelle
 
Zitat:

Zitat von messie (Beitrag 1238140)
Mit D2009 und vorher mit TMS-Komponenten. Geht ganz gut, einen Unterschiedn zwischen XP und Win7 habe ich bisher nicht gesehen.

Seit Delphi 2006 ist der Bug mit dem Rahmen auch gefixt.

p80286 2. Dez 2013 12:39

AW: Button bei größen Änderung an gleicher Stelle
 
Zitat:

Zitat von Medium (Beitrag 1238131)
Nur um es auch noch sprachlich korrekt zu machen:
Zitat:

Zitat von Patrick Star (Beitrag 1237989)
Nun wenn ich das Programm starte, und die Form1 auf Fullscreen setze, sind die drei Button nicht mehr dort wo ich sie vorher hatte.

Doch, sie sind ganz genau dort, wo sie vorher waren.
Zitat:

Ich möchte die Button an der Stelle quasi fest haben.
Nein, du möchtest, dass sich ihre Position mit Änderung des rechten Fensterrandes mit ändert.

Hintergrund: Visuelle Komponenten werden immer mit ihrem Abstand zur oberen linken Ecke positioniert. Möchte man aber, dass sich der Abstand relativ zum rechten und/oder unteren Rand nicht ändert, so muss man aktiv werden, und die hier genannten Maßnahmen ergreifen. (Nicht alle gleichzeitig natürlich ;))

Bist du sicher daß das so korrekt ist?
Mir scheint es, daß der TE wirklich diese etwas ungewöhnliche Anforderung hat. Meinem Verständnis nach will er die Buttons fix auf dem Screen und nicht dem Form Positionieren.

Gruß
K-H

Medium 2. Dez 2013 13:36

AW: Button bei größen Änderung an gleicher Stelle
 
Dann hätte nichts ändern ja schon zum Ziel geführt ;)

Perlsau 2. Dez 2013 15:20

AW: Button bei größen Änderung an gleicher Stelle
 
Zitat:

Zitat von p80286 (Beitrag 1238176)
Mir scheint es, daß der TE wirklich diese etwas ungewöhnliche Anforderung hat. Meinem Verständnis nach will er die Buttons fix auf dem Screen und nicht dem Form Positionieren.

Verstehe ich nicht: Buttons auf fix dem Screen positionieren? Ohne Form? Wie soll denn das jetzt wieder gehen? Außerdem kann ich das der Anfrage nicht entnehmen. Er hat einfach noch nicht verstanden, wie das mit dem Anchor-Property funktioniert.

baumina 2. Dez 2013 15:24

AW: Button bei größen Änderung an gleicher Stelle
 
Ohne Screenshots und/oder einer näheren Beschreibung was genau gewünscht wird, bleibt es ein munteres Ratespiel :glaskugel:

p80286 2. Dez 2013 16:41

AW: Button bei größen Änderung an gleicher Stelle
 
@perlsau
nach nochmaligem Durchlesen komme ich nicht umhin, mich Deiner Meinung anzuschließen.
Nur Standardvorgabe ist doch akLeft und akTop wenn dann das Programm links oben startet, wird nur das Form größer, die Buttons bleiben wo sie sind.
Startet das Programm in der Mitte oder Rechts (nicht links oben) dann wandern die Buttons immer nach links oben....
Was also bedeutet
Zitat:

Ich möchte die Button an der Stelle quasi fest haben. Sie sollen - egal wie groß die Form1 gezogen wird -
immer an der gleichen Stelle bleiben.
Gruß
K-H

Patrick Star 2. Dez 2013 16:51

AW: Button bei größen Änderung an gleicher Stelle
 
Sodele

Problem - auch wenn es kein Richtiges war - gelöst.
Für die Button die Richtigen Einstellungen wählen und es geht.
Danke für die vielen "Tips". :-D

Servus der Patrick

p80286 2. Dez 2013 17:16

AW: Button bei größen Änderung an gleicher Stelle
 
Jetzt wäre es nett wenn Du noch schreiben würdest was Du gemacht hast, damit andere, die dieses Problem auch einmal haben, davon profitieren können.

Gruß
K-H


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:30 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