problem z adresami plikow

0

Witam

Mam dosc dziwny problem...

Button 1
FileListBox1->Directory = "data\01.ROSJA";
randomize();
int a= random(12)+2;
int b= random(12)+2;
int c= random(12)+2;
int d= random(12)+2;

String odpowiedz;
FileListBox1->ItemIndex=(a);
FileListBox1->FileEdit = Edit1;
Edit2->Text=Edit1->Text;
FileListBox1->ItemIndex=(b);
FileListBox1->FileEdit = Edit1;
Edit3->Text=Edit1->Text;
FileListBox1->ItemIndex=(c);
FileListBox1->FileEdit = Edit1;
Edit4->Text=Edit1->Text;
FileListBox1->ItemIndex=(d);
FileListBox1->FileEdit = Edit1;
Edit5->Text=Edit1->Text;
if (prawda == 1)
odpowiedz = Edit2->Text;
Edit6->Text=odpowiedz;
if (prawda == 2)
odpowiedz = Edit3->Text;
Edit6->Text=odpowiedz;
if (prawda == 3)
odpowiedz = Edit4->Text;
Edit6->Text=odpowiedz;
if (prawda == 4)
odpowiedz = Edit5->Text;
Edit6->Text=odpowiedz;
Button4->Caption=Edit2->Text;
Button5->Caption=Edit3->Text;
Button6->Caption=Edit4->Text;
Button7->Caption=Edit5->Text;
String Tekst1 = Edit6->Text;
char Quote = '[';
Edit6->Text = AnsiExtractQuotedStr(Tekst1.c_str(), Quote);

Kiedy juz wszystko wczyta do Editow, chce zeby na podstawie tego co wylosuje sobie do edit6 zrobil adres fotki i mi ja wyswietlil... problem jest taki: kiedy losuje i wpisuje to program - wszystko sie sypie i pisze tylko ze nie mozna otworzyc zdjecia, natomiast kiedy ja wpisze adres wszystko jest ok... podaje kod guzika odp. za wczytywanie

int rrr = random(6)+1;
if (Edit6->Text == "BMP 1")
string asd = Edit6->Text;
Image1->Picture->LoadFromFile("data\0.1ROSJA\"+(asd)+"\"+IntToStr(rrr)+".jpg");

prosze o pomoc ;/ z gory dziekuje

0
int rrr = random(6)+1;
if (Edit6->Text == "BMP 1") //<-- próbowałeś bez tej linijki ?
string asd = Edit6->Text;
Image1->Picture->LoadFromFile("data\\0.1ROSJA\\"+(asd)+"\\"+IntToStr(rrr)+".jpg");

A wywołujesz 'Randomize' ?

0

randomize nie ma nic do tego ;/

if (Edit6->Text == "[BMP 1]")
Image1->Picture->LoadFromFile("data\01.ROSJA\BMP 1\1.jpg");

tak tez nie dziala... ale jezeli wpisze [BMP 1] do edit sam to hula

1

A klamerki gdzie? if dotyczy tylko przypisania stringa do asd. Jeśli nie będzie spełniony, loadFromFile się wykona ale linijka wcześniej nie.
A wystarcza tylko robić wcięcia jak trzeba i wszystko od razu widać.

int rrr = random(6)+1;
if (Edit6->Text == "BMP 1")
    string asd = Edit6->Text;
Image1->Picture->LoadFromFile("data\\0.1ROSJA\\"+(asd)+"\\"+IntToStr(rrr)+".jpg"); // wykona się zawsze, pomimo że do asd nic nie został przypisane
0

int a = random(6)+1;
if (Edit6->Text == "BMP 1")
String x = Edit6->Text;
Image1->Picture->LoadFromFile("data\01.ROSJA\"+(x)+"\"+IntToStr(a)+".jpg");

[C++ Error] Unit1.cpp(122): E2451 Undefined symbol 'x'
[C++ Warning] Unit1.cpp(123): W8004 'a' is assigned a value that is never used

nie wiem juz ocb... moze bcb(6) mam skopanego? na jakim Ty piszesz?

0

Jak tylko sformatowałem Twoj kod, na którym od razu widać gdzie brakuje bloku. LoadFromFile powinno być też objęte if'em.

0

a mozesz wkleic tu ten kod? :) Prosze

3

Proszę.

{
}

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