Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Ratlosigkeit bei Arrays/ Sortieren (https://www.delphipraxis.net/95018-ratlosigkeit-bei-arrays-sortieren.html)

daschaos 29. Jun 2007 10:47


Ratlosigkeit bei Arrays/ Sortieren
 
Ich bekomme über eine Schnittstelle die zu ParentID gehörenden Kinder meiner Baumstruktur und unter anderem die dazugehörige Größe.
Jetzt speicher ich in der Methode ComputeArray() diese Größe in einem Array und lasse dieses Array in einer anderen Methode QuickSort sortieren. Prima. Aber so richtig bringt mich das nich weiter, weil ich ja noch die jeweilige Child ID bräuchte.

In einer anderen Methode möchte ich eben diese Kinder zeichnen, aber der Größe nach sortiert. Aber jetzt kann ich das Array ja nicht einfach aufrufen über die Größe, weil ich ja die ChildId benötige um noch andere zum zeichnen notwendige Infos zu bekommen.

Ich befürchte, ich drücke mich furchtbar umständlich aus, aber versteht mich trotzdem jemand :)? Wie kann ich die jeweilige ChildID auch dazu speichern?

Alter Mann 29. Jun 2007 11:00

Re: Ratlosigkeit bei Arrays/ Sortieren
 
Hi,

wie sieht den die Arraystruktur aus?

Gruß

daschaos 29. Jun 2007 11:07

Re: Ratlosigkeit bei Arrays/ Sortieren
 
Delphi-Quellcode:
var
  SortArray: Array of Integer;

Delphi-Quellcode:
procedure ComputeAreaArray(ParentID: Integer);
var
  i: Integer;
  CurrentChildCount: Integer;
  CurrentValues4: TCurrentValues;
begin
  with CurrentValues4 do
  begin
    // initialize varaiables
    CurrentValues4 := InitializeRecord(CurrentValues4);
    CurrentChildCount := DoGetChildCount(ParentID);
    SetLength(SortArray, CurrentChildCount+1);
   
    // get sizes of every child and store this in an array
    for i:= 0 to Length(SortArray)-1 do
    begin
      // get child value info for ParentID at child index i
      CurrentChildID :=DoGetChildData(ParentID, i , CurrentChildValue, CurrentChildCaption, CurrentChildImageIndex);
      // store child value in sort array at position i
      SortArray[i] := CurrentChildValue;
    end;

    // size of ParentId ist stored at position 0
    QuickSortRectangles(0, Length(SortArray)-1, False);
  end;
end;

RavenIV 29. Jun 2007 11:55

Re: Ratlosigkeit bei Arrays/ Sortieren
 
Warum verwendest Du eigentlich ein Array.
Das geht doch mit TList und deren Nachkommen viel einfacher.
Schau dir doch mal TObjectList an...

daschaos 29. Jun 2007 12:09

Re: Ratlosigkeit bei Arrays/ Sortieren
 
Weil ich programmiertechnisch noch nich viel Erfahrung hab und Delphi sowieso Neuland für mich ist, aber stimmt, ich könnt mir mal andere Strukturen angucken, vielleicht klappt das dann besser, danke ;)

Alter Mann 29. Jun 2007 12:31

Re: Ratlosigkeit bei Arrays/ Sortieren
 
Dann mach es doch so:
Delphi-Quellcode:
type
  TMySortArray = packed record
    ChildID : Integer;
    ParentID: Integer;
  end;

var
  SortArray : Array of TMySortArray;

RavenIV 29. Jun 2007 12:45

Re: Ratlosigkeit bei Arrays/ Sortieren
 
He "Alter Mann".

Ich wollte eben wieder einen Programmeirer von Array zu TList bekehren.
Und Du zeigst ihm, wie er ein Array of Struct machen kann...


:twisted: :x :x :twisted: :warn:

daschaos 29. Jun 2007 12:49

Re: Ratlosigkeit bei Arrays/ Sortieren
 
:-D

Alter Mann 29. Jun 2007 13:32

Re: Ratlosigkeit bei Arrays/ Sortieren
 
Sorry :oops:


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