| |
|
|
| allô Frank,
ab quand peux on un Listview effacer ? qui Hintergrund ist qui, je erstelle zum Sauver einer Kontrollliste et seulement en supplément kurzfristig un Listview, kopiere là quelque chose hinein, speichere es ab et voudrais es ensuite wieder effacer, avec cela je pas irgendwann sur qui 64 möglichen viens. Nachfolgender Code führt mais trop einer Schutzverletzung:
-> $I Listview_Funktionen.inc DECLARE LVDLL& DECLARE LV& DECLARE nom$ LVDLL& = UseDLL(Listview.dll)
Proc MakeLV LV& = CreateListview(%HWND,%HINSTANCE,0,Rgb(255,255,255),-1,$21) nom$ = 01 IColumn(LV&,Addr(nom$),0,0) ENDPROC
Fenêtre Style 8 + 512 Fenêtre 100,100-800,600
MakeLV
DeleteObject LV& EraseListview(LV&)
WaitInput FreeDLL LVDLL& $I Listview_Dispose.inc Fin <- |
|
|
| |
|
|
|
| allô Georg,
EraseListview() détruit ne...aucune Listview, mais nimmt den Handle cet Listviews Handle aus den internen Strukturen qui Listview.dll. un Listview effacer peux du - comment chaque autre Fensterobjekt aussi - avec DestroyWindow(listview&)...
Salut, Frank |
|
|
| |
|
|
|
| allô Frank,
cela avec dem DeleteObject était un Schreibfehler de mir.
Mir ging es mais justement um cela Effacer des Handles aus qui internen Struktur. là cet Listview chez chaque Load/Save Befehl erstellt wird, pourrait es chez quelqu'un qui comment un verrückter Arbeitet qui 64 möglichen Handles voll volonté. ou bien allez cela Effacer seulement si on un InitMessages fonctionnement hat et si oui, quoi ist avec einem Listview cela pour einem InitMessages(%HWND) sur %HWND erstellt wird ? Füllt cet aussi qui interne Struktur ?
Viele Grüße Georg |
|
|
| |
|
|
|
| Salut,
non. mais bestimmte Funktionen besoin cet Tabelle(n), z.B. RaiseColumn(). Ist cet Tabelle la fois voll, travailler qui Funktionen pas plus richtig. avec EraseListview() wird cette Tabellenplatz wieder libre freigemacht.
Salut, Frank |
|
|
| |
|
|
|
| Hi Frank,
je stehe quelque chose sur meiner Leitung.
un CreateListview fügt une Handle dans qui interne Tabelle un, cet Tabelle peux 64 Einträge verwalten. Um une place wieder libre trop bekommen doit on un EraseListview avec dem Handle eines Listviews effectuer.
si on eh bien 65 la fois un Listview erstellt avec CreateListview et cet seulement per DestroyWindow löscht, serait qui interne Tabelle voll son et quelques Funktionen pas plus richtig courir.
Habe je cela so dans etwa richtig verstanden ?
si oui besteht toujours cela Problem avec qui Systemverletzung dans mon Democode, aussi si on DestroyWindow nimmt, statt DeleteObject.
Viele Grüße Georg |
|
|
| |
|
|
|
| allô Georg,
oui, cela sieht du absolu richtig !
après que du DestroyWindow benutzt la hâte, darfst du cela Listviewhandle naturellement pas plus benutzen !!! cela EraseListview dois du auparavant anbringen, ggf. gefolgt de einem Sleep 100, avec cela aussi sichergestellt ist, cela cela Handle dans qui Dll pas plus benutzt wird, si cela Listview verschwunden ist. si le reste pas klaapt, sende mir une fonctionnement kleinen Democode trop.....
Salut, Frank |
|
|
| |
|
|
|
| Hi,
je nochmal. Scheint so, comme wäre dans EraseListview doch encore un faute. je prüfe cela ce soir.
Salut, Frank |
|
|
| |
|
|
|
| Salut,
so, qui faute ist maintenant weg et RaiseLine() hab je aussi tout de suite avec hineingenommen.
ici peut son (toujours) qui neuste Betaversion runterladen: [...]
Salut, Frank |
|
|
| |
|
|
|
| Hää ??? RaiseLine()...était doch déjà drin ou bien ? ausser Du meinst qui Hilfedatei qui ist mais sous diesem Lien de téléchargement pas dabei ...mon oui seulement
Salut Klaus |
|
|
| |
|
|
|
| allô Klaus,
je meinte cela Effacer qui internen Tabelle de RaiseLine. était bisher pas drin.
Salut, Frank |
|
|
| |
|
|