Einzelnen Beitrag anzeigen

Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Listbox mit StrinGrid vergleichen!?

  Alt 29. Jun 2005, 08:57
Also zuallererst blicke ich

Was bezwckst du denn mit folgender Zeile?
for j := Listbox1.ItemIndex to Listbox1.Items.IndexOf(StringGrid1.Cells[i,x])do j wird später nicht benutzt, also wofür da ne for-Schleife? Diese Schleife dürfte wahrscheinlich der Grund für deine Wiederholungen sein. Ich schätze, weil du hinten i anstatt y geschrieben hast. Kann das sein? Ansonsten verstehe ich denn Sinn dieses Austausches nicht. Und warum arbeitest du hier überhaupt mit dem ItemIndex der ListBox?

Daß dir hier kaum einer hilft, dürfte daran liegen, daß man den Code einfach kaum verstehen kann. Sorry. Erklär doch nochmal ganz genau, was dein Code eigentlich machen soll. Auch aus deiner Erklärung im ersten Post werde ich nicht ganz schlau.
Aber ich versuch mal trotzdem, es nochmal so widerzugeben, wie ich es verstanden habe.
Du hast aus deinem Stringgrid bestimmte Spaltenüberschriften (fixed Columns?) in eine ListBox kopiert. Jetzt möchtest du, daß alle - in die ListBox eingefügten - Spalten in ein Memo geschrieben werden - als Zeilen. Soweit richtig?
OK, versuchen wir mal, das logisch anzugehen. Du mußt also die Zeilen der ListView durchgehen, dann jeweils die Spalten des StringGrids. Und nur, wenn eine Übereinstimmung in der Überschrift besteht, mußt du auch die restlichen Zeilen des StringGrids betrachten.
Delphi-Quellcode:
for i := 0 To ListBox1.Items.Count - 1 Do
  for x := 0 To StringGrid1.ColCount - 1 Do
    If ListBox1.Items[i] = StringGrid1.Cells[0,x] Then
    begin
      vZeile := '';
      for y := 0 To StringGrid1.RowCount - 1 Do
      begin
         if Edit2.Text = 'TABthen
           vTrennzAus := chr(vk_tab)
         else
           vTrennzAus := Edit2.Text;
      
         vZeile := vZeile + StringGrid1.Cells[i,x] + vTrennzAus;
      end;
      memo1.Lines.Add(vZeile);
    end;
Das hab ich jetzt in kurzer Zeit ungetestet hingeschludert, es sollte es aber im Groben tun. Wahrscheinlich hab ich allerdings trotzdem einige Fehlerchen eingebaut. Höchstwahrscheinlich soga dicke Verständnisfehler. Hab jetzt auch im Moment leider keine Zeit, da ich wegmuss, aber ich schaus mir nachher nochmal genauer an.
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat