Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi ComboBox im DBGrid (https://www.delphipraxis.net/64154-combobox-im-dbgrid.html)

Quake 29. Mär 2007 12:59

Re: ComboBox im DBGrid
 
Naja, die Sache ist so ... Ich will nicht unbedingt einen neuen Artikel in der Artikel DB anlegen. Der manuell Eingegebene Artikel soll nur in der einen "Zelle" gespeichert werden. Zum Preis : Ist der Artikel in der ArtikelDB wird der Preis aus dieser Tabelle herauskopiert und kann dann noch manuell verändert werden. Ist der Artikel nicht in der ArtikelDB muss der Preis manuell eingegeben werden.
Das ist aber nicht mein Problem, sondern nur das Handling des Autovervollständigen.

Ja, die DBComboBox kenn ich wohl. Ich könnte damit auch versuchen, die DBComboBox über das DBGrid blenden, wenn die Zelle in den Editiermodus geht.

uwewo 29. Mär 2007 13:48

Re: ComboBox im DBGrid
 
Bin mir nicht sicher, aber wenn Du eine DBLookUpComboBox verwendest, kann Du unter ListSource deine ArtikelDB und unter Datasource die ZielDB einstellen. Nun müsste bei nicht vorhandenen Artikeln, trotzdem der eingegebene Text übernommen werden. Autovervollständigung funktioniert ebenfalls.

Quake 29. Mär 2007 14:16

Re: ComboBox im DBGrid
 
Das währe gut, wenn das gehen würde, geht aber nicht. Bei der DBLookupComboBox kann man nur einträge Auswählen, die auch in der anderen Datenbank Stehen. Das kann auch nicht anders sein, da meist nicht der Text sondern nur eine ID zur verlinkung gespeichert wird, und wo sollte dann der manuell eingegeben Text gespeichert werden?

Hansa 29. Mär 2007 18:27

Re: ComboBox im DBGrid
 
Stelle das DBGrid auf StringGrid um. Ist zwar vordergründig etwas mehr zu programmieren und zu testen, aber im Endeffekt bleibt die volle Kontrolle bei dir. Dazu hätte ich auch ein komplettes Beispiel. Beim DBGrid ist man immer irgendwie eingezwängt.

Quake 13. Apr 2007 06:49

Re: ComboBox im DBGrid
 
Hallo,

Ich muss nocheinmal die Diskusion zu diesem Thread aufnehmen.
Jetzt funktioniert es schon fast gut. Ich blende jetzt eine ListBox, direkt unter dem InPlaceEditor des DBGrids, ein. Das Handling über die Tastatur funktioniert auch nahezu 100%. Ich habe nur ein Problem mit dem Maushandling.
Wenn ich mit der Maus auf ein anderes Steuerelement im Formular klicke soll die ListBox unsichtbar werden. Dis habe ich im OnExit Ereignis des DBGrids auch verwirklicht. Dies hat aber einen kleinen Seitenefekt. Klicke ich in meine ListBox, wird diese durch die Behandlung von OnExit des DBGrids unsichtbar, und damit erhält die ListBox das OnClick-Ereignis nicht mehr. Daraus folgt, ich kann keinen Eintrag der ListBox mit der Maus auswählen.
Kann ich im OnExit irgendwie feststellen, auf welches Steuerelemt geklick wurde bzw. welches Steuerelemt den Focus als nächstes erhalten wird.

ciao
Martin

PS: Mir ist gerade noch der Gedanke gekommen, das ich das verbergen der ListBox auch anders bewerkstelligen könnte. Undzwar nicht im OnExit des DBGrids, sondern in allen anderen Steuerelementen (außer bei der ListBox) beim OnEnter. Est das Praktikabel?


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

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