![]() |
Labelverschiebung verschiebt alle Komponenten
Hallo wiedermal an alle DP´ler,
Ein neues Problem: Ich möchte ein Label an einem 2. Label ausrichten. Dies ist nötig, damit ich eine ordentliche Darstellung von mm/s^2 bekomme. (Andere Möglichkeit dies eventuell mit Zeichenformatierung zu erreichen ist mir leider nicht bekannt, falls jemand sowas kennt, bitte auch mitteilen) Habe mir dazu folgende Funktion geschrieben:
Delphi-Quellcode:
Das Ergebnis ist leider nicht sehr überzeugend, weil alle Komponenten dadurch verschoben werden. Fragt mich bitte nicht warum, wenn ich den Funktionsaufruf unterbinde, passiert dies nicht. Sieht jemand vieleicht warum dies passiert?
function TContainer.LabelPosition_anpassen(ReferenzLabel: TLabel): TLabel;
begin result.Left := ReferenzLabel.Left + ReferenzLabel.Width; end; Mein Funktionsaufruf sieht wie folgt aus:
Delphi-Quellcode:
Vielen Dank
FLblStatusPotenzLabeldefBeschleunigung := LabelPosition_anpassen(FLblStatusAktuelleBeschleunigungAnzeige);
BAMatze |
Re: Labelverschiebung verschiebt alle Komponenten
Du gibst eine Kalsse zurück ohne Sie zu erzeugen? ganz pöhse :mrgreen:
Gib mal den Integer zurück:
Delphi-Quellcode:
Zuweisung entsprechend ... wobei es mich wundert, dass du keine AV um die Ohren gehauen bekommst :gruebel:
function TContainer.LabelPosition_anpassen(ReferenzLabel: TLabel): Integer;
begin result := ReferenzLabel.Left + ReferenzLabel.Width; end; |
Re: Labelverschiebung verschiebt alle Komponenten
Also verwende diese Art von Funktionen eingentlich auch erfolgreich für die Kreierung von Komponenten, deswegen dachte ich mir eigentlich, das müsste so doch auch funktionieren. Also auch die Labels, die ich damit verschieben möchte, werde über folgende Funktion vorher im Quellcode erzeugt:
Delphi-Quellcode:
Deswgen auch keine AV (denke mal ist die AccessValuation). Die Komponenten existieren wirklich. Aber deine Möglichkeit sollte eigentlich auch funktionieren.
function TContainer.CreateLabel(PosX, PosY, Textgroesse: integer; Text: string; Enabled: boolean): TLabel;
begin result := TLabel.Create(Self); result.Parent := Self; result.Left := PosX; result.Top := PosY; result.Caption := Text; result.Font.Height := Textgroesse; result.Enabled := Enabled; end; |
Re: Labelverschiebung verschiebt alle Komponenten
Zitat:
zu dem eigentlichen Problem...die Komponente result existiert nicht...du musst den Pointer von result erstmal einem label zuweisen.
Delphi-Quellcode:
function TContainer.LabelPosition_anpassen(ReferenzLabel: TLabel): TLabel;
begin result:=TContainer.GetLabel(...);//muss halt implementiert werden :) //z.B. mit if (TContainer.Components[i] is TLabel) then result:=(TContainer.Components[i] as TLabel) result.Left := ReferenzLabel.Left + ReferenzLabel.Width; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:30 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