.EXE po kompilacji wygląda jak Windows 98

0

Dobry wieczór,
Od pewnego czasu męczy mnie pewna sprawa niby nie przeszkadzająca, ale jednak psująca ogólne wrażenie. Niestety nie umiem wskazać, po jakiej operacji się to zmieniło, może i dlatego nie jestem w stanie sam znaleźć przyczyny, tak więc liczę na Waszą świąteczną pomoc :)

Delphi XE7 Winodws 10 wygląd grida, buttona itp. w projekcie jest taki jak domyślnie w systemie Winodws 10. Natomiast po kompilacji / odpaleniu pliku .exe niezależnie czy na Windows 7 czy Windows 10 buttony itp. wyglądają jakby były wyjęte z Windowsa 98.

Pozdrawiam

0

Sprawdź w ustawieniach projektu czy opcja Enable Runtime Themes jest zaznaczona.

0

Tak tą opcję sprawdziłem.

Zauważyłem ze w podobnym programie, który tworzyłem i działa ok w pliku Poject1.res jest "folder" manifest natomiast w tym, o którym jest wątek nie mam takowego katalogu.

0

Jeśli masz tę opcję włączoną to nie ma powodu, aby kompilator nie dodawał manifestu do aplikacji. Zrób tak, jak napisali w tym artykule – czyli ręcznie przygotuj ten plik. Ewentualnie usuń binarki (w tym plik .res) i przebuduj projekt.

0

@kcam jeżeli jest ustawione "Enable Runtime Themes" to musi być dodawany vhyba że nie zaznaczyłeś tej opcji dla wszystkich konfiguracji a tylko dla Debug a ostateczną apkę raczej budujesz jako Release.
Jeżeli z innego powodu (nie wiem jakiś dziwny błąd w projekcie) Delphi i tak nie chce dodać manifestu spróbuj dodać komponent TXPManifest.

0

@furious programming: Niestety nie przyniosło to żadnego efektu.

@kAzek: dodałem TXPManifest i faktycznie pomogło. Zastanawia mnie jedynie taka sprawa: utworzyłem sobie, dla sprawdzenia nowy projekt i jest analogiczna sytuacja. Wcześniej tego nie miałem, nie musiałem wrzucać komponentu TXPManifest, aby style buttonów takie jak system operacyjny, na którym pracuję.

Spróbuję teraz przeprowadzić naprawę Delphi przez instalator.

Co ciekawe, problem dotyczy tylko i wyłącznie buttonów, gridów itp, natomiast styl formy, a dokładniej ramki jest taki jak być powinien, na danym systemie operacyjnym.

0

Hmm… nie wydaje mi się, aby kompilator w wyniku błędu nie brał pod uwagę ustawień wybranych w IDE. No ale cóż – skoro twierdzisz, że to co podałem nie pomaga, to widać tak faktycznie jest. ;)


To co zasugerował @kAzek zawsze będzie działać. Jedynym zadaniem komponentu TXPManifest jest dodanie do pliku wynikowego właśnie tego brakującego manifestu. Jak jego nazwa wskazuje, pochodzi jeszcze z dawnych czasów, kiedy to Delphi nie pozwalało na dodanie manifestu automatycznie (nie było takich opcji w ustawieniach projektu).

Oczywiście nie służy on wyłącznie do określenia wersji kontrolek, ale też np. do określenia poziomu uprawnień, co często potrzebne jest dla systemów z usługą UAC.

kcam napisał(a):

Co ciekawe, problem dotyczy tylko i wyłącznie buttonów, gridów itp, natomiast styl formy, a dokładniej ramki jest taki jak być powinien, na danym systemie operacyjnym.

Malowaniem obramowania okien raczej zajmuje się system, IMO dlatego wygląda właściwie.

0

Tak mi się wydaje, że coś mi się rozwaliło w instalacji samego programu skoro ten sam problem mam na nowym projekcie. Naprawa przez instalator wyrzuca błąd więc obstawiam zarabianie w samej instalacji.

0

@kcam: sprawdź tę dyskusję: https://forums.embarcadero.com/thread.jspa?threadID=171681 (może być pomocna).

1 użytkowników online, w tym zalogowanych: 0, gości: 1