• 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)

Object Storage Arubacloud
0 głosów
233 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 (194,920 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 (194,920 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 147 wizyt
pytanie zadane 23 stycznia 2018 w Systemy operacyjne, programy przez jveaster Początkujący (440 p.)
0 głosów
0 odpowiedzi 226 wizyt
pytanie zadane 12 stycznia 2019 w Java przez Hardwell Dyskutant (8,980 p.)
0 głosów
1 odpowiedź 2,784 wizyt

92,554 zapytań

141,399 odpowiedzi

319,536 komentarzy

61,938 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...