Tmemo



  • Hallo

    ListBox->Items->Delete(ListBox->ItemIndex);
    

    bis bald
    akari



  • Du solltest wirklich erst lernen die Hilfe zu nutzen...

    die Eigenschaften von TListBox beinhalten u.a. ItemIndex, Selected u.a.



  • Hallo Akari ich stehe immer in deiner Schuld 😋
    Ich selbst hab das nicht gefunden danke danke dank 👍
    Das heisst nicht, dass ich hier nicht weiter nerve...Fragen habe ich noch genug 🙂



  • Bitte die Faustregel beachten: ein Thema pro Thread, ein Thread pro Thema.



  • Kann mir einer mal sagen, wieso ich das nicht so schreiben kann?

    also irgendwas funktioniert da nicht!?

    Ich habe eine Struktur memberdaten auf der eine instant member gebildet ist.
    ----------------------------------------------------------------------------
    struct memberdaten
    {
    String deutsch;
    String englisch;
    };
    ----------------------------------------------------------------------------
    memberdaten *member //instant gebildet
    ----------------------------------------------------------------------------
    //versuche hier über ein button mit 2 editfelds diese in der structur zu speicher
    //und dann in der Listbox auszugeben. Was mache och da falsch.
    //Das Programm wird kompliliert und sobald ich auf Button eintragen gehe,
    //kommt so ein exp. Fehler mit Zugriffsfehler. Ich als leihe weiss nicht
    //was ich hier falsch mache. Kann mir einer helfen?

    member->deutsch=Edit1->Text;
    member->englisch=Edit2->Text;
    Feld1->Items->Add(member->deutsch);
    Feld1->Items->Add(member->englisch);
    Edit1->Clear();
    Edit2->Clear();
    ----------------------------------------------------------------------------

    will mich wieder bei euch bedanken für die Unterstützung 🙂



  • Hallo

    memberdaten *member; //instant gebildet
    

    falsch. Du hast einen Pointer gebildet. Dieser zeigt auf einen wilden SPeicher, da noch keine Instanz dafür erstellt wurde. Warum nimmst du überhaupt einen Pointer? Nimm einfacher

    memberdaten member; //
    

    und schreib alle Zugrffe auf die Member davon mit einem Punkt anstatt einem Pfeil.

    bis bald
    akari



  • Danke jetzt klappt es. Mist dann hab ich wohl doch einiges nicht verstanden 😞

    memberdaten *member ... ist doch ein zeiger der auf member zeigt.

    Das heisst wenn ich in methoden übergebe, muss ich nicht immer dies als parameter übergeben sonder kann direkt auf die adresse schreiben mit dem pfeiloperator.
    Normalerweise klappt das. Was hab ich denn falsch gemacht?



  • Hallo

    schau dir nochmal den Unterschied zwischen einem Pointer und einer Instanz an.
    Wenn du es richtig machen willst, muß es so aussehen

    memberdaten *member = new memberdaten(); // Pointer mit gültiger Instanz wird erzeugt
    ...
    delete member; // Instanz wird gelöscht
    

    Allerdings kannst du auch Stack-Variablen (also Dinge die nicht von dir mit new erstellt wurden) effizient an Funktionen übergeben, indem du Referenzen benutzt.

    Schau dir mal ein Tutorial (siehe diese Seite im Menü rechts oben) über C++ Grundlagen an, dort wird das alles erklärt.

    bis bald
    akari



  • danke für die schnelle Antwort...

    ich werd mir das tourt. nochmal anschauen. ABer du weisst das ein leihe nicht sofort alles checkt 👎



  • ok ich habe das jetzt dynamisch mit dem new operator gemacht.

    So jetzt hab ich ein drittes Formular und möchte auf die member zugreifen!
    Leider geht das nicht obwohl ich die header usw eingebunden habe.
    Wie mache ich da am besten?



  • Hallo

    da du keine genauen Angaben gemach thast kann ich dich nur auf FAQ hinweisen, da steht im Abschnitt Forms ein passender Thread.

    bis bald
    akari



  • bin schon am suchen...eine frage wo muss ich das "delete member" jetzt hinschreiben?

    Weil wenn ich das mit dem Button lösche, kann ja logisch kein weiteres Member gebildet werden und ich bekomme nen Speicherzugriffsfehler 😕

    Wenn es eine logischer Ablauf wäre, würde ich das am ende von Main bzw einer Funktion hinschreiben. Leider ist hier ja wieder alles ereigniss gesteuert und ich hab keine AHNUNG wo ich das am besten hinsetzte 😕 in WINMAIN geht das ja nicht...



  • Hallo

    dazu benutzt du den Konstruktor (für new...) und den Destruktor (für delete...)

    Denn Destruktor must du noch selber einfügen :
    TForm1.h

    ...
            __fastcall TForm1(TComponent* Owner);
    
            __fastcall ~TForm1(); // Deklarationn des Destruktors
    };
    ...
    

    TForm1.cpp

    // Implementation des Destruktors
    __fastcall TForm1::~TForm1()
    {
      delete ...
      }
    

    bis bald
    akari



  • da ich jetzt keinen neuen thread extra aufmachen wollte, dachte ich ich schreibe meine Frage hier herein.

    Also ich bekomme immer eine Fehlermeldung:

    "Bezeichner "rechenart" mehrfach deklariert
    rechenart bereits deklariert"

    was habe ich hier falschgemacht? 😕

    Die Klasse hab ich in der Header deklariert!
    Die Methode in der .cpp
    hier der code[code]:

    class rechenart
    {
    private:
    float y;
    float x;
    float a;
    float b;
    float d;

    public:
    float rechnen(void);
    };

    float rechenart::rechnen(void)
    {
    class rechenart art1;

    // y = (b – a)/(b*b – a*d)
    // x = (b – d)/(b*b – a*d)
    }

    danke schonmal im vorraus.



  • ich habe zwar den Fehler gefunden, aber so richtig verstanden habe ich das nicht!?

    ich habe einfach wohl eine headerdatei zuviel eingebunden... 😕



  • JuanPabloIssa schrieb:

    da ich jetzt keinen neuen thread extra aufmachen wollte, dachte ich ich schreibe meine Frage hier herein.

    Ich darf dir nochmal die Faustregel an's Herz legen: ein Thema pro Thread, ein Thread pro Thema.

    Die hier aufgelaufenen Diskussion schreit diesbezüglich ohnehin zum Himmel.


Anmelden zum Antworten