Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Tlable.Caption von anderer Unit aus Updaten (https://www.delphipraxis.net/131984-tlable-caption-von-anderer-unit-aus-updaten.html)

schwa226 3. Apr 2009 17:56


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:
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;
In der Unit1 will ich's nun so machen:
Delphi-Quellcode:
uses Options,...
var
  OptionsFormCode : FormOptions;
..
..
OptionsFormCode.lbMeinCode.Caption := 'Mein Code';
Da gibt es aber dann immer Probleme und Delphi steigt aus.
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!

DeddyH 3. Apr 2009 18:02

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?

schwa226 3. Apr 2009 18:17

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

DeddyH 3. Apr 2009 18:23

Re: Tlable.Caption von anderer Unit aus Updaten
 
Aus dem Bauch heraus:
Delphi-Quellcode:
if Assigned(OptionsFormCode) and OptionsFormCode.Visible then...

schwa226 3. Apr 2009 18:29

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?

DeddyH 3. Apr 2009 18:35

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.

schwa226 3. Apr 2009 19:01

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