Helaas komt met de code NGLN de combobox niet op de goeie plaatst
Zelf heb ik onderstaande code gemaakt, aangezien ik maar 1 veld heb waar de combo te voorschijn moet komen (col = 1 en row =10) is dit voor mij voldoende. Wellicht zijn er nog mensen die het graag willen veralgemeniseren (be my guest)
Code:
procedure TForm4.StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
var
R: TRect;
org: TPoint;
begin
Direction:=dirup;
if prevRow<=Arow then Direction:=dirDown;
prevRow:=Arow;
if (Direction=DirDown) and (Tstringgrid(Sender).TopRow + Tstringgrid(Sender).VisibleRowCount =10) then
begin
Tstringgrid(Sender).TopRow :=Tstringgrid(Sender).TopRow +1;
Tstringgrid(Sender).row:=Arow;
exit;
end;
if (Direction=DirUp) and (Tstringgrid(Sender).TopRow-1 = ARow) then
begin
Tstringgrid(Sender).TopRow :=Tstringgrid(Sender).TopRow -1;
Tstringgrid(Sender).row:=Arow;
exit;
end;
With Sender As TStringgrid Do
if (ACol = 1) and (ARow =10) Then
Begin
perform( WM_CANCELMODE, 0, 0 );
R := CellRect( Acol, Arow );
org:= Self.ScreenToClient( ClientToScreen( R.topleft ));
With combobox1 do
begin
setbounds( org.X, org.Y, r.right-r.left, height );
itemindex := Items.IndexOf( Cells[ acol, arow ] );
Show;
BringTofront;
SetFocus;
DroppedDown := true;
end;
end;
end;
Bookmarks