AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Code-Bibliothek Neuen Beitrag zur Code-Library hinzufügen Erzeugte Objekte während der Laufzeit per Button verschieben
Thema durchsuchen
Ansicht
Themen-Optionen

Erzeugte Objekte während der Laufzeit per Button verschieben

Ein Thema von Nine9 · begonnen am 2. Feb 2022 · letzter Beitrag vom 2. Feb 2022
Antwort Antwort
Nine9

Registriert seit: 1. Dez 2021
45 Beiträge
 
Delphi 10 Seattle Professional
 
#1

Erzeugte Objekte während der Laufzeit per Button verschieben

  Alt 2. Feb 2022, 16:40
Guten Tag liebe Community,

ich bedanke mich das Ihr mir schon so oft geholfen habt.
Nun habe ich ein neues Problem wie es der Titel schon verrät .

Ich erzeuge in der Prozedur Activate einige Labels und möchte diese während das Programm läuft über einen Button ansprechen und dessen top wert verändern.

Leider lassen sie sich aber nicht in einer anderen Prozedur ansprechen und deren Top wert verändern.

Grüße
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Erzeugte Objekte während der Laufzeit per Button verschieben

  Alt 2. Feb 2022, 18:04
Grundsätzlich sollte das gehen.

Button1.Top := Button1.Top + 10; Sollte eigentlich den Button1 versetzen.
Du darfst den natürlich nicht mit Align oder Anchor irgendwie ausgerichtet haben und das Programm muss Zeit haben, die Aufgabe zu erledigen (also nicht gerade eine ellenlange Berechnung ausführen oder so).

Erstell Dir vielleicht mal ein kleines Testprojekt und versuche, die Funktion nochmal nachzustellen.
Evtl. klemmt es irgendwo anders...

Helfen kann auch ein Breakpoint in der Zeile der Positionszuweisung, ob diese überhaupt ausgeführt wird.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
885 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Erzeugte Objekte während der Laufzeit per Button verschieben

  Alt 2. Feb 2022, 18:15
Ich rate einfach mal ins Blaue hinein, dass zur Erzeugung der Labels im OnActivate lokale Variablen benutzt wurden. D.h. nach dem Verlassen dieser Methode hat man keine direkten Referenzen mehr auf diese Label.

Lösung wäre daher, die Label in einer Liste (oder, wenn es nur wenige sind, in einzelnen Variablen) zu speichern, als Eigenschaft der Formklasse. Diese Liste müsste dann im OnCreate der Form erstellt werden, und im OnDestroy wieder gelöscht werden, z.B.
Delphi-Quellcode:
type
  TLabelList = class(TObjectList<Label>);

MyLabelList := TLabelList.Create(False); // False: Die Objekte beim Freigeben nicht durch die Liste zerstören, das macht am Ende ja die Form.
The angels have the phone box.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz