![]() |
Positionierung via Align buggt rum...
Hi,
Ich habe ein Eingabefeld (für einen Chat) mit ein paar Controls dabei. insgesamt ein Edit (oder Memo), drei Buttongroups und eine TFatMemo (im prinzip auch eine Memo). Die sollen einfach übereinander gestapelt werden (Align:=alBottom) Nun habe ich das Problem, dass die Reihenfolge irgendwie verrückt spielt... Bisher sieht die konstruktion so aus: Ich habe mir eine Komponente von TPanel abgeleitet und dadrauf die ganzen Sachen positioniert. Es gibt 2 Darstellungsmodi. - Setzen der Höhe nach der Summe der einzelnen Höhen - Setzen der einzelnen Höhen nach der Gesamthöhe Also rufe ich immer im Paint folgendes auf:
Delphi-Quellcode:
begin
if (FLastHeight<>Height) or (FLastWidth<>Width) then begin //Wenn sich was verändert hat dann mal höhen updaten... UpdateHeight; FLastHeight:=Height; FLastWidth:=Width; end; inherited; end;
Delphi-Quellcode:
Das funktioniert auch soweit alles...
procedure TFatPreviewEditor.UpdateHeight;
var H: Integer; begin Case FDefineHeight of dhbParticulars: begin H:=2; if Multiline then Inc(H,FMemo.Height) else Inc(H,FEdit.Height); if Preview then Inc(H,FPreviewMemo.Height+2); if FInputButtons.Visible then Inc(H,FInputButtons.Height+2); if FSmilieButtons.Visible then Inc(H,FSmilieButtons.Height+2); if FInputColors.Visible then Inc(H,FInputColors.Height+2); Height:=H; end; dhbOverall: begin H:=Height; if FInputButtons.Visible then Dec(H,FInputButtons.Height+2); if FSmilieButtons.Visible then Dec(H,FSmilieButtons.Height+2); if FInputColors.Visible then Dec(H,FInputColors.Height+2); if Preview then begin H:=H div 2; FPreviewMemo.Height:=H-2; end; if Multiline then FMemo.Height:=H-2 else FEdit.Height:=H-2; end; end; FMemo.Top:=0; //Hier versuche ich die zu sortieren... FEdit.Top:=0; FInputButtons.Top:=0; FInputColors.Top:=0; FSmilieButtons.Top:=0; FPreviewMemo.Top:=0; end; Aber die Reihenfolge ist manchmal durcheinandergewürfelt. Aber auch nicht zufällig, sondern bei einer bestimmten Größe immer gleich Was mache ich falsch/was könnte ich anders machen? |
Re: Positionierung via Align buggt rum...
wenn du bei allen Top auf 0 setzt ist es eben eine Art Glücksspiel welches das oberste ist. Setze die Top-Werte entsprechend so das klar ersichtlich ist welches ganz oben ist.
Delphi-Quellcode:
erstes.top := 0;
zweites.top := 1; [...] |
Re: Positionierung via Align buggt rum...
Delphi-Quellcode:
Macht exakt das selbe :-(
FMemo.Top:=5;
FEdit.Top:=4; FInputButtons.Top:=3; FInputColors.Top:=2; FSmilieButtons.Top:=1; FPreviewMemo.Top:=0; |
Re: Positionierung via Align buggt rum...
kannst du das projekt mal anhängen? bzw. geht es wenn du die Top-Werte richtig setzt?
Delphi-Quellcode:
FMemo.Top:=FMemo.Parent.Height - FMemo.Height;
FEdit.Top:=FMemo.Top - FEdit.height; FInputButtons.Top:=FEdit.Top - FInputButtons.Height; [...] |
Re: Positionierung via Align buggt rum...
Zitat:
Ein weitere Problem ist dass Smilies und Colors nur manchmal angezeigt werden, und es ist nur entweder Edit oder Memo sichtbar. Ich habe es nun mal so gemacht:
Delphi-Quellcode:
und es funktioniert :dancer:
FPreviewMemo.Top:=0;
FSmilieButtons.Top:=FPreviewMemo.Height; FInputColors.Top:=FPreviewMemo.Height+10; FInputButtons.Top:=FPreviewMemo.Height+20; FEdit.Top:=FInputButtons.Top+FInputButtons.Height; FMemo.Top:=FInputButtons.Top+FInputButtons.Height; Danke :thumb: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:24 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 by Thomas Breitkreuz