Einzelnen Beitrag anzeigen

Peter-Pascal

Registriert seit: 18. Feb 2007
Ort: 32139 Spenge
197 Beiträge
 
Delphi 11 Alexandria
 
#1

TDialogService.InputQuery zeigt die Beschriftung nicht alle an

  Alt 12. Dez 2023, 11:55
Hallo,

TDialogService.InputQuery ignoriert die zweiten Felder. Hier die Ersteingabe.

Delphi-Quellcode:
procedure TFrameBuchhaltungPrivat.SpeedButtonNeuClick(Sender: TObject);
var
  Kategorie: TKategorie;
  Konto: TKonto;
begin
  TDialogService.InputQuery('Kategorie',['Name','Beschreibung'],['',''],
    procedure(const AResult: TModalResult; const AValues: array of string)
    var
      LValue: string;
    begin
      if AResult = mrOk then
      begin
        Konto:= TKonto(ListViewPrivat.Selected.TagObject);
        Kategorie:= TKategorie.Create;
        Kategorie.KategorieID:= -1;
        Kategorie.KontoPlanID:= Konto.KontoPlanID;
        if Konto.Nebenbuch <> TNebenbuch.Kategorie then
        begin
          Konto.Nebenbuch:= TNebenbuch.Kategorie;
          FViewModelKontoPlan.callUpdateKonto(Konto);
        end;
        Kategorie.Name:= AValues[0];
        Kategorie.Beschreibung:= AValues[1];
        FViewModelKontoPlan.callCreateKategorieDataSet(Kategorie);
        FreeAndNil(Kategorie);
        showKategorieListe
      end;
    end);
end;
Die zweite Eingabe unter Beschreibung wird gespeichert, aber dann nicht mehr angezeigt.

Hier die Korrektur:

Delphi-Quellcode:
procedure TFrameBuchhaltungPrivat.ListViewPrivatKategorieItemClickEx(const Sender: TObject; ItemIndex: Integer; const LocalClickPos: TPointF; const ItemObject: TListItemDrawable);
var
  Kategorie: TKategorie;
begin
  if ItemObject is TListItemAccessory then
  begin
    Kategorie:= TKategorie(ListViewPrivatKategorie.Selected.TagObject);

    TDialogService.InputQuery('Kategorie',['Name','Beschreibung'],[Kategorie.Name,Kategorie.Beschreibung],
    procedure(const AResult: TModalResult; const AValues: array of string)
    var
      LValue: string;
    begin
      if AResult = mrOK then
      begin
        Kategorie.Name:= AValues[0];
        Kategorie.Beschreibung:= AValues[1];
        FViewModelKontoPlan.callUpdateKategorieDataSet(Kategorie);
        TListViewItem(ListViewPrivatKategorie.Selected).Text:= Kategorie.Name;
        TListViewItem(ListViewPrivatKategorie.Selected).Detail:= Kategorie.Beschreibung;
      end;
    end);
  end;
end;
Der Screenshot zeigt, dass die Beschriftung beim zweiten Feld fehlt und der Inhalt des zweiten Feldes. Wie gesagt, speichern tut es.

Danke schon mal für die Hilfe.

Ps.: Vielleicht ist es von Bedeutung, ich habe die Version Athene.

Gruß Peter
Miniaturansicht angehängter Grafiken
inputquery.png  
Peter Niemeier
  Mit Zitat antworten Zitat