![]() |
Merkwürdiger Effekt bei TLabel
Liste der Anhänge anzeigen (Anzahl: 2)
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. |
AW: Merkwürdiger Effekt bei TLabel
Zitat:
|
AW: Merkwürdiger Effekt bei TLabel
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. |
AW: Merkwürdiger Effekt bei TLabel
Benenne Label1, Label2 und Label3 um, sprich, gib ihnen sprechende Namen. Beim Compilieren solltest Du dann merken, wo der Fehler ist.
|
AW: Merkwürdiger Effekt bei TLabel
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:
|
AW: Merkwürdiger Effekt bei TLabel
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; |
AW: Merkwürdiger Effekt bei TLabel
Evtl. irgendwo ein with...do eingesetzt, dass unerwartet die Caption vom Label erwischt?
|
AW: Merkwürdiger Effekt bei TLabel
Zitat:
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? |
AW: Merkwürdiger Effekt bei TLabel
Such mal im Quelltext nach Caption.
|
AW: Merkwürdiger Effekt bei TLabel
Zitat:
und ... Selbst mit einem falschen Cast
Delphi-Quellcode:
kann mein den Text eines Labels umschreiben. (denn es geht intern alles über's gleiche WM_SETTEXT)
TEdit(x).Text := ;
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:40 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