Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Einträge in ComboBox hinzufügen (https://www.delphipraxis.net/101692-eintraege-combobox-hinzufuegen.html)

Jack23 17. Okt 2007 13:38

Datenbank: Access • Zugriff über: ADO

Einträge in ComboBox hinzufügen
 
Ich füge mit folgenden Code in ein ComboBox Einträge aus einer DB hinzu.

Bei einem onCreate Ereignis.

Warum klappt das nicht? Das ist mein ganzer Code:

Delphi-Quellcode:
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
ComboBox1.Items.Add(ADOQuery1.FieldByName('Test').asString);
end;

quendolineDD 17. Okt 2007 13:41

Re: Einträge in ComboBox hinzufügen
 
Weil du das nicht im OnCreate- Ergeignis aufrust, sondern im onChange-Ereignis.
Und dann solltest du mal schauen ob in deinem String auch was drinnen steht.
Also
Delphi-Quellcode:
ShowMessage(ADOQuery1.FieldByName('Test').asString)
Hab hier letztens über Probleme damit gelesen und der Verwendung von Parametern, eventuell solltest du mal im Forum danach suchen, gibt ganz aktuelle Themen, welche darüber handeln.

Grüße

Jack23 17. Okt 2007 13:44

Re: Einträge in ComboBox hinzufügen
 
Woher willst du denn wissen das es im onChange aufgerufen wird?

Es kommt übrigens eine Fehlermeldung zurück:

Access Violation

DeddyH 17. Okt 2007 13:46

Re: Einträge in ComboBox hinzufügen
 
Zitat:

Zitat von Jack23
Woher willst du denn wissen das es im onChange aufgerufen wird?

Zitat:

Zitat von Jack23
Delphi-Quellcode:
procedure TForm1.ComboBox1Change(Sender: TObject);

:stupid:

quendolineDD 17. Okt 2007 13:48

Re: Einträge in ComboBox hinzufügen
 
Delphi-Quellcode:
procedure TForm1.ComboBox1Change(Sender: TObject);
Weil das dort steht >.<

Wäre ja echt cool, wenn du den ganzen Fehler kopieren würdest, aber egal :)

Kann es sein, das du garnicht die Recht für die Datenbank hast?!
Ich kann leider nur Raten, bisher kamen ja nicht viele Informationen deinerseits :)

Jack23 17. Okt 2007 16:09

Re: Einträge in ComboBox hinzufügen
 
Delphi-Quellcode:
procedure TForm1.ComboBox1Change(Sender: TObject);
Wenn ich da hin schreibe TForm1.AllesBloed

Ist dann gleich Alles Blöd?

Also es wird im onCreate aufgerufen.

Ich habe die rechte für die Datenbank.

Des ist bisher mein Code auf dem Formular. Mehr gibt es nicht. Fehlt da etwas?

Delphi-Quellcode:
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
ComboBox1.Items.Add(ADOQuery1.FieldByName('Test').asString);
end;
ComboBox1 ist vorhanden

ADOQuery1 auch und eine DataSource auch.

Ich bekomme außerdem noch die Meldung: ComBoBox1 enthält kein Element namens 'Items'.
Nicht deklarierter Bezeichner 'Add'.

Und zur der Access Violation Meldung. Wenn ich da auf Hilfe gehe kommt die Meldung "Namespace nicht definiert".

Ich hoffe diese Infos helfen weiter.

quendolineDD 17. Okt 2007 16:14

Re: Einträge in ComboBox hinzufügen
 
Also bei mir sieht das onCreate-Ereignis etwas anders aus :)

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin

end;
Wie ich feststellte, scheint die ComboBox keine Ereignisroutine onCreate zu besitzen.

Aber mal was für with (Herrn Naseweiß as Jack23) do

Zitat:

Delphi-Syntax:

property OnChange: TNotifyEvent;

C++ Syntax:

__property Classes::TNotifyEvent OnChange = {read=FOnChange, write=FOnChange};

Beschreibung

Mit einer Ereignisbehandlungsroutine für OnChange können Sie bestimmte Aktionen durchführen, wenn sich der Text des Kombinationsfelds ändert. Das Ereignis OnChange tritt ein, wenn der Benutzer einen neuen Wert in den Eingabebereich eingibt oder einen anderen Eintrag in der Liste auswählt. Die Eigenschaft Text enthält den neuen Wert.

Hinweis: Das Ereignis OnChange wird nicht ausgelöst, wenn Style den Wert csDropDownList hat. Verwenden Sie für solche Kombinationsfelder stattdessen OnSelect.
Hinweis: OnChange tritt nur als Reaktion auf Benutzeraktionen ein. Wenn die Eigenschaft Text programmgesteuert geändert wird, wird das Ereignis OnChange nicht ausgelöst.
Edit:

Hast du gar keine Uses deklariert o.ä.?

Da ich mit der ADO-Komponente noch nie gearbeitet habe, kann ich dir dazu leider auch nicht helfen.

Jack23 17. Okt 2007 16:16

Re: Einträge in ComboBox hinzufügen
 
Aber ich kann das ding doch nennen wie ich will. Gut nenne ich es eben FormCreate. Ändert doch aber auch nichts.

edit.
Wird doch alles automatisch deklariert.

quendolineDD 17. Okt 2007 16:25

Re: Einträge in ComboBox hinzufügen
 
Les dir mal diesen Grundlagen-Thread durch, um mehr über Delphi zu erfahren.

Du solltest nicht einfach das umbennen, das bringt garnichts. Zumal du gesehen hast, das dies die onCreate-Routine der Form war.

Jack23 17. Okt 2007 16:28

Re: Einträge in ComboBox hinzufügen
 
Meine Procedure war die ganze Zeit schon die on create der Form. Nur weil der Name anders ist heißt das doch nicht gleich das es onChange der ComboBox ist.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:27 Uhr.
Seite 1 von 2  1 2      

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