-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by leddl,
23. Feb 2006
Ah, du hast also doch einen Button fürs Ändern und einen fürs Hinzufügen. Aber OK, ich habs jetzt verstanden. ;)
In der Suchfunktion wird ja der ItemIndex der ListBox auf das gefundene Item gesetzt. Wird nichts gefunden, ist der ItemIndex -1. Das müßtest du also nach der Schleife nur abfragen und deine Message ausgeben.
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by leddl,
23. Feb 2006
Um deine Erklärung zusammenzufassen (ich habs nich so recht verstanden):
Bei einem einfachen Klick löschst du eine Zeile, bei einem Doppelklick gibst du dem User die Möglichkeit, die Zeile zu ändern? :gruebel:
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by leddl,
23. Feb 2006
Dir ist aber schon klar, daß du so, wie du es jetzt beschrieben hast, wieder vor einem Problem stehen wirst? ;)
Aber vielleicht hast du dich ja nur verschrieben.
Deeeeenn:
Bei jedem Doppelklick wird auch automatisch das onClick-Ereignis ausgelöst. ;) Das heißt für dich: Wenn du weiterhin im onClick die Items löschst, bist du genauso schlau wie zuvor :zwinker:
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by leddl,
23. Feb 2006
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. ;)
:lol: Glaub mir, so gut bin ich nun auch wieder nicht :lol:
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by leddl,
23. Feb 2006
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...
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by leddl,
23. Feb 2006
Warum? Du mußt doch einfach nur einen 2. Button einfügen, der dann eben ein bereits vorhandenes Item updatet.
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by leddl,
23. Feb 2006
: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. ;)
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by leddl,
23. Feb 2006
Na du darfst natürlich nicht den selben Button benutzen. ;) Denn hinter dem steht ja Code, der eben ein neues Element einfügt. Um ein vorhandenes zu aktualisieren, mußt du ihm einfach deinen String zuweisen.
ListBox1.Items := IrgendeinString;
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by leddl,
21. Feb 2006
Na gut, das mußt du natürlich selber erledigen. Woher sollen deine Editfelder denn wissen, daß sie gefüllt werden sollen, geschweige denn mit was. :zwinker:
Das war es, was ich mit "Stringfrimeleien" meinte, du mußt nämlich jetzt das markierte Element der ListBox auseinandernehmen und die Einzelteile in die entsprechenden Editfelder einfügen.
Dafür solltest du dir Pos, Copy und evtl. Delete...
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by leddl,
21. Feb 2006
Kein Problem, stell deine Fragen, wenn du welche hast. Dafür is das Forum ja da. :lol:
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by leddl,
20. Feb 2006
Hast du denn inzwischen MultiSelect deaktiviert? Dann kannst du direkt per ListBoxText.ItemIndex auf das markierte Item zugreifen (ListBoxText.Items).
Sollte MultiSelect noch aktiviert sein, mußt du tatsächlich die Items in der ListBox durchgehen und mit ListBoxText.Selected prüfen, ob das entsprechende Item ausgewählt ist. Allerdings dürfte für eine Änderungsfunktion wie du sie hast MultiSelect...
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by leddl,
20. Feb 2006
Kein Problem, mir wurde hier auch schon oft geholfen, ist doch selbstverständlich.
Kommt drauf an, von wo :lol: Schau einfach auf die DP-Karte, dann weißte wo. :zwinker:
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by leddl,
20. Feb 2006
Fehler gefunden und enttarnt :mrgreen:
Meine Methode funktioniert. Problem ist nur, daß du für deine ListBox MultiSelect aktiviert hast. Damit scheint dann das Setzen des ItemIndex nicht mehr zu funktionieren. Ist mir neu, scheint aber so zu sein. (Genau für solche Kleinigkeiten wollte ich übrigens das gesamte Projekt, das erkennt man aus Quelltext nämlich eher schlecht :lol:)
Stattdessen mußt...
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by leddl,
20. Feb 2006
Moment, ich hab es bisher nur in meinem Code getestet. Ich setz das mal in dein Projekt ein und debugge ;)
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by leddl,
20. Feb 2006
Das "könnte" heißt einfach nur, daß das eben eine Möglichkeit wäre, es zu implementieren. ;)
Wenn du dir in dieser Methode am Schluß noch den aktuellen Index speicherst, könntest du sogar so recht einfach ein "Weiter suchen" realisieren ;)
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by leddl,
20. Feb 2006
Habs bekommen und auch sofort deinen Denkfehler gefunden. Du speicherst in der ListBox nicht nur einen bestimmten String, den du suchen möchtest, sondern setzt jedes Item aus diversen Strings zusammen. Das hättest ruhig mal etwas früher sagen können. :zwinker:
Denn damit geht das dann nicht mehr so einfach mit IndexOf, da so jedes Item als ganzes überprüft wird. Du mußt daher doch wieder mit...
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by leddl,
20. Feb 2006
Leddlgmx.de, aber Anhang is eigentlich ganz einfach: Durchsuchen --> Datei auswählen --> Attachment hinzufügen ;)
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by leddl,
20. Feb 2006
Machs mir mal einfacher und füge dein gesamtes Projekt als Anhang (am besten als zip) hier im Forum ein. Dann kann ichs einfach mal bei mir compilieren und testen. ;) Bin grade zu faul, mir aus dem allen hier ein Projekt zu erstellen ;)
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by leddl,
20. Feb 2006
Stell deinen Projekt mal hier rein, dann schau ichs mir mal an.
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by leddl,
20. Feb 2006
Ich hab es eben gerade auch mal getestet. In D2k5 tut es genau das, was ich davon erwartet habe: Ein Klick auf den Button markiert das entsprechende Element in der ListBox. Dabei mußte ich sogar erstaunt feststellen, daß IndexOf wohl alles andere als CaseSensitive arbeitet. ;)
Hier nochmal mein Code (Direkt aus der funktionierenden Anwendung kopiert ;))
procedure TForm1.Button1Click(Sender:...
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by leddl,
20. Feb 2006
Hast du auch die Schleife entfernt? Und welchen von meinen Codestücken hast du benutzt? Der erste färbt einfach die ListBox komplett ein, der zweite markiert den entsprechenden Eintrag.
Du sagtest, daß "sich nach der Eingabe nichts regt". Du hast aber schon auf den Button gedrückt, oder? ;) Und der String, den du in das Editfeld eingegeben hast, ist auch definitiv in der ListBox enthalten?
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by leddl,
20. Feb 2006
if ListBoxText.Items.IndexOf(Edit9Suche.Text) > -1 then
ListBoxText.Color := TColor(3);
Dein Code macht so einfach keinen rechten Sinn. Ich hoffe, ich habe es aber trotzdem richtig interpretiert.
//Edit: Ich sehe gerade, du willst das gefundene Item markieren.
ListBoxText.ItemIndex := ListBoxText.Items.IndexOf(Edit9Suche.Text);
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by leddl,
20. Feb 2006
:gruebel: Wozu willst du eine Schleife benutzen? Du hast dein EditFeld mit dem zu suchenden Begriff und du hast die ListBox.
Mit IndexOf kannst du jetzt den Index des Suchbegriffs in der ListBox herausfinden. (-1 für "nicht gefunden", 0 für das erste Element, 1 für das zweite...) Da is nix mit Schleife, sondern einfach nur die eine Zeile, die jetzt schon mehrmals gepostet wurde. ;)
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by leddl,
20. Feb 2006
Maus drauf und staunen :zwinker:
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by leddl,
20. Feb 2006
Na übersetz doch IndexOf mal ins Deutsche. :stupid: Dan wird schnell klar, daß dir dadurch der Index des übergebenen Strings in der ListBox zurückgegeben wird. Ist der String nicht gefunden worden, bekommst du als Rückgabewert -1.
Desweiteren kannst du dir genauere Informationen dazu auch aus der Onlinehilfe von Delphi holen. Einfach "IndexOf" tippen, F1 drücken und lesen. ;)
//Edit: :shock:...