Delphi-PRAXiS
Seite 6 von 7   « Erste     456 7      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   In einer ListBox einen Eintrag suchen bzw. Eintrag ändern (https://www.delphipraxis.net/63563-einer-listbox-einen-eintrag-suchen-bzw-eintrag-aendern.html)

jeany06 23. Feb 2006 16:36

Re: In einer ListBox einen Eintrag suchen bzw. Eintrag änder
 
Verstehe nicht ganz,ich fordere den Benutzer auf per Klick auf eine Zeile in der Listbox für das Ändern zu markieren. Ist das passiert, wird über die procedure Listbox, die Zeile in die Editfelder gelegt. Dann wird vom Benutzer geändert und erst dann wird der Button Ändern benutzt. Der die Zeile dann in die Listbox zurück führt. Jedoch als neue Zeile und nicht die alte markierte überschreibt.

Matze 23. Feb 2006 16:37

Re: In einer ListBox einen Eintrag suchen bzw. Eintrag änder
 
Moin, nur ein kleiner ergänzender Tipp, mhr verrate ich nicht, denn man lernt am besten durch Herumprobieren. :stupid:

Du fügst ja per Items.Add beim Ändern ein Item hinzu, das darfst du natürlich dann nicht machen, da du keinen neuen Eintrag hinzufügen, sondern einen bestehenden ändern möchtest. Merke dir den ItemIndex (evtl. ändert er sich auch nicht) und überschreibe diesen beim Ändern wieder, wie es Axel geschrieben hat:

Delphi-Quellcode:
ListBox.Items[IndexVar] := 'Geänderter Text';

jeany06 23. Feb 2006 18:03

Re: In einer ListBox einen Eintrag suchen bzw. Eintrag änder
 
So die Herren, Programm ist fertig. :dance: + :party: Ging aber einfacher, ohne eure Vorschläge über das Löschen der markierten Zeile nach Einlagerung in die Editfelder.
Möchte mich jetzt nochmals recht herzlich bei euch bedanken. Macht weiter so!!!! :thumb: Lg jeany
Bye :hi:

leddl 23. Feb 2006 18:09

Re: In einer ListBox einen Eintrag suchen bzw. Eintrag änder
 
:lol: Das ist aber mit Kanonen auf Spatzen geschossen. ;) Stell dir vor, der User markiert nur eine Zeile, um sich den Inhalt anzuschauen und beschließt danach, einen neuen Eintrag hinzuzufügen. Er ändert also die Daten entsprechend und will sie hinzuügen und *schwuppdi* ist der alte Eintrag weg. Und so viel komplizierter ist der Weg über einen 2. Button auch nicht. ;)

jeany06 23. Feb 2006 18:18

Re: In einer ListBox einen Eintrag suchen bzw. Eintrag änder
 
Ok, du hast gewonnen. Nicht überlegt, aber nach deiner Schilderung und erfolgter Probe logisch und einsichtlich. Bin aber mit meinem 'Delphi-Latein' echt am Ende. Zudem ist ja jeztt auch durch die OnKlick-Eigenschaft ein Hindernis für das Löschen einer Zeile aufgetreten, weil jetzt springen ja alle Elemente in die Editfelder sobald nur eine Zeile in der Listbox markiert ist.
Da war wohl die Freude ein wenig zu früh, ärgerlich.... nun gut, gebe nicht auf!!!

leddl 23. Feb 2006 18:23

Re: In einer ListBox einen Eintrag suchen bzw. Eintrag änder
 
Zitat:

Zitat von jeany06
Bin aber mit meinem 'Delphi-Latein' echt am Ende.

Warum? Du mußt doch einfach nur einen 2. Button einfügen, der dann eben ein bereits vorhandenes Item updatet.

jeany06 23. Feb 2006 18:39

Re: In einer ListBox einen Eintrag suchen bzw. Eintrag änder
 
