AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi mehrere Record-Variablen über Procedure ändern
Thema durchsuchen
Ansicht
Themen-Optionen

mehrere Record-Variablen über Procedure ändern

Ein Thema von apm · begonnen am 19. Apr 2021 · letzter Beitrag vom 20. Apr 2021
 
apm

Registriert seit: 22. Nov 2010
28 Beiträge
 
#1

mehrere Record-Variablen über Procedure ändern

  Alt 19. Apr 2021, 18:06
Hallo!
Ich stehe gerade minimal auf dem Schlauch...

In meinem Programm habe ich einen Record mit mehreren Bool-Variablen.
Diese müssen an Hand von Text-Informationen aus einem JSON-Array ggf. auf true gesetzt werden.

Da ich das merfach machen muss und eig. keine direkte Anweisung für jede Variable definieren will war das mein Gedanke:
Ich schreibe eine Procedure, welche die String-Infos aus dem JSON-Array mit denen abgleicht, welche für den true-Status relevant sind.
Entsprechend eines Treffers will ich eine einzelne Variable auf true setzten.

Mein Problem / Fehler ist, dass ich die Record-Variablen nicht in meine Procedure übergeben kann, um diese direkt zu ändern ("var" Angabe der Definition): Konstantenobjekt kann nicht als Var-Parameter weitergegeben werden


Teile vom Record:
Delphi-Quellcode:
type
  TRecEvent = record

    //...

    bCustomMediaHidePrint, bCustomMediaHideApp : Boolean;
  end;

Funktion zum überarbeiten der Boolean-Werte:
Delphi-Quellcode:
procedure proc_loadCustomFiedBooleanState(const sUrl : String; const sArrTrueText : Array of String; var bArrTrueState : Array of Boolean; var jObj : TJSONObject);
  var i, j : Integer;
      jArr : TJSONArray;
begin
  if (Length(sArrTrueText) = 0)
  or (Length(bArrTrueState) = 0)
  or (Length(sArrTrueText) <> Length(bArrTrueState)) then
    Exit;

  try

      jArr := func_jsonGetArray(sUrl, jObj);

      for i := 0 to jArr.Count-1 do
        for j := 0 to High(sArrTrueText) do
          if jArr[i].Value.Equals( sArrTrueText[j] ) then
          begin
            bArrTrueState[j] := true;
            Break;
          end;

  except
  end;
end;

Funktionsaufruf:
Delphi-Quellcode:
          proc_loadCustomFiedBooleanState( sWebMecEventCustomMediaHideUrl,
                                            [sWebMecEventCustomMediaHidePrint, sWebMecEventCustomMediaHideApp],
                                            [Result[High(Result)].bCustomMediaHidePrint, Result[High(Result)].bCustomMediaHideApp],
                                            JSONObject);
Vom Record baue ich einen Array, um diesen später weiterzuverarbeiten.
Result = TArray<TRecEvent>



Hat jemand eine Idee?
  Mit Zitat antworten Zitat
 


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 04:54 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-2025 by Thomas Breitkreuz