Einzelnen Beitrag anzeigen

davar

Registriert seit: 4. Feb 2005
311 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: MDI - Funktionen eines anderen Formulars

  Alt 8. Feb 2006, 11:29
ich versuch es mal detailliert und möglichst vollständig.

In Form1 ist folgende Funktion:

Delphi-Quellcode:
procedure TForm1.Listenfuellen;
var i: integer;
begin
CBFluggesellschaft.items.clear;
DBs.TVeranstalter.First;
for i:= 1 to DBs.TVeranstalter.RecordCount do
begin
     if DBs.TVeranstalter.Fieldbyname('Status').AsString = '1then
     CBFluggesellschaft.items.add(DBs.TVeranstalter.Fieldbyname('Veranstalter').AsString +
        ' (' + DBs.TVeranstalter.Fieldbyname('Abkuerzung').AsString + ')');
     DBs.TVeranstalter.next;
end;
Wenn ich von Form1 aus diese Funktion aufrufe, läuft es ohne Probleme. In Form2 kann man die Veranstalterliste bearbeiten. Wenn man in Form2 speichert (Button), soll automatisch Form1.Listenfuellen ausgeführt werden. Hierfür sage ich in Form2:

Form1.Listenfuellen; Ich verfolge die Abarbeitung von Form2 aus mit "Einzelne Anweisung", also F7. Alle Befehle werden abgearbeitet, auch "Form1.Listenfuellen." Nochmal F7, der Compiler springt rüber zu Form1. Versucht die Zeile

CBFluggesellschaft.items.clear; auszuführen und zeigt dann die Fehlermeldung an. Wenn ich diese Zeile auskommentiere, läuft er in Form1 weiter.

Delphi-Quellcode:
begin
     if DBs.TVeranstalter.Fieldbyname('Status').AsString = '1then
wird auch mehrmals ausgeführt. Wenn die Bedingung erfüllt ist, kommt die nächste Zeile

     CBFluggesellschaft.items.add(DBs.TVeranstalter.Fieldbyname('Veranstalter').AsString + und hier ist wieder Schluss..

Und wenn ich statt CBFluggesellschaft.items.clear eine andere Komponente, z.B. Edit1 anspreche, ist es genauso. Es scheint an den Komponenten zu hängen.

Hoffe, das war ausführlich..
  Mit Zitat antworten Zitat