Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi dynamisch erstelltes control lässt sich in der höhe anpassen (https://www.delphipraxis.net/37612-dynamisch-erstelltes-control-laesst-sich-der-hoehe-anpassen.html)

kiar 7. Jan 2005 21:29


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:
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;
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?

danke raik

Dax 7. Jan 2005 21:30

Re: dynamisch erstelltes control lässt sich in der höhe anpa
 
Dafür gibt es die Eigenschaft Delphi-Referenz durchsuchenHeight ;)

Allerdings: Die Height-Eigenschaft von Fonts werden meist als negative Zahlen angegeben, deshalb wird das Edit nicht höher/niedriger.

kiar 7. Jan 2005 21:34

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:

GuenterS 7. Jan 2005 21:54

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.

Robert_G 7. Jan 2005 21:56

Re: dynamisch erstelltes control lässt sich in der höhe anpa
 
Man kann Height bei einem TEdit ändern? :gruebel:

kiar 7. Jan 2005 21:57

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

kiar 7. Jan 2005 21:59

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

GuenterS 7. Jan 2005 22:15

Re: dynamisch erstelltes control lässt sich in der höhe anpa
 
Zitat:

Zitat von Robert_G
Man kann Height bei einem TEdit ändern? :gruebel:

Ja kann man, einfach mal en TEdit auf eine Form ziehen und größer ziehen. Im OE kann man auch manuell einen Wert eingeben und die Größenänderung auf der Form beobachten.


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]

Robert_G 7. Jan 2005 22:23

Re: dynamisch erstelltes control lässt sich in der höhe anpa
 
Zitat:

Zitat von kiar
hallo robert,

programmiere wieder :mrgreen: , warum ist die eigenschaft denn im oi aufgeführt?

raik

Wie ich dir bereits schrieb, Montag werden ich wieder auf die erste wehrlose IDE losgelassen.
Anscheinend hat mich mein hohes Alter, die Programmierabstinenz und die Textbox aus .Net verwirrt. (Bei der geht es ja nur wenn MultiLine == true)

SirThornberry 8. Jan 2005 09:01

Re: dynamisch erstelltes control lässt sich in der höhe anpa
 
wie schon geschrieben: einfach AutoSize auf False.
und anstelle von
Delphi-Quellcode:
  [...]
  left := 70;
  top  := 10 * i;
  width := length(text) * font.Size;
  height:= font.Height -1;
  [...]
würde ich dir
Delphi-Quellcode:
  [...]
  SetBounds(70, 10 * i, length(text) * font.Size, font.height - 1);
  [...]
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.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:46 Uhr.
Seite 1 von 2  1 2      

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