AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Record komplett oder nur teilwese kopieren?
Thema durchsuchen
Ansicht
Themen-Optionen

Record komplett oder nur teilwese kopieren?

Ein Thema von SirThornberry · begonnen am 29. Apr 2004 · letzter Beitrag vom 29. Apr 2004
 
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#1

Record komplett oder nur teilwese kopieren?

  Alt 29. Apr 2004, 15:29
Hallo,

Wer keine Lust hat sich die hintergründe durch zu lesen kann gleich bis zum Source: "Variante1:" scrollen

ich steh vor nem kleinen Problem. Es schreib an einer MusicSoftware die mehrere Playlisten hat. Wenn ein Lied gespielt wurde soll dies natürlich in allen Listen angezeigt werden und nicht nur in der wo es gespielt wurde.

Deswegen hab ich eine Hauptplayliste und viele Normale Playlisten welche auf die Hauptplayliste verweisen.

Wird ein neues Lied zu irgend einer Playliste hinzugefügt, wird es nur in der Hauptplayliste erstellt. In der eigentlichen Playliste wird dann der gleiche Record angelegt und die Items darin zeigen dann auf die Items der Hauptliste (siehe sourceschnipsel)

Delphi-Quellcode:
  PBoolean = ^Boolean;
  PString = ^String;
  PInteger = ^Integer;

  TJBFileInfo = record
    Filename: String;
    FilenameP: PString; //in Hauptliste zeigts auf Filename - In normaler Liste zeigts auf Filename von Hauptliste
    Interpret: String;
    InterpretP: PString;
    Title: String;
    TitleP: PString;
    Genre: String;
    GenreP: PString;
    FileTime: Integer;
    FileTimeP: PInteger;
    AddedBySearch: Boolean;
    AllreadyPlayed: Boolean;
    AllreadyPlayedP: PBoolean;
    IsSelected: Boolean; //legt fest ob das Item selectiert ist oder nicht (deswegen geht auch nicht ein Pointer auf den gesamten Record)
  end;
Nun zum eigentlichen Problem. Wenn ich ein Lied aus irgend einer Playliste in eine andere kopiere, ist es ja das einfachste einfach das Item(den Record) aus der Hauptliste zu kopieren.
Dabei würden ja aber auch die Strings und alles mit kopiert werden (ich brauch aber nur die Pointer). Soll ich nun jeden Pointer einzeln kopieren oder den gesamten record?

Variante1:
Delphi-Quellcode:
procedure CopieItem(AItem: TJBFileInfo);
var NewItem: TJBFileInfo;
begin
  NewItem := AItem;
  {NewItem zu Playliste hinzufügen}
end;

Variante2:
Delphi-Quellcode:
procedure CopieItem(AItem: TJBFileInfo);
var NewItem: TJBFileInfo;
begin
  NewItem.FilenameP := AItem.FilenameP;
  NewItem.InterpretP : AItem.InterpretP;
  NewItem.TitleP : AItem.TitleP;
  NewItem.GenreP : AItem.GenreP;
  NewItem.FileTimeP : AItem.FiletimeP;
  NewItem.AllreadyPlayedP : AItem.AllreadyPlayedP;
  {NewItem zu Playliste hinzufügen}
end;
Welche Variante würded ihr nehmen Wenn ihr nur die Pointer aus dem Record braucht?
Variante1 = Mehr speicherverbrauch
Variante2 = Mehr zuweisungen

Oder gibts noch ne dritte effektivere Variante?

(keine Kommentare zu "PString = ^String;" - ich weiß selbst das dies ein pointer auf einen Pointer ist)
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  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 07:15 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 by Thomas Breitkreuz