Eigenschaften einer Frame zuweisen



  • Hallo,

    Ich habe eine Frame erstellt. Nun möchte ich gerne dieser Eigenschaften zuweisen, um aus dem Hauptprogramm diese ansprechen zu können.
    z.B.: ( die Frame enthält 5 Image. Die Frames sollen zu unterschiedlichen Abläufe des Hauptprogramm mit verschiedene Bilddateien geladen werden. )

    Mir ist etwas bekannt mit " Get und Set ". Weiter weiß ich nicht.
    Wer kann mir hierbei helfen ?

    Gruß Siegfried
    🙂



  • Hallo

    ich verstehe nicht, was dein Problem ist.
    Wenn du ein Frame mit Images über den Objektinspektor erstellst hast, kannst du die Images direkt über das Frame ansprechen :

    Frame->Image1->Picture->LoadFromFile(...);
    

    bis bald
    akari



  • Hallo,

    dieses ist mir bekannt. Ich möchte aber nur mit einer Zeile in dem Hauptprogramm die 5 Image's der Frame gleichzeitig laden.

    Gruß Siegfried



  • Hallo

    dann must du in dem Frame eine passende Methode erstellen. Allerdings ist die Frage, woher das Frame wissen soll, welche Dateien geladen werden sollen? Dann brauchst du im schlimmsten Fall für die Load-Methode fünf Parameter, für jeden Dateinamen einen.

    bis bald
    akari



  • Hallo,

    Werde mich mit dem Problem auseinandersetzen.

    Vielen Dank für die Infos.

    Gruß Siegfried



  • hallo akari,

    habe deine Code eingesetzt, leider bekomme ich eine " Zugriffverletzung bei Adresse 0045C085 im Modul Meine.Exe Lesen von Adresse 00000220 "

    Beschreibung meiner Form:
    diese ist ein MdiChild, welche eine Frame enthält mit 9 Image's.
    Wenn die Child-Form aktiv wird, sollen die Frames z.B. rote gefärbte Image enhalten und bei deaktivierung grün gefärbte Image erhalten.

    Wege der Dateie stimmen.

    hier meine verkürtzte Code, habe *.bmp und *.jpg gescheckt.

    //
    AnsiString FrameProjectPath;
    AnsiString FrameFileName;
    //
    FrameProjectPath = ExtractFilePath(Application->ExeName);
    //FrameFileName = FrameProjectPath + "Bmp\\ImageToolbarOrangeLinks.bmp";
    FrameFileName = FrameProjectPath + "Bmp\\ImageToolbarOrangeLinks.jpg";
    
        if (FileExists(FrameFileName))
        {
    Image1->Picture->LoadFromFile(FrameFileName);
    ChildToolbar->Image1->Picture->LoadFromFile(FrameFileName);
    //ChildToolbar->Image2->Picture->Bitmap->LoadFromFile(FrameFileName);
        }
    

    Anmerkung: Eine Image auf der ChildForm direkt ansprechen verläuft korrekt.

    ich komme nicht weiter, kann man mir helfen ?

    Gruß Siegfried

    😞 😞



  • Hallo

    ich vermute, du greifst auf ein Objekt beim Starten zu, das noch gar nicht existiert. Dein Ausschnitt läßt keine Rückschlüsse zu.
    Benutzt den Debugger, und fang bei den ersten Zeilen an, um den Auslöser des Fehlzugriffes zu finden.
    http://www.junix.ch/bcb/help/debug.html

    bis bald
    akari



  • Hallo akari,

    war ich auch der Meinung. Habe also eine Button platziert und den jetzige Code mit dem Button ausgelößt. Der Fehler ist auch hier.

    Gruß siegfried

    😞



  • Hallo

    wie ich bereits schrieb, ist der Ausschnitt allenfalls der Auslöser, nicht aber der Grund des Fehlers. Da ich aber keinen Überblick habe, kann ich dir nur noch mal den Hinweis und den Link für den Debugger geben.
    Ich würde auf jedenfall mal schauen, ob ChildToolbar gültig ist, das wird wohl dein Frame sein.

    bis bald
    akari



  • Hallo,

    Das Frame und alle darin enthaltene Elemente sind vollständig zu sehen. Habe mehrmals mit Debug gecheckt.
    Da dieser Fehler nicht zu beseitigen war, habe ich den notwendigesten Code in eine Button gepackt. Leider ohne Erfolg.

    Auslößer des Fehlers ist folgende Zeile.

    ChildToolbar->Image1->Picture->LoadFromFile(FrameFileName);

    Gruß Siegfried

    😞



  • Hallo akari,

    Stop deine Überlegungen, bin dabei die Frame komplett neu zu erstellen,
    ist vielleicht in der Frame etwas schief gelaufen, werde später erneut berichtigen,

    Gruß Siegfried

    😉



  • Hallo,

    Inzwischen habe ich die Frame samt Inhalt neu erstellt. Habe allerdings diese nicht mehr in einem externem Verzeichnis angelegt, sondern im Hauptverzeichnis des Projekts. Auch ein neuerstellen in dem externem Verzeichnis lieferte mir die bekannte Zugriffsverletzung.

    Diese Option funktioniert. Ob es daran gelegen hat, stelle ich in Frage.

    Meinen Dank an alle, die hier mitgewirkt haben.

    Gruß Siegfried

    🙂 🙂 🙂


Log in to reply