Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Array auf Form sichern -> oder andere Lösung (https://www.delphipraxis.net/96383-array-auf-form-sichern-oder-andere-loesung.html)

HolgerCW 23. Jul 2007 15:39


Array auf Form sichern -> oder andere Lösung
 
Hallo zusammen,

ich schreibe in ein TTabSheet, die unterschiedlichen TStrings.

Zu jedem TString gehört aber auch eine ID, die ich woanders speichern will. -> Ich habe an ein Array gedacht.

Wenn ich nun die Tabs wechsel soll er sich die ID dort holen und ich kann dann auf der Datenbank die Werte dazu laden.

Heisst TabIndex = 1, soll er sich die ID aus dem Array an Position 2 holen.

Wie kann ich das Array am besten abspeichern. Wollte das in ein Label speichern, aber das klappt irgendwie nicht. Heisst -> reinschreiben schon, aber

Delphi-Quellcode:
ID :Array of Integer;

ID := [Label1.Caption];
das klappt nciht.

Gruss

Holger

_frank_ 23. Jul 2007 17:41

Re: Array auf Form sichern -> oder andere Lösung
 
Zitat:

Zitat von HolgerCW
Hallo zusammen,

ich schreibe in ein TTabSheet, die unterschiedlichen TStrings.

wie schreibst du die da rein? kenne keine Eigenschaft von TTabsheet mit dem Datentyp TStrings...
Zitat:

Zitat von HolgerCW
Zu jedem TString gehört aber auch eine ID, die ich woanders speichern will. -> Ich habe an ein Array gedacht.

Tstring? meinst einen eintrag in der TStrings-Liste? => string
du kannst mittels addObject den Items Daten anhängen z.b. auf TObject gecastete Integer ;)
Zitat:

Zitat von HolgerCW
Wenn ich nun die Tabs wechsel soll er sich die ID dort holen und ich kann dann auf der Datenbank die Werte dazu laden.
Heisst TabIndex = 1, soll er sich die ID aus dem Array an Position 2 holen.

die positionen in arrays (soweit nicht anders definiert) und Listen sind indizies, die bei 0 beginnen...

id:=idarray[tabindex] ;)
bzw. bei TStrings (man sollte lieber TStringlist nehmen)
id:=integer(stringlist.Objects[tabindex])
Zitat:

Zitat von HolgerCW

Wie kann ich das Array am besten abspeichern. Wollte das in ein Label speichern, aber das klappt irgendwie nicht. Heisst -> reinschreiben schon, aber

Delphi-Quellcode:
ID :Array of Integer;

ID := [Label1.Caption];

kann zwar irgendwie keinen sinn drin erkennen, die Caption eines Labels in ein array zu schreiben, aber nungut, aber Label.Caption ist vom Typ string (bzw. TCaption). somit musst du erst einen Integer draus machen (Hier im Forum suchenStrToInt) oder dein array gleich als String-Array aufbauen (nur, wenn nicht nur zahlen drin gehalten werden sollen), aber warum dann die TStrings?
das array liegt doch schon im speicher, warum *nochmal* in den speicher legen? oder willst das in ne datei haben?

Zitat:

Zitat von HolgerCW
das klappt nciht.

wirst sicher von fehlermeldungen überflutet *g*. kenne viele, aber "klappt nicht" ist mir nicht geläufig..

Gruß Frank

HolgerCW 24. Jul 2007 10:52

Re: Array auf Form sichern -> oder andere Lösung
 
Hi,

habe es auch aufgegeben. Schreibe jetzt in ein Array als globale Variable.

Gruss

Holger

_frank_ 24. Jul 2007 14:56

Re: Array auf Form sichern -> oder andere Lösung
 
wenn du du die Beziehung Bezeichner<=>ID erhalten willst (auch wenn z.b. sortiert werden soll) kannst du auch ein solches Konstrukt verwenden:

Delphi-Quellcode:
type
  TIDRec=record
    id:integer;
    caption:string;
  end;

var
  idarray:array of TIDRec;
denke mal, damit kannst du dir die TStrings sparen...
weiterhin sollte bedacht werden, ob eine globale gültigkeit notwendig ist, evtl. reicht es schon als private/public-variable des forms.

HTH Frank


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:26 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