Image1 = Picture1 ?
-
Hi, ich arbeite mit arrays und möchte z.b. das in ein Image[i] ein Bild geladen wird. Problem ist das das nicht geht, und ich meine es gab eine Lösung das man vorher festlegen konnte Image1 = Picture1 und dann Picture[i] machen konnte.
Wenn ja, wie geht das?
-
Kommt drauf an, was im Array steht. Wenn da Dateipfade sind, sollte es heißen:
Image1->Picture->LoadFromFile(i);
@ All Mods: Sorry, dass ich Source poste, aber mir wurde auch mit Source geholfen. Außerdem kann ich schlecht Erklären.
-
Erstmal danke aber ich meinte das so
Picture[i]->Picture->LoadFromFile(bla);
wobei irgendwo erwähnt wird
Image1 = Picture1 da man irgendwie nicht
Image1->Picture->LoadFromFile(bla);
machen kann
Ich hoffe das war verständlich
-
naja verständlich fand ichs nich unbedingt
aber
Image1->Picture->LoadFromFile(bla);
sollte gehen, wenn Image1 gültig ist (und bla)
-
Probier doch mal aus
int a; randomize(); a = random(5); Image[a]->Picture->LoadFromFile("Bilder\\suchdirwasaus.bmp");
Das geht nicht.
-
Vermute du hast Probleme auf die Images zuzugreifen, du musst erst ein array erstellen und die adressen deiner Images darin speichern, siehe faq.
-
nein es geht einfacher! das weiß ich ganz genau!
Ich habe mal code gesehen da wurde in OnPaint einfach deklariert{
Platz[1] = Image1;
Platz[2] = Image2;
Platz[3] = Image3;
}usw. aber bei mir klappt das nicht ( Formpaint darf keinen Typenqualifizierer besitzen)
-
die Bilder im Array sind alle initialisiert ??
.... Image[i] = new TImage.... oder so ??
-
Nope, nur in der *.h Datei ist das hier vorhanden
typedef std::map<int, TImage*> TImages;
-
Ok, hier mal der gesamte Code:
cpp void __fastcall TForm1::FormPaint(TObject *Sender) { { // Mit Feld[i] kann man keine Bilder laden, daher dieser Weg Platz[1] = Feld1; // Feld1 ist der richtige Name vom TImage Platz[2] = Feld2; Platz[3] = Feld3; Platz[4] = Feld4; Platz[5] = Feld5; } } *.h unter den includes typedef std::map<int, TImage*> TImages; private: TImages Platz;
Aber bei mir geht das nicht
-
Warum machst du die Zuweisung auch im FormPaint ? Und warum alles so ducheinander ?
TImage* Platz[5];
Platz[0]=Image1;
.
.
.should work.
-
Siehe FAQ, Abschnitt 'Komponenten', "zur Laufzeit erstellen ...", "dynamische Arrays" usw.
-
Da kommt immernoch
Undefiniertes Symbol 'Platz' bei
Platz[i]->Picture->LoadFromFile("Bilder\\bla.bmp");
So sieht das jetzt aus
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { TImage* Platz[5]; Platz[0] = Feld0; Platz[1] = Feld1; Platz[2] = Feld2; Platz[3] = Feld3; Platz[4] = Feld4; Platz[5] = Feld5; }
Na wo liegt der letzte Fehler
-
Platz ist nur lokal gültig in dem Codeblock wo du es definiert hast.
Vorschlag : "Platz" global definiern.
-
Weiterer Vorschlag: C++-Grundlagen-Buch/-Tutorial studieren.