Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Label soll immer in der Mitte sein (https://www.delphipraxis.net/37443-label-soll-immer-der-mitte-sein.html)

Äfan 5. Jan 2005 23:36


Label soll immer in der Mitte sein
 
Hi,

Ich will einen Link mit einem label machen. Ich will, dass das Label1 immer in der mitte sein soll. Beim Programmstart wird dem label1 ein wert zugewiesen. Das Problem ist, wenn der Wert zu lange ist, steht das label1 zu weit links. Ich bekomme das irgendwie net hin. Ich habe schon probiert AutoSize auf False zu setzen und dann bei Alignment auf taCenter aber das Funktioniert net. Wenn ich das Label1 so mache, das es die Breite nicht ändert, dann kann man das label sogar da anklicken, wo nix steht.
Gibt es ne möglichkeit das richtig zu machn ?

MFG

Christian Seehase 5. Jan 2005 23:38

Re: Label soll immer in der Mitte sein
 
Moin Äfan,

Du könntest AutoSize auf True setzen, und dann die Eigenschaft Left anpassen, um die Position zu zentrieren.

Äfan 5. Jan 2005 23:59

Re: Label soll immer in der Mitte sein
 
Dann is das label aber net in der mitte :gruebel:

StanY 6. Jan 2005 00:12

Re: Label soll immer in der Mitte sein
 
Geht sicher eleganter aber:

Delphi-Quellcode:
Label1.Left := Form1.Width div 2 - Label1.Width div 2;
Label1.Tip := Form1.Height div 2 - Label1.Height div 2;
Alternativ statt Form1.Width Form1.ClientWidth etc. Das dann in alle notwendigen Events.

axelf98 6. Jan 2005 00:14

Re: Label soll immer in der Mitte sein
 
"Autosize" auf "false"
und "Alignment" auf "taCenter",
dann nur noch das Label auf die gewünschte Größe ziehen :)

[edit] Das hattest du ja schon.. Dann müsstest du die Breite des Labels mit dem Form-Resize anpassen.. Aber was willst du eigentlich? Der Text steht ja schon in der Mitte! [/edit]

Muetze1 6. Jan 2005 00:28

Re: Label soll immer in der Mitte sein
 
Moin!

1. Label positionieren
2. AutoSize ist ja egal, da der Text ja nicht geändert wird
3. Anchors abändern auf akLeft, akRight und dann abhängig ob das Label beim Resize sich an den unteren Rand orientieren soll (akBottom) oder an den oberen Rand (akTop) noch angeben.

Kein Code nötig.

MfG
Muetze1

Äfan 6. Jan 2005 01:49

Re: Label soll immer in der Mitte sein
 
@StanY: Also mit Label1.Left := Form1.Width div 2 - Label1.Width div 2; gehts. Is zwar nicht ganz in der mitte, aber das war mein fehler. Das label befindet sich nähmlich in ner PageControl, also Page1.Width. Jetzt passt es wie angegossen. :thumb:

Zitat:

2. AutoSize ist ja egal, da der Text ja nicht geändert wird
FALSCH ! Der Text wird geändert.
Zitat:

Beim Programmstart wird dem label1 ein wert zugewiesen
MFG

Muetze1 6. Jan 2005 07:47

Re: Label soll immer in der Mitte sein
 
Moin!

Zitat:

Zitat von Äfan
@StanY: Also mit Label1.Left := Form1.Width div 2 - Label1.Width div 2; gehts. Is zwar nicht ganz in der mitte, aber das war mein fehler. Das label befindet sich nähmlich in ner PageControl, also Page1.Width. Jetzt passt es wie angegossen. :thumb:

Zitat:

2. AutoSize ist ja egal, da der Text ja nicht geändert wird
FALSCH ! Der Text wird geändert.
Zitat:

Beim Programmstart wird dem label1 ein wert zugewiesen
MFG

Und? Musst ja nicht gleich rumbrüllen - ich schrei dich doch auch nicht an, nur weil du das mit Anchors nicht wusstest... Tse, Leute gib's....

Dann schalte AutoSize aus und hör auf zu brüllen!

M_G
Muetze1

Chegga 6. Jan 2005 09:43

Re: Label soll immer in der Mitte sein
 
Hi,

so wie das verstanden habe, willst du, dass das Label genau
in der Mitte auf der sitzt.

1. Autosize --> False //Damit sich die Größe nicht verändert
2. Label in die gewünschte Größe bringen,
evt. Alignment auf taCenter stellen.
3. Rechtsklick auf Label --> Position --> Ausrichten -->
unter Horizontal auf Im Fenster zentrieren / unter Vertikal auf Im Fenster zentrieren.

Und voilà, schon hast du dein Label ganz genau in der Mitte. :wink:

MfG Marc

Äfan 6. Jan 2005 22:30

Re: Label soll immer in der Mitte sein
 
Zitat:

Und? Musst ja nicht gleich rumbrüllen - ich schrei dich doch auch nicht an, nur weil du das mit Anchors nicht wusstest... Tse, Leute gib's....

Dann schalte AutoSize aus und hör auf zu brüllen!

M_G
Muetze1
:shock: Ey Moment, ich wollte dich net anschreien. Ich habe es nur Großgeschreieben um es besser zu verdeutliche, ich schreie niemanden an. Sorry wenn du das so verstanden hast ! :roll:

@Chegga: Naja, eben da is das Problem. Wenn mein Prog startet, wir dem Label ein Text zugewiesen, der aus dem internet geladen wird. Daher geht das mit AutoSize=False nicht und Rechtsklick geht ja net zur laufzeit. Das muss alles automatisch nach programmstart gehen. Mit StanY's Methode is es perfekt und geht so, wie es sein soll.

thanks

Besonders @Muetzel: MFG


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:43 Uhr.
Seite 1 von 2  1 2      

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