Einzelnen Beitrag anzeigen

H3llsing

Registriert seit: 12. Nov 2008
96 Beiträge
 
Delphi 2010 Enterprise
 
#9

AW: Tmemo height dynamisch an text anpassen

  Alt 4. Aug 2010, 09:09
Vielen Dank schomal für euer bemühen, aber es will einfach nicht so funktionieren wie es soll.

Die MEthode von DaddyH kommt mit nem MEmo alleine ganz gut ran, aber ich möchte ja, dass das Memo AlClient bleibt, das heißt die größe des memos passt sich dem des PARENT Panels an. Nun möchte ich dem Panel die größe geben, die das memo eigentlich benötigt + 20 px margin, damit das auch passt.
Zusätzlich ist mir aufgefallen, wenn ich die Größe des PArentPanels nach dem MEmo.Create verändere, dass dann die Erstellungsreihenfolge komplett verschoben wird

ich hänge mal screenshots zur verdeutlichung an.



Delphi-Quellcode:
    //neues Panel erzeugen
    newPanel := Tpanel.Create(frmAnfrage);
    newPanel.ParentColor := False;
    newPanel.ParentBackground := false;

    newPanel.Parent := frmAnfrage.ScrollBox1;
    newPanel.ParentDoubleBuffered := true;
    newPanel.Align := alTop;
  // newHeight := AdjustMemoHeight(ar_content[i].Content);
    NewPanel.Height := 1000;

    newLab := Tlabel.Create(newPanel);
    newLab.Parent := newPanel;
    NewLab.Visible := false;
    newlab.Margins.SetBounds(10,10,10,10);
    newLab.Align := alClient;
    NewLab.Font.Name := 'Courier New';
    newLab.Caption := ar_content[i].Content;

    LH := newLab.Canvas.TextHeight(ar_content[i].Content);
    NewPanel.Height := LH ;
Das hat leider auch nicht funktioniert, irgendwie ist das Panel dann nur ein paar pixel groß und wird in der Erstellungsreihenfolge nach oben gesetzt. Ich erzeuge vor dem Panel auf dem das Memo liegt noch ein blaues Panel mit der überschrift,dass auch auf der scrollbox liegt.
Bei dieser MEthode ist nun das graue Panel mit Memo über das blaue gerutscht.

HIER die Falsche Reihenfolge, wenn ich die größe des Panels später ändere
falsche_erstellreihenfolge.png


Hier wie es fast aussehen sollte, hier wurde ne feste PanelBReite vergeben.
Es Sollte aber auf die Texthöhe eingestellt werden
richtige_erstellreihenfolge.png
  Mit Zitat antworten Zitat