TDBGrid ergänzt nicht das Komma bei float



  • Guten Tag zusammen!👋

    Beim TDBGrid habe ich mehrere Spalten, einige davon sind int, string,diese funktionieren auch wie gewünscht, ABER float🙄 ;
    Wenn ich Doppelklick oder mit den Pfeiltasten navigiere und das Feld editieren möchte:
    präzise Eingabe: 2,56 ✅
    bei ungünstiger Eingabe: 200❌
    bekomme ich Stack Überlauf und das wars. ... ABER ich habe noch eine andere Form und dort werden die 200 auf 200,00 korrigiert ... but HOW?😕

    DBGrid1->Columns->Items[4]->Field->SetFieldType(ftFloat);
    

    habe ich bereits versucht🤔



  • Zeige mal (einen Teil des) Stacktrace. Hast du Ereignisse, welche rekursiv dort aufgerufen werden?



  • @Th69

    ->:763d2f0b KERNELBASE.MultiByteToWideChar + 0x1b
    :00910575 __linkproc__ WCharFromChar(WCharDest=????, DestChars=????, CharSource=????, SrcBytes=22, CodePage=1252)
    :009117A6 __linkproc__ InternalUStrFromPCharLen(Dest=????, Source=:00FD1733, Length=????, CodePage=1252)
    :00911801 __linkproc__ __linkproc__ UStrFromPCharLen(Dest=????, Source=????, Length=????)
    :007EA74B TMainForm::ApplicationEvents1Exception(this=:02183F50, Sender=:0D1CF0C0, E=:0CED80F0)
    :00923603 __linkproc__ TCustomApplicationEvents::DoException(Self=????, Sender=????, E=????)
    :00976A2C __linkproc__ TApplication::HandleException(Self=????, Sender=????)
    :008E5096 __linkproc__ StdWndProc(Window=792080, Message=256, WParam=40, LParam=22020097)
    :7796137b USER32.AddClipboardFormatListener + 0x4b
    :7795834a ; C:\Windows\SysWOW64\USER32.dll
    :779560ba ; C:\Windows\SysWOW64\USER32.dll
    :77955e80 USER32.DispatchMessageW + 0x10
    
    KERNELBASE.MultiByteToWideChar:
    763D2EF0 8BFF             mov edi,edi
    763D2EF2 55               push ebp
    763D2EF3 8BEC             mov ebp,esp
    763D2EF5 81ECFC000000     sub esp,$000000fc
    763D2EFB A150CB4B76       mov eax,[$764bcb50]
    763D2F00 33C5             xor eax,ebp
    763D2F02 8945FC           mov [ebp-$04],eax
    763D2F05 8B4518           mov eax,[ebp+$18]
    763D2F08 8B5514           mov edx,[ebp+$14]
    ->763D2F0B 53               push ebx
    763D2F0C 56               push esi
    763D2F0D 8B7510           mov esi,[ebp+$10]
    

    wenn ich anschließend F7 oder F8 drücke kommt die Zugriffsverletzung😕



  • TMainForm::ApplicationEvents1Exception ist doch eine Funktion von dir. Setze da mal einen Haltepunkt und überprüfe, was dort aufgerufen wird.

    Edit: Dein eigentliches Problem behebt das dann noch nicht, aber du solltest erst einmal ein lauffähiges Exception-Handling hinbekommen.


Anmelden zum Antworten