Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Variablen mit texten verknüpfen? (https://www.delphipraxis.net/113544-variablen-mit-texten-verknuepfen.html)

vsilverlord 9. Mai 2008 16:11


Variablen mit texten verknüpfen?
 
Guten Tag,
ich wollte wissen, ob man programmieren kann, dass sobald sich eine Variable ändert der dazu gehörige String sich auch ändert. Mit string meine einen label in meinem formular. mich nervt es nämlich, dass in meinen physikalischen Programmen die Veranschaulichung von label.caption:=daten mehr zeit frisst als die Rechnung selber :cry:
Ich hab ziemlich viele Labels und edits und es wäre am besten wenn ich sagen könnte daten.change:=label.caption.change
ich hoffe ihr könnt mir helfen :spin: :spin:

grenzgaenger 9. Mai 2008 16:14

Re: Variablen mit texten verknüpfen?
 
wenn deine daten in einem objekt sind, kannst du dir 'n property erstellen, welches genau das macht. den quellcode zur zuweisung hast ja schon angegeben :-)

vsilverlord 9. Mai 2008 16:49

Re: Variablen mit texten verknüpfen?
 
ja ne ich hab kein objekt das ist ja das problem. ich hab nur ein paar fette arrays.

mkinzler 9. Mai 2008 17:14

Re: Variablen mit texten verknüpfen?
 
Und welche Typen sind im Array.

BTW.:Schreib mal unser Bundesland richtig :zwinker:

grenzgaenger 9. Mai 2008 17:16

Re: Variablen mit texten verknüpfen?
 
dann mach doch 'n objekt draus ... und pack es in 'ne liste... z.b. tobjectlist


die arrays können nur das aufnehmen, für das sie geschaffen wurden... bis zu D2006 sind sie zudem äusserst passiv. von d2006 ab, kannst du da den records leben einhauchen ... ;-)

himitsu 9. Mai 2008 17:23

Re: Variablen mit texten verknüpfen?
 
ich glaub du hast a auch noch ein Designproblem :shock:

Wenn du schon einen String und ein Label hast, dann wäre es besser, wenn du den Text im Laben vom Inhalt des Strings abhängig machst.

führe alle Änderungen nur an Strings durch

und zum Anzeigen hast du nun 2 Möglichkeiten:

- entweder in einem Timer die strings abfragen und an ihre Labels weiterleiten.
(PS: in TLabel gibt es schon eine Änderungsabfrage ... wenn du einen Text an .Caption zuweist, dann wird er nur übernommen, wenn er nicht dem bereits angezeigten Text übereinstimmt)
Delphi-Quellcode:
Procedure Form1.Timer1Timer(Sender: TObject);
  Begin
    Label1.Caption := S1;
    Label2.Caption := S2;
    Label3.Caption := S3;
  End;
- oder du erstellst dir eine Updateprozedur, welche nach einer Änderung (oder mehreren Änderungen ... z.B. nach der Berechnung) von dir (deinem Programm) aufgerufen wird.
Delphi-Quellcode:
Procedure Form1.UpdateLabels; {'ne private Klassenprozedur}
  Begin
    Label1.Caption := S1;
    Label2.Caption := S2;
    Label3.Caption := S3;
  End;


S1 := ...;
S2 := ...;
S3 := ...;
UpdateLabels;
Letzteres läßt sich auch so ähnlich in einer Klasse nutzen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:16 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