![]() |
Re: Anzahl der Datensätze einer Tabelle ermitteln
Hallo Fake,
du machst dir das vielleicht ein wenig zu schwer. Den letzten Teil deines Codes könntest du auch so schreiben:
Delphi-Quellcode:
Du brauchst den iCounter doch eigentlich nirgends. Und den Schlüssel habe ich im Objects-Array der ComboBox-Strings abgelegt. Da kommst du dann leicht wieder dran:
// ...
// iCounter := 0; while not tMandant.EOF do begin cbMandant.Items.AddObject(Format('%d - %s', [ tMandant.FieldByName('Mandantennummer').AsInteger, tMandant.FieldByName('Bezeichnung').AsString, Pointer(tMandant.FieldByName('Mandantennummer').AsInteger) ])); tMandant.Next; end;
Delphi-Quellcode:
Viel Erfolg mit deinem Projekt.
with cbMandant do
iMandant := Integer(Objects[ItemIndex]); |
Re: Anzahl der Datensätze einer Tabelle ermitteln
Klingt zumindest sehr logisch ... und vor allem wesentlich kürzer ;)
Zitat:
seinen Wert ändert ... ich versteh da grad den bezug nicht. Ich hab ja ein globals Array deklariert, um bei jedem durchlauf meinen Schlüssel zu speichern, damit ich weiß aus welcher Zeile ich mir die Mandantennummer in der Datenbank holen muss. Soweit ich weiß, sind Pointer, Zeiger die auf bestimmte Adressen zeigen, die sich doch hier mit jedem durchlauf ändern?! Sorry ... ich weiß ich hab nachholbedarf ... wär net wenn du mir dazu ne erklärung liefern könntest. Weiter zu frage 2: Zitat:
Welchen Schlüssel? alle "gesammelten"? Entschuldige, zwar ne sehr gute lösung, und vor allem noch schnell aber ich begreif nicht was dahinter geschiet ... und des wär zumindest sehr hilfreich für z.B. die Zukunft ... ich dank dir trotzdem sehr ;) f4k3 |
Re: Anzahl der Datensätze einer Tabelle ermitteln
Die von der ComboBox verwaltete StringList beherbergt intern zwei Felder: Strings[] und Objects[]. Objects[] darfst du frei verwenden und ich habe dir gezeigt, wie du durch den Typecast nach Pointer() die Mandantennummer dort ablegen kannst, obwohl Objects[] ja eigentlich ein Zeigerfeld ist.
Beim Zugriff auf das vom Benutzer ausgewählte Item in der ComboBox wird der ItemIndex entsprechend gesetzt und durch die Rückwandlunbg des Zeigers in eine Integer speichere ich die ausgewählte Mandantennummer in der Integer-Variablen iMandant - wieder unter Verwendung eines Typecasts, diesmal Integer(). Alles klar? Edit: Eine durchaus interessante Alternative zu der ComboBox wäre übrigens ein DBGrid. Es würden allerdings mehrere Datensätze angezeigt. Die Optik lässt sich sehr weitgehend an den persönlichen Geschmack anpassen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:01 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