AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi class function <> normale function mit Klassenzugehörigkeit?
Thema durchsuchen
Ansicht
Themen-Optionen

class function <> normale function mit Klassenzugehörigkeit?

Ein Thema von yankee · begonnen am 1. Mär 2007 · letzter Beitrag vom 2. Mär 2007
 
Benutzerbild von yankee
yankee

Registriert seit: 10. Mär 2004
1.134 Beiträge
 
Lazarus
 
#1

class function <> normale function mit Klassenzugehöri

  Alt 1. Mär 2007, 18:13
Also ich probiere immernoch meine Sortierte Liste zu erstellen...

Nach dem ich mit den interfaces auf die Schnauze gefallen bin, versuche ich es jetzt mal anders:

Delphi-Quellcode:
unit USortedList;

interface

uses SysUtils, Contnrs, Dialogs;

type
   TSortedList =class(TObjectList)
     public
       Compare: function(o1,o2: TObject):integer;
       procedure Sort;
   end;

   TIntTest =class
     public
       v: integer;
       class function Compare(o1,o2: TObject):integer;
   end;

implementation

class function TIntTest.Compare(o1,o2: TObject):integer;
begin
  result :=TIntTest(o1).v-TIntTest(o2).v; //Stelle 3
end;

procedure TSortedList.Sort;
 procedure QuickSort(iLo, iHi: Integer);
 var
   Lo, Hi: Integer;
   Mid: TObject;
 begin
   Lo := iLo;
   Hi := iHi;
   Mid :=Items[(Lo + Hi) div 2]; //Stelle 1
   repeat
     while Compare(Mid,Items[Lo]) < 0 do Inc(Lo); //Stelle 2
     while Compare(Mid,Items[Hi]) > 0 do Dec(Hi);
     if Lo <= Hi then
     begin
       Exchange(Lo,Hi);
       Inc(Lo);
       Dec(Hi);
     end;
   until Lo > Hi;
   if Hi > iLo then QuickSort(iLo, Hi);
   if Lo < iHi then QuickSort(Lo, iHi);
 end;
begin
  if Assigned(Compare) then QuickSort(0,Count-1);
end;

end.
Weil ich immer eine AV bekommen habe, habe ich da mal durchgesteppt. Stoppunkt an Stelle 1.
Dann drücke ich F7 und erwarte, dass das Programm an Stelle 2 geht. Dies ist jedoch nicht der Fall, sondern es geht an Stelle 3 und ich kann mir keinen Reim darauf machen. Es gibt doch wirklich 0 Grund dazu.

Das kann eigentlich nur an einem Fehlverständnis von class functions meinerseits liegen, oder?
Die Delphiohilöfe macht sich zumindets bei mir nicht die Mühe diese zu dokumentieren... Könnt ihr mich aufklären (Ich ging bisher davon aus, dass dies eine ganz normale Funktion ist, die zwar von Name her zur Klasse gehört, aber sonst eigentlich eine ganz normale Funktion ist (das was in Java static ist)
Letzter Tipp: Drogen. Machen zwar nicht glücklich, geben einem aber wenigstens das Gefühl glücklich zu sein.

Have a lot of fun!
  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 19:35 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