Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Label korrekt zur Laufzeit erzeugen? (https://www.delphipraxis.net/173119-label-korrekt-zur-laufzeit-erzeugen.html)

Sir Rufo 7. Feb 2013 22:19

AW: Label korrekt zur Laufzeit erzeugen?
 
Zitat:

Zitat von AlexII (Beitrag 1202509)
Mit MyLabel.Free; verschwindet mein ganzes Programm. :gruebel:

Das ist so schon korrekt, warum das würde jetzt zu weit führen ... kann man aber hier im Forum suchen

BTW:

Wenn du die Caption von einem Label mit '' befüllst, dann sieht keine S** ob da ein Label ist oder nicht.

Warum willst du also so eine Erzeugungs- und Vernichtungsorgie starten?

Meinetwegen setze Visible vom Label auf true oder false ... so ist das Murks

AlexII 7. Feb 2013 22:21

AW: Label korrekt zur Laufzeit erzeugen?
 
Weil anstelle dieses Labels ein anderes Label erstellt werden soll, mit anderen Infos.

Sir Rufo 7. Feb 2013 22:21

AW: Label korrekt zur Laufzeit erzeugen?
 
Zitat:

Zitat von AlexII (Beitrag 1202511)
Hm... hab ich so gemacht, und wenn es keinen Autor gibt wird das ganze Programm unsichtbar, es verschwindet irgendwohin, muss es dann über Task-Manager als Prozess beenden. :gruebel:

Glaube ich nicht ...

erst kommt
Delphi-Quellcode:
        // Label suchen
        MyLabel := TLabel( FindComponent( 'test1' ) );
und dann
Delphi-Quellcode:
        // Gibt es einen Autor?
        if tb.FieldAsString( tb.FieldIndex['aname'] ) <> '' then
          begin
            ...
          end
       else
         // kein Autor, kein Label
         MyLabel.Free;
Bei dir sieht es wohl noch so aus
Delphi-Quellcode:
        // Gibt es einen Autor?
        if tb.FieldAsString( tb.FieldIndex['aname'] ) <> '' then
          begin
            // Label suchen
            MyLabel := TLabel( FindComponent( 'test1' ) );
            ...
          end
       else
         // kein Autor, kein Label
         MyLabel.Free;
gelle ;)

Sir Rufo 7. Feb 2013 22:24

AW: Label korrekt zur Laufzeit erzeugen?
 
Zitat:

Zitat von AlexII (Beitrag 1202513)
Weil anstelle dieses Labels ein anderes Label erstellt werden soll, mit anderen Infos.

Nun wenn es dich glücklich macht ... aber leg dir mal eine kleine Test-Projekt an und spiele ein wenig mit dem Visible herum ;)

AlexII 7. Feb 2013 22:30

AW: Label korrekt zur Laufzeit erzeugen?
 
Thx... läuft alles!

Sir Rufo 7. Feb 2013 22:34

AW: Label korrekt zur Laufzeit erzeugen?
 
Ich würde ja ein Label
Delphi-Quellcode:
Test1
fest anlegen und dann sieht der Code wie folgt aus:
Delphi-Quellcode:
// Gibt es einen Autor?
if tb.FieldAsString( tb.FieldIndex['aname'] ) <> '' then
  Test1.Caption := tb.FieldAsString( tb.FieldIndex['aname'] )
else
  Test1.Caption := 'Some other information with a DRY KISS';

Furtbichler 8. Feb 2013 07:21

AW: Label korrekt zur Laufzeit erzeugen?
 
Bzw. sich gleich darauf besinnen, das das Label eine bestimmte Information anzeigen soll. Nämlich den Namen des Autors, wenn der Name angegeben ist, bzw. etwas anderes, wenn der Autor nicht angegeben ist:

Delphi-Quellcode:
MyLabel.Caption := AuthorInfo(Tb);
...

Function AuthorInfo (aDataSet : TDataset);
Begin
  Result := aDataSet['aname'];
  if Result='' then
    Result := 'Something else';
End;
Alternativ (und vermutlich noch besser) wäre es, dem Dataset ein berechnetes Feld 'AuthorInfo' zu spendieren. Dann ist die Logik dort, wo sie vermutlich hingehört und man kann diese info überall anzeigen.

Sir Rufo 8. Feb 2013 09:15

AW: Label korrekt zur Laufzeit erzeugen?
 
Zitat:

Zitat von AlexII (Beitrag 1202516)
Thx... läuft alles!

Und was war jetzt der Fehler?

AlexII 8. Feb 2013 11:05

AW: Label korrekt zur Laufzeit erzeugen?
 
Syntaktischer Natur!


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:01 Uhr.
Seite 2 von 2     12   

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