AGB  ·  Datenschutz  ·  Impressum  







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

Sortieren mit direktem Auswahlort

Offene Frage von "Sir Rufo"
Ein Thema von rebellxsky · begonnen am 6. Dez 2014 · letzter Beitrag vom 7. Dez 2014
 
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.100 Beiträge
 
Delphi XE2 Professional
 
#10

AW: Sortieren mit direktem Auswahlort

  Alt 7. Dez 2014, 16:58
Delphi-Quellcode:
var
  myArray : Array of Integer;

begin
  myList := TList<integer>.Create;
  setLength(myArray,0);

// Anfügen eines Wertes
// 2. An ein Array
  SetLength(myArray, Length(myArray) + 1);
  myArray [Length(myArray)] := Value;
@Dejan Vu:
Besser so, sonst schepperts.
Delphi-Quellcode:
SetLength(myArray, Length(myArray) + 1);
myArray [High(myArray)] := Value;
@rebellxsky:
Ein kleines Beispiel Projekt:
Ins Edit gibst du eine Zahl ein, mit Return wird die Zahl in die Liste übernommen.
Mit Escape wird die Liste gelöscht (Das Edit muß hierbei den Fokus haben).
Die Eingabe und Ausgabe wird im ebNumberKeyPress gesteuert.
Ich vermute, mit "Sortieren mit direktem Auswahlort" ist ein sog. SelectionSort gemeint.
Eine Übersicht mit diversen Sortierverfahren findest du hier http://www.delphipraxis.net/72182-sortieren.html



Delphi-Quellcode:
unit AS_Main;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
  System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs,
  Vcl.StdCtrls;

type
  TNumbers=Array of Integer;

  TMain = class(TForm)
    ebNumber: TEdit;
    lbUnsorted: TListBox;
    lbSorted: TListBox;
    lblUnsorted: TLabel;
    lblSorted: TLabel;
    procedure ebNumberKeyPress(Sender: TObject; var Key: Char);
  private
     fInput:TNumbers;
     fOutput:TNumbers;
     PROCEDURE Sort(List:TNumbers);
     PROCEDURE TransferToListBox(LB:TListBox; List:TNumbers);
  public
    { Public-Deklarationen }
  end;

var
  Main: TMain;

implementation

{$R *.dfm}

procedure TMain.ebNumberKeyPress(Sender: TObject; var Key: Char);
begin
   case Ord(Key) of
      VK_Escape:
         begin
            fInput:=Nil;
            fOutput:=Nil;
            lbUnsorted.Clear;
            lbSorted.Clear;
            ebNumber.Text:='';
         end;
      VK_Return:
         if ebNumber.Text<>'then begin
            SetLength(fInput,Length(fInput)+1);
            fInput[High(fInput)]:=StrToInt(ebNumber.Text);
            fOutput:=Copy(fInput);
            Sort(fOutput);
            TransferToListBox(lbUnsorted,fInput);
            TransferToListBox(lbSorted,fOutput);
            ebNumber.Text:='';
         end;
      VK_Back,Ord('0')..Ord('9'):
         Exit;
      else
         Key:=#0;
   end;
end;

PROCEDURE TMain.Sort(List:TNumbers);
var I,J,K,H:Integer;
begin
   for I:=0 to High(List)-1 do begin
      K:=I;
      for J:=I+1 to High(List) do
         if List[J]<List[K] then K:=J;
      H:=List[I];
      List[I]:=List[K];
      List[K]:=H;
   end;
end;

PROCEDURE TMain.TransferToListBox(LB:TListBox; List:TNumbers);
var I:Integer;
begin
   LB.Clear;
   LB.Items.BeginUpdate;
   for I:=0 to High(List) do
      LB.Items.Add(IntToStr(List[I]));
   LB.Items.EndUpdate;
end;

end.
Angehängte Dateien
Dateityp: zip Auswahlsort.zip (81,0 KB, 0x aufgerufen)
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
 


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 04:57 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-2025 by Thomas Breitkreuz