![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите найти ошибку в коде [D7]
Elz © (2008-09-20 16:03:00)Помогите найти ошибку:
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 тогда все нормально.
Vlad Oshin (2008-09-22 09:23:00) [1]
procedure TForm1.DBMemo1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if dbmemo1.Lines.Count>14 then
begin
Key:=0;
exit;
end;
end;
{RASkov} (2008-09-20 17:04:00) [2]> [0] Elz (20.09.08 16:03)
Во первых: форматирование.... нифика ничего не понятно, так как не видно кода... И один end лишний вроде...
Во вторых: все равно ничего не понятно :) Какое ограничение хочешь сделать и при чем тут Битмап?