Конференция "Media" » Помогите найти ошибку в коде [D7]
 
  • Elz (20.09.08 16:03) [0]
    Помогите найти ошибку:

    procedure TForm1.DBMemo1KeyPress(Sender: TObject; var Key: Char);
    var
    cRect: TRect;
    bm: TBitmap;
    begin

    if dbmemo1.CaretPos.Y=15 then - если курсор будет на 15 строчке

    begin
    Windows.GetClientRect(Memo1.Handle, cRect);
    bm := TBitmap.Create;
    bm.Width := cRect.Right;
    bm.Height := cRect.Bottom;
    bm.Canvas.Font := Memo1.Font;
    if bm.Canvas.TextWidth(memo1.Text + Key) > CRect.Right-1 then
    Key := #0;
    end;
    bm.free;
    end;
    end;

    я хочу сделать ограничение ввода текста на 15 строчке, но одна буква всеравно залазить на слелующую; а если убрать if dbmemo1.CaretPos.Y=15 then тогда все нормально.
  • {RASkov} © (20.09.08 17:04) [1]
    > [0] Elz   (20.09.08 16:03)

    Во первых: форматирование.... нифика ничего не понятно, так как не видно кода... И один end лишний вроде...
    Во вторых: все равно ничего не понятно :) Какое ограничение хочешь сделать и при чем тут Битмап?
  • Vlad Oshin © (22.09.08 09:23) [2]
    procedure TForm1.DBMemo1KeyDown(Sender: TObject; var Key: Word;
     Shift: TShiftState);
    begin
     if dbmemo1.Lines.Count>14 then
     begin
       Key:=0;
       exit;
     end;
    end;

 
Конференция "Media" » Помогите найти ошибку в коде [D7]
Есть новые Нет новых   [134431   +10][b:0][p:0.001]