so auf die Schnelle fällt mir nur der direkte Weg ein
dafür müssen die Forms (DFMs) aber im Textformat gespeichert sein
Delphi-Quellcode:
var SL: TStringList;
begin
SL := TStringList.Create;
SL.LoadFromFile('form.dfm');
if (SL.Count > 0) and (Pos('object ', SL[0]) > 0) then begin
SL.Text := StringReplace(SL.Text, ': TScrollBox'#13#10,
': TScrollBox'#13#10'HorzScrollBar.Tracking = True'#13#10
+ 'VertScrollBar.Tracking = True'#13#10, [rfReplaceAll, rfIgnoreCase]);
SL.SaveToFile('form.dfm');
end;
SL.Free;
end;
und falls schon Einiges gesetzt ist, dann sollte man vorher mal prüfen, ob ".Tracking" noch nicht vorhanden ist ... könnte sein, das Delphi keine mehrfachvorkommen mag oder nur die letzen/alten Werte nimmt
Delphi-Quellcode:
var SL: TStringList;
Th, Tv, i: Integer;
begin
SL := TStringList.Create;
SL.LoadFromFile('form.dfm');
if (SL.Count > 0) and (Pos('object ', SL[0]) > 0) then begin
Th := -1;
Tv := -1;
for i := SL.Count - 1 downto 0 do begin
if Pos(' end', SL[i]) > 0 then begin
Th := -1;
Tv := -1;
end;
if Pos('HorzScrollBar.Tracking = ', SL[i]) > 0 then Th := i;
if Pos('VertScrollBar.Tracking = ', SL[i]) > 0 then Tv := i;
if (Pos(' object ', SL[i]) > 0) and Pos(': TScrollBox', SL[i]) > 0 then begin
if Th >= 0 then begin
SL[Th] := 'HorzScrollBar.Tracking = True';
Th := -1;
end else SL.Insert(i + 1, 'HorzScrollBar.Tracking = True');
if Tv >= 0 then begin
SL[Tv] := 'VertScrollBar.Tracking = True';
Tv := -1;
end else SL.Insert(i + 1, 'VertScrollBar.Tracking = True');
end;
end;
SL.SaveToFile('form.dfm');
end;
SL.Free;
end;