![]() |
Re: Doppelten String nicht übergeben
Nun, wenn Du die Stringlist sortierst ändert sich auch die Reihenfolge
in der die Strings in der Liste angeordnet sind. Ich weiß nicht ob Du das willst? Wenn Du nur zwei Spalten auf Einträge überprüfen willst die schon vorhanden sind, warum gehst Du dann nicht Zeile für Zeile die Spalten durch und schaust nach ob ein Eintrag mit dem Eintrag Deines Editfeldes übereinstimmt.
Delphi-Quellcode:
Grüße
for i:=0 to StringGrid1.rowCount -1 do
begin if StringGrid1.Cells[11,i] <> Edit1.text then // füge hinzu else // mache nichts end; Klaus |
Re: Doppelten String nicht übergeben
Das ist eigentlich egal es wre sogar besser wenn es sotiert wäre
|
Re: Doppelten String nicht übergeben
Hallo Sascha,
das sollte in etwas so gehen:
Delphi-Quellcode:
Habe es nicht getestet.
var
sl: TStringList; begin sl := TStringList.create; sl.sorted := true; // Liste sortieren Modus sl.duplicated := dupIgnore; // keine doppelten Einträge sl.assign(StringGrid1.cols[11]); // zuweisen der Spalte 11 in die StringListe sl.add(edit1.text); // hinzufügen des neuen Textes, wenn doppelt wird er nicht hinzugefügt StringGrid1.cols[11].assign(sl); // zuweisen der StringListe in die Spalte 11 sl.free; // freigeben der StringListe end; Grüße Klaus |
Re: Doppelten String nicht übergeben
Naja funktioniert nicht ganz
|
Re: Doppelten String nicht übergeben
Dann musst Du "was" tun, damit es klappt.
... Sorry, ist genauso ne Antwort wie die Aussage "funktioniert nicht ganz" ;) Ich denke, das zuweisen per Add(andereliste.Text) kann auch bzgl. dupIgnore nicht funktionieren, wenn müssten alle getrennt zugewiesen werden (for i := ... to Count do Add(liste[i])...). |
Re: Doppelten String nicht übergeben
Verstehe deinen satz nicht genau meinst du die Spalten von das vom Klaus war doch schon ganz gut oder verstehe ich da was nicht
|
Re: Doppelten String nicht übergeben
Liste der Anhänge anzeigen (Anzahl: 1)
So, ich habe mal mit dem StringGrid ein wenig rumespielt und festgestellt,
daß das OnSetEditText Ereignis zu jedem Tastendruck abgefeuert wird der im EditModus in einer Zelle getätigt wird. Und das ist denkbar ungünstig zu nutzen um zu überprüfen ob eine Text/String schon in der Spalte vorhanden ist. Ist es in Deinem Programm nicht möglich, die Dateneingabe getrennt vom StringGrid zu machen? Das würde die Suche nach Duplikaten erheblich vereinfachen. Ich hätte mir das so vorgestellt:
Delphi-Quellcode:
Grüße
procedure TForm1.Button1Click(Sender: TObject);
var i:Byte; gefunden:Boolean; begin gefunden:=false; for i:=0 to StringGrid1.RowCount -1 do if StringGrid1.Cells[1,i] = edit1.Text then begin gefunden:=true; end; if not gefunden then begin StringGrid1.RowCount := StringGrid1.RowCount +1; StringGrid1.Cells[1,StringGrid1.RowCount -2]:=Edit1.Text; end; end; Klaus |
Re: Doppelten String nicht übergeben
Liste der Anhänge anzeigen (Anzahl: 1)
So ab mal die funktion vom StringGrid angehäng
Wenn mann in der spalte 11 und 12 was eingibt werden diese ans Edit weiter gegeben und vom Edit ans label Was ich jetzt gerne machen würde ist das im label keine doppelten einträge stehen ob die jetzt vom Editfeld oder vom Stringgrid gefiltert werden ist eigentlich egal komm einfach nicht weiter Hoffe es hilft weiter quelltext ist auch dabei |
Re: Doppelten String nicht übergeben
Zitat:
habe mir Deinen Quelltext noch nicht angeschaut, aber wenn das Label alle die Informationen hat welche schon eingegeben wurden, dann kannst Du das auch nur anhand des Labels überprüfen ob die gleichen Daten schon vorhanden sind. Ich würde das machen wenn die Eingabe vom Edit in das Label geht. Hier kannst Du z.B. mit pos überprüfen, ob der Edit Inhalt im Label schon vorhanden ist.
Delphi-Quellcode:
Grüße
if (pos(Edit1.Text,label1.caption) > 0 then
// Eintrag vorhanden else // Eintrag nicht vorhanden Klaus |
Re: Doppelten String nicht übergeben
funktioniert leider auch nicht
Kann es sein das es nicht funktioniert weil der eingegebene text als ganzer string eingelesen wird und deshalb nicht geprüft wird ? in den letzten zwei spalten im StringGrid werden nur abkürzungen max 2 buchstaben eigegeben und dann muss noch ein komma gesetzt werden das es besser zu lessen ist im Label das ist die einzige trennung de gesetzt werden muss |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:01 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