AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Eintrag nur hinzufügen wenn nicht in Listview vorhanden
Thema durchsuchen
Ansicht
Themen-Optionen

Eintrag nur hinzufügen wenn nicht in Listview vorhanden

Ein Thema von LordGinn · begonnen am 13. Okt 2014 · letzter Beitrag vom 21. Okt 2014
Antwort Antwort
LordGinn

Registriert seit: 13. Okt 2014
16 Beiträge
 
FreePascal / Lazarus
 
#1

AW: Eintrag nur hinzufügen wenn nicht in Listview vorhanden

  Alt 14. Okt 2014, 08:02
@DeddyH

Hi

Ist das nicht gern gesehen, wenn man das gleiche in zwei Foren postet?
Kann ja sein, dass jemand der die Lösung weiß nur in einem Forum registriert ist.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.659 Beiträge
 
Delphi 12 Athens
 
#2

AW: Eintrag nur hinzufügen wenn nicht in Listview vorhanden

  Alt 14. Okt 2014, 08:07
@DeddyH

Hi

Ist das nicht gern gesehen, wenn man das gleiche in zwei Foren postet?
Kann ja sein, dass jemand der die Lösung weiß nur in einem Forum registriert ist.
Gegen Crossposts an sich spricht erst einmal nichts. Allerdings sollte man die Threads dann untereinander verlinken, damit die Hilfewilligen sich ein Bild vom aktuellen Stand machen können. Es ist immer ärgerlich, wenn man sich den Kopf für ein Problem zerbricht, das in einem anderen Forum längst gelöst wurde.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
jensw_2000
(Gast)

n/a Beiträge
 
#3

AW: Eintrag nur hinzufügen wenn nicht in Listview vorhanden

  Alt 14. Okt 2014, 08:19
@DeddyH

Hi

Ist das nicht gern gesehen, wenn man das gleiche in zwei Foren postet?
Kann ja sein, dass jemand der die Lösung weiß nur in einem Forum registriert ist.
Man sollte schon darauf mit den entsprechenden Links darauf hinweisen, dass man die Frage in mehreren Foren gestellt hat.
Wenn die Frage in einem Forum vollständig beantwortet wurde, dann brauchen sich die Leute aus dem anderen Forum nicht die Mühe machen und eine unnötige neue Antwort zusammentippen ... Zeit ist ja auch irgendwo ein wertvolles Gut. Richtig ?
  Mit Zitat antworten Zitat
LordGinn

Registriert seit: 13. Okt 2014
16 Beiträge
 
FreePascal / Lazarus
 
#4

AW: Eintrag nur hinzufügen wenn nicht in Listview vorhanden

  Alt 14. Okt 2014, 13:31
Da habt ihr Recht!

Ich seh mir den Code morgen an.
  Mit Zitat antworten Zitat
LordGinn

Registriert seit: 13. Okt 2014
16 Beiträge
 
FreePascal / Lazarus
 
#5

AW: Eintrag nur hinzufügen wenn nicht in Listview vorhanden

  Alt 15. Okt 2014, 17:35
Ich habe jetzt folgenden Code geschrieben, da ich eure nicht verstehe und es eine einfache Lösung geben muss.

Delphi-Quellcode:
  procedure TForm2.Button1Click(Sender: TObject);
  var i: integer;
  begin
    if form2.RadioButton1.checked=true
     then for i := 0 to 50 do
       if (form1.ListView1.Items[i].Caption=edit1.text) then
         showmessage('Eintrag bereits vorhanden')
       else
         begin with
   form1.listview1.items.add do begin
   caption:=edit1.text;
   subitems.add(edit2.text);
   subitems.add(edit3.text);
   subitems.add(edit4.text);
   showmessage('Eintrag wurde hinzugefügt');
   end;
   end;
Bei (form1.ListView1.Items[i].Caption=edit1.text) gibt er mir einen sigsegv Fehler wenn das Programm läuft und die Procedure gefordert ist.
  Mit Zitat antworten Zitat
