• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Stringgrid

  • Автор темы acorn
  • Дата начала
A

acorn

На форме есть компонент StringGrid. Какое событие отвечает за щелчек на fixed?
 
G

Guest

Вообще за Click отвечает событие OnClick!
 
Z

zubr

Для: Проходимец
В том то и проблема, что в StringGrid при щелчке на fixed OnClick не возникает.
 
G

Guest_xelaok_*

Можно так...

procedure TForm.StringGridMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var ACol, ARow: Integer;
Fixed: Boolean;
begin
with TStringGrid(Sender) do
begin
MouseToCell(X, Y, ACol, ARow);
Fixed := (ACol < FixedCols) or (ARow < FixedRows);
end;
end;
 
J

Jack_A

Привет всем !

Обращался в 2 эхи этого профиля, но без результата.
И из "гуру" ничего путного не выжал.
В Дельфи я чайник, хотя программер давний.
Вопрос : имеем на форме StringGrid. При запуске
приложения левая верхняя ячейка StringGrid оказывается
закрашенной. Когда кликаешь по ячейке, на ней появляется
курсор, а последняя до того бывшая выделенной ячейка
закрашивается.Как ее от этого отучить? Даже при
заполнении ячейки из программы закрашивание не исчезает.
Попытки переключать свойства без толку : или ничего не
меняется, или в ячейку ничего нельзя записать.
Попутно вопрос : как из программы, без клика мышью,
передать фокус ввода в желаемую ячейку ? В Edit меня это
делать научили : Edit.SetFocus.

WBR Jack
 
Z

zubr

Вопрос : имеем на форме StringGrid. При запуске
приложения левая верхняя ячейка StringGrid оказывается
закрашенной. Когда кликаешь по ячейке, на ней появляется
курсор, а последняя до того бывшая выделенной ячейка
закрашивается.Как ее от этого отучить? Даже при
заполнении ячейки из программы закрашивание не исчезает.
Попытки переключать свойства без толку : или ничего не
меняется, или в ячейку ничего нельзя записать.
В свойстве Options поставь goDrawFocusSelected в False
Попутно вопрос : как из программы, без клика мышью,
передать фокус ввода в желаемую ячейку ? В Edit меня это
делать научили : Edit.SetFocus.
СЪимитировать нажатие мыши SendMessage WM_LBUTTONDOWN WM_LBUTTONUP, где в LPARAM указать координаты нужной ячейки.
 
B

Barmutik

Присвоить значения Col and Row нужным значениям...
 
6

62316e

Selection property (TCustomGrid)
Indicates the boundaries of the current selection.
Delphi syntax:
property Selection: TGridRect;
Пример:
Код:
//The following code selects the rectangle containing rows 1 through 4, and columns 2 and 3.

procedure TForm1.Button1Click(Sender: TObject);
var
myRect: TGridRect;
begin
myRect.Left := 3;
myRect.Top := 1;
myRect.Right := 2;
myRect.Bottom := 4;
DrawGrid1.Selection := myRect;
end;
 
Z

zubr

Для: 62316e
Этот пример позволяет только выделить нужные ячейки, но не передать фокус ввода в нужную ячейку.
 
6

62316e

Для: 62316e
Этот пример позволяет только выделить нужные ячейки, но не передать фокус ввода в нужную ячейку.
Ну а если SetFocus(); после Selection сделать? че не то разве? Или я не понял вопрос.
 
Z

zubr

Для: 62316e
В примере, что ты выложил не прокатит. Соглашусь если так сделать:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
myRect: TGridRect;
begin
myRect.Left := 1;
myRect.Top := 1;
myRect.Right := 1;
myRect.Bottom := 1;
StringGrid1.Selection := myRect;
StringGrid1.SetFocus;
end;
 
J

Jack_A

...<отменить закраску>
В свойстве Options поставь goDrawFocusSelected в False

Придется, наверное, вручную :
with TStringGrid(sender).CanvasRect do
begin
CurCell := TStringGrid(sender).Cells[Col,Row] :
FontColor := clBlack ;
Brush.Color := ClWhite
end ;
 
6

62316e

2zubr: Это было логично:) В любом случяе в хелпе все написно, включяя что надо SetFocus руками делать после Selection. (Я уже молчю что о Selection тоже в хелпе писано;))
 
N

Nika

Откликнитесь, плиз! У меня такая проблема: StringGrid имеет color clblack, font.color=clwhite, в run-time при выделении любой ячейки и попытке внести туда запись ячейка становится белой- в итоге не видно, что вводишь...а если сделать font.color=clblack, то после ввода не видно ничего...В общем, как от белого выделения при внесении данных избавится?
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!