AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi störendes '=' vor String nach Update von TStringList
Thema durchsuchen
Ansicht
Themen-Optionen

störendes '=' vor String nach Update von TStringList

Ein Thema von bensh · begonnen am 4. Dez 2006 · letzter Beitrag vom 4. Dez 2006
Antwort Antwort
bensh

Registriert seit: 3. Dez 2006
6 Beiträge
 
Delphi 7 Professional
 
#1

störendes '=' vor String nach Update von TStringList

  Alt 4. Dez 2006, 19:39
Moin.
Ich habe ein Problem beim Updaten eines Items einer TStringList, das ich mir nicht erklären kann!!!

Ich spreche eine Funktion zum Updaten eines Eintrags an, führt die MessageBox auch den korrekten Wert auf.
Nun ist es aber komischerweise so, dass nach dem Beenden dieser Funktion der Eintrag Value[i] mit einem sch...ß Gleichheitszeichen anfängt. Ich habe nirgenswo geschrieben, das das da rein soll!! ich häng hier schon seit 2 Stunden am Debuggen!!!

Eintrag soll sein: 'EintragderListe'
Eintrag ist: '=EintragderListe'

Befreit mich bitte!!!!! Danke!

Delphi-Quellcode:
var
  Values : TStringList;

...

// stinknormales zuweisen
procedure TForm1.EditItem(i : Integer; item1 : String; item2 : String);
begin
  Values.ValueFromIndex[i] := item1+' '+item2;
  ShowMessage(Values.ValueFromIndex[i]); //<--- gibt korrekten wert!!!
end;

// Values in eine Datei schrieben
procedure TForm1.WriteToFile();
var
  handle : textFile;
  i : Integer;
begin
                                // <--- Hier ist Values[i] schon scheisse!
  try
    if Values.Count > 0 then
      Values.SaveToFile(hostfile)
    else
    begin
    // workaround für den letzten gelöschten eintrag
    // leere Datei. Es hat sonst vorher immer geknallt!
    assignFile(handle,hostfile);
    ReWrite(handle);
    Write(handle, '');
    CloseFile(handle);
    end;
  except
    showMessage('Fíle kann nicht beschrieben werden');

  end;
end;
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: störendes '=' vor String nach Update von TStringList

  Alt 4. Dez 2006, 19:46
Hi,

wenn du die Stringliste nicht zum Speichern von name/value-pairs benutzen willst, dann sind die properties Names[], Values[] und ValueFromIndex[] tabu für dich:

Delphi-Quellcode:
// stinknormales zuweisen
procedure TForm1.EditItem(i : Integer; item1 : String; item2 : String);
begin
  Values[i] := item1 + ' ' + item2;
end;
Oder hast du eine gute Erklärung für dein Vorgehen?

Grüße vom marabu
  Mit Zitat antworten Zitat
bensh

Registriert seit: 3. Dez 2006
6 Beiträge
 
Delphi 7 Professional
 
#3

Re: störendes '=' vor String nach Update von TStringList

  Alt 4. Dez 2006, 20:43
Ah! Gut zu wissen dass man die TStringList auch als eine Art Dictionay nutzen kann.
Ich habe schon vergebens nach einer Lösung hierfür gesucht... Danke dafür!

Wie nutzt ich denn die Schlüssel->Wert Geschichte?!
  Mit Zitat antworten Zitat
harald44

Registriert seit: 3. Dez 2006
Ort: Dierikon - CH
5 Beiträge
 
Delphi 5 Professional
 
#4

Re: störendes '=' vor String nach Update von TStringList

  Alt 4. Dez 2006, 20:55
Hi bensh

Zeig mal den Code, wo die Methode "TForm1.EditItem" aufgerufen wird.
Ansonsten bin ich der gleichen Meinug wie "marabu".
  Mit Zitat antworten Zitat
bensh

Registriert seit: 3. Dez 2006
6 Beiträge
 
Delphi 7 Professional
 
#5

Re: störendes '=' vor String nach Update von TStringList

  Alt 4. Dez 2006, 21:57
hi harald.

code:
Delphi-Quellcode:
procedure TForm1.Button6Click(Sender: TObject);
var
 action : Integer;
 selected: Integer;
 item: String;
 A : TStringList;
begin

  try
    A := TStringList.Create;
    selected := ListBox1.ItemIndex;
    if selected < 0 then ShowMessage('Kein Eintrag ausgwählt!')
    else
    begin
      action := MessageDlg('"'+item+'" ändern?', mtWarning , mbOKCancel, 0);
      if action = mrOK then
      begin
        item := Values[selected];
        Split(' ', item, A);
        Edit3.Text := a[0];
        Edit4.Text := a[1];
        ShowEditComponents();
      end;
    end;
  finally
    A.Free;
  end;
end;
Wie du siehts würde ich die name/value kombi brauchen

Cheers

---
Edit:
ich habe das jetzt zu fuss gelöst. Nicht schön aber es funkt. Über alle Elemente iterieren und stringCompare()
  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 08:57 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