Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - 3 Fragen/probleme zu TStringGrid[erledigt]
rokdd - Fr 13.02.04 18:16
Titel: 3 Fragen/probleme zu TStringGrid[erledigt]
hallo,
ich habe ein paar Probleme/fragen zu dem tstringgrid:
:arrow: ich möchte das Tstringgrid scrollen. Dabei sind mir aber diese scrollbars zu hässlich. Kann man auf einem anderem Weg die Komponente scrollen???
:arrow: Der user soll mehrere zeilen markieren können und den text in einer zelle ändern können. bei mir will das nicht funzen wenn dann das eine oder das andere? Warum?
:arrow: kann man ein tstringgrid mit einer function sortieren???
Rokdd
J.Borchert - Fr 13.02.04 20:26
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32:
| procedure Sortiere(sg1:TStringGrid); var punkt:array of string; wechsel,i,j,maxi:integer; function su(such:string):integer; var i:integer; begin su:=0; for i:=1 to sg1.ColCount-1 do if copy(sg1.Cells[i,0],1,length(such))=such then su:=i; end;
begin maxi:=0; setLength(punkt,sg1.ColCount); for i:=1 to sg1.RowCount-1 do if alsD(sg1.Cells[su('St'),i])<>0 then inc(maxi); repeat wechsel:=0; for i:=maxi downto 1 do if alsD(sg1.Cells[su('Station'),i-1])>alsD(sg1.Cells[su('Station'),i]) then begin for j:=1 to sg1.ColCount-1 do punkt[j]:=sg1.Cells[j,i-1]; for j:=1 to sg1.ColCount-1 do sg1.Cells[j,i-1]:=sg1.Cells[j,i]; for j:=1 to sg1.ColCount-1 do sg1.Cells[j,i]:=Punkt[j]; inc(wechsel); end; until wechsel=0; sg1.SetFocus; end; |
Habe ein älteres Beispiel gefunden, vielleicht hilft es ja. Hier sortiere ich die Zahlen in Spalte 1 aufsteigend, so daß ihre Zeilen aber erhalten bleiben.
Delphi-Quelltext
1:
| alsD(sg1.Cells[su('Station'),i]) |
alsD ist eine Function wie FloatToStr
su (oben zu sehn) ist der "Spaltenfinder" , der String dahinter ist in der fixen Zeile der Spaltenkopf. (Falls User Spalten verschieben werden die trotzdem gefunden, es reichen auch nur wenige Anfangsbuchstaben, die nicht nochmals vorkommen = su('St') wäre das Gleiche)
Gruß Jürgen
P.S. Natürlich gibt es weitaus schnellere, kompliziertere und bessere Sortieralgo's, aber der Part ist einfach nachzuvollziehen und stammt aus der Zeit, als ich das Forum noch nicht kannte :cry:
rokdd - Fr 13.02.04 20:39
Danke,
für den quelltext, ich meinte mit function eigentlich etwas anderes so wie tstringgrid.sort oder so... ist aber nicht so schlimm schließlich funktioniert deine variante ja auch! Also nochmal danke!
Rokdd
J.Borchert - Fr 13.02.04 20:52
Falls sie zu langsam ist, suche mal unter Sortieren, da hat's mich fast erschlagen :lol:
rokdd - Fr 13.02.04 21:02
und bist deswegen "am Ende".... *gggg* ne habe selber schon aml nach sortieralghoritmien geschaut die auf den markt sind: quicksort,.... habe aber letzendlich mciha uch für die einfachste entschieden.
rokdd
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!