![]() |
Unter bestimmten Umständen kein Wert im Edit
Ich habe Dynamisch erstellte Numberboxen(FMX) Delphi 10.2.3 mit IDE Fix
Wenn ich Neue Daten eingeben will Sind beim Schreiben keine Daten mehr vorhanden bei Edit geht das aber. Was kann die Ursache sein. Hier der Code von neu
Delphi-Quellcode:
Hier der von Edit
SetButtons(1);
FormHelper.Felder(Self,False,1); FormHelper.Felder(Self,True,1); IsNew:=True; AktGruppenID:=0;
Delphi-Quellcode:
Erstellung der Edits
SetButtons(1);
FormHelper.Felder(Self,True,1); IsNew:=False;
Delphi-Quellcode:
Speichern der Daten
For i:=0 To GruppeQ.Count-1 do
begin Tab:=TTabItem.Create(Self); Tab.Parent:=tbc1; Tab.Name:='Tab_'+IntToStr(i); Tab.Text:=GruppeQ.Items[i].Name; label1:=TLabel.Create(Self); label1.Parent:=Tab; label1.Position.X:=10; label1.Position.Y:=10; label1.Width:=120; label1.Text:='Stundenstatz'; label1.Name:='Label_S_'+IntToStr(i); Edit1:=TNumberBox.Create(Self); Edit1.Parent:=Tab; Edit1.Position.X:=140; Edit1.Position.Y:=10; Edit1.Width:=50; Edit1.Tag:=1; Edit1.ValueType:=TNumValueType.Float; Edit1.Name:='Edit_S_'+IntToStr(GruppeQ.Items[i].ID); end;
Delphi-Quellcode:
DBAccess1.Gruppe:=AktGruppenID;
DBAccess1.ID:=AktItemID; DBAccess1.Name:=Edit_Name1.Text; DBAccess1.Gruppe1:=SummenGr.Items[Combo_GruppenSumme.ItemIndex].ID; For i:=0 To DBAccess1.Summen.Count-1 do Begin Edit:=FindComponent('Edit_S_'+IntToStr(DBAccess1.Summen.Items[i].GSID)) AS TNumberBox; if Assigned(Edit) then Begin DBAccess1.Summen.Items[i].Summe:=Edit.Value;//Hier ist nur bei neu immer 0 drin End; End; if IsNew then Begin DBAccess1.ID:=0; DBAccess1.Neu; End Else DBAccess1.Edit; AktItemID:=DBAccess1.Schreiben; |
AW: Unter bestimmten Umständen kein Wert im Edit
Hallo,
nun, das interessante "Schreiben" bzw. "Neu" fehlt. Was sagt denn der Debugger? Was genau ist das DBAccess1? (Datentyp?) |
AW: Unter bestimmten Umständen kein Wert im Edit
Zitat:
|
AW: Unter bestimmten Umständen kein Wert im Edit
Zitat:
In Neu wird also IsNew auf True gesetzt. IsNew wird aber vor dem Aufruf von Neu abgefragt, bzw. der Aufruf von Neu erfolgt in Abhängigkeit des Wertes von IsNew. Das erscheint mir jetzt nicht zwingend so ganz verständlich. IsNew hat damit wohl immer den Wert des letzten Aufrufes von Neu bzw. Schreiben. Wird also ein Satz geschrieben, so ist IsNew anschließend False. Soll nun ein Satz neu angelegt werden, so ist IsNew vor dem (gewünschten) Aufruf von Neu noch False und damit wird Neu nicht aufgerufen. Der Debugger hat mit seiner Aussage also durchaus recht. Die implementierte Logik erscheint mir überdenkungswürdig. |
AW: Unter bestimmten Umständen kein Wert im Edit
Zitat:
nämlich hier
Delphi-Quellcode:
Hab ich vielleicht beim Create was falsche gemacht
For i:=0 To DBAccess1.Summen.Count-1 do
Begin Edit:=FindComponent('Edit_S_'+IntToStr(DBAccess1.Summen.Items[i].GSID)) AS TNumberBox; if Assigned(Edit) then Begin DBAccess1.Summen.Items[i].Summe:=Edit.Value; <--- Hier ist der Wert 0 und z.b. 10 wie eingegeben End; End; |
AW: Unter bestimmten Umständen kein Wert im Edit
Erstellen der Edits:
Delphi-Quellcode:
Edit1.Name:='Edit_S_'+IntToStr(GruppeQ.Items[i].ID);
Suchen der Edits:
Delphi-Quellcode:
Edit:=FindComponent('Edit_S_'+IntToStr(DBAccess1.Summen.Items[i].GSID))
Sind .ID und .GSID immer gleich? Warum überhaupt dieser Unterschied? Beabsichtigt oder Schreibfehler oder ...? Sorry, aber die gezeigten Fragmente reichen nicht annähernd aus, um irgendeine sinnvolle Hilfestellung geben zu können. |
AW: Unter bestimmten Umständen kein Wert im Edit
Danke euch alle hab den Fehler gefunden lag tatsächlich in der DB Schicht.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:35 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 by Thomas Breitkreuz