Tmemo
-
Ob ich ein schwerwiegendes Problem habe, sollte hier doch keinem Interessieren. Ich hab mich hier angemeldet und gehofft, dass ich hier hilfe bekommen

Zu meiner sachlichen Frage: Da ich kein neues Thema extra aufmachen wollte, frage ich hier es geht um ListBox. Wie kann ich ein einzelnes Element aus der Liste löschen? ALso ich klicke auf dem Item. Und dann möchte ich über eine Button löschen. Also ich dachte so da an ListBix->Item->Clear(); aber dann wir alles komplett gelöscht.
Danke schonmal im vorraus...und ja egal was ich für Probleme habe, hilfe kann ich immer gebracuhen

-
Hallo
bitte BCB-Hilfe benutzen
ListBox->Items->Delete()bis bald
akari
-
Danke Akari für die schnelle Antwort. Ja mit der BCB Hilfe hab ich noch so meine Probleme z.b.
mit delete löscht er das element, das ich Delete(z.b.0) eingetippt habe. Wie mache ich das aber so, das wenn ich in der Listbox makiere und dann auf löschen drücke, er genau dann die Position löscht?.
-
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 gebildetfalsch. 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 aussehenmemberdaten *member = new memberdaten(); // Pointer mit gültiger Instanz wird erzeugt ... delete member; // Instanz wird gelöschtAllerdings 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.