![]() |
procedure läuft nicht!
Hallo, ich habe folgendes Problem:
Ich wollte eine procedure erstellen, damit ich das Programm ein wenig verkleinern und dadurch übersichtlicher machen kann! Wenn ich jetzt aber den funktionierenden Quelltext in eine procedure packe, meint er z.B. plötzlich: Undefinierter Bezeichner: 'Listbox1' obwohl diese vorhanden ist. Ansonsten erkennt er noch die anderen Komponenten nicht(Listbox2 und table2(Datenbank), und schreibt haufenweise, dass "Operator oder Semikolon fehlt". Der gleiche Abschnitt(ausgenommen halt die variablen in der Kopfzeile) hat aber in "Button1.Click" ohne Probleme funktioniert. Hier der Quelltext:
Delphi-Quellcode:
Der ganze Quelltext greift auf ne normale Datenbank zu.
procedure modell(index: Integer; var firma: String);
var modell, marke: String; i, anzahl: Integer; begin If (Listbox1.Items.Strings[Listbox1.ItemIndex] = firma) AND (RadioGroup1.ItemIndex = index) then begin anzahl := table2.RecordCount; for i := 1 to anzahl do begin modell := table2.FieldByName('Mofa').AsString; marke := table2.FieldByName('Marke').AsString; if (modell <> '') AND (marke = firma) then Listbox2.Items.add(modell); table2.next; end; end; end; Es kann sein, dass die Lösung ganz simpel ist, aber ich befasse mich noch nicht solange mit Delphi. Ich hoffe ihr könnt mir helfen! |
Re: procedure läuft nicht!
Mache mal aus der procedure eine Methode der Formularklasse oder erweitere die Kompoentenzugriffe um die Formularklassenbezeichnung z.B.
Listbox1.Items.Strings[Listbox1.ItemIndex] ==> Form1.Listbox1.Items.Strings[Listbox1.ItemIndex] |
Re: procedure läuft nicht!
Ok, die beiden Fehlermeldungen bin ich dadurch losgeworden, aber er erkennt table2 noch immer nicht!
Er scheint mit all den Zeilen Probleme zu haben, wo es um das Arbeiten mit der Datenbank geht... |
Re: procedure läuft nicht!
Wo ist Table2 definiert?
|
Re: procedure läuft nicht!
TTable2 greift auf ne Datenbank zu!
Außerdem läuft das ganze ja, wenn ich es in Button1.Click kopiere. |
Re: procedure läuft nicht!
Ja aber in welcher Unit/welchem Formular ist diese Kompoenente definiert?
|
Re: procedure läuft nicht!
Ups, jetzt weiss ich was du meinst :)
Den hier hatte ich völlig vergessen:
Delphi-Quellcode:
aber jetzt habe ich ein anderes Problem:
procedure modell(index: Integer; var firma: String[b]; table2:ttable[/b]);
wenn ich die procedure aufrufe, wie kann ich die Variable(String) "firma" da reinschreiben:
Delphi-Quellcode:
Weil so macht er es nicht, ohne die '' auch net!
modell(1, 'firma');
Ich weiss, ich bin ein wenig neu in der Welt des Programmierens... Aber wenn ich jetzt Grundlagen durchstöbere, was ich auch eigentlich schon gemacht habe, werde ich die Lösung wohl eher erst nach einigen Stunden finden, wenn überhaupt! |
Re: procedure läuft nicht!
Du übergibst sie als Referenz: Ist sie zu diesem Zeitpunkt schon geöffnet?
Kannst du in der IDE auf die Daten zugreifen? Die Schleife würde ich wie folgt ändern
Delphi-Quellcode:
Achtung nenne die lokale Variable Modell besser um, da die Procedur schon so heißt, so gehts du möglichen Problemen aus dem Weg.
Table2.First;
while not Table2.eof() do begin modell := table2.FieldByName('Mofa').AsString; marke := table2.FieldByName('Marke').AsString; if (modell <> '') AND (marke = firma) then Listbox2.Items.add(modell); table2.next; end; |
Re: procedure läuft nicht!
Moin Steffen,
eine Bitte: Wir haben hier die Regel, dass für jede Frage ein Thread erstellt werden muss, damit später die Suchfunktion auch sinnvoll einsetzbar ist, und nicht in einem Thread alles durcheinander geht. Erstelle also bitte für die neue Frage einen neuen Thread. Danke. |
Re: procedure läuft nicht!
Zitat:
es war halt so, dass ich gerade das eine Problem gelöst hatte, und darauf gleich ein neues Auftrat. Ich gebe zu, ich habe da nicht wirklich drüber nachgedacht, und gleich die nächste Frage in den gleichen Thread hineingeschrieben. Natürlich bringt diese Regel, wenn sich daran jeder dran hällt, bei dem Suchen nach bestimmten Problemen einen Großen Vorteil! Ich werde mich demnächst daran halten! Ansonsten sind die beiden Fragen, die ich gestellt hatte auch geklärt: In der Kopfzeile musste ich 'firma' als Konstante vereinbaren:
Delphi-Quellcode:
Dann konnte ich die procedure folgendermaßen aufrufen:
procedure modell(index: Integer; const firma: String; table2:ttable);
Delphi-Quellcode:
modell(1, 'Zündapp', table2);
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:12 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