![]() |
Tstringgrid, array
Liste der Anhänge anzeigen (Anzahl: 1)
ich habe in der 1.tstringgrid eine zufällige liste erzeugt.
anhand von den unterschiedlichen sortier-möglichkeiten möchte ich die ergebnisse in der 2. stringgrid wiedergeben. meine frage wäre daher, wie ich die funktionen (Bsp: ![]()
Delphi-Quellcode:
funktioniert leider nicht.
objekt.BubbleSort(sgtab2.cells[0,1+i]);
|
Re: Tstringgrid, array
Hallo,
Funktionen aus einer anderen Unit kannst du über ihren qualifizierten Namen aufrufen - d.h. du setzt einfach den Unitnamen davor:
Delphi-Quellcode:
Grüße vom marabu
Sort.BubbleSort();
|
Re: Tstringgrid, array
Die prinzipielle Vorgehensweise für das von dir angegebene Bubble-Sort:
Delphi-Quellcode:
Im konkreten Fall mit StringGrids, hast du Zugriff auf die einzelnen Spalten mit StringGrid.Cols: TStrings. Ich würde es so versuchen (blind geschrieben):
StringList2.Assign(StringList1);
Objekt.BubbleSort(StringList2);
Delphi-Quellcode:
Evtl. musst du dir die zu sortierende Liste in einer Stringliste zwischenspeichern um sie zu sortieren. Ich weiß nicht genau wie sich das Stringgrid verhält, wenn man das über den Zugriff auf die Eigenschaft direkt macht. Vielleicht verfälscht es dir dein Ergebnis, weil das Stringgrid im Hintergrund Aktivitäten durchführt.
StringGrid2.RowCount:=StringGrid1.RowCount;
StringGrid2.Cols[1].Assign(StringGrid1.Cols[1]); BubbleSort(StringGrid2.Cols[1]); // ob das so funktioniert, weiß ich nicht Gruß, Panthrax. |
Re: Tstringgrid, array
was mach ich noch falsch?
Delphi-Quellcode:
{Stringliste1:=TStringList.Create;
for i := 0 to High(Feld) do begin Stringliste1.Add(intToStr(Feld[i])); end; //result := Stringliste1; Stringliste2:=TStringList.Create; for i := 0 to High(Feld) do begin Stringliste2.Add(intToStr(Feld[i])); end;} if cbbubble.Checked then begin //Bubble-Sort Button sgtab2.Cols[0].Assign(sgtab.Cols[0]); sgtab2.Cols[1].Assign(sgtab.Cols[1]); sgTab.cells[0,0]:='Nr.'; sgTab.cells[1,0]:='Binär'; objekt.BubbleSort(Stringliste2); objekt.BubbleSort(Feld); //sgtab2.Cols[1] ... if cbquick.checked then begin //Quick-Sort Button for I:=Low(Feld) to High(Feld) do Feld[I]:=Random(High(Integer)); sgTab2.cells[1,1+i]:= inttostr(feld[i]); //Feld[I]:= strtoint(sgTab.cells[1,1+i]); objekt.quick_Sort(Feld); //Bubble Sort in Klasse Tsuch: (objekt:=TSuch) procedure TSuch.BubbleSort(var A: Array of Integer); begin for i:=0 to high(A)-1 do begin done:=true; for k:=0 to high(A)-1 do begin if A[k] > A[k+1] then begin Hilf := A[k]; A[k] := A[k+1]; A[k+1] := Hilf; done:=false; end; end; if done then exit; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:48 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 by Thomas Breitkreuz