AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Nach ABC ordnen

Ein Thema von ferby · begonnen am 22. Feb 2005 · letzter Beitrag vom 6. Feb 2006
Antwort Antwort
Seite 2 von 2     12
ferby

Registriert seit: 15. Aug 2004
Ort: Wien
841 Beiträge
 
Delphi 2010 Enterprise
 
#11

Re: Nach ABC ordnen

  Alt 25. Feb 2005, 18:35
Hallo,

warum ich die Labels tauschen muss ist kompliziert....

ich habe mir was geschrieben was für mich eigentlich gehen müsste nur irgendwie geht es nicht???

Delphi-Quellcode:
procedure TDatenbank.button_abcClick(Sender: TObject);
var
i,i2,z:integer;
begin
  for i:=1 to speicher do for i2:=speicher downto i do
  if hauptnamelabels[i2].caption>hauptnamelabels[i2+1].caption then
  begin
    z:=hauptnamelabels[i2+1].top;
    hauptnamelabels[i2+1].top:=hauptnamelabels[i2].top;
    hauptnamelabels[i2].top:=z;
  end;

end;
speicher ist die anzahl der labels.............
hauptnamelabels ist array of tlabel

es sotiert sich alles ganz komisch... wo ist mein denkfehler??
  Mit Zitat antworten Zitat
Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#12

Re: Nach ABC ordnen

  Alt 25. Feb 2005, 18:42
Formatier deinen Text doch mal etwas besser:
for i:=1 to speicher do for i2:=speicher downto i do ist recht unleserlich.

Hier
Hat Daniel ein sehr gutes Tutorial zum Sortieren geschrieben, da müsste ein passender Algorhytmus für dich dabei sein. {Bubble o.Ä.)-
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
ferby

Registriert seit: 15. Aug 2004
Ort: Wien
841 Beiträge
 
Delphi 2010 Enterprise
 
#13

Re: Nach ABC ordnen

  Alt 25. Feb 2005, 18:52
Hallo,

ich verwende von seiner Seite den Bubble-Sort Algorithmus.....
  Mit Zitat antworten Zitat
ferby

Registriert seit: 15. Aug 2004
Ort: Wien
841 Beiträge
 
Delphi 2010 Enterprise
 
#14

Re: Nach ABC ordnen

  Alt 25. Feb 2005, 20:19
hallo,

kann mir jemand vileicht weiterhelfen... ich grübel jetzt schon eine halbe stunde nach.... und kapier nicht warum das nicht hinhaut....
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#15

Re: Nach ABC ordnen

  Alt 25. Feb 2005, 21:02
Delphi-Quellcode:
if 'a'>'Bthen
  ShowMessage('Stringvergleiche sind nicht ohne!');
Benutze Lowercase(string1)>Lowercase(string2).
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
ferby

Registriert seit: 15. Aug 2004
Ort: Wien
841 Beiträge
 
Delphi 2010 Enterprise
 
#16

Re: Nach ABC ordnen

  Alt 25. Feb 2005, 21:13
hallo,

hab ich auch schon ausprobiert, es geht nicht....
  Mit Zitat antworten Zitat
Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#17

Re: Nach ABC ordnen

  Alt 26. Feb 2005, 20:33
Mach doch wirklich was in diese Richtung:
Delphi-Quellcode:
var
sortiert, nichtsortiert: TSTringlist;
i,cnt: integer;
str: string;
begin

sortiert:= TSTringlist.Create;
nichtsortiert:= TSTringlist.Create;

sortiert.sorted:=true;

for i:=1 to AnzahlDerLabel do
begin
sortiert.add( Tlabel(FindComponent('Label' + IntToStr(i))).Caption);
Nichtsortiert.add( TLabel(findcomponent('Label'+inttostr(i))).caption );
end;

for i:=0 to AnzahlDerLabel-1 {!} do
begin
str := sortiert[i]; // in str steht jetzt die Caption, die alphabetisch geordnet an iter Stelle steht
cnt := nichtsortiert.Indexof(str); // Oben gefundene Caption steht auf dem cnt-ten Label.
// Das passende Label wird an die richtige Stelle gesetzt
Tlabel(FindComponent('Label' + IntToStr(cnt+1))).top :=30+ i*40;
end;
Da musst du dir auch keine Sorgen über die Sortierung machen.

Edit: Tags vergessen.
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
ferby

Registriert seit: 15. Aug 2004
Ort: Wien
841 Beiträge
 
Delphi 2010 Enterprise
 
#18

Re: Nach ABC ordnen

  Alt 27. Feb 2005, 12:31
hallo,

danke.
  Mit Zitat antworten Zitat
GJungbluth

Registriert seit: 6. Feb 2006
1 Beiträge
 
#19

Re: Nach ABC ordnen

  Alt 6. Feb 2006, 12:27
moin,
man kann auch dbtext benutzen in einem DBCtrlGrid
das ist viel eleganter.
  Mit Zitat antworten Zitat
Sidorion

Registriert seit: 23. Jun 2005
403 Beiträge
 
#20

Re: Nach ABC ordnen

  Alt 6. Feb 2006, 12:53
Wenn man 2 Strings vergleicht werden diese Zeichenweise verglichen. Damit ist die '12' kleiner, als die '2' und kommt desshalb nach vorne, da '1'<'2'
Grundsätzlich gibt es zei Lösungen für Dein Problem:
1. Du benennnst alle Label um, und zwar indem Du bei den Nummern Nullen einschiebst, sodass die StringLÄNGE aller gleich ist. z.B.: 'Label1' -> 'Label01' (falls max. 2 Stellen 01-99) oder 'Label1'->'Label001' (falls drei Stellen 001-999).
2. Du schreibst Dir eine eigene Compare-Funktion, die den numerischen Teil deiner Strings separat behandelt.
Manchmal sehen Dinge, die wie Dinge aussehen wollen mehr wie Dinge aus, als Dinge
<Esmerelda Wetterwachs>
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 03:13 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