AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Record zu TStringlist hinzufügen
Thema durchsuchen
Ansicht
Themen-Optionen

Record zu TStringlist hinzufügen

Ein Thema von EWeiss · begonnen am 12. Jun 2017 · letzter Beitrag vom 14. Jun 2017
Antwort Antwort
Seite 8 von 10   « Erste     678 910      
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#71

AW: Record zu TStringlist hinzufügen

  Alt 14. Jun 2017, 11:46
Ja und? Du kannst doch trotzdem den Destruktor überschreiben.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#72

AW: Record zu TStringlist hinzufügen

  Alt 14. Jun 2017, 11:55
Ja und? Du kannst doch trotzdem den Destruktor überschreiben.
Sorry bin ich wirklich so blöd? (Tja wenn er denn definiert wäre)

Normale Class

Delphi-Quellcode:
  TMagnetic = class(TInterfacedPersistent, ISkinMagnetic, ISkinMagneticEx)
    constructor Create;
    destructor Destroy; override;
hier wurden Create und Destroy definiert..
somit kann ich sie beim start und beenden verwenden/überschreiben oder was auch immer.

Schicke ich ein Free wird Destroy aufgerufen.

Beide werden aber in meiner Class TSprite nicht erstellt und auch nicht code mäßig aufgerufen.
Intern allerdings schon verwaltet.

Also erstelle ich meine Class wird im Quelltext Create gar nicht aufgerufen.
Somit kann ich da auch gar nichts eingeben.

Verstehst was ich meine?
Ich rede nicht davon das es grundsätzlich nicht geht sondern davon das ich beides in meiner Class/Record nicht definiert habe.
Ohne Definition kann ich dort Codemäßig auch nichts eingeben.
Die Funktionen existieren nicht!

Ich möchte sie auch in der Class nicht definieren diese soll weiterhin wie ein Record aussehen.

gruss

Geändert von EWeiss (14. Jun 2017 um 12:12 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.582 Beiträge
 
Delphi 11 Alexandria
 
#73

AW: Record zu TStringlist hinzufügen

  Alt 14. Jun 2017, 12:12
Du kannst den Destruktor doch jederzeit hinzufügen:
Delphi-Quellcode:
  TSprite = class
    CtrlName: WideString;
    CtrlIndex: Integer;
    Left: Single;
    Top: Single;
    Width: Integer;
    Height: Integer;
    Scale: Single;
    Opacity: Byte;
    ShellTo: string;
    IconPath: WideString;
    WorkDir: WideString;
    UseLabel: string;
    CmdLine: WideString;
    ShowCmd: longint;
    h_Bitmap: HBitmap;
    Visible: Bool;
  public
    destructor Destroy; override;
  end;
Ändern tut sich dadurch ja sonst nichts.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#74

AW: Record zu TStringlist hinzufügen

  Alt 14. Jun 2017, 12:14
Du kannst den Destruktor doch jederzeit hinzufügen:
Delphi-Quellcode:
  TSprite = class
    CtrlName: WideString;
    CtrlIndex: Integer;
    Left: Single;
    Top: Single;
    Width: Integer;
    Height: Integer;
    Scale: Single;
    Opacity: Byte;
    ShellTo: string;
    IconPath: WideString;
    WorkDir: WideString;
    UseLabel: string;
    CmdLine: WideString;
    ShowCmd: longint;
    h_Bitmap: HBitmap;
    Visible: Bool;
  public
    destructor Destroy; override;
  end;
Ja aber das würde die Ansicht des Record/Class verändern und ich möchte diese Sichtbar als Record erhalten.
Alles andere verwirrt nur.

Hatte meine Beitrag oben nochmal korrigiert. Sorry.
Zitat:
Ich möchte sie auch in der Class nicht definieren diese soll weiterhin wie ein Record aussehen.
Aber ich gebe dir recht wenn sie DEFINIERT ist das es funktioniert.

gruss
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#75

AW: Record zu TStringlist hinzufügen

  Alt 14. Jun 2017, 12:20
Auf der anderen Seite wir TSprite von TObjectList verwaltet und auch von dieser freigegeben.
Es ist nicht nötig hier ein Destroy zu definieren und zu überschreiben.
Das mit den HBitmaps mache ich vorsorglich da ich mir nicht sicher bin das TObjectList diese korrekt frei gibt.

Und ja ich weiß das TObjectList den Destructor aufruft wenn ich diese Freigebe
aber ich möchte den Destructor nicht definieren.

gruss

Geändert von EWeiss (14. Jun 2017 um 12:25 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#76

AW: Record zu TStringlist hinzufügen

  Alt 14. Jun 2017, 12:25
Die Objektliste gibt nur die in ihr enthaltenen Objekte frei. Enthalten diese wiederum selbst erstellte Ressourcen o.ä., so ist es deren Aufgabe, sich um das korrekte Abräumen zu kümmern.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#77

AW: Record zu TStringlist hinzufügen

  Alt 14. Jun 2017, 12:26
Die Objektliste gibt nur die in ihr enthaltenen Objekte frei. Enthalten diese wiederum selbst erstellte Ressourcen o.ä., so ist es deren Aufgabe, sich um das korrekte Abräumen zu kümmern.
Jo mach ich ja aber ohne Destructor.
Und es geht nicht weil nicht definiert.
Also der Record soll als solcher Sichtbar erhalten bleiben (Auch wenn es hier niemand verstehen will ist halt meine Art) LOL
Wichtig ist das die Resourcen frei gegeben werden.

gruss

Geändert von EWeiss (14. Jun 2017 um 12:29 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#78

AW: Record zu TStringlist hinzufügen

  Alt 14. Jun 2017, 12:30
Ja, Du machst es von außen. Besser wäre es aber, wenn die Sprite-Objekte das selbst in die Hand nehmen. Und Du hast keinen Record mehr, finde Dich damit ab . Mal abgesehen von etwas mehr Overhead sollte man meiner persönlichen Meinung nach Klassen eh den Vorzug geben.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#79

AW: Record zu TStringlist hinzufügen

  Alt 14. Jun 2017, 12:31
Ja, Du machst es von außen. Besser wäre es aber, wenn die Sprite-Objekte das selbst in die Hand nehmen. Und Du hast keinen Record mehr, finde Dich damit ab . Mal abgesehen von etwas mehr Overhead sollte man meiner persönlichen Meinung nach Klassen eh den Vorzug geben.
OK!
Werde ihn definieren habe mich damit abgefunden.
Danke euch.

Zitat:
Mal abgesehen von etwas mehr Overhead sollte man meiner persönlichen Meinung nach Klassen eh den Vorzug geben.
Das Klassen in einer NON VCL ein Overhead darstellen ist dir aber schon klar oder?

gruss
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#80

AW: Record zu TStringlist hinzufügen

  Alt 14. Jun 2017, 12:42
Habe es jetzt mal gemacht.
Und so wie gedacht wird TSprite Destroy nun doppelt aufgerufen.

Einmal von TSprite und einmal von TObjectList.
Verwende ich nur TSprites.Free(TObjectList) dann sind alle TSprite schon NIL bevor ich irgendetwas aufräumen kann.
Sehe jetzt nicht wirklich den Vorteil davon das Destroy nun zweimal aufgerufen wird.

Nun gut wie dem auch sei.
Delphi-Quellcode:
      SPrite.Free;
      Sprites.Free;

gruss

Geändert von EWeiss (14. Jun 2017 um 12:47 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 8 von 10   « Erste     678 910      


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 21:36 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