AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi TcxCombobox in TcxGrid Zugriff bei Items.AddObject
Thema durchsuchen
Ansicht
Themen-Optionen

TcxCombobox in TcxGrid Zugriff bei Items.AddObject

Ein Thema von Janek76 · begonnen am 6. Apr 2006 · letzter Beitrag vom 6. Apr 2006
Antwort Antwort
Janek76
(Gast)

n/a Beiträge
 
#1

TcxCombobox in TcxGrid Zugriff bei Items.AddObject

  Alt 6. Apr 2006, 14:52
Hallo! Ich habe mal folgende Frage: Ich nutze bei den DevExpress-Komponenten im cxGrid eine Combobox. Ich brauche wie in Html eine Combobox, in der ich neben dem Anzeige String (Texteigenschaft) einen Stringwert zum Speichern habe. Dazu habe ich folgende Zeile benutzt:

TcxComboBoxProperties(cxGridDBTableView1ComboBox.P roperties).Items.AddObject(String1,TObject(String2 ));


Versuche ich nun so auf diesen Wert zuzugreifen:
String(TcxComboBoxProperties(cxGridDBTableView1Com boBox.Properties).Items.Objects[i])
erhalte während der Laufzeit eine Zugriffsverletzung in Adresse soundo ntll.dll oder so oder es wird einfach nur Schrott abgespeichert. Wie macht man das richtig, bzw. was mache ich falsch?

Würde mich über eine Antwort sehr freuen,

vielen Dank!
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#2

Re: TcxCombobox in TcxGrid Zugriff bei Items.AddObject

  Alt 6. Apr 2006, 14:53
Hi,

ntdll.dll richtig?

Wenn ja, dann könnte es das Problem sein:

http://www.delphipraxis.net/internal...ht=patch+ntdll
  Mit Zitat antworten Zitat
Janek76
(Gast)

n/a Beiträge
 
#3

Re: TcxCombobox in TcxGrid Zugriff bei Items.AddObject

  Alt 6. Apr 2006, 15:05
Hm. Danke für die Antwort. Daran liegts glaube ich nicht, jedenfalls nicht ausschließlich. Jetzt habe ich auch als Fehlermeldung Zugriffsverletzung in Adresse so und so in der compilierten Projektdatei. Irgendwas mache ich falsch. Ich kenne mich noch zu wenig mit dem Umgang mit Objekten aus. Ich weiß nicht, ob ich einfach einen String in ein Objekt und anschließend wieder in einen String zurückverwandeln kann, bzw. ob man das selbe mit einem Integerwert machen kann, bzw. ich weiß nicht wie.
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#4

Re: TcxCombobox in TcxGrid Zugriff bei Items.AddObject

  Alt 6. Apr 2006, 15:10
Hi,

sorry ist mein Fehler. Ich hab das mit der Zugriffsverletzung übersehen.

Ich würde es so lösen:

Delphi-Quellcode:
TmyItem = class(TObject)
private
  FString2: String;
public
  property String2: String read FString2 write FString2;
end;

// dann beim abspeichern
myItem := TmyItem.Create;
myItem.String2 := String2;
TcxComboBoxProperties(cxGridDBTableView1ComboBox.Properties).Items.AddObject(String1, myItem);

// Auslesen
myItem := TMyItem(TcxComboBoxProperties(cxGridDBTableView1ComboBox.Properties).Items.Objects[i]);
Das hat den Vorteil, dass du es bei Bedarf schnell anpassen kannst (vielleicht musst du ja noch irgendwas anderes mitgeben).
Was du noch machen solltest, sind die Bezeichner anpassen (String2 ist nicht sehr aussagefreundlich)
  Mit Zitat antworten Zitat
Janek76
(Gast)

n/a Beiträge
 
#5

Re: TcxCombobox in TcxGrid Zugriff bei Items.AddObject

  Alt 6. Apr 2006, 15:54
Klasse! Vielen Dank für die Antwort. Genau das ist die Lösung. Muß noch ein bißchen darüber nachdenken, aber es funktioniert.
  Mit Zitat antworten Zitat
Janek76
(Gast)

n/a Beiträge
 
#6

Re: TcxCombobox in TcxGrid Zugriff bei Items.AddObject

  Alt 6. Apr 2006, 16:19
Achso eine Frage habe ich noch:

Kann ich mehrmals

myItem := TmyItem.Create;

hintereinander benutzen? Bzw. was passiert genau, wird jedesmal ein neues Objekt angelegt oder das alte zerstört und neu angelegt, wenn ich beides hintereinander mehrfach verwende. Bzw. wann kann ich myItem.Free und myItem.Destroy sagen?
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#7

Re: TcxCombobox in TcxGrid Zugriff bei Items.AddObject

  Alt 6. Apr 2006, 16:34
Hi,

ja kannst du.

Zitat:
Bzw. wann kann ich myItem.Free und myItem.Destroy sagen?
z.B. wenn du die Anwendung beendest.

Delphi-Quellcode:
// Beispiel anhand der Combobox:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var
  I: Integer;
begin
  for I := 0 to Combobox1.Items.Count - 1 do
  begin
    Combobox1.Items.Objects[I].Free;
  end;
end;
  Mit Zitat antworten Zitat
Antwort Antwort


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 17:12 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