-
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;