Ich habe in meinem Programm die "Ersetzen"-Funktion eingebaut (von den Synedit Beispielprogrammen). Wenn ich aber auf "Ja für alle" klicke, werden zwar alle Wörter richtig ersetzt, doch am Ende kommt immer eine Meldung: "Assertion failure (c:\programme\borland\delphi7\comps\synedit\source\SynEdit.pas, line 1460)"
Ich hb mal diese Zeile (mit der ganzen Prozedur) rausgesucht:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36:
| procedure TCustomSynEdit.DecPaintLock; var vAuxPos: TDisplayCoord; begin Assert(fPaintLock > 0); Dec(fPaintLock); if (fPaintLock = 0) and HandleAllocated then begin if sfScrollbarChanged in fStateFlags then UpdateScrollbars; if WordWrap and ([scCaretX,scCaretY] * fStatusChanges <> []) then begin vAuxPos := DisplayXY; if (vAuxPos.Column > CharsInWindow +1) and (CharsInWindow > 0) then begin if fCaretAtEOL then fCaretAtEOL := False else begin vAuxPos.Column := CharsInWindow +1; fCaretX := DisplayToBufferPos( vAuxPos ).Char; Include(fStatusChanges,scCaretX); end; UpdateLastCaretX; Include(fStateFlags, sfCaretChanged); end; end; if sfCaretChanged in fStateFlags then UpdateCaret; if fStatusChanges <> [] then DoOnStatusChange(fStatusChanges); end; end; |
Was soll ich tun?