Das mit der Fehlermeldung schaut so aus. Ich habe in die o.g Funktion noch ein "ShowMessage" eingebaut:
Delphi-Quellcode:
procedure SetTabstops( re: TRichedit; TabPositions: array of single );
var
pf: TParaFormat;
i : Integer;
begin
//Assert( Assigned( re ), 'SetTabstops: re cannot be nil' );
FillChar( pf, sizeof(pf), 0);
pf.cbSize := Sizeof( pf );
pf.dwmask := PFM_TABSTOPS;
if High(TabPositions) >= MAX_TAB_STOPS then
pf.cTabCount := MAX_TAB_STOPS
else
pf.cTabCount := High(TabPositions)+1;
For i:= 0 To pf.cTabCount-1 Do
pf.rgxTabs[i] := Trunc(TabPositions[i] * 1440);
re.perform( EM_SETPARAFORMAT, 0, lParam( @pf ));
ShowMessage(SysErrorMessage(GetLastError)); // <---------- Hier
end; { SetTabstops }
Doch ich habe rausgefunden, dass das Verhalten u.a auch mit der Eigenschaft ScrollBars (ssVertical) der RichEdits zusammenhängt. Wenn ich diese Eigenschaft auf ssNone stelle, geht es manchmal. Was ist da los?