• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Dostosowanie kodu do nowego środowiska - RAD Studio XE6(CPPBuilder XE6)

0 głosów
641 wizyt
pytanie zadane 16 października 2017 w C i C++ przez Piotr_Minda Początkujący (380 p.)
Hi, witajcie to znowu ja Pietrek początkujący w CPP, jednak już wiem więcej niż przedtem.

Przesiadłem się z CPP Buildera 6 z 2002r na środowisko RAD Studio Embarcardero XE6, skok niesamowity, jest przyjazny i bardziej intuicujny oraz sam kompilator jest bardziej wg mnie dopracowany nie jest "oportunistą" Bardziej przypadł mi do gustu, ale kto co lubi.

No więc, przepisuje kod własnie z projektów starego buildera na to nowe środowisko(przy okazji powtarzam sobie zagadnienia z dziedzin klasy, plików ini, oraz bibliotek DLL oraz ćwiczę nową składnię która przy np messageboxach zawiera drobnostki jak np dopisek literki L).

Mój problem dotyczy aplikacji jest to mała baza danych ćwiczenie które miesiąc temu ćwiczyłem oraz również zadawałem pytanie na temat biblioteki dll do tego projektu, udało się poradziłem sobie, poczytałem sobie to tu to tam, oraz dzięki wam drodzy przyjaciele:) Natomiast w nowym projekcie ten sam kod głównej aplikacji nie działa poprawnie, Aplikacja zawiera, Klasę o nazwie DataProgram, plik ini, Bibliotekę Dll pisał będę później jak uporam się z problemem dotyczącym komponentu TImage.

No właśnie w Aplikacji jest komponent Timage, który ma za zadanie wyświetlić obrazek Picture, kiedy załaduje plik z informacjami np Test.dbf, gdzie zapisane są informacje o bitmapie, a tego nie robi, ładuje tylko informacje zapisane w pliku Test.dbf. Ten sam kod działa sprawnie w CPP builderze 6tce z 2002r i jest toćka w toćkę ten sam, oraz kompiluje się bez błędów natomiast nie działa on tak jak powinien w RADStudio XE6. Osobiście podejrzewam brak jeszcze czegoś jakieś funkcji w składni, sama klasa działa dobrze oraz wszelkie funkcje inne programu również. Wiem natomiast, że problem leży w głownym programie, ponieważ podłączałem klasę pod stary projekt i wszystko działało jak trzeba(Mowa o CPP Builder 6 z 2002r).

Załączam projekt głównego programu do analizy(Kod źródłowy oraz nagłówek plik .h, także plik klasy DataProgram.cpp oraz nagłówek h. bo nie mogę dać niestety wszystkiego nie wiem czemu)

https://pastebin.com/3QsQVT2p  ->Główny program

https://pastebin.com/NZUEEuh7  ->Plik nagłówkowy głównego programu

https://pastebin.com/gWg8x4hS -> Klasa DataProgram.cpp

https://pastebin.com/WfiFzLQf ->Nagłowek .h klasy DataProgram

Gdzie leży błąd? Mam nadzieję że dość obszernie i w miarę zrozumiale opisałem swój problem z kodem.
komentarz 17 października 2017 przez j23 Mędrzec (195,220 p.)

A zdarzenie StringGrid1SelectCell w ogóle się wywołuje?

komentarz 17 października 2017 przez Piotr_Minda Początkujący (380 p.)
Tak wykonuje. Ale linijki z LoadFromFile juz nie. I masz rację przeczytałem w kodzie pliku vcl.graphics.hpp że load from file przyjmuje UnicodeString I tak samo Save from file. Natomiast staruszek cpp builder 6 z 2002r przyjmuje parametr AnsiString i być może dlatego to pieronstwo nie działa poprawnie.

Jak wygląda poprawna składnia load from file UnicodeString? Nigdzie tego nie potrafię znaleźć.
komentarz 17 października 2017 przez j23 Mędrzec (195,220 p.)

Jeśli zdarzenie się wykonuje, to i linia z LoadFromFile musi, bo nie ma tam wykonania warunkowego. Być może debugger nie "łapie" tej linii (na pewno jest to wersja debug?).

 

Rozbij tę jedną linię na:

try
{
    Image1->Picture->LoadFromFile( DataProgram->GetBitmap(ARow) );
}
catch(...)
{
    // daj tu jakiegoś messageboxa, że dupa z ładowania bitmapy
}

 

komentarz 17 października 2017 przez Piotr_Minda Początkujący (380 p.)
edycja 17 października 2017 przez Piotr_Minda
Tak jest to debug wersja na 100%, tak zrobię i dam znać. J23 dziękuję ci za bezinteresowną chęć pomocy mnie laikowi.

 

 

Edit:

Zrobiłem tak jak zasugerowałeś i jedym słowem pisząc dupa, nie wchodzi messageBox, ani showmessage z komunikatem, ani też nie chce wejść bitmapa.
komentarz 18 października 2017 przez Piotr_Minda Początkujący (380 p.)
Wstyd się za mnie Taki szum wyprawiać, ale udało się, rozwiązać problem, we właściwościach projektu w zakładce zdarzenia nie miałem zaznaczonej funkcji OnSelectCell dla komponentu StringGrid1, a miałem ją już o kodowaną wcześniej, kliknąłem zdażenie OnSelectCell i rekompilowałem ponownie projekt, i zaczęlo działać w końcu!! Taka pierdoła a tyle zamieszania.

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
0 odpowiedzi 317 wizyt
pytanie zadane 23 stycznia 2018 w Systemy operacyjne, programy przez jveaster Początkujący (440 p.)
0 głosów
0 odpowiedzi 297 wizyt
pytanie zadane 12 stycznia 2019 w Java przez Hardwell Dyskutant (9,060 p.)
0 głosów
1 odpowiedź 3,500 wizyt

93,762 zapytań

142,718 odpowiedzi

323,368 komentarzy

63,359 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...