09. august 2004 - 12:05Der er
5 kommentarer og 2 løsninger
Vælg en kolonne i en stringgrid.
Hej
Et lille problem :
Hvordan kan man vælge en kolonne i en stringgrid, det er jo muligt at vælg en række (goRowSelect). Det skal være sådan at når man trykker på musen skal den sætte fokus på en kolonne istedetfor en række.
I en TSringGrid kan man sætte goRowSelect under options i denne komponent, det bevirker at hele linjen hvor man står bliver sat til en farve og når man bevæger sig op/ned så ændre den sig.
procedure TfrmMain.sgGridDrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); begin with (Sender as TStringGrid) do begin if (FixedCols > aCol) or (FixedRows > aRow) then begin Canvas.Brush.Color := clBtnFace; Canvas.FillRect(Rect); end else if ACol = fSelectedCol then begin Canvas.Brush.Color := clBlue; Canvas.FillRect(Rect); end else begin Canvas.Brush.Color := clWindow; Canvas.FillRect(Rect); end; end; end;
procedure TfrmMain.sgGridSelectCell(Sender: TObject; ACol, ARow: Integer; var CanSelect: Boolean); begin fSelectedCol := aCol; (Sender as TStringGrid).Refresh; // Ellers tegner den ikke alle kolonner op. end;
procedure TfrmMain.FormCreate(Sender: TObject); begin fSelectedCol := sgGrid.FixedCols; // Gem kolonne så OnCellDraw ved hvor den skal markere end;
stoney - Jeg så godtnok TGridRect men troede at det var pixel-koordinaterne eller lignende. Det ser jo ud til at løse opgaven.
P.s. "rocks" skulle være "sucks", ikke? En typisk tastefejl :-) Vi har det røde og blå album (illusion I & II), men den fænger altså ikke hos mig. Håber det tæller op at jeg synes Delphi er et fedt programmeringssprog.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.