Den moderne arbejdsplads er i stigende grad afhængig af mødelokaler til at fremme samarbejde, men dette skift medfører også stigende sikkerhedsudfordringer.
Slettet bruger
24. september 2003 - 07:23#1
I en Listbox markere du en item med ItemIndex f.eks.
ha ha. Jeg kan alligevel ikke se det fordi der er farver i griden så selected bliver overmalet. Kan jeg ikke sætte en ramme omkring istedet? Det samme gælder i øvrigt listen.
Synes godt om
Slettet bruger
25. september 2003 - 09:38#16
Tror man kan lave det med canvas.. måske:
procedure TStringGrid1DrawCell(....); begin if (StringGrid1.Row = ARow) and (StringGrid1.Col = ACol) then begin StringGrid1.Canvas.Pen.Color := clRed; StringGrid1.Canvas.Rectangle(Rect); end; end;
Synes godt om
Slettet bruger
25. september 2003 - 14:41#17
Ellers kan du jo bare farve den markede celle med en anden farve sådan:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); begin if (ACol = StringGrid1.Col) and (ARow = StringGrid1.Row) then begin StringGrid1.Canvas.Brush.Color := clRed; StringGrid1.Canvas.Rectangle(Rect); StringGrid1.Canvas.TextRect(Rect, Rect.Left + 2, Rect.Top + 2, StringGrid1.Cells[ACol, ARow]); end; end;
I øvrigt kan StringGrid1.Canvas.DrawFocusRect; anbefales når rammen skal tegnes :-)
Synes godt om
Slettet bruger
25. september 2003 - 16:16#21
Kan se den procedure jeg lavede længere oppe ikke virker, men med athlons.. DrawFocusRect under StringGrid1.Canvas.Rectangle(Rect); virker den vist som den skal :-)
Hej. Smider lige nogle flere point, da problemet ikke var så simpelt som først antaget. hejhej det kan jeg ikke rigtig få til at fungere. Hvis jeg i min TStringGrid1DrawCell har jeg:
Canvas.Brush.color := BGColor; Canvas.Font.Color := FColor; end; Canvas.TextRect(Rect, Rect.Left + 2, Rect.Top + 2, cells[acol, arow]); Canvas.FrameRect(Rect); if (TidGrid.row = Arow) and (tidGrid.col = Acol) then begin TidGrid.Canvas.Pen.Color := clBlack; TidGrid.Canvas.Pen.Width := 5; TidGrid.Canvas.DrawFocusRect(Rect); end;
Men rammen bliver ikke mere markant. ?!?!?
Synes godt om
Slettet bruger
26. september 2003 - 21:25#25
Prøv det her:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); var R:TRect; begin with StringGrid1 do begin Canvas.Brush.color := clRed; Canvas.Font.Color := clBlack; Canvas.FillRect(Rect); if (Row = ARow) and (Col = ACol) then begin Canvas.Pen.Color := clBlack; Canvas.Pen.Width := 5; Canvas.Rectangle(Rect.Left+2,Rect.Top+2,Rect.Right-2,Rect.Bottom-2); Canvas.DrawFocusRect(Rect); end; R := Rect; Inc(R.Left,5); Inc(R.Top,5); Dec(R.Right,5); Dec(R.Bottom,5); Canvas.TextRect(R, R.Left, R.Top, Cells[acol, arow]); end; end;
Ja. Undskyld jeg ikke har svaret, men jeg har simpelt hen ikke haft tid til at komme videre med projektet, hvilket betyder at jeg ikke har afprøvet det. Jeg skal nok svare så snart jeg får tid til at afprøve det.
Så fik jeg endelig tid til at kigge på det. Jeg brugte næsten din løsning hejhej, men jeg brugte framerect istedet for textrect.
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.