Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi DBlistbox ? (https://www.delphipraxis.net/65695-dblistbox.html)

Vader 20. Mär 2006 10:35

Datenbank: BDE • Version: 7.0 • Zugriff über: Table&Query

DBlistbox ?
 
hallo,
bin noch ein anfänger in der datenbankprogrammierung, habe mir das tut von martin strohal durchgelesen,
das hat alles gefunzt,jetzt wollte ich mit einer DBListBox arbeiten, aber er läßt mich nichts eingeben während
derlaufzeit,
bei DBEdit oder DBMemo hat das gefunzt, was mache ich da falsch, muß ich vorher eine andere tabelle erstellen,
habe paradox7 und den typ alpha gewählt ?

mfg vader

marabu 20. Mär 2006 10:58

Re: DBlistbox ?
 
Hallo Vader,

hast du denn auch vorher die möglichen Eingabewerte in der Eigenschaft Items der DBListBox eingetragen?

Grüße vom marabu

mkinzler 20. Mär 2006 11:08

Re: DBlistbox ?
 
Wenn die auszusuchenden Werte sich auch in einer Datenbank befinden, kannst du auch eine TDBLookupComboBox verwenden der kannst du dann mit ListSource und ListField eine Spalte in einer Datenbanktabelle zuweisen und mit Keyfield eine Spalte der Zieltabelle.

Vader 20. Mär 2006 11:12

Re: DBlistbox ?
 
hallo,

meinst du in Items (TStrings) ?
mfg vader

mkinzler 20. Mär 2006 11:13

Re: DBlistbox ?
 
Ja meint er.

Vader 20. Mär 2006 11:41

Re: DBlistbox ?
 
ja, aber dort kann ich doch nichts eingeben, da macht der string-listen-editor auf, ich möchte so wie in ein
DBMemo bei laufzeit was reinschreiben können !
mfg vader

marabu 20. Mär 2006 11:43

Re: DBlistbox ?
 
Dann schau dir mal DBComboBox an.

marabu

Vader 20. Mär 2006 11:54

Re: DBlistbox ?
 
ich weiß nicht was ich mit DBComboBox machen soll, ich drücke mich warscheinlich sehr umständlich aus,der grund
ist weil ich von datenbanken keine ahnung habe, kann man in eine DBListbox überhaupt schreiben oder muß
man die daten der DBListbox zuweisen ?

hätte irgenwer ein beispiel zum downloaden ( datenbank mit listbox usw. )
mfg vader

marabu 20. Mär 2006 11:59

Re: DBlistbox ?
 
DBListBox gestattet nur die Übernahme eines Eintrags aus Items. Willst du freie Eingabe ermöglichen, dann verwende DBComboBox. Wenn der eingegebene Wert neu ist, dann kannst du ihn nach dem Speichern in die Items der DBComboBox aufnehmen und er steht dir bei der nächsten Eingabe zur Auswahl. Natürlich kannst du auch die DBComboBox vorher initialisieren, aber die Grundidee ist, dass man bei der ListBox alle Items sehen soll und bei der ComboBox nicht - Platz auf dem Bildschirm ist knapp.

marabu

Vader 20. Mär 2006 12:10

Re: DBlistbox ?
 
und wie schaut so eine übernahme eines eintrages aus ?
mfg vader

marabu 20. Mär 2006 15:17

Re: DBlistbox ?
 
Hier eine mögliche Vorgehensweise:

Delphi-Quellcode:
procedure TForm1.TableAfterPost(DataSet: TDataSet);
begin
  with DBComboBox do
    if Items.IndexOf(Field.AsString) < 0 then
      Items.Add(Field.AsString);
end;
Die Eigenschaft Sorted der ComboBox sollte dabei TRUE sein.

marabu

Vader 20. Mär 2006 16:10

Re: DBlistbox ?
 
ja, aber wie bekomme ich den string rüber in die DBListbox ?
mfg vader

mkinzler 20. Mär 2006 16:15

Re: DBlistbox ?
 
Genauso, wie bei der ComboBox also

Delphi-Quellcode:
procedure TForm1.TableAfterPost(DataSet: TDataSet);
begin
  with DBListBox do
    if Items.IndexOf(Field.AsString) < 0 then
      Items.Add(Field.AsString);
end;
da beide Komponenten eine Eigenschaft Items vom Typ TStrings haben.

tr909 22. Mär 2006 08:38

Re: DBlistbox ?
 
Ich hatte das gleiche Problem, ich habs mit ner Jv -Komponente gelöst (TJvDBLookupComboEdit)

Die Items habe ich in einer extra tabelle in der tb gespeichert und die übernahme von neuen werten in die Tabelle über das OnExit-Event gesteuert

Die ComboBox hat den Namen cbxAnr, in der tabelle steht im Feld typ der jeweilige Wert

Code:
procedure TfrmPerson.cbxAnrExit(Sender: TObject);
begin
  if not Data.tblAnrede.Locate('anrede',cbxAnr.Text,[]) then
    Data.tblAnrede.InsertRecord([cbxAnr.text]);
end;
K.A. ob das sehr elegant ist, aber es funktioniert prima.

Gruß
tr909


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