Читать «Виртуальная библиотека Delphi» онлайн - страница 99
Unknown
9. Почему при уничтожении компонента в методе OnClick происходит ошибка?
Допустим, вы поместили на форму кнопку, и создали метод
На самом деле
Button1.OnClick := nil;
Button1.Free;
то это не поможет — стек настроен на возврат в обработчик
10. Есть ли у TDBGrid события OnMouseDown, OnMouseUp и OnMouseMove?
Они есть, но не объявлены published. Вы можете создать наследника
11. Поиск компонента в форме по имени.
Я хочу делать текущими в форме произвольные компоненты. Как выставить фокус у конкретного компонента ясно -
Свойство
procedure TForm1.DooDah;
var
Count: Integer;
begin
Count := 0;
while (Count < ComponentCount) and (Components[Count] <> 'Button1') do Inc(Count);
TButton(Components[Count]).SetFocus;
end;
или еще проще:
procedure TForm1.DooDah;
var
Target: TComponent;
begin
Target := FindComponent('Button1');
TButton(Target).SetFocus;
end;
Оба этих примера показывают как найти компонент
12. Как получить горизонтальный ScrollBar на ListBox?
Пошлите сообщение
procedure TForm1.FormCreate(Sender: TObject);
begin
SendMessage(Listbox1.Handle, LB_SETHORIZONTALEXTENT, 1000, Longint(0));
end;
13. Как определить текущую колонку и строку каретки в компоненте TMemo?
Вы можете использовать сообщения Windows API
var
LineNum: Longint;
CharsBeforeLine: Longint;
begin
LineNum := SendMessage(Memo1.Handle, EM_LINEFROMCHAR, Memo1.SelStart, 0);
CharsBeforeLine := SendMessage(Memo1.Handle, EM_LINEINDEX, LineNum, 0);