AGB  ·  Datenschutz  ·  Impressum  







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

Unter bestimmten Umständen kein Wert im Edit

Ein Thema von franktron · begonnen am 3. Apr 2019 · letzter Beitrag vom 3. Apr 2019
Antwort Antwort
franktron

Registriert seit: 11. Nov 2003
Ort: Oldenburg
1.446 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#1

Unter bestimmten Umständen kein Wert im Edit

  Alt 3. Apr 2019, 08:45
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:
SetButtons(1);
  FormHelper.Felder(Self,False,1);
  FormHelper.Felder(Self,True,1);
  IsNew:=True;
  AktGruppenID:=0;
Hier der von Edit

Delphi-Quellcode:
SetButtons(1);
  FormHelper.Felder(Self,True,1);
  IsNew:=False;
Erstellung der Edits
Delphi-Quellcode:
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;
Speichern der Daten
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;
Frank
Tux sein Lieblingsquellcode
While anzfische<TuxSatt do begin
Fisch:=TFisch.Create; Tux.EssenFisch(Fisch); Fisch.Free;inc(anzfische); end;
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Unter bestimmten Umständen kein Wert im Edit

  Alt 3. Apr 2019, 09:04
Hallo,
nun, das interessante "Schreiben" bzw. "Neu" fehlt.

Was sagt denn der Debugger?
Was genau ist das DBAccess1? (Datentyp?)
Heiko
  Mit Zitat antworten Zitat
franktron

Registriert seit: 11. Nov 2003
Ort: Oldenburg
1.446 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#3

AW: Unter bestimmten Umständen kein Wert im Edit

  Alt 3. Apr 2019, 09:07
Hallo,
nun, das interessante "Schreiben" bzw. "Neu" fehlt.

Was sagt denn der Debugger?
Was genau ist das DBAccess1? (Datentyp?)
Der Debugger sagt ja gerade 0 bei der Stelle und DBAccess1 ist den DB Kapslung da werden nur SQL Dinge behandelt(z.b. Eine Query zusammen gesetzt).
Frank
Tux sein Lieblingsquellcode
While anzfische<TuxSatt do begin
Fisch:=TFisch.Create; Tux.EssenFisch(Fisch); Fisch.Free;inc(anzfische); end;
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.415 Beiträge
 
Delphi 7 Professional
 
#4

AW: Unter bestimmten Umständen kein Wert im Edit

  Alt 3. Apr 2019, 09:19
... und DBAccess1 ist den DB Kapslung da werden nur SQL Dinge behandelt(z.b. Eine Query zusammen gesetzt).
Und genau dadrin könnte der Fehler liegen.

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.
  Mit Zitat antworten Zitat
franktron

Registriert seit: 11. Nov 2003
Ort: Oldenburg
1.446 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#5

AW: Unter bestimmten Umständen kein Wert im Edit

  Alt 3. Apr 2019, 09:26
... und DBAccess1 ist den DB Kapslung da werden nur SQL Dinge behandelt(z.b. Eine Query zusammen gesetzt).
Und genau dadrin könnte der Fehler liegen.

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.
Das ist gerade das komische die Komponenten die ich zur Desingtime angelegt haben gehen alle, und das Porblem besteht schon vor if IsNew then ....
nämlich hier

Delphi-Quellcode:
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;
Hab ich vielleicht beim Create was falsche gemacht
Frank
Tux sein Lieblingsquellcode
While anzfische<TuxSatt do begin
Fisch:=TFisch.Create; Tux.EssenFisch(Fisch); Fisch.Free;inc(anzfische); end;
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.415 Beiträge
 
Delphi 7 Professional
 
#6

AW: Unter bestimmten Umständen kein Wert im Edit

  Alt 3. Apr 2019, 09:46
Erstellen der Edits:  Edit1.Name:='Edit_S_'+IntToStr(GruppeQ.Items[i].ID);
Suchen der Edits:  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.
  Mit Zitat antworten Zitat
franktron

Registriert seit: 11. Nov 2003
Ort: Oldenburg
1.446 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#7

AW: Unter bestimmten Umständen kein Wert im Edit

  Alt 3. Apr 2019, 10:12
Danke euch alle hab den Fehler gefunden lag tatsächlich in der DB Schicht.
Frank
Tux sein Lieblingsquellcode
While anzfische<TuxSatt do begin
Fisch:=TFisch.Create; Tux.EssenFisch(Fisch); Fisch.Free;inc(anzfische); end;
  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 01:13 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