Benutzerbild von cookie22
cookie22

Registriert seit: 28. Jun 2006
Ort: Düsseldorf
936 Beiträge
 
Delphi XE2 Professional
 
#6

AW: Eintrag nur hinzufügen wenn nicht in Listview vorhanden

  Alt 15. Okt 2014, 18:41
Warum zählst du denn hier bis 50?

for i := 0 to Form1.Listview1.Items.Count - 1 do

Ich habe jetzt folgenden Code geschrieben, da ich eure nicht verstehe und es eine einfache Lösung geben muss.

Delphi-Quellcode:
...
    if form2.RadioButton1.checked=true
...
Du sollest nicht auf True oder False testen. Das kann zu Problemen führen.

if Form2.RadioButton1.Checked für True.

if not Form2.RadioButton1.Checked für False.

So ist es besser.
Gruß
Cookie

Geändert von cookie22 (15. Okt 2014 um 18:48 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.374 Beiträge
 
Delphi 12 Athens
 
#7

AW: Eintrag nur hinzufügen wenn nicht in Listview vorhanden

  Alt 15. Okt 2014, 18:52
Außerdem erst alle Einträge duchsehen, und danach (außerhalb der For-Schleife) dann auswerten, ob es gefunden wurde, oder nicht.
Eventuell gibt es zum Suchen auch eine Methode ala IndexOf, so wie bei vielen Listen/Collections.

Anderrum geht es bei "mache etwas, wenn nicht vorhanden" nunmal nicht.
Bei "mache etwas, wenn vorhanden, dann kann man die Liste durchgehen, beim Fund etwas machen
und dann mit Break abbrechen, falls nicht weitere Funde ebenfalls behandelt werden sollen.

Warum benutzt du die Variable Form2, wo der Code schon in TForm2 drin steht?

Und die oftmalige Verwendung der Variable Form1 sollte dir ebenfalls ein Hinweis sein, daß hier ein Designproblem vorliegt.
Denn der Code gehört ja wohl eindeutig in TForm1 rein, da öfters auf Komponenten dieser Form zugegriffen werden, als auf was Anderes.
z.B. in eine FügeHinzu(Text1, Text2, Text3, Text4: string) -Methode
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
LordGinn

Registriert seit: 13. Okt 2014
16 Beiträge
 
FreePascal / Lazarus
 
#8

AW: Eintrag nur hinzufügen wenn nicht in Listview vorhanden

  Alt 15. Okt 2014, 19:15
@cookie
Danke, ich habe das mit true und false geändert.
Den Code habe ich auch angepasst, doch gibt es ein kleines Problem. Wenn edit1.text nicht dem letzten Eintrag der Listview entspricht kommt die Meldung 'Eintrag bereits vorhanden' und wird aber trotzdem der Listview hinzugefügt mit der erfolgreichen Mitteilung. Wenn edit1.text dem letzten Eintrag entspricht funktioniert es perfekt.

@himitsu
Durchsuche ich nicht schon am Anfang die Liste?
Wie genau soll ich gefunden bzw nicht gefunden auswerten?
Mit IndexOf habe ich keinen Ansatz gefunden.
Ist das ein Problem, wenn ich es in Form2 lasse, läuft das Programm dann schlechter?

Delphi-Quellcode:
  procedure TForm2.Button1Click(Sender: TObject);
  var i: integer;
  begin

    if RadioButton1.checked
     then for i := 0 to Form1.Listview1.Items.Count - 1 do
       if not (form1.ListView1.Items[i].Caption<>edit1.text) then
               showmessage('Eintrag bereits vorhanden');
       if (form1.ListView1.Items[i].Caption<>edit1.text) then
       begin with
   form1.listview1.items.add do begin
   caption:=edit1.text;
   subitems.add(edit2.text);
   subitems.add(edit3.text);
   subitems.add(edit4.text);
   showmessage('Eintrag wurde hinzugefügt');
   end;
   end;
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz