Warum willst du dafür #define verwenden?
Ich weiß nicht wie du den Butten erzeugst, aber dieser kann sicher seinen Namen als String erhalten, dann wäre es doch einfacher folgendes zu machen:
|
Quellcode
|
1
2
3
4
|
if ( wert )
Button.SetText("Bla bla");
else
Button.SetText("erster button");
|
Mit defines würde ich dem Fall auf keinen Fall arbeiten, dafür sind defines nicht gemacht worden!
Sie werden ja auch vom Präprozessor verarbeitet und nicht vom Compiler, daher macht das wenig Sinn.
Eine Alternative wäre vielleicht so etwas:
|
Quellcode
|
1
2
3
4
5
|
#if defined( TEXT1 )
# define DESC_TEXT1 ("Bla bla")
#else
# define DESC_TEXT1 ("erster button")
#endif
|
Im Programm musst du dann irgendwo TEXT1 definieren, wenn du den ersten Text haben willst, z.B. in den Projekteigenschaften unter Präprozessor. Falls nicht, dann wird der zweite Text verwendet.
Du kannst auch explizit #define TEXT1 verwenden und #undef TEXT1.
Aber ich rate dir davon ab! Mach es so wie im ersten Beispiel oder definier dein Problem präziser!