Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi oberflächenverknüpfung delphi (https://www.delphipraxis.net/114031-oberflaechenverknuepfung-delphi.html)

zwerchnase 18. Mai 2008 17:34


oberflächenverknüpfung delphi
 
hi leute

ich hab nich gerade hier angemeldet und möchte
erstmal im voraus sagen, dass nir eure seite echt gut gefällt und sehr hilfreich ist :thumb:

ich habe nun folgendes problem:
diesen delphi-code habe ich erstellt und nöchte nun eine passende oberfläche dazu kreieren...
leider ist mir das wissen mit der verknüpfung zwischen den methoden den buttons abhanden gekommen
zu dem würde ich gerne wissen ob der bisherige codeakzeptabel ist(nein delphi spinnt momentan ein bisschen) :wall:
Delphi-Quellcode:
unit UZahlen;

interface

uses
  Math;

type
  TZahlen = class(TObject)
    private
      sZahlen, aZahlen : array[1..12000] of longint;
      maxZahl : integer;
      anzahlTausch : integer;
      anzahlVergleich : integer;
    public
      constructor create;
      procedure feldbelegen(anzahl: integer);
      procedure feldinit;
      procedure anzahlinit;
      function holen(i: integer; feld: integer) : integer;
      function tauschZurueck : integer;
      function vergleichZurueck : integer;
      procedure bubblesort;
      procedure quicksort(links: integer; rechts: integer);
  end;

implementation

  constructor TZahlen.create;
  begin
    maxZahl := 0;
    randomize;
  end;

  procedure TZahlen.feldbelegen(anzahl: integer);
  var
    i: Integer;
  begin
    maxZahl := anzahl;
    for i := 1 to anzahl do
      aZahlen[i] := random(1000000);
  end;

  procedure TZahlen.feldinit;
  var
    i: Integer;
  begin
    for i := 1 to 12000 do
    begin
      aZahlen[i] := 0;
      sZahlen[i] := 0;
    end;
  end;

  procedure TZahlen.anzahlinit;
  begin
    anzahlVergleich := 0;
    anzahlTausch := 0;
  end;

  function TZahlen.holen(i: integer; feld: integer) : integer;
  begin
    if (feld = 1) then
      holen := aZahlen[i]
    else
      holen := sZahlen[i]
  end;

  function TZahlen.tauschZurueck : integer;
  begin
    tauschZurueck := anzahlTausch;
  end;

  function TZahlen.vergleichZurueck : integer;
  begin
    vergleichZurueck := anzahlVergleich;
  end;

  procedure TZahlen.bubblesort;
  var
    i, j, speicher: integer;
  begin
    sZahlen := aZahlen;

    for i := 1 to maxZahl-1 do
    begin
      for j := i+1 to maxZahl do
      begin
        Inc(anzahlVergleich);
        if sZahlen[i] > sZahlen[j] then
        begin
          speicher := sZahlen[j];
          sZahlen[j] := sZahlen[i];
          sZahlen[i] := speicher;
          Inc(anzahlTausch);
        end;
      end;
    end;
  end;

  procedure TZahlen.quicksort(links: integer; rechts: integer);
  var
    l, r, pivot, speicher: integer;
  begin
    if rechts = -1 then
    begin
      rechts := maxZahl;
      sZahlen := aZahlen;
    end;

    l := links;
    r := rechts;

    pivot := sZahlen[Ceil((l+r)/2)];

    repeat
      while sZahlen[l] < pivot do
      begin
        Inc(l);
        Inc(anzahlVergleich);
      end;

      while sZahlen[r] > pivot do
      begin
        Dec(r);
        Inc(anzahlVergleich);
      end;

      if l <= r then
      begin
        speicher := sZahlen[l];
        sZahlen[l] := sZahlen[r];
        sZahlen[r] := speicher;
        Inc(anzahlTausch);
        Inc(l);
        Dec(r);
      end;
    until l > r;

    if links < r then
      quicksort(links, r);

    if l < rechts then
      quicksort(l, rechts);

  end;


end.
freue mich auf eure kritischen kommentare :lol:
danke

[edit=Sharky]Delphi-Tags gesetzt. Mfg, Sharky[/edit]

FAlter 18. Mai 2008 17:39

Re: oberflächenverknüpfung delphi
 
Hi,

Wenn du Quellcode postest, kannst du ihn so darstellen:

Code:
[delphi]

{ hier dein Code }

[/delphi]
Das hat Sharky jetzt für dich getan.

Wenn du auf einen Button doppelklickst, landest du an einer Stelle im Quelltext, aus der du deine Methoden aufrufen kannst. So einfach war das. ;)

Mfg
FAlter

zwerchnase 18. Mai 2008 17:48

Re: oberflächenverknüpfung delphi
 
Ach ja, vielen Dank!
:mrgreen: :dp:
zwerchnase

sx2008 18. Mai 2008 18:08

Re: oberflächenverknüpfung delphi
 
Bei den älteren Delphiversion D2 - D7 gibt es im Unterverzeichnis Demos ein sehr schönes Projekt zur Visualisierung von Quicksort, Bubblesort.
Schau's dir an; es lohnt sich.
Delphi-Quellcode:
// for i := 1 to 12000 do  PFUI :-)
for i:= Low(aZahlen) to High(aZahlen) do
begin
  aZahlen[i] := 0;
  sZahlen[i] := 0;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:45 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