Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Functions mit Delphi (https://www.delphipraxis.net/49493-functions-mit-delphi.html)

Duke_2004 12. Jul 2005 12:25

Re: Functions mit Delphi
 
Jap... Und darum, dass der SQL-Text vor dem einfügen noch einmal geleert wird. Wenn die prozedure 2mal aufgerufen wird, kann es passieren, dass die Select-Anweisung 2mal drinsteht und dann meckert er auch rum. (Hatte ich bei mir zumindest schon) Setz am besten einmal einen Haltepunkt und geh mit F7 mal jede Zeile einzeln durch. Und dann sag wo er die Fehlermeldung bringt. Vielleicht hast du auch das andere Formular geschlossen (und dann freigegeben), somit kann er natürlich das Label nicht mehr finden...

cell 12. Jul 2005 12:41

Re: Functions mit Delphi
 
die fehlermeldung kommt bei dem satzt
Delphi-Quellcode:
if dlgResult = mrok then
ich hab das statt
Delphi-Quellcode:
frmtestauswahl.ShowModul
genommen weil das für die Datenrückgabe leichter ist
aber mit dem fehler was kommt kann ich nichts anfangen

Duke_2004 12. Jul 2005 12:47

Re: Functions mit Delphi
 
Delphi-Quellcode:
  case frmtestauswahl.ShowModal of
    mrok:
      begin
      //Anweisung, wenn Ok
      end;
    mrcancel:
      begin
      //Anweisung, wenn Abbruch
      end;
end;
Von wo aus rufst du dieses Formular auf? Am besten du schreibst mal hier den ganzen Quellcode rein, denn ohne zusammenhang erkennt man das ziemlich schlecht...

;-)

cell 12. Jul 2005 12:55

Re: Functions mit Delphi
 
das ist der quellcode von den beiden comboboxen
Delphi-Quellcode:
procedure Tfrmmesswertauswahl.FormShow(Sender: TObject);
begin
frmmesswertauswahl.cbotestreihe.Items.Clear;
  with DataModule1 do
  begin
       Query.SQL.Text:= selectsql('Testreihe','Testreihe','Testnummer=' +frmmesswertauswahl.lblnummer.Caption,'');
       Query.Open;
       while not Query.Eof do
       begin
             frmmesswertauswahl.cbotestreihe.Items.Add(Query.Fields[0].AsString);
             Query.Next;
       end;
       Query.Close;
  end;
frmmesswertauswahl.cbotestabschnitt.Items.Clear;
  with DataModule1 do
  begin
       Query.SQL.Text:= selectsql('Testabschnitt','Testreihe','Testnummer=' +frmmesswertauswahl.lblnummer.Caption,'');
       Query.Open;
       while not Query.Eof do
       begin
             frmmesswertauswahl.cbotestabschnitt.Items.Add(Query.Fields[0].AsString);
             Query.Next;
       end;
       Query.Close;
  end;
end;
das ist der quellcode für die showModal anweisung
Delphi-Quellcode:
var
   dlgResult: integer;
begin
  dlgResult:=frmtestauswahl.ShowModal;
  if dlgResult = mrok then
     frmmesswertauswahl.Showmodal;
  frmtestauswahl.close;
begin
  dlgResult :=frmmesswertauswahl.ShowModal;
  if dlgResult = mrok then
  begin
     frmmesswertauswahl.Close;
     frmtestauswahl.Close;
     CreateMDIChild('Unbenannt' + IntToStr(MDIChildCount + 1));
  end;
end;
end;

Duke_2004 12. Jul 2005 13:03

Re: Functions mit Delphi
 
Delphi-Quellcode:
procedure Tfrmmesswertauswahl.FormShow(Sender: TObject);
begin
{frmmesswertauswahl.}cbotestreihe.Items.Clear;
  with DataModule1 do
  begin
       Query.SQL.Text:= selectsql('Testreihe','Testreihe','Testnummer=' +{frmmesswertauswahl.}lblnummer.Caption,'');
       Query.Open;
       while not Query.Eof do
       begin
             {frmmesswertauswahl.}cbotestreihe.Items.Add(Query.Fields[0].AsString);
             Query.Next;
       end;
       Query.Close;

