Zitat von
EWeiss:
Ich sende zwei Checkboxen hintereinander bei der zweiten krachts
Hast du für CtrlCheckButton überhaupt eine Instanz angelegt? Hast du dazu irgendwo den Constructor aufgerufen? Und warum nimmst du ein und dieselber Instanz für 2 unterschiedliche CheckBoxen? Wozu dann die Member in der Klasse, wenn sie nur die Werte der letzten Checkbox enthalten?
TurboPascal hat dir nicht umsonst und sehr richtig als Änderung vorgeschlagen die CheckButton Methode zum Constructor umzuformen, also zu Create(). Und damit hättest du jedesmal eine richtige Instanz.
Bei deinem Code: Warum gibst du immer wieder hCtrl weiter (SetAnchorMode(), SetZorder())? Warum definierst du das nicht als Methoden von TSkinCheckButton?
Du übergibst selbst bei der SetCheckButtonStatus() immernoch die eigene Instanz. Wozu? Es ist eine Methode und braucht somit nichts übergeben zu bekommen, da sie eine Methode ist und sich somit nach den Membern richten kann.
Ich kann mich nur nochmal wiederholen: Les dir Grundlagenartikel zum
OOP durch!
Wäre das nicht ein besser lesbarer Code?
Delphi-Quellcode:
CheckBox1 := TSkinCheckButton.Create(hMain, PChar(SK_FOLDER + 'BTN_Check.png'),
'AERO Blur mode', 60, 286, 130, 22, ID_AEROBLUR, SK_BTNTEXTCOLOR, 0);
CheckBox1.SetAnchorMode(ANCHOR_CENTER_HORZ_BOTTOM);
CheckBox1.SetZorder(HWND_TOP);
CheckBox2 := CtrlCheckButton.CheckButton(hMain, PChar(SK_FOLDER + 'BTN_Check.png'),
'STANDARD mode', 60, 308, 130, 22, ID_AERODISABLE, SK_BTNTEXTCOLOR, 0);
CheckBox2.ButtonStatus := true;
CheckBox2.SetAnchorMode(ANCHOR_CENTER_HORZ_BOTTOM);
CheckBox2.SetZorder(HWND_TOP);
Zitat von
EWeiss:
Da kann mir keiner helfen
Und auch wenn ein Smiley hinter ist, bei solchen Sprüchen bekomm ich Ausschlag, schon allein da die Beantwortungsfrequenz in diesem Thread deutlich höher ist als in vielen anderen. Was willste noch mehr? Instant Resolution?