AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Merkwürdiger Effekt bei TLabel

Ein Thema von Willie1 · begonnen am 29. Apr 2020 · letzter Beitrag vom 4. Mai 2020
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
Willie1

Registriert seit: 28. Mai 2008
657 Beiträge
 
Delphi 10.1 Berlin Starter
 
#1

Merkwürdiger Effekt bei TLabel

  Alt 29. Apr 2020, 15:53
Hallo Leute,
ich habe mein Hobbyprojekt Kniffel fast abgeschlossen. Auf dem Hauptfenster befinden sich zahlreiche Labels, eine Radio Group, 4 Buttons und noch ein paar andere Steuerelemente, nichts besonderes. Zum Schluss habe ich unten noch ein großes Label eingefügt mit dem Inhalt: Peter, du bist dran, damit klar ist, wer würfeln muss (soll sich natürlich zur Laufzeit ändern). Alle Label haben individuelle Namen, das letzte Label heißt zunächst Label1. Jetzt fällt mir auf, egal ob ich Caption im Objekt Inspektor verändere oder zur Laufzeit, es steht immer nur 1 da. Bei einem zweiten Label2 2 und s.w. 3. Seht euch die Screenshots an, im Quelltext kommt Label1,2 und 3 nur in der Deklaration vor sonst nicht.
Was zum Teufel ist da los?
Gruß Willie.
Miniaturansicht angehängter Grafiken
screenshot-2020-04-29-15.56.25.jpg   screenshot-2020-04-29-15.55.55.jpg  
Gut hören kann ich schlecht, schlecht sehen kann ich gut - Ersteres stimmt nicht, das zweite schon.

Geändert von Willie1 (29. Apr 2020 um 16:14 Uhr)
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#2

AW: Merkwürdiger Effekt bei TLabel

  Alt 29. Apr 2020, 15:55
Zitat:
Seht euch die Screenshots an
Welche Screenshots? Ich sehe da (noch) keine.
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.490 Beiträge
 
Delphi 7 Professional
 
#3

AW: Merkwürdiger Effekt bei TLabel

  Alt 29. Apr 2020, 16:08
Screenshot hin, Screenshot her.

Dadrin kann man nur ein Ergebnis sehen, aber hat keine Chance irgendwas sinnvolles bezüglich der Ursache zu sagen.

Caption von TLabel wird entweder im Objektinspektor gesetzt oder zur Laufzeit.

Man müsste, wenn im Objektinspektor was sinnvolles in Caption steht, aber zur Laufzeit was anderes, im Quelltext nachschauen, ob Caption ein Wert zugewiesen wird und ggfls. welcher.

Ohne Quelltext und Formular ist es annähern aussichtslos, hier irgendeine, wenn auch nur ansatzweise, sinnvolle Hilfestellung zu geben, geschweige denn die Ursache zu finden.
  Mit Zitat antworten Zitat
Heimlich

Registriert seit: 1. Apr 2020
11 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Merkwürdiger Effekt bei TLabel

  Alt 29. Apr 2020, 16:25
Benenne Label1, Label2 und Label3 um, sprich, gib ihnen sprechende Namen. Beim Compilieren solltest Du dann merken, wo der Fehler ist.
  Mit Zitat antworten Zitat
Willie1

Registriert seit: 28. Mai 2008
657 Beiträge
 
Delphi 10.1 Berlin Starter
 
#5

AW: Merkwürdiger Effekt bei TLabel

  Alt 29. Apr 2020, 16:30
