AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Doppelten String nicht übergeben

Ein Thema von SaFu · begonnen am 11. Jun 2007 · letzter Beitrag vom 12. Jun 2007
Antwort Antwort
Seite 2 von 3     12 3   
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.752 Beiträge
 
Delphi 10.4 Sydney
 
#11

Re: Doppelten String nicht übergeben

  Alt 11. Jun 2007, 18:50
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:
for i:=0 to StringGrid1.rowCount -1 do
  begin
    if StringGrid1.Cells[11,i] <> Edit1.text then
      // füge hinzu
   else
     // mache nichts
  end;
Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von SaFu
SaFu

Registriert seit: 8. Nov 2006
1.360 Beiträge
 
Delphi 10.3 Rio
 
#12

Re: Doppelten String nicht übergeben

  Alt 11. Jun 2007, 18:51
Das ist eigentlich egal es wre sogar besser wenn es sotiert wäre
"... Wie gesagt, die Nutzer von 10, 12, 14 Zoll Display's werden deine Seite nicht in voller Pracht sehen können, ...

Surft Ihr mit dem Taschenrechner?"
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.752 Beiträge
 
Delphi 10.4 Sydney
 
#13

Re: Doppelten String nicht übergeben

  Alt 11. Jun 2007, 18:59
Hallo Sascha,

das sollte in etwas so gehen:

Delphi-Quellcode:
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;
Habe es nicht getestet.
Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von SaFu
SaFu

Registriert seit: 8. Nov 2006
1.360 Beiträge
 
Delphi 10.3 Rio
 
#14

Re: Doppelten String nicht übergeben

  Alt 11. Jun 2007, 19:11
Naja funktioniert nicht ganz
"... Wie gesagt, die Nutzer von 10, 12, 14 Zoll Display's werden deine Seite nicht in voller Pracht sehen können, ...

Surft Ihr mit dem Taschenrechner?"
  Mit Zitat antworten Zitat
CCRDude
(Gast)

n/a Beiträge
 
#15

Re: Doppelten String nicht übergeben

  Alt 11. Jun 2007, 19:13
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])...).
  Mit Zitat antworten Zitat
Benutzerbild von SaFu
SaFu

Registriert seit: 8. Nov 2006
1.360 Beiträge
 
Delphi 10.3 Rio
 
#16

Re: Doppelten String nicht übergeben

  Alt 11. Jun 2007, 19:36
Verstehe deinen satz nicht genau meinst du die Spalten von das vom Klaus war doch schon ganz gut oder verstehe ich da was nicht
"... Wie gesagt, die Nutzer von 10, 12, 14 Zoll Display's werden deine Seite nicht in voller Pracht sehen können, ...

Surft Ihr mit dem Taschenrechner?"
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.752 Beiträge
 
Delphi 10.4 Sydney
 
#17

Re: Doppelten String nicht übergeben

  Alt 11. Jun 2007, 21:07
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:
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;
Grüße
Klaus
Angehängte Dateien
Dateityp: zip project1_773.zip (223,0 KB, 1x aufgerufen)
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von SaFu
SaFu

Registriert seit: 8. Nov 2006
1.360 Beiträge
 
Delphi 10.3 Rio
 
#18

Re: Doppelten String nicht übergeben

  Alt 11. Jun 2007, 22:26
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
Angehängte Dateien
Dateityp: zip stringgrid_952.zip (238,5 KB, 3x aufgerufen)
"... Wie gesagt, die Nutzer von 10, 12, 14 Zoll Display's werden deine Seite nicht in voller Pracht sehen können, ...

Surft Ihr mit dem Taschenrechner?"
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.752 Beiträge
 
Delphi 10.4 Sydney
 
#19

Re: Doppelten String nicht übergeben

  Alt 12. Jun 2007, 07:43
Zitat von fuknersascha:
...
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
Guten Morgen Sascha,

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:
if (pos(Edit1.Text,label1.caption) > 0 then
  // Eintrag vorhanden
else
  // Eintrag nicht vorhanden
Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von SaFu
SaFu

Registriert seit: 8. Nov 2006
1.360 Beiträge
 
Delphi 10.3 Rio
 
#20

Re: Doppelten String nicht übergeben

  Alt 12. Jun 2007, 10:53
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
"... Wie gesagt, die Nutzer von 10, 12, 14 Zoll Display's werden deine Seite nicht in voller Pracht sehen können, ...

Surft Ihr mit dem Taschenrechner?"
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 14:09 Uhr.
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