Autor Beitrag
spike0
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 77



BeitragVerfasst: So 06.11.05 19:49 
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:
ausblenden volle Höhe Delphi-Quelltext
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;
    // Locks the caret inside the visible area
    if WordWrap and ([scCaretX,scCaretY] * fStatusChanges <> []) then
    begin
      vAuxPos := DisplayXY;
      // This may happen in the last row of a line or in rows which length is
      // greater than CharsInWindow (Tabs and Spaces are allowed beyond
      // CharsInWindow while wrapping the lines)
      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?