Problem mit Image
-
Ich möchte mit LoadFromFile ein Bild ins Image laden. Beim ersten mal klappt es! Wenn ich dann ein anderes Bild zuordnen möchte sagt er mir, dass er das Bild (Pfad+Datei) nicht öffnen kann!
Warum??
-
... Ein kurzer Blick auf meine Glaskugel -
Mist meine Glaskugel ist kaputt ich kann deinen Code nicht sehen.
Du mußt ihn wohl leider doch posten.
Tut mir leid ich lasse sie sofort reparieren
-
apo schrieb:
Warum??
Warum ist der Papst katholisch?
Wärest Du so gütig und würdest uns Deinen Quellcode mit der Zuweisung zeigen?
-
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { Img_Resources->Picture->LoadFromFile("Textures\\Buttons\\resources_on.jpg"); }void __fastcall TForm1::Img_ResourcesClick(TObject *Sender) { show_ressources^=true; string newimagename = ProgramPath.c_str(); newimagename.append("Textures\\Buttons\\resources_"); if(show_ressources) newimagename.append("on.jpg"); else newimagename.append("off.jpg"); Img_Resources->Picture->LoadFromFile(stringTochar(newimagename)); OpenGLAPPanel1->Repaint(); }so lädst du "Programmverzeichniss\Textures\Buttons\resources_on.jpg" (resources_off.jpg) auch wenn du inzwischen das arbeitsverzeichnis gewechselt hast.
char* stringTochar(string str){ char* chr = new char[str.size() + 1]; strcpy(chr, str.c_str()); return chr; }(hatte dasselbe problem und bin bei der fehlersuche hierrauf gestossen, sorry für den :bump: )
-
warum verwendest du nicht einfach ansistring? dann kannste dir die extra funktion komplett sparen...
-
oder wenn schon std::string
1. auch hier gibt es c_str()
2. Wieso append? string hat Operatoren (+ += etc.)
-
weil ich ein kompletter newb bin

bei mir herrscht momentan noch die devise: never touch working code
-
GreyHound schrieb:
char* stringTochar(string str){ char* chr = new char[str.size() + 1]; strcpy(chr, str.c_str()); return chr; }...und mit dieser Funktion hast Du dir auch gleich einen sehr effektiven Speicherfresser gebastelt. Der Speicher, den chr belegt, wird nämlich nirgendwo mehr freigegeben
