AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

procedure läuft nicht!

Ein Thema von SteffenG · begonnen am 3. Feb 2006 · letzter Beitrag vom 4. Feb 2006
Antwort Antwort
SteffenG

Registriert seit: 3. Feb 2006
26 Beiträge
 
#1

procedure läuft nicht!

  Alt 3. Feb 2006, 19:33
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:
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;
Der ganze Quelltext greift auf ne normale Datenbank zu.

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!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: procedure läuft nicht!

  Alt 3. Feb 2006, 19:36
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]
Markus Kinzler
  Mit Zitat antworten Zitat
SteffenG

Registriert seit: 3. Feb 2006
26 Beiträge
 
#3

Re: procedure läuft nicht!

  Alt 3. Feb 2006, 19:41
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...
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: procedure läuft nicht!

  Alt 3. Feb 2006, 19:43
Wo ist Table2 definiert?
Markus Kinzler
  Mit Zitat antworten Zitat
SteffenG

Registriert seit: 3. Feb 2006
26 Beiträge
 
#5

Re: procedure läuft nicht!

  Alt 3. Feb 2006, 19:45
TTable2 greift auf ne Datenbank zu!

Außerdem läuft das ganze ja, wenn ich es in Button1.Click kopiere.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: procedure läuft nicht!

  Alt 3. Feb 2006, 19:47
Ja aber in welcher Unit/welchem Formular ist diese Kompoenente definiert?
Markus Kinzler
  Mit Zitat antworten Zitat
SteffenG

Registriert seit: 3. Feb 2006
26 Beiträge
 
#7

Re: procedure läuft nicht!

  Alt 3. Feb 2006, 19:55
Ups, jetzt weiss ich was du meinst
Den hier hatte ich völlig vergessen:

procedure modell(index: Integer; var firma: String[b]; table2:ttable[/b]); aber jetzt habe ich ein anderes Problem:

wenn ich die procedure aufrufe, wie kann ich die Variable(String) "firma" da reinschreiben:

modell(1, 'firma'); Weil so macht er es nicht, ohne die '' auch net!

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!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: procedure läuft nicht!

  Alt 3. Feb 2006, 20:02
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:
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;
Achtung nenne die lokale Variable Modell besser um, da die Procedur schon so heißt, so gehts du möglichen Problemen aus dem Weg.
Markus Kinzler
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: procedure läuft nicht!

  Alt 3. Feb 2006, 20:03
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.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
SteffenG

Registriert seit: 3. Feb 2006
26 Beiträge
 
#10

Re: procedure läuft nicht!

  Alt 4. Feb 2006, 00:49
Zitat von Christian Seehase:
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.
Sorry,
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:

procedure modell(index: Integer; const firma: String; table2:ttable); Dann konnte ich die procedure folgendermaßen aufrufen:

modell(1, 'Zündapp', table2);
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:36 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