TListBox->OnDrawItem zur Laufzeit zuweisen funktioniert nicht
-
Hi, ich mal wieder...
Also ich will einer ListBox zur Laufzeit ein Event zuweisen, nähmlich OnDrawItem... Wenn ich jedoch mit-->ListBox1->OnDrawItem=ListBox1DrawItem;
das Event zuweisen will, sagt mir der Compiler immer:
Cannot convert 'void (__fastcall * (__closure)(Controls::TWinControl *, int, Windows::TRect &, System::SetStdctrls::StdCtrls\_9,0,4 ))(Controls::TWinControl *, int, Windows::TRect &, System::SetStdctrls::StdCtrls\_9,0,4 )' to 'void (__fastcall * (__closure)(Controls::TWinControl *, int, const Windows::TRect &, System::SetStdctrls::StdCtrls\_9,0,4 ))(Controls::TWinControl *, int, const Windows::TRect &, System::SetStdctrls::StdCtrls\_9,0,4 )Ich versteh' nicht, was ich machen soll, ich hab' keinen unterschied zu automatisch generierten Events gefunden...
-
Dumah: [zu aaaabyx] der 2. Parameter muss const sein
-
jetzt funktioniert es zwar vom Quelltext her, aberder eigentlcihe Sinn ist ncoh nciht da...
Also ich will immer wenn in der einen ListBox der Eintrag, der Markiert ist, gewechselt wird, dass dann auch in der anderen der gleiche aktuell ist... Wie kann ich das sonst ncoh machen???
-
Bringst du vielleicht Event Zuweisen und Event Auslösen durcheinander?
Warum willst du den Event zur Laufzeit ändern?
-
@Geo: Ich bringe gar nix durcheinander, ich kann aber einer Kompo, die ich zur Laufzeit erstelle, erst zur Laufzeit ein Event zuweisen, logisch, oder???
-
Wieso weiß auf meine Probleme eigentlich nie jemand sofort eine Antwort???
-
"Herr Doktor, Herr Doktor, warum ignorieren mich alle?"
"Der Nächste, bitte!"
Ändere in .cpp und .h den vom BCB generierten Funktionsaufruf, den du der zur Laufzeit erzeugten Komponente zuweisen willst:[cpp] void __fastcall ListBox1DrawItem(TWinControl *Control, int Index,
const TRect &Rect, TOwnerDrawState State);[/cpp]Entscheidend ist das const.
-
Das hatte ich schon gemacht...
Aber mir fällt gerade auf, dass das nur bei bestimmten ListBoxen mit bestimmten Sttyle geht... Wenn ich aber den Style verstelle, Kann ich keine Einträge mehr hinzufügen...Mist...
Wie kann ich denn erreichen, dass in der einen ListBox immer der selbe Eintrag markiert ist wie der andere? Mir fällt nix mehr ein.
-
Original erstellt von aaaabyx:
Das hatte ich schon gemacht.Und?
Wie kann ich denn erreichen, dass in der einen ListBox immer der selbe Eintrag markiert ist wie der andere?
Per ItemIndex? Aber was hat das mit dem Thema des Threads zu tun?
-
@Jansen:
1. Es passiert nciht das, was ich benötige...
2. Ich kann ja 'n neuen Thread erstellen, wenn dir das lieber ist, ok?
PS: Ich weiß, per ItemIndex, aber das in welchem Ereigniss??? Gibts denn kein Ereignis, das eintritt, wenn das Item gewechselt wird??? Oder wenigstens ne Message???