Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#1

Vergabe von ID's und deren Auswirkung

  Alt 20. Mai 2011, 15:51
Letztens ein seltsames Phänomen
Ich vergebe meine Id's spontan und in verbindung stehend mit der Funktion für die Sie gedacht ist.
So wie diese hier.

Delphi-Quellcode:
  ID_LABEL_INTRO = 100; // Informations Label
  ID_AEROBUTTON = 101; // Aero Button
  ID_FLIPNOTES = 102; // Noten Umdrehen
  ID_DRUM = 103; // Drum Liste
  ID_INSTRUMENT = 104; // Instrumenten Liste
  ID_VL = 105; // VL Liste
  ID_EFFECTS = 106; // Effects Liste
  ID_LABEL_GENRE = 107; // Informations Label
  ID_GLASS_OPACITY_LABEL = 108; // Informations Label
  ID_TRACK_OPACITY = 109; // Trackbar Transparent
  ID_AEROCRYSTAL = 110; // Aero Check Button
  ID_AEROBLUR = 111; // Aero Blur Button
  ID_LINEVERT = 112; // Einfache Linie
  ID_AERODISABLE = 113; // Global Aero Disable
  ID_TRACK_BLURLEVEL = 114; // Trackbar BlurLevel
  ID_VERSION = 115; // Versions Info
  ID_BTN_ABOUT = 116; // About Button
Letzten's lasse ich ein Lied laufen und muss feststellen das plötzlich einer meiner
Button anfängt zu blinken jetzt war ich sehr verwundert denn das passierte nur wenn das spezielle aufgerufen wurde.
Bekam schon wieder die Krise da ich einfach nicht lokalisieren konnte woran das liegen könnte.

Nach einiger Überlegung kam ich zu dem Schluss das es unter Umständen mit meiner vergabe der ID's zu tun haben
könnte alles durchsucht ob vielleicht doppelte Einträge vorhanden waren. Na ja nix.
Dann bin ich hingegangen und habe einfach mal alle ID's um ein 1000 faches höher gesetzt.
Und siehe da plötzlich war das problem beseitigt.
Kein Blinken mehr.

Wie laßt ihr euch leiten bei der vergabe der ID's habe immer wieder ein.. zwei kleine Probleme hier.
Noch ein Beispiel..

Erster Eintrag.
Delphi-Quellcode:
PROP_IMAGE_BACK = 1;
SkinEngine.SetImageProperty(FHPanel, PROP_IMAGE_BACK, Img);
Delphi-Quellcode:
GRID_IMAGE = 1;
SKAERO_SetImageProperty(FHGrid, GRID_IMAGE, Img);
Wohl bemerkt die zweite ist nicht global ausgelegt.
Und Funktioniert nicht.Kein Object wird gezeichnet.

Das hingegen funktioniert einwandfrei
Delphi-Quellcode:
PROP_IMAGE_BACK = 1;
GRID_IMAGE = PROP_IMAGE_BACK;
Also ehrlich das ist schon sehr konfus das ganze.
Die übergabe von ID's macht das Programm meines erachtens extrem anfällig für Fehler
vor allem dann wenn man sie wie in dem Beispiel oben nicht identifizieren kann.

Wer garantiert das nicht just in dem Moment meine Message mit denen der WindowsAPI kollidieren?

Meine Frage nochmal wie Handhabt ihr das mit der vergabe von ID's und wo steht man auf
der sicheren Seite?

gruss

Geändert von EWeiss (20. Mai 2011 um 16:07 Uhr)
  Mit Zitat antworten Zitat