//frmmesswertauswahl.cbotestabschnitt.Items.Clear; //warum nocheinmal leeren -> dann wäre das drüber umsonst

       Query.SQL.Clear;
       Query.SQL.Text:= selectsql('Testabschnitt','Testreihe','Testnummer=' +{frmmesswertauswahl.}lblnummer.Caption,'');
       Query.Open;
       while not Query.Eof do
       begin
             {frmmesswertauswahl.}cbotestabschnitt.Items.Add(Query.Fields[0].AsString);
             Query.Next;
       end;
       Query.Close;
  end;
end;
Das in geschweiften Klammern brauchst du nicht, da sich alle Controls ja auf dem selben Formular befinden.(Sonst würde es ja auch nicht in dessen OnShow-Ereignis stehen)

^müsste so funktionieren

Zu deinen "Showmodalaufrufen": Von wo aus wird das aufgerufen? Was willst du damit bezwecken?

cell 12. Jul 2005 13:11

Re: Functions mit Delphi
 
nein leider der quelltext geht auch ned :(
mit dem ShowModul will ich erreichen dass ich alles vom main aufrufe.
dh.. das frmtestauswahl.ShowModal; muss nicht mehr in der procedure stehn sodern im main

Duke_2004 12. Jul 2005 13:15

Re: Functions mit Delphi
 
Das beste wird sein, du fragst mich das per ICQ :-D
(Oder schick mir deinen Quellcode einfach per mail...sonst drehen wir uns hier noch lange im Kreis ;-) )

Also das mit den Comboboxen füllen müsste schon so funktionieren... Aber deine Showmodal-Aufrufe sehen mir ziemlich wirr aus(Sorry)

Was für eine Fehlermeldung bringt er denn genau?

cell 12. Jul 2005 13:17

Re: Functions mit Delphi
 
ha das mit den comboboxen geht jetzt!!!!! :)

er bringt ned direkt eine fehlermeldung sondern er zeigt das formular doppelt an ich muss 2mal auf abbrechn klicken damit er es zu macht
sry hab in der firma kein icq :(

cell 12. Jul 2005 13:20

Re: Functions mit Delphi
 
ähmm was anderes :) kann ich in DBEdit felder was hineinschreiben von einer combobox.
wenn ja wie, weil bei einem DBEdit feld gibt es ja keine Caption und auch keinen Text???

und noch was wenn ich jetzt von anfang an was in meiner combobox stehen haben möchte, wie geht das ??
irgendetwas mit ItemIndex=1; oda so

Duke_2004 12. Jul 2005 13:25

Re: Functions mit Delphi
 
Naja...ICQ per Web gibts ja auch noch... ;-)

Zu deinen Showmodalen...

Delphi-Quellcode:
procedure Button1click(Sender:TObject);//Beispiel!!!
begin
  case frmtestauswahl.ShowModal of
  mrok:
  begin
    case frmmesswertauswahl.ShowModal of
    mrok:
    begin
      frmmesswertauswahl.Close;
      frmtestauswahl.Close;
      CreateMDIChild('Unbenannt' + IntToStr(MDIChildCount + 1));
    end;
    mrcancel:
    begin
 
    end;
  end;
  mrcancel:
  begin
    frmtestauswahl.close;
  end;
  end;
end;
Wenn ich deinen voherigen Quellcode richtig durchgeblickt hab... :-)

Zu DBEdit:

Delphi-Quellcode:
DBEdit.Field.AsString := 'irgendwas';
oder
DBEdit.Field.AsInteger := 5;
Zu Combobox:

Delphi-Quellcode:
if (Combobox.Items.Count > 0) then
begin
  Combobox.ItemIndex := 1;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:21 Uhr.
Seite 2 von 3     12 3      

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