Thread View: pl.comp.lang.delphi
13 messages
13 total messages
Started by goo-mlyny
Thu, 04 Jul 2019 10:13
TOpenDialog i zawieszenie IDE
Author: goo-mlyny
Date: Thu, 04 Jul 2019 10:13
Date: Thu, 04 Jul 2019 10:13
15 lines
1838 bytes
1838 bytes
Telepie mi się po głowie, że temat był opisany i rozwiązany ale za nic nie mogę tego rozwiązania odszukać. Może ktoś ma lepszą pamięć?
W kodzie mam banalną konstrukcję:
dlg := TOpenDialog.Create(nil);
dlg.InitialDir := KatalogCel;
dlg.FileName := Cel;
try
if dlg.Execute() then //na tej linii się zawiesza
Jak uruchamiam w IDE - to na tej linii IDE się zawiesza.
To zjawisko występowało sporadycznie, ale jakoś od kilku dni występuje za każdym uruchomieniem. Delphi 10.3, system W10 64 bit.
Ktoś, coś?
Andrzej
Re: TOpenDialog i zawieszenie IDE
Author: Marek
Date: Fri, 05 Jul 2019 09:33
Date: Fri, 05 Jul 2019 09:33
23 lines
1969 bytes
1969 bytes
W dniu 04.07.2019 o 12:13, goo-mlyny@ciach.net pisze: > Telepie mi się po głowie, że temat był opisany i rozwiązany ale za nic nie mogę tego rozwiązania odszukać. Może ktoś ma lepszą pamięć? > > W kodzie mam banalną konstrukcję: > dlg := TOpenDialog.Create(nil); > dlg.InitialDir := KatalogCel; > dlg.FileName := Cel; > try > if dlg.Execute() then //na tej linii się zawiesza > > Jak uruchamiam w IDE - to na tej linii IDE się zawiesza. > To zjawisko występowało sporadycznie, ale jakoś od kilku dni występuje za każdym uruchomieniem. Delphi 10.3, system W10 64 bit. Może ten folder startowy KatalogCel to jakaś lokalizacja sieciowa lub inna, która przymula przy dostępie do niej albo jest niedostępna? A może to okno dialogowe wyświetla się pod innym oknem (z ustawieniem "On top") lub na drugim (wyłączonym) monitorze i czeka na Twoją reakcję? A jak w eksploratorze chcesz wejść do tego folderu, to da się szybko? -- Pzdr. Marek
Re: TOpenDialog i zawieszenie IDE
Author: goo-mlyny
Date: Sun, 07 Jul 2019 21:38
Date: Sun, 07 Jul 2019 21:38
12 lines
2054 bytes
2054 bytes
W dniu piątek, 5 lipca 2019 11:34:02 UTC+2 użytkownik Marek napisał: > Może ten folder startowy KatalogCel to jakaś lokalizacja sieciowa lub inna, która przymula przy dostępie do niej > albo jest niedostępna? nie - katalog jest lokalny, na C > A może to okno dialogowe wyświetla się pod innym oknem (z ustawieniem "On top") lub na drugim (wyłączonym) monitorze > i czeka na Twoją reakcję? nie, w 99% nic się nie wyświetla, ten 1% - wyświetli się tylko ramka od okna dialogowego > A jak w eksploratorze chcesz wejść do tego folderu, to da się szybko? Da się szybko, zresztą w mojej aplikacji też da się szybko (bez żadnego zawieszania się aplikacji), jeśli uruchomię ją poza IDE.
Re: TOpenDialog i zawieszenie IDE
Author: marfi
Date: Mon, 08 Jul 2019 20:05
Date: Mon, 08 Jul 2019 20:05
12 lines
1751 bytes
1751 bytes
Użytkownik <goo-mlyny@ciach.net> napisał w wiadomości news:55249779-4fde-410d-9f4a-e740cce1b254@googlegroups.com... ... > A jak w eksploratorze chcesz wejść do tego folderu, to da się szybko? Da się szybko, zresztą w mojej aplikacji też da się szybko (bez żadnego zawieszania się aplikacji), jeśli uruchomię ją poza IDE. Firewall? -- marfi
Re: TOpenDialog i zawieszenie IDE
Author: suazael
Date: Tue, 09 Jul 2019 07:24
Date: Tue, 09 Jul 2019 07:24
22 lines
2092 bytes
2092 bytes
> > > A jak w eksploratorze chcesz wejść do tego folderu, to da się szybko? > Da się szybko, zresztą w mojej aplikacji też da się szybko (bez żadnego > zawieszania się aplikacji), jeśli uruchomię ją poza IDE. > > Firewall? > > -- > marfi Witam. Albo antywirus. Mi kiedyś podobne niespodzianki robił BitDefender... co prawda nie z OpenDialog'iem, ale był problem z dostępem do dysków spod IDE (zwłaszcza do C: ). Pomagało uruchomienie Delphi w trybie administratora... A z OpenDialog'iem miałem bardzo podobny problem (pokazywała się pusta ramka), ale w przypadku, kiedy próbowałem "przerobić" go dodając nowe opcje. To tylko sugestie, ale może na coś naprowadzą? Pozdrawiam Sławek
Re: TOpenDialog i zawieszenie IDE
Author: goo-mlyny
Date: Tue, 09 Jul 2019 12:04
Date: Tue, 09 Jul 2019 12:04
5 lines
2115 bytes
2115 bytes
W dniu wtorek, 9 lipca 2019 09:24:04 UTC+2 użytkownik sua...@gmail.com napisał: > > To tylko sugestie, ale może na coś naprowadzą? No nic - będę kombinował. Najgorzej mnie denerwuje, że pamiętam, że miałem już kiedyś ten problem, nie pamiętam rozwiązania, w necie jest też opisany, ale wszystkie linki do rozwiązania prowadzą w miejsca, których już nie ma...
Re: TOpenDialog i zawieszenie IDE
Author: Jan Drawski
Date: Tue, 09 Jul 2019 12:48
Date: Tue, 09 Jul 2019 12:48
33 lines
2636 bytes
2636 bytes
W dniu 2019-07-04 o 12:13, goo-mlyny@ciach.net pisze: > Telepie mi się po głowie, że temat był opisany i rozwiązany ale za nic nie mogę tego rozwiązania odszukać. Może ktoś ma lepszą pamięć? > > W kodzie mam banalną konstrukcję: > dlg := TOpenDialog.Create(nil); > dlg.InitialDir := KatalogCel; > dlg.FileName := Cel; > try > if dlg.Execute() then //na tej linii się zawiesza > > Jak uruchamiam w IDE - to na tej linii IDE się zawiesza. > To zjawisko występowało sporadycznie, ale jakoś od kilku dni występuje za każdym uruchomieniem. Delphi 10.3, system W10 64 bit. > > Ktoś, coś? > > Andrzej Coś (część sugestii pewnie już była): 1. Program antywirusowy, firewall, spyware (kiedyś miałem problemy z SpyBootem). Czasami wyłączenie takiego programu nic nie daje bo jakiś serwis od niego dalej potrafi coś mieszać. 2. Sprawdenie jak jest na innych komputerach. Wtedy będzie wiadomo czy to wina kompa (też np. w katalogach, plikach może być coś skopane) czy softu. 3. Część OpenDialogów się sypie jak jest włączone o ile dobrze pamiętam "MULTITHREADED". 4. Zmiana lub ustawienie katalogu startowego. 5. Czy czysty projekt z takim OpenDialogiem dobrze działa? Może gdzieś nadpisujesz pamięć i efekty akurat tu widać albo jakaś biblioteka coś miesza. -- Janek
Re: TOpenDialog i zawieszenie IDE
Author: goo-mlyny
Date: Tue, 09 Jul 2019 12:57
Date: Tue, 09 Jul 2019 12:57
19 lines
2637 bytes
2637 bytes
W dniu wtorek, 9 lipca 2019 14:49:02 UTC+2 użytkownik Jan Drawski napisał: > Coś (część sugestii pewnie już była): > 1. Program antywirusowy, firewall, spyware (kiedyś miałem problemy z > SpyBootem). Czasami wyłączenie takiego programu nic nie daje bo jakiś > serwis od niego dalej potrafi coś mieszać. > 2. Sprawdenie jak jest na innych komputerach. Wtedy będzie wiadomo czy > to wina kompa (też np. w katalogach, plikach może być coś skopane) czy > softu. > 3. Część OpenDialogów się sypie jak jest włączone o ile dobrze pamiętam > "MULTITHREADED". A możesz na ten temat coś więcej napisać, bo to mi trochę coś się kojarzy, ale nie mogę sobie przypomnieć istoty sprawy. > 4. Zmiana lub ustawienie katalogu startowego. Jeszcze posprawdzam, liczyłem, że ktoś ma mniejszą sklerozę, niż ja :) > 5. Czy czysty projekt z takim OpenDialogiem dobrze działa? W tej chwili działa źle, zrobiłem nowy projekt, tylko z wywołaniem OpenDialog i w IDE d... Coś się zmieniło w ciągu ostatnich kilku tygodni, bo problemu jeszcze niedawno nie było, niestety nie potrafię żadnej zmiany skojarzyć...
Re: TOpenDialog i zawieszenie IDE
Author: Jan Drawski
Date: Tue, 09 Jul 2019 14:11
Date: Tue, 09 Jul 2019 14:11
25 lines
2264 bytes
2264 bytes
>> "MULTITHREADED". > A możesz na ten temat coś więcej napisać, bo to mi trochę coś się kojarzy, ale nie mogę sobie przypomnieć istoty sprawy. Jak się korzysta z jakiegoś API Windows (nie pamiętam konkretnie przy czym) to MS zaleca korzystanie z tego. Ustawiam tak: CoInitializeEx(nil, COINIT_MULTITHREADED); Google pewnie wie więcej na ten temat. Z niektórych komponentów nie można skorzystać, jest problem z parentami. > Jeszcze posprawdzam, liczyłem, że ktoś ma mniejszą sklerozę, niż ja :) Tak to jest jak się coś robi za szybko :) >> 5. Czy czysty projekt z takim OpenDialogiem dobrze działa? > W tej chwili działa źle, zrobiłem nowy projekt, tylko z wywołaniem OpenDialog i w IDE d... > Coś się zmieniło w ciągu ostatnich kilku tygodni, bo problemu jeszcze niedawno nie było, niestety nie potrafię żadnej zmiany skojarzyć... Wiem, że to może brzmieć trochę niedorzecznie ale możesz sprawdzić jak będzie przy nieaktywnym połączeniu z internetem. Czasami coś może się starać coś przesłać, odczytać i jak się nie udaje to mogą zdarzać się takie problemy. W WMI były takie niespodzianki. -- Pozdrawiam Janek
Re: TOpenDialog i zawieszenie IDE
Author: wloochacz
Date: Wed, 10 Jul 2019 10:25
Date: Wed, 10 Jul 2019 10:25
49 lines
3234 bytes
3234 bytes
W dniu 09.07.2019 o 16:11, Jan Drawski pisze: >>> "MULTITHREADED". >> A możesz na ten temat coś więcej napisać, bo to mi trochę coś się >> kojarzy, ale nie mogę sobie przypomnieć istoty sprawy. > > Jak się korzysta z jakiegoś API Windows (nie pamiętam konkretnie przy > czym) to MS zaleca korzystanie z tego. Ustawiam tak: CoInitializeEx(nil, > COINIT_MULTITHREADED); Głównie chodzi o inicjalizowanie COMów. Np. IXMLDocument albo jakieś ADO, albo dowolny inne coś działające jako Component Object Model. > Google pewnie wie więcej na ten temat. Z niektórych komponentów nie > można skorzystać, jest problem z parentami. > >> Jeszcze posprawdzam, liczyłem, że ktoś ma mniejszą sklerozę, niż ja :) > > Tak to jest jak się coś robi za szybko :) > >>> 5. Czy czysty projekt z takim OpenDialogiem dobrze działa? >> W tej chwili działa źle, zrobiłem nowy projekt, tylko z wywołaniem >> OpenDialog i w IDE d... >> Coś się zmieniło w ciągu ostatnich kilku tygodni, bo problemu jeszcze >> niedawno nie było, niestety nie potrafię żadnej zmiany skojarzyć... > > Wiem, że to może brzmieć trochę niedorzecznie ale możesz sprawdzić jak > będzie przy nieaktywnym połączeniu z internetem. Czasami coś może się > starać coś przesłać, odczytać i jak się nie udaje to mogą zdarzać się > takie problemy. W WMI były takie niespodzianki. > Miałem (może) podobny przypadek, ale jednak ciut inny. Problem również dotyczył OpenDialog, ale zachowywało się to tak, że otwarcie OpenDialog powodowało, że proces który go odpalił masowo zżerał pamięć. I to w tempie ok. kilku MiB na sekundę. Tak czy siak normalna aplikacja umierała w kilkanaście minut od otwarcia OpenDialog z braku pamięci. Nie znaleźliśmy rozwiązania i w końcu zdecydowałem, że napiszemy sobie taki wrapper na OpenDialog (jako osobny program/proces), którego jedynym zadaniem jest obsługa OpenDialog. Ciekawe jest to, że takie zachowanie było tylko u jednego klienta, ale na wszystkich jego komputerach. -- wloochacz
Re: TOpenDialog i zawieszenie IDE
Author: Jan Drawski
Date: Wed, 10 Jul 2019 12:22
Date: Wed, 10 Jul 2019 12:22
27 lines
2432 bytes
2432 bytes
> Miałem (może) podobny przypadek, ale jednak ciut inny. > Problem również dotyczył OpenDialog, ale zachowywało się to tak, że > otwarcie OpenDialog powodowało, że proces który go odpalił masowo zżerał > pamięć. > I to w tempie ok. kilku MiB na sekundę. > Tak czy siak normalna aplikacja umierała w kilkanaście minut od otwarcia > OpenDialog z braku pamięci. > > Nie znaleźliśmy rozwiązania i w końcu zdecydowałem, że napiszemy sobie > taki wrapper na OpenDialog (jako osobny program/proces), którego jedynym > zadaniem jest obsługa OpenDialog. > > Ciekawe jest to, że takie zachowanie było tylko u jednego klienta, ale > na wszystkich jego komputerach. Czyli ten sam OpenDialog w czystym programie działał już poprawnie? Na szybko spojrzałem i kiedyś jak mi coś nie działało to starałem się skorzystać bezpośrednio z interfejsu IFileDialog, używałem też: 1. TOpenFileName(OFN.Flags := OFN_EXPLORER or OFN_LONGNAMES or OFN_FILEMUSTEXIST or OFN_PATHMUSTEXIST or OFN_HIDEREADONLY or OFN_DONTADDTORECENT or OFN_FORCESHOWHIDDEN;) 2. TBrowseInfo (browse_info.ulFlags := BIF_RETURNONLYFSDIRS;) // or BIF_NEWDIALOGSTYLE; or BIF_USENEWUI; - not for multithreaded 3.TFileOpenDialog (OD.Options := [fdoPickFolders];). -- Janek
Re: TOpenDialog i zawieszenie IDE
Author: wloochacz
Date: Thu, 11 Jul 2019 10:53
Date: Thu, 11 Jul 2019 10:53
31 lines
2833 bytes
2833 bytes
W dniu 10.07.2019 o 14:22, Jan Drawski pisze: /ciach/ > Czyli ten sam OpenDialog w czystym programie działał już poprawnie? Na komputerach klienta czysty program nie działał poprawnie. I czysty program zżera pamięć na komputerach klienta. > Na > szybko spojrzałem i kiedyś jak mi coś nie działało to starałem się > skorzystać bezpośrednio z interfejsu IFileDialog, używałem też: > 1. TOpenFileName(OFN.Flags := OFN_EXPLORER or OFN_LONGNAMES or > OFN_FILEMUSTEXIST or OFN_PATHMUSTEXIST or OFN_HIDEREADONLY or > OFN_DONTADDTORECENT or OFN_FORCESHOWHIDDEN;) > 2. TBrowseInfo (browse_info.ulFlags := BIF_RETURNONLYFSDIRS;) > // or BIF_NEWDIALOGSTYLE; or BIF_USENEWUI; - not for multithreaded > 3.TFileOpenDialog (OD.Options := [fdoPickFolders];). Sprawa ma już dość czasu, aby nie pamięć szczegółów. Poza tym, szkoda mi było prądu na dokładne rozpoznanie "po co, na co i dlaczego". O ile dobrze pamiętam, to jeśli OpenDialog nie miał włączonego podglądu pliku to zachowywał się poprawnie i pamięć nie znikała w tempie katastrofalnym. Ja raczej stawiałem na jakiś ShellExtension, które oni mieli wszędzie poinstalowane (jakiś viewer w powłoce systemu dla plikow CAD/CAM), a którego my nie mieliśmy. Tak czy siak, metoda czołgowa zadziałała w moim przypadku idealnie. -- wloochacz
Re: TOpenDialog i zawieszenie IDE
Author: mmm
Date: Thu, 11 Jul 2019 13:43
Date: Thu, 11 Jul 2019 13:43
10 lines
1538 bytes
1538 bytes
> Ja raczej stawiałem na jakiś ShellExtension, które oni mieli wszędzie > poinstalowane (jakiś viewer w powłoce systemu dla plikow CAD/CAM), a > którego my nie mieliśmy. Tez bym celował ze to bedzie to. Najszybsza metoda aby to sprawdzić to wyłączyć wszystko co niestandardowe za pomoca programu Autoruns (ze stajni Sysinternals) na zakładce Explorer M
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads