AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Tstringgrid, array

Ein Thema von danku · begonnen am 15. Nov 2006 · letzter Beitrag vom 17. Nov 2006
Antwort Antwort
Benutzerbild von danku
danku

Registriert seit: 9. Apr 2006
Ort: 32-bit Adressbus
181 Beiträge
 
Delphi 7 Enterprise
 
#1

Tstringgrid, array

  Alt 15. Nov 2006, 20:43
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: Bubble-Sort-Alg einzelnen aufrufe, weil diese in einer anderen unit ist.

 objekt.BubbleSort(sgtab2.cells[0,1+i]); funktioniert leider nicht.
Miniaturansicht angehängter Grafiken
sort_205.png  
  Mit Zitat antworten Zitat
marabu

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

Re: Tstringgrid, array

  Alt 16. Nov 2006, 11:39
Hallo,

Funktionen aus einer anderen Unit kannst du über ihren qualifizierten Namen aufrufen - d.h. du setzt einfach den Unitnamen davor:

 Sort.BubbleSort(); Grüße vom marabu
  Mit Zitat antworten Zitat
Panthrax

Registriert seit: 18. Feb 2005
286 Beiträge
 
Delphi 2010 Enterprise
 
#3

Re: Tstringgrid, array

  Alt 16. Nov 2006, 11:40
Die prinzipielle Vorgehensweise für das von dir angegebene Bubble-Sort:
  • die unsortierte Liste kopieren
  • die Kopie sortieren
Das könnte dann also so aussehen:
Delphi-Quellcode:
StringList2.Assign(StringList1);
Objekt.BubbleSort(StringList2);
Im konkreten Fall mit StringGrids, hast du Zugriff auf die einzelnen Spalten mit StringGrid.Cols: TStrings. Ich würde es so versuchen (blind geschrieben):
Delphi-Quellcode:
StringGrid2.RowCount:=StringGrid1.RowCount;
StringGrid2.Cols[1].Assign(StringGrid1.Cols[1]);
BubbleSort(StringGrid2.Cols[1]); // ob das so funktioniert, weiß ich nicht
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.

Gruß,
Panthrax.
"Es gibt keine schlimmere Lüge als die Wahrheit, die von denen, die sie hören, missverstanden wird."
  Mit Zitat antworten Zitat
Benutzerbild von danku
danku

Registriert seit: 9. Apr 2006
Ort: 32-bit Adressbus
181 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Tstringgrid, array

  Alt 17. Nov 2006, 16:23
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;
  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 21:34 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