Mir fehlt echt das Verständnis, weil, vielleicht beschreibe ich es auch zu blöd...
Ich habe die Listbox auf OnClick gestellt, beim anklicken gehen alle Elemente aus der Zeile in die oberen Editfelder, dann kann der User ändern, ohne bis hierher einen Button gedrückt zu haben. Erst wenn er alle Korrekturen vorgenommen hat drückt er den Button um die Elemente der Zeile zurück in die Listbox zu bringen. Was soll der zweite Button nun????? :wall: Daher dachte ich und es klappte ja auch, dass im gleichen Atemzug wo der Button gedrückt wird die alte markierte Zeile gelöscht wird.
Deshalb 'am Ende'.

leddl 23. Feb 2006 18:48

Re: In einer ListBox einen Eintrag suchen bzw. Eintrag änder
 
Aber der User soll doch gleichzeitig auch die Möglichkeit haben, neue Elemente hinzuzufügen, oder? Daher mußt du eben beide Fälle (markiertes Element ändern, neues Element hinzufügen) gesondert betrachten.
Wenn du jetzt also einfach in deinem OnClick das Löschen des markierten Elements auschaltest, sollte doch alles funktionieren.
Ein Klick auf ein Item -> Editfelder werden gefüllt
Klick auf Ändern -> Übernahme der Daten in das markierte ListBox-Item
Klick auf Hinzufügen -> Neues Element mit den Daten aus den Editfeldern.

Das Problem beim Arbeiten mit nur einem Button für Ändern/Hinzufügen besteht darin, daß du ja eigentlich nur über ein markiertes Item erkennst, ob geändert oder hinzugefügt werden soll. Aber wer sagt denn, daß ein User nicht ein Element markiert hat, aber trotzdem ein neues hinzufügen will? :zwinker:

Sollte ich dein Programm falsch verstanden haben, korrigiere mich, aber so wie ich es gesehen habe, soll das ganze so eine Art Adressverwaltung sein, oder? Daher braucht der User eben beide Funktionalitäten. Wenn du eine einfachere Lösung findest, die auch narrensicher ist, verrate es mir, das könnte ich auch immer gut gebrauchen :mrgreen:

jeany06 23. Feb 2006 18:54

Re: In einer ListBox einen Eintrag suchen bzw. Eintrag änder
 
Aber der Hinzufügen-Button existiert und funktioniert allein sowie im Programm. Der Änderungsbutton, räumt doch auch gleich, wenn die Zeile zurück aus den Editfeldern in die Listbox geht die Editfelder, so dass der Benutzer dann sofort wieder neue Daten eingeben kann, also hinzufügt. Der einzige Nachteil ist, das blöde onklick der Listbox, weil so keine separate Zeile mehr gelöscht werden kann, da bei jedem klick, die Zeile in die Editfelder nach oben wandert, ohne die Möglichkeit einer sinnlichen Betrachtung.
Und dich zu toppen ist schier unmöglich!!!!! Glaube solch geniales Meisterstück gelingt mir nicht....

leddl 23. Feb 2006 19:03

Re: In einer ListBox einen Eintrag suchen bzw. Eintrag änder
 
Zitat:

Zitat von jeany06
Aber der Hinzufügen-Button existiert und funktioniert allein sowie im Programm. Der Änderungsbutton, räumt doch auch gleich, wenn die Zeile zurück aus den Editfeldern in die Listbox geht die Editfelder, so dass der Benutzer dann sofort wieder neue Daten eingeben kann, also hinzufügt. Der einzige Nachteil ist, das blöde onklick der Listbox, weil so keine separate Zeile mehr gelöscht werden kann, da bei jedem klick, die Zeile in die Editfelder nach oben wandert, ohne die Möglichkeit einer sinnlichen Betrachtung.

Du könntest natürlich auch über onDblClick (also bei einem Doppelklick) lösen. Allerdings finde ich es dem User ggü nicht richtig, schon alleine durch Klick oder Doppelklick ein Element zu löschen. Sowas passiert auch mal aus Versehen. ;)
Zitat:

Zitat von jeany06
Und dich zu toppen ist schier unmöglich!!!!! Glaube solch geniales Meisterstück gelingt mir nicht....

:lol: Glaub mir, so gut bin ich nun auch wieder nicht :lol:


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:04 Uhr.
Seite 6 von 7   « Erste     456 7      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz