![]() |
dynamisch erstelltes control lässt sich in der höhe anpassen
hallo ,
mit folgendem Code erstelle ich im Create 20 label's und 10 edit's.
Delphi-Quellcode:
nun möchte ich die höhe der edit's ändern. leider kann ich schreiben was ich will die höhe bleibt die gleiche. woran liegt das und wie kann man dies ändern?
var L:TLabel;
E:TEdit; i:Integer; begin for i:=1 to 20 do begin L:= TLabel.Create(self); E:= TEdit.Create (self); with L do begin parent := self; name :='L'+ IntToStr(i); if odd(i) then Begin with E do begin parent:= self; name :='E' + IntToStr(i); left := 70; top := 10 * i; ctl3d := false; text :='Ergebnis'; width := length(text) * font.Size; height:= font.Height -1; end; top := 10 * i; left := 10 end else begin top := 10 *(i-1); left := 40; end; end; end; danke raik |
Re: dynamisch erstelltes control lässt sich in der höhe anpa
Dafür gibt es die Eigenschaft
![]() Allerdings: Die Height-Eigenschaft von Fonts werden meist als negative Zahlen angegeben, deshalb wird das Edit nicht höher/niedriger. |
Re: dynamisch erstelltes control lässt sich in der höhe anpa
hallo dax,
klasse antwort :mrgreen: , wenn ich es nicht schon mit absoluten werten probiert hätte , würde ich jetzt über meine dummheit lachen. :twisted: raik :mrgreen: |
Re: dynamisch erstelltes control lässt sich in der höhe anpa
mach ein "E." vor das height, kann sein, dass delphi die höhe vom Label ändert und das sieht man ja nicht unbedingt gleich. Denn Labels und Edit felder haben eine height eigentschaft.
|
Re: dynamisch erstelltes control lässt sich in der höhe anpa
Man kann Height bei einem TEdit ändern? :gruebel:
|
Re: dynamisch erstelltes control lässt sich in der höhe anpa
hallo guenterS,
es bleibt wie es ist und ändert sich nicht :gruebel: raik |
Re: dynamisch erstelltes control lässt sich in der höhe anpa
hallo robert,
programmiere wieder :mrgreen: , warum ist die eigenschaft denn im oi aufgeführt? raik |
Re: dynamisch erstelltes control lässt sich in der höhe anpa
Zitat:
Lösung wäre die Autosize Eigenschaft des TEdits auf false zu setzen, welche standardmäßig auf true ist. [Ergänzung] font.height hat (ich weiß nicht warum) einen negativen Wert, wenn Du den für die Höhe des Edit Feldes heranziehen möchtest musst Du diesen erst auf einen positiven Wert bringen. [/Ergänzung] |
Re: dynamisch erstelltes control lässt sich in der höhe anpa
Zitat:
Anscheinend hat mich mein hohes Alter, die Programmierabstinenz und die Textbox aus .Net verwirrt. (Bei der geht es ja nur wenn MultiLine == true) |
Re: dynamisch erstelltes control lässt sich in der höhe anpa
wie schon geschrieben: einfach AutoSize auf False.
und anstelle von
Delphi-Quellcode:
würde ich dir
[...]
left := 70; top := 10 * i; width := length(text) * font.Size; height:= font.Height -1; [...]
Delphi-Quellcode:
empfehlen. Denn wenn du Left, top, width oder height setzt wird intern auch nix anderes gemach als SetBounds aufgerufen. Das heißt bei deiner Variante wird intern 4 mal SetBounds aufgerufen.
[...]
SetBounds(70, 10 * i, length(text) * font.Size, font.height - 1); [...] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:46 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