AGB  ·  Datenschutz  ·  Impressum  







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

Listen in Delphi

Ein Thema von cat · begonnen am 29. Jan 2003 · letzter Beitrag vom 30. Jan 2003
 
Benutzerbild von cat
cat

Registriert seit: 29. Jan 2003
9 Beiträge
 
#5
  Alt 30. Jan 2003, 11:49
OK, ich versuche es einmal zu erklären:

Ich habe zwei units. In der einen Unit ist eine Basisklasse und drei erbende Klassen von der Basisklasse. Ausserdem ist hier ein Hauptmenü, in dem man entscheiden kann, welche Instanz von einer Klasse man in die Liste aufnehmen will.
In der anderen Unit habe ich die Liste, die Einträge hinzufügen, löschen usw. kann. Es zeigt ein neutraler Pointer auf die Klassenobjekte.
Nun soll es aber so sein, daß es keinen neutralen Pointer mehr in der Liste gibt, sondern die Pointer sollen auf die Basisklasse zeigen, damit man nur Objekte der Basisklasse bzw der vererbten Klassen aufnehmen kann.


Hier ein kleiner Ausschnitt aus meiner Liste:
(p_element ist hier ein neutraler Pointer. Und dieser soll verändert werden, so daß er auf die Basisklasse zeigt, die in einer anderen Unit steht.)

Delphi-Quellcode:
procedure Addelement (p_element : Pointer); // the pointer of the main unit is allocated the parameter of the newX
                                         //allocate a new element on the last position
var p_help : PtListItem;
    p_helpprev: PtListItem;
    p_help2 : PtListItem;
    NewX : PtListItem;
    i_counter : Integer;
    i_count : Integer;

begin
   NewX := alloc; //allocate memory for NewX
   i_counter := NumberOfEntries;
   p_help := p_start;
   if p_help <> nil then //searching for the last element
   begin
         while p_help.next <> nil do
               p_help := p_help.next; //going to the next element until p_help.next = nil
         p_help.next := NewX;

         p_help2 := p_start;
         For i_count:=1 to (i_counter - 1) do
            p_help2 := p_help2.next;
         p_helpprev := p_help2;
         p_help2 := p_help2^.next;
         p_help2^.prev:= P_helpprev;
   end
   else
       p_start:= NewX;
   NewX^.data := p_element; //If there is only one element, the newX is added at the beginning of the list
end;
Ich hoffe, das war jetzt verständlicher!

mfg cat

[Edit=Christian Seehase]Delphi Tags hinzugefügt[/Edit]
  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 14:24 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