Einzelnen Beitrag anzeigen

leniii

Registriert seit: 9. Nov 2017
4 Beiträge
 
#9

AW: Grid- angeklickte Zeile auf Edit auslesen

  Alt 15. Nov 2017, 10:07
Jap, gibt Sinn

Also zuerst ist das eine Funktion die ein String trennt. Die brauche ich später.

Delphi-Quellcode:
function splitOutIndex(const Source: String; const Delimiter: String; Index: Integer): String;
var
  Lcount, Lnumber, LSourceLength, LDelLength, LStart, LEnd: Integer;
begin
  Lcount := 1;
  Lnumber := 0;
  if Index = 0 then
    LStart := 1
  else
    LStart := 0;

  LEnd := 0;
  result := '';
  LSourceLength := length(Source);
  LDelLength := length(Delimiter);

  while (Lcount <= LSourceLength) and (LEnd = 0) do
  begin
    if copy(Source, Lcount, LDelLength) = Delimiter then
    begin
      inc(Lnumber);
      if Lnumber >= Index then
      begin
        if LStart = 0 then
          LStart := Lcount + LDelLength
        else
        begin
          LEnd := Lcount;
          result := copy(Source, LStart, LEnd - LStart);
        end;
      end;
      Lcount := Lcount + LDelLength;
    end
    else
      inc(Lcount);
  end;
  if (LStart > 0) and (LEnd = 0) then
    result := copy(Source, LStart, LSourceLength - LStart + 1);
end;
Und das ist jetzt die eigentliche Prozedur, die, wenn ich eine Zeile anklicke, die SELROW der Zeile auf dem Label_releaseDate ausgibt.
Ich hoffe es ist halbwegs verständlich
Delphi-Quellcode:
procedure TUpdatesFr.GridFilesJQGridOptionsCellSelect(Sender: TObject; AParams: TStringList);
var
  s: String;
  i: Integer;
  outcome: TStringList;
  LFound: Boolean;
begin
  LFound := False;
  for i := 0 to AParams.count - 1 do
  begin
    if AParams[i].Contains('_SELROW') then
    begin
      updateversion.Filter:= 'WHERE id =: s';
      updateversion.ParamByName('s').AsString:= splitOutIndex(AParams[i], '=', 1);
      updateversion.Open;
      if updateversion.RecordCount>0 then
      begin
        Label_releaseDate.Text:= updateversion.FieldByName('releasedate').AsString;
      end
      else
      begin
        webApplication.showMessage('Kein Datum gefunden.');
      end;
      LFound := True;
      break;
    end;

  end;
  if not LFound then
    webApplication.ShowMessage('Kein SelRow drin');
end;
  Mit Zitat antworten Zitat