Zahlen aus Editfeldern sortieren?

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Keepi
Beiträge: 6
Registriert: Mi 4. Jun 2014, 11:56

Zahlen aus Editfeldern sortieren?

Beitrag von Keepi »

Ich programmiere noch nicht lange mit Lazarus und kenne mich leider auch noch nicht so gut aus. Ich habe jetzt eine Liste, in der Namen stehen ( die Namen sind in Labels geschrieben) und neben den Labels sind Editfelder. Jetzt möchte ich die Namen nach dem Alter sortieren. Das Alter der einzelnen Personen steht in dem Editfeld daneben. Dies soll alles per Knopfdruck auf einen Button geschehen.
Ich habe nach verschiedenen Algorithmen und Sortiertechniken gesucht und auch welche gefunden, jedoch habe ich entweder den Code dazu nicht verstanden oder die Methode passt nicht zu meinem Problem.
Auch selber habe ich schon verschiedene Sachen getestet, jedoch ohne Erfolg. Ich weiß, dass man es bestimmt auch anders ( ohne Labels ) lösen könnte, aber dann würde der Rest des Programmes nicht mehr funktionieren.
Also wollte ich mal fragen, ob mir da jemand helfen könnte? :)
Gruß Keepi

Benutzeravatar
theo
Beiträge: 10867
Registriert: Mo 11. Sep 2006, 19:01

Re: Zahlen aus Editfeldern sortieren?

Beitrag von theo »

Wenn du statt der Edits und Labels ein geeignetes Control nimmst, geht das fast wie von selber.
Siehe Anhang.
Dateianhänge
exp.zip
(2.68 KiB) 146-mal heruntergeladen

Heinrich Wolf
Beiträge: 323
Registriert: Di 12. Apr 2011, 13:21
OS, Lazarus, FPC: WinXP + VMWare Player mit Fedora14, L 1.1, FPC 2.7.1
CPU-Target: 1core 1,8GHz 32Bit
Wohnort: Fürth
Kontaktdaten:

Re: Zahlen aus Editfeldern sortieren?

Beitrag von Heinrich Wolf »

Hallo,

Dein Problem ist, dass Sortieren normalerweise auf einem Array passiert. Du hast Deine Edit Felder und Labels vermutlich durchnummeriert, aber der Zugriff anhand des Index im Namen ist dabei etwas komplizierter. Du musst Dich entscheiden, ob Du das auf Dich nehmen willst, oder ob Du z.B. auf ein TStringGrid umsteigen willst. Ein TStringGrid hat Spalten, die sich wie Arrays verhalten. Wenn Du bei den Edits und Labels bleiben willst, würde ich bei Programmstart ein Array of TEdit und ein Array of TLabel vorbelegen und damit arbeiten. Die Vorbelegung funktioniert so:

Code: Alles auswählen

Erfolg := True;
for i := 1 to 10 do
  begin
    EditArray[i] := FindComponent('Edit' + IntToStr(i)) as TEdit;
    if EditArray[i] = Nil then
      Erfolg := False;
  end;
 
Gruß
Heiner

Keepi
Beiträge: 6
Registriert: Mi 4. Jun 2014, 11:56

Re: Zahlen aus Editfeldern sortieren?

Beitrag von Keepi »

hmm okay... und kann man einfach nur den Höchsten Wert aus den Edits mit Rot kennzeichnen?

Michl
Beiträge: 2511
Registriert: Di 19. Jun 2012, 12:54

Re: Zahlen aus Editfeldern sortieren?

Beitrag von Michl »

Keepi hat geschrieben:hmm okay... und kann man einfach nur den Höchsten Wert aus den Edits mit Rot kennzeichnen?
Ja, einfach alle Edits durchgehen, den höchsten Eintrag merken und diesem Edit im Anschluss die eine rote Textfarbe geben.

PS: So bringt das doch nichts. Zeig doch mal ein bischen von Deinem Code und die Stelle, an der Du kongret nicht weiterkommst, dann könnte man Dir gezielt helfen. Ansonst hilft nur Lesen und Probieren (ein paar Tutorials durcharbeiten):
z.B. Bubblesort http://www.delphi-treff.de/tipps/algori ... ubblesort/

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection;  

Antworten