![]() |
Tlable.Caption von anderer Unit aus Updaten
Hi,
ich habe hier ein kleines Problem. In einer Unit1 ist ein Polling Timer. In einer Unit2 ist eine Form1 mit Label1. Dies dient nur als Options Fenster und wird eigentlich im normalen gebrauch nie angezeigt. Wenn nun die Form1 sichtbar sein sollte, soll der Polling Timer in der Unit1 den Label in der Unit2 Updaten. Unit2:
Delphi-Quellcode:
In der Unit1 will ich's nun so machen:
unit Options
type TFormOptions = class(TForm) lbMeinCode: TLabel; procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; Type FormOptions= TFormOptions;
Delphi-Quellcode:
Da gibt es aber dann immer Probleme und Delphi steigt aus.
uses Options,...
var OptionsFormCode : FormOptions; .. .. OptionsFormCode.lbMeinCode.Caption := 'Mein Code'; Kann mir da jemand einen Tipp geben!? Auch hätte ich die Frage wie ich am schnellsten/einfachsten Überpüfe ob die Form1 geladen ist oder nicht? Derzeit hätte ich das mit einer globalen Variable gemacht... Danke! |
Re: Tlable.Caption von anderer Unit aus Updaten
Ich verstehe nicht ganz, was Du da machst. Wozu die 2. Typdeklaration? Wird das entsprechende Formular automatisch erstellt oder zur Laufzeit? Was meinst Du mit "geladen", erzeugt oder sichtbar?
|
Re: Tlable.Caption von anderer Unit aus Updaten
Geladen = Sichtbar
Normal sendet der polling Timer in der Unit1 die Daten zu einer externen DLL. Wenn das Optionen Fenster geöffnet ist sollen die Daten nicht an die externe DLL gesendet werden sondern an das Label in der Unit2 (Options Unit) gesendet werden. Und sicher eingentlich sollte: OptionsFormCode : TFormOptions reichen |
Re: Tlable.Caption von anderer Unit aus Updaten
Aus dem Bauch heraus:
Delphi-Quellcode:
if Assigned(OptionsFormCode) and OptionsFormCode.Visible then...
|
Re: Tlable.Caption von anderer Unit aus Updaten
Ok, soweit so gut.
Anscheinend ist die OptionsFormCode nicht Assigned. Aber warum nicht? Vielleicht weil beim starten die Form noch nicht erzeugt worden ist? Kann man zu einem späteren Zeitpunkt die Form (wenn sichtbar) assignen? |
Re: Tlable.Caption von anderer Unit aus Updaten
Deshalb ja meine Frage, ob das Formular automatisch erstellt wird oder zur Laufzeit. Wird es nicht automatisch erstellt (Projektoptionen), musst Du es natürlich zuerst erzeugen, bevor Du darauf zugreifen kannst.
|
Re: Tlable.Caption von anderer Unit aus Updaten
scheine ich übersehen zu haben!
Danke! Ich erzeuge die Form ja beim Anzeigen. Als ich das Label anzeigen wollte hatte ich einen anderen Pointer darauf... Nun sind Create + Anzeigen die selben und es geht! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:13 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