XP manifest + dynamika ListView = Acces Violation?

0

Mam na formie TListView, do którego elementy ładowane są dynamicznie z rekordu z innego modułu. Gdy nie ma pliku Manifest XP wszystko działa pieknie, ale gdy tylko go załaduje - występuje Acces Violation... kernel32.dll przy pokazaniu formy i nie tylko....

XP Manifest działa poprawnie, bo błąd występuje tylko przy tej formie - wszędzie indziej działa poprawnie (nawet na wielu innych programach)

Kod formy też jest prawidłowy - bez XP manifestu - zero błędów...

Co jest nie tak?

0

Zainstaluj łatke.

0

Nie wiem co do mnie mówisz... łatkę czego.. XP manifestu?

0

Do Delphi

0

http://www.borland.pl/delphi/patche.shtml

D6E.. tylko która poprawka ? :|

0

Co prawda nie wiem do czego służy Manifest XP, podejrzewam że najpierw musi nastąpić jego stworzenie w pamięci operacyjnej a następnie, gdy on „stoi na nogach”, może nastąpić, kolejna operacja.

Np.:
W OnCreate formy nie można używać procedur, które się wykonują, na jeszcze nie stworzonej Formie.

0

Manifest jest informacją dla systemu operacyjnego, że program obsługuje style wprowadzone w XP.

0

Marko, najprawdopodobniej z tym onCreate masz rację, ale w takim razie gdzie takie wrzucić? W OnShow? w OnActivate? poza tym jest jeszcze jeden numer: Manifest XP wcale nie musi być postawiony w pamięci. wystarczy po prostu aby był, a system sam załatwi wszystkie potrzebne sprawy.

//Do Detoxa:

Na płytce którą ci przysłałem są patche w dziale Do Delphi/Patches. zainstaluj D6E update #2 oraz D6e RTL update #2 oraz d6 rtl update #3 (to jest akurat do wszystkich wersji delphi)

0

Do Johnny_Bit:

Może to nie jest elegancki sposób, ale takie przygody omijam za pomocą Timera:

W On Create Formy:
[code]Timer1.Enabled := True;[/code]

W Timerze
[code] Begin
Procedura_Która _Ma_Kłopoty_Z_Załadowaniem ;
Time1.Enabled := False;
end; [/code]

// Enabled Timera oczywiście należy ustawić na False włącza go dopiero OnCreate
// Interwał Timera przeważnie wystarcza wartość = 200 ( Lub dobrać doświadczalnie)

Do .:DETOX:.
Z ciekawości poczytałem o XP Manifest, nie jest to na pewno odkrycie, ale dowiedziałem się, że działa on tylko pod XP.

0

Dzięki że chciałeś pomóc, ale chyba nie czaisz o co chodzi.... procedury wszystkie działają... chodzi tylko o niezgodność TListView z XP manifest... mam nadzieje ze upgrade Delphi da sobie z tym radę.

0

Błąd ten występuje przy rysowaniu kolumn listview za pomocą stylów xp. Można go rozwiazać albo przez ściągnięcie jakichś tam patchów, przez wyedytowanie wadliwego pliku comctrls.pas, lub przestawienie się na delphi 7. Polecam ten ostatni sposób, gdyż zyskasz także przerabianie na styl xp np. takiej kontrolki, jak speedbutton, czego nie było w delphi 6.

0

Ja tam mam D6, qpe listviewów w aplikacji, styl xp włączony i theme managiera i o dziwo nic się nie rąbie, a nawet te speedbuttony są w stylu xp. ciekawostka to była

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.