PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mehrere Objekte gleichzeitig ändern.


Gast
2010-01-15, 01:26:24
Hi,

Es ist doch bestimmt möglich mehrere Objeke gleichzeitig zu bestimmen, oder?
Zb. Möchte ich label 10-17 rot färben, das ging bisher so:

Label10.ForeColor = Color.Red
Label11.ForeColor = Color.Red
Label12.ForeColor = Color.Red
Label13.ForeColor = Color.Red
Label14.ForeColor = Color.Red
Label15.ForeColor = Color.Red
Label17.ForeColor = Color.Red
Label16.ForeColor = Color.Red

geht das nicht auch kürzer? ala
Label(10-17).ForeColor = Color.Red

?

Oder kann man generell alle Labels ändern? Das ganze bezieht sich natürlich nicht nur auf Labels sondern auch auf fast alle anderen Objekte.

Wie siehts aus wenn ich bspw nur 11 14 und 16 ändern möchte, gibt es etwas wie

Label(11,14,16).ForeColor = Color.Red

?

Und wie war das nochmal wenn man bspw von einem label mehrere Dinge ändern möchte?

Hatte das irgendwie so in Erinnerung:

label10
.ForeColor = Color.Red
.text = "test"
.visible = False

Ist das dann auch mit dem obigen kombinierbar?

kloffy
2010-01-15, 03:05:34
Ohne die Sprache zu kennen lässt sich die Frage nur schwer beantworten. Wie wäre es damit alle Labels in eine Datenstruktur zu packen und darüber zu iterieren?

In Javascript mit JQuery z.B. geht es ziemlich genau so wie du es gerne hättest:

$('#label0, #label1, #label2')
.css('color','red')
.text('test')
.css('display','none')
//usw.

Tesseract
2010-01-15, 03:58:42
wenn du das wirklich oft und intensiv brauchst kannst du eine klasse schreiben, die z.B. pointer auf die objekte in eine liste speichert und methoden besitzt, die über alle objekte iteriert und entsprechendes erledigt. alternativ könntest du auch statische methoden schreiben, die alle instanzierten objekte ändern. dazu müsstest du die aber innerhalb der klasse auch irgendwie indizieren.
wenn die ganzen zu ändernden variablen hingegen sowieso für alle labels immer den gleichen wert haben sollen sollte man das sowieso anders lösen. z.B. als pointer auf einen gemeinsamen wert oder wieder als statische variable oder sowas in der art.

das was du aber scheinbar haben willst gibts zumindest bei den sprachen die ich kenne afaik nicht. ist auch fraglich wie sinnvoll sowas wäre weil das im prinzip precompiler-anweisungen wären an denen man ohnehin eher sparen sollte, vor allem wenn sie auf das eigentliche programmdesign keinen einfluss haben sondern nur etwas copy&paste sparen.

für die frage mit mehreren anweisungen gilt das selbe: wenn es für das programmdesign wirklich wichtig ist kannst du z.B. methoden überladen (in c++ auch mit defaultwerten) und dergleichen um damit auch gleich mehrere werte ändern zu können.

wenn du genauer schreiben würdest um was es geht könnte man sicher besser helfen. ;)