Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   letztes Element eines Records löschen (https://www.delphipraxis.net/176428-letztes-element-eines-records-loeschen.html)

Der schöne Günther 4. Sep 2013 18:23

AW: letztes Element eines Records löschen
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1227192)
OT: ist doch niedlich, daß die IDE auch Deutsche Umlaute in Variablennamen kann, nicht?

Um ganz ehrlich zu sein habe ich teilweise wirkllich Umlaute und (könnte sogar sein) Unicode-Zeichen in Bezeichnern. Tut doch niemandem weh?

Uwe Raabe 4. Sep 2013 19:54

AW: letztes Element eines Records löschen
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1227195)
Um ganz ehrlich zu sein habe ich teilweise wirkllich Umlaute und (könnte sogar sein) Unicode-Zeichen in Bezeichnern. Tut doch niemandem weh?

Jein! Du kannst z.B. auch Komponenten auf dem Form mit Umlauten im Namen verwenden. Schaltest du dann aber das Form in den Textmodus, schrottet die IDE die Textdarstellung.

Davidlocke13 5. Sep 2013 09:35

AW: letztes Element eines Records löschen
 
Delphi-Quellcode:
type TEdit_Sätze=array of TEdit_Satz;

DeddyH 5. Sep 2013 09:45

AW: letztes Element eines Records löschen
 
Delphi-Quellcode:
var
  ZuLoeschendesEdit: TEdit;
begin
  ...
  ZuLoeschendesEdit := Edit_Sätze[k].zehn_Edit;
  Edit_Sätze[k].zehn_Edit := nil;
  ZuLoeschendesEdit.Free;
end;
Das sollte nach meinem Dafürhalten funktionieren und nebenbei einigermaßen verständlich sein.

Der schöne Günther 5. Sep 2013 09:50

AW: letztes Element eines Records löschen
 
Sollte ... das k nicht noch irgendwie von alleine kleiner werden? Mich hat das ganze schon zu Beginn überfordert, ich halte mich besser raus.

Ich kann mir überhaupt nicht vorstellen, was hier grade abläuft. Wenn ich ein Bild malen würde, was sich beim Benutzer auf dem Bildschirm abspielen würde, wie sähe das aus?

DeddyH 5. Sep 2013 10:00

AW: letztes Element eines Records löschen
 
Wieso sollte k kleiner werden? Die Anzahl der Array-Elemente ist ja nicht betroffen.

Der schöne Günther 5. Sep 2013 10:04

AW: letztes Element eines Records löschen
 
Ich meinte nur das hier:

Zitat:

Zitat von Davidlocke13 (Beitrag 1227190)
Delphi-Quellcode:
Edit_Sätze[k].zehn_Edit
wenn ich jetzt bei k z.B. auf 5 bin, wie kann ich dann das letzte Teil löschen so das k auf 4 ist ?

Delphi-Quellcode:
Edit_Sätze[k].zehn_Edit :=free;
geht schon mal nicht !

Ich persönlich habe noch keine Verbindung zu diesem k aufgebaut, mir selbst ist das nicht so wichtig :wink:

DeddyH 5. Sep 2013 10:08

AW: letztes Element eines Records löschen
 
Achso. k wird höchstwahrscheinlich eine Schleifenvariable sein, ansonsten erschließt sich mir der Sinn auch nicht.

bcvs 5. Sep 2013 11:07

AW: letztes Element eines Records löschen
 
Ich weiß zwar auch nicht genau, was hier mit den Edits passieren soll, aber wäre es nicht viel eleganter, das ganze in Klassen und Listen zu verwalten anstatt in Records und Arrays.

also
Delphi-Quellcode:
Type
  TEdit_Satz=class
    Combo_Komponente:TCombobox;
    Mmo_Beschreibung:TMemo;
    Preis_Edit:TEdit;
    zehn_Edit:TEdit;
    zehnMwSt_Edit:TEdit;
    zwanzig_Edit:TEdit;
    zwanzigMwSt_Edit:TEdit;
    vierzig_Edit:TEdit;
    vierzigMwSt_Edit: TEdit;
    constructor Create;
    destructor Destroy; override;
end;
Im Create werden die ganzen Komponenten erzeugt und im Destroy mit free wieder freigegeben.

Anstatt deinem Array nimmst du eine TObjectList.
Delphi-Quellcode:
var
  list:TObjectList;
  es:TEditSatz;
  ...
  // Liste füllen
  es:=TEditSatz.Create;
  list.add(es);
  ...
  // und Löschen des letzten Objekts
  list.delete(list.count-1);

Uwe Raabe 5. Sep 2013 13:55

AW: letztes Element eines Records löschen
 
Zitat:

Zitat von Davidlocke13 (Beitrag 1227190)
wenn ich jetzt bei k z.B. auf 5 bin, wie kann ich dann das letzte Teil löschen so das k auf 4 ist ?

Delphi-Quellcode:
SetLength(Edit_Sätze, Length(Edit_Sätze) - 1);
dec(k);
Eventuell musst du noch die Komponenten innerhalb des Records freigeben, aber es ist bisher ja auch nicht ersichtlich, wie die da überhaupt rein kommen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:53 Uhr.
Seite 2 von 3     12 3      

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