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

program nie ładuje obrazu za drugą próbą

Object Storage Arubacloud
0 głosów
136 wizyt
pytanie zadane 1 grudnia 2016 w C i C++ przez Kuba321 Użytkownik (730 p.)

Witam!

Próbowałem utworzyć program prezentowany przez Pana Zelenta w 9 odcinku kursu obiektowego. Wszystkie 9 pustych obrazów i obrazek z kółkiem elegancko się załadowało, ale w ich miejsce nie chcą się ładować inne. Sprawdzałem if'a i rzeczywiście reaguje na wciśnięcie pola, w którym ma się wyświetlać obraz. Porównywałem swój kod z kodem przedstawionym w odcinku i teoretycznie wszystko powinno działać, ale nie działa, nie wiem czemu. Mam identyczną strukturę plików jak w odcinku. Proszę o pomoc. Oto kod mojego Unit1.cpp:

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;

char p1,p2,p3,p4,p5,p6,p7,p8,p9;
char kto;

//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------


void __fastcall TForm1::FormCreate(TObject *Sender)
{
        pole1->Picture->LoadFromFile("img/nic.bmp");
        pole2->Picture->LoadFromFile("img/nic.bmp");
        pole3->Picture->LoadFromFile("img/nic.bmp");
        pole4->Picture->LoadFromFile("img/nic.bmp");
        pole5->Picture->LoadFromFile("img/nic.bmp");
        pole6->Picture->LoadFromFile("img/nic.bmp");
        pole7->Picture->LoadFromFile("img/nic.bmp");
        pole8->Picture->LoadFromFile("img/nic.bmp");
        pole9->Picture->LoadFromFile("img/nic.bmp");
        tura->Picture->LoadFromFile("img/osmall.bmp");
        char p1='n',p2='n',p3='n',p4='n',p5='n',p6='n',p7='n',p8='n',p9='n';
        kto='o';
}
//---------------------------------------------------------------------------
void __fastcall TForm1::pole1Click(TObject *Sender)
{
        //Button1->Caption=("test"); - sprawdzam, czy program reaguje na nacisniecie pole1
        if(p1=='n')
        {
                if(kto=='o')
                {
                        pole1->Picture->LoadFromFile("img/o.bmp");
                        p1='o';
                        kto='x';
                        tura->Picture->LoadFromFile("img/xsmall.bmp");

                }
                else
                {


                }

        }
}
//---------------------------------------------------------------------------

Pozdrawiam

1 odpowiedź

0 głosów
odpowiedź 1 grudnia 2016 przez Wiciorny Ekspert (270,190 p.)
a gdzie masz zapisane Pliki  - moze problem jest w ścieżce ... gdyż program nie wie skąd ma odczytać pliki [zdjeciowe] ? bo podajesz ścieżke img/zdjecie.jpg
komentarz 2 grudnia 2016 przez Pajdas Mądrala (5,930 p.)
Dodatkowo w code blocks, nie wiem czy w innych kompilatorach, trzeba dać dwa ukośniki czyli image//obraz.jpg
komentarz 2 grudnia 2016 przez Kuba321 Użytkownik (730 p.)
Tak, jak pisałem wyżej wszystko jest identycznie jak u Pana Zelenta (czyli teoretycznie dobrze). Program poprawnie ładuje obrazy za pierwszym razem, ale nie ładuje ich za drugim. Eksperymentowałem dalej i wychodzi mi, że metoda LoadFromFile wywołana z void'a pole1Click nie ładuje obrazu po raz drugi. Napisałem inny program, który miał po prostu załadować obrazek i po kliknięciu w niego zmienić go na inny, program działał bez problemu. Dołożenie drugiego ukośnika nie usuwa problemu.

Podobne pytania

0 głosów
0 odpowiedzi 134 wizyt
pytanie zadane 28 listopada 2016 w C i C++ przez konrad99 Gaduła (4,090 p.)
0 głosów
2 odpowiedzi 1,887 wizyt
pytanie zadane 20 lipca 2015 w PHP przez Mr Popcorn Bywalec (2,340 p.)

92,578 zapytań

141,426 odpowiedzi

319,653 komentarzy

61,961 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!

...