AGB  ·  Datenschutz  ·  Impressum  







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

Array aus Record löschen

Ein Thema von EWeiss · begonnen am 22. Mai 2017 · letzter Beitrag vom 22. Mai 2017
Antwort Antwort
Seite 2 von 3     12 3      
EWeiss
(Gast)

n/a Beiträge
 
#11

AW: Array aus Record löschen

  Alt 22. Mai 2017, 18:16
Kleine Anschluss frage

Delphi-Quellcode:
procedure Delete(var SrcArray: TArray<TSprite>; Index: Integer);
var
  I: Integer;
begin

  for I := (Index + 1) to (Length(SrcArray) - 1) do
    SrcArray[I- 1] := SrcArray[I];

  Setlength(SrcArray, length(SrcArray) - 1);
end;
Ist das schnell genug oder sollte ich hier das Array mit Move verschieben ?

gruss
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.139 Beiträge
 
Delphi 12 Athens
 
#12

AW: Array aus Record löschen

  Alt 22. Mai 2017, 18:18
Da ja keine Delphi-Verison angeeben wurde ....


Delphi kann inzwischen auch endlich Insert/Delete für dynamische Arrays (k.A. warum das so viele Jahre gedauert hat)
und es hat eine nette statische Klasse TArray in System.Generics.Collections .


Move ... nur wenn du weißt was du machst und dabei nicht z.B. eine Speicherverwaltung/Referenzzählung der Felder zerschrottest.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#13

AW: Array aus Record löschen

  Alt 22. Mai 2017, 18:19
Da ja keine Delphi-Verison angeeben wurde ....


Delphi kann inzwischen auch endlich Insert/Delete für dynamische Arrays (k.A. warum das so viele Jahre gedauert hat)
und es hat eine nette statische Klasse TArray in System.Generics.Collections .
D2010.. Ja muss das in mein Profil wieder addieren.
Sorry!

Ok denke mal dann ist das so in Ordnung mehr als 200 Icons(Verknüpfungen liegen eh nicht auf dem Desktop)
Und es ist auch nur eine Sicherheitsmaßnahme damit ich kein leeres Icon auf der Bar zu sehen bekomme.
Delphi-Quellcode:
  // Prüfen ob wir einige der Verknüpfungen deaktivieren (verstecken) müssen.
  for K := High(gs) downto ID_FIRST do //ID_FIRST = 6 erster Icon Eintrag im Array 0 > 6 reserviert für die Grafische Oberfläche
  begin
    if gS[K].h_Bitmap = 0 then
    begin
      Delete(gs, K);
      dec(Count);
      if gp.RecycleBin = K then
        gp.RecycleBin := 0;
    end;

    //Das RecycleBin-Array entsprechend ändern
    if gp.RecycleBin > Count then
      gp.RecycleBin := Count;
  end;
gruss

Geändert von EWeiss (22. Mai 2017 um 18:39 Uhr)
  Mit Zitat antworten Zitat
SneakyBagels
(Gast)

n/a Beiträge
 
#14

AW: Array aus Record löschen

  Alt 22. Mai 2017, 18:34
Zitat:
Delphi kann inzwischen auch endlich Insert/Delete für dynamische Arrays (k.A. warum das so viele Jahre gedauert hat)
und es hat eine nette statische Klasse TArray in System.Generics.Collections .
Darf man fragen wo man das findet?
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#15

AW: Array aus Record löschen

  Alt 22. Mai 2017, 18:37
Zitat:
Delphi kann inzwischen auch endlich Insert/Delete für dynamische Arrays (k.A. warum das so viele Jahre gedauert hat)
und es hat eine nette statische Klasse TArray in System.Generics.Collections .
Darf man fragen wo man das findet?
Ich denke mal wenn du die uses Generics hinzufügst.

gruss
  Mit Zitat antworten Zitat
SneakyBagels
(Gast)

n/a Beiträge
 
#16

AW: Array aus Record löschen

  Alt 22. Mai 2017, 18:38
Leider nicht fündig geworden. Ich finde nur Sort aber weder Delete noch Insert.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#17

AW: Array aus Record löschen

  Alt 22. Mai 2017, 18:40
Leider nicht fündig geworden. Ich finde nur Sort aber weder Delete noch Insert.
Ist wohl abhängig von der Delphi Version die du verwendest.

gruss
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.139 Beiträge
 
Delphi 12 Athens
 
#18

AW: Array aus Record löschen

  Alt 22. Mai 2017, 18:55
arraydelete.png
Alt und "Neu".

B := Copy(A) oder B := Copy(A, 1, 3) geht ja auch schon längere Zeit ... nur Delete und Insert fehlte halt.



Weiß nicht genau seit wann es mit DynArrays geht, aber seit XE7 kann man noch ganz andere Dinge, wie "string like"-Operationen ala
Delphi-Quellcode:
var A, B, C: array of Byte; // TArray<Byte> oder TBytes

A := B + C;

A := [1, 2, 3];
A := B + [1, 2, 3];
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (22. Mai 2017 um 19:00 Uhr)
  Mit Zitat antworten Zitat
SneakyBagels
(Gast)

n/a Beiträge
 
#19

AW: Array aus Record löschen

  Alt 22. Mai 2017, 19:01
Delete, Insert, Copy für dynamische Arrays. Vereinfacht mein Leben bestimmt sehr in Zukunft. Danke für den Tipp
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#20

AW: Array aus Record löschen

  Alt 22. Mai 2017, 19:20
Delete, Insert, Copy für dynamische Arrays. Vereinfacht mein Leben bestimmt sehr in Zukunft. Danke für den Tipp
Bestimmt..
Die Frage nur ob das sinnvoll ist für einen einzigen Aufruf die Generics mit einzubinden.
Das bauscht den Code wieder um einige KB auf. (Wäre in meinem Fall also unnötig)

Wenn man viel mit Arrays unterwegs ist. Warum nicht!
Dann wird sich das lohnen.

gruss
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 20:49 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