Bevor ich mich hier melde, überprüfe ich alles sehr sorgfältig. Im Quelltext kommt Label1,2,3 NUR in der Deklaration vor, ich hab's mit der Suchfunktion überprüft. Wieso steht da 1,2 und 3, es müsste doch Label1 2 und 3 stehen.
Delphi-Quellcode:
  TMainForm = class(TForm)
    MainMenu: TMainMenu;
    M_Datei: TMenuItem;
    M_NeuesSpiel: TMenuItem;
    M_Oeffnen: TMenuItem;
    M_Speichern: TMenuItem;
    M_Beenden: TMenuItem;
    M_Einstellungen: TMenuItem;
    M_Setup: TMenuItem;
    M_Spiel: TMenuItem;
    M_WeiteresSpiel: TMenuItem;
    M_Spielstand: TMenuItem;
    N3: TMenuItem;
    M_Rundeabb: TMenuItem;
    M_Hilfe: TMenuItem;
    M_Programmerkl: TMenuItem;
    M_Dank: TMenuItem;
    N2: TMenuItem;
    M_Ueber: TMenuItem;
    N1: TMenuItem;

    StatusBar: TStatusBar;
    KniffelRahmen: TBevel;
    lblWueSpieler: TLabel;
    lblWuerfelInfo: TLabel;
    lblAuswRunde: TLabel;
    lblAuswName: TLabel;
    lblKniffelKarteRunde: TLabel;
    Rahmen3: TBevel;
    lblW1: TLabel;
    lblW2: TLabel;
    lblW3: TLabel;
    lblW4: TLabel;
    lblW5: TLabel;
    NeuBox1: TCheckBox;
    NeuBox2: TCheckBox;
    NeuBox3: TCheckBox;
    NeuBox4: TCheckBox;
    NeuBox5: TCheckBox;
    lblEiner: TLabel;
    lblZweier: TLabel;
    lblDreier: TLabel;
    lblVierer: TLabel;
    lblFuenfer: TLabel;
    lblSechser: TLabel;
    lblBonus: TLabel;
    lblZwiErgebnis: TLabel;
    lblDreierpasch: TLabel;
    lblViererpasch: TLabel;
    lblFullHouse: TLabel;
    lblKlStrasse: TLabel;
    lblGrStrasse: TLabel;
    lblChance: TLabel;
    lblKniffel: TLabel;
    lblGesamtErgeb: TLabel;
    Bevel1: TBevel;
    Bevel2: TBevel;
    lblKniffelKarteUeb: TLabel;
    lblWueAuswUeb: TLabel;
    lbl_2: TLabel;
    lbl_1: TLabel;
    lbl_3: TLabel;
    lbl_4: TLabel;
    lbl_5: TLabel;
    lbl_6: TLabel;
    lblBonusZahl: TLabel;
    lblZwiErgebZahl: TLabel;
    lbl_7: TLabel;
    lbl_8: TLabel;
    lbl_9: TLabel;
    lbl_10: TLabel;
    lbl_11: TLabel;
    lbl_13: TLabel;
    lbl_12: TLabel;
    lblGesErgebZahl: TLabel;
    Bevel3: TBevel;
    lblAuswahlUeb: TLabel;
    lblEiner2: TLabel;
    lblZweier2: TLabel;
    lblDreier2: TLabel;
    lblVierer2: TLabel;
    lblFuenfer2: TLabel;
    lblSechser2: TLabel;
    lblDreierpasch2: TLabel;
    lblViererpasch2: TLabel;
    lblFullHouse2: TLabel;
    lblKlStrasse2: TLabel;
    lblGrStrasse2: TLabel;
    lblChance2: TLabel;
    lblKniffel2: TLabel;
    GroupBox1: TGroupBox;
    rbtn_1: TRadioButton;
    rbtn_A1: TRadioButton;
    rbtn_2: TRadioButton;
    rbtn_A2: TRadioButton;
    rbtn_3: TRadioButton;
    rbtn_A3: TRadioButton;
    rbtn_4: TRadioButton;
    rbtn_A4: TRadioButton;
    rbtn_5: TRadioButton;
    rbtn_A5: TRadioButton;
    rbtn_6: TRadioButton;
    rbtn_A6: TRadioButton;
    rbtn_7: TRadioButton;
    rbtn_A7: TRadioButton;
    rbtn_8: TRadioButton;
    rbtn_A8: TRadioButton;
    rbtn_9: TRadioButton;
    rbtn_A9: TRadioButton;
    rbtn_10: TRadioButton;
    rbtn_A10: TRadioButton;
    rbtn_11: TRadioButton;
    rBtn_A11: TRadioButton;
    rbtn_12: TRadioButton;
    rbtn_A12: TRadioButton;
    rbtn_13: TRadioButton;
    rbtn_A13: TRadioButton;
    lblWuePkt: TLabel;
    lblErkl1: TLabel;
    lblErkl2: TLabel;
    Wuerfel1: TDice;
    Wuerfel2: TDice;
    Wuerfel3: TDice;
    Wuerfel4: TDice;
    Wuerfel5: TDice;
    Bevel4: TBevel;
    lblZwischenstUeb: TLabel;
    lblName_1: TLabel;
    lblName_2: TLabel;
    lblName_3: TLabel;
    lblName_4: TLabel;
    lblName_5: TLabel;
    lblName_6: TLabel;
    lblSpieStand_1: TLabel;
    lblSpieStand_2: TLabel;
    lblSpieStand_3: TLabel;
    lblSpieStand_4: TLabel;
    lblSpieStand_5: TLabel;
    lblSpieStand_6: TLabel;
    Bevel5: TBevel;
    Bevel6: TBevel;
    AnimateWue: TAnimate;
    SaveDialog: TSaveDialog;
    OpenDialog: TOpenDialog;
    lblKniffelKarteName: TLabel;
    SpielGauge: TGauge;
    lblFortschr: TLabel;
    ImageList1: TImageList;
    Image1: TImage;
    Image2: TImage;
    Image3: TImage;
    Image4: TImage;
    Image5: TImage;
    Image6: TImage;
    AboutBox21: TAboutBox2;
    BitBtn1: TBitBtn;
    Button1: TButton;
    Button2: TButton;
    BitBtn2: TBitBtn;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
Zitat:
Caption von TLabel wird entweder im Objektinspektor gesetzt oder zur Laufzeit.
Ich wiederhole nochmal im Quelltext wird Label1.Caption nicht verändert.
Gut hören kann ich schlecht, schlecht sehen kann ich gut - Ersteres stimmt nicht, das zweite schon.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#6

AW: Merkwürdiger Effekt bei TLabel

  Alt 29. Apr 2020, 16:58
Im Grunde würde ich auch wetten, dass es etwas in deinem eigenen Code ist, aber wenn es unbedingt sein muß...

Delphi-Quellcode:
type
  TLabel = class(StdCtrls.TLabel)
  protected
    // einfacher/schöner zu Debuggen wäre es gewesen SetCaption aka SetText/SetTextBuff zu überschreiben,
    // aber das geht nicht, drum hier über WM_SETTEXT bzw. CM_TEXTCHANGED.
    procedure CMTextChanged(var Message: TMessage); message CM_TEXTCHANGED;
  end;

  TMainForm = class(TForm)
  ...
  end;
  
implementation

procedure TLabel.CMTextChanged(var Message: TMessage);
begin
  Beep; <<<< hier ein Haltepunkt hin und dann im Stacktrace/Debugger schauen wo es her kommt, bzw. wohin es zurück geht
  inherited;
end;
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (29. Apr 2020 um 17:35 Uhr)
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#7

AW: Merkwürdiger Effekt bei TLabel

  Alt 29. Apr 2020, 17:16
Evtl. irgendwo ein with...do eingesetzt, dass unerwartet die Caption vom Label erwischt?
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.490 Beiträge
 
Delphi 7 Professional
 
#8

AW: Merkwürdiger Effekt bei TLabel

  Alt 29. Apr 2020, 17:36
Ich wiederhole nochmal im Quelltext wird Label1.Caption nicht verändert.
Ohne den vollständigen Quelltext sehe ich keine Chance, sinnvolle Hilfestellung zu geben.

Wird irgendwo im Programm die Caption von irgendwelchen anderen TLabels (in 'ner Schleife) geändert und Label1 bis Label3 werden dabei (unbeabsichtigt) mit verändert?
  Mit Zitat antworten Zitat
bcvs

Registriert seit: 16. Jun 2011
703 Beiträge
 
Delphi 12 Athens
 
#9

AW: Merkwürdiger Effekt bei TLabel

  Alt 29. Apr 2020, 17:50
Such mal im Quelltext nach Caption.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#10

AW: Merkwürdiger Effekt bei TLabel

  Alt 29. Apr 2020, 17:55
Such mal im Quelltext nach Caption.
Und Text
und ...


Selbst mit einem falschen Cast TEdit(x).Text := ; kann mein den Text eines Labels umschreiben. (denn es geht intern alles über's gleiche WM_SETTEXT)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


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 14:55 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