Avatar billede kennethv Nybegynder
27. november 2007 - 13:57 Der er 7 kommentarer og
1 løsning

StringGrid kun en kolonne

Hej,

Jeg har en stringgrid med 2 kolonner. Jeg er interesseret i at det kun er den første kolonne man kan vælge, hvordan kan det gøres?

Jeg har prøvet dette, men jeg synes nu bare at den stadig giver mig indholdet af cellen uanset hvor jeg trykker i mig Stringgrid.

  if Stringgrid1.Col = 0 then
    label1.Caption := stringgrid1.Cells[ACol,ARow];

Eller er der bare en måde at disable kolonne 2 i stringgriden?
Avatar billede spil2vind Nybegynder
27. november 2007 - 14:11 #1
if Stringgrid1.Col = 0 then begin
  Label1.Caption := tringGrid1.CellsStringGrid1.Col,StringGrid1.Row];
end;
Avatar billede kennethv Nybegynder
27. november 2007 - 14:31 #2
Men Jeg har lavet den i StringGrid1SelectCell

procedure TCreateForm.StringGrid1SelectCell(Sender: TObject; ACol,
  ARow: Integer; var CanSelect: Boolean);
begin
  if Stringgrid1.Col = 0 then
    label1.Caption := stringgrid1.Cells[ACol,ARow];
end;

Og jeg har prøvet med Begin...End. Det samme resultat.

Hvis jeg gør sådanne her:

procedure TCreateForm.StringGrid1SelectCell(Sender: TObject; ACol,
  ARow: Integer; var CanSelect: Boolean);
begin
    label1.Caption := inttostr(stringgrid1.Col);
    label2.Caption := inttostr(stringgrid1.Row);
end;

og trykker sådan lidt rundt omkring sker der det, at hvis jeg har trykket på Cell[0,1] får jeg svar der hedder 0,1. Hvis jeg trykker Cell[1,1] får jeg 0,1 men hvis jeg trykker tilbage på cell[1,1] får jeg 1,1.
Avatar billede spil2vind Nybegynder
27. november 2007 - 19:34 #3
Vil meget gerne have accept på mit svar, dette er noget af udvidelse, men hjælper gerne, men et spørgsmål pr point
Avatar billede kennethv Nybegynder
27. november 2007 - 23:21 #4
For det første kan jeg ikke se, hvorfor at jeg skulle acceptere dit svar idet, at det du har beskrevet er en ting jeg har lavet før at du kom med den. Og for det andet, er det slet ingen forskel i de 2 mulige løsninger.

procedure TCreateForm.StringGrid1SelectCell(Sender: TObject; ACol,
  ARow: Integer; var CanSelect: Boolean);
begin
  if Stringgrid1.Col = 0 then
    label1.Caption := stringgrid1.Cells[ACol,ARow];
end;

procedure TCreateForm.StringGrid1SelectCell(Sender: TObject; ACol,
  ARow: Integer; var CanSelect: Boolean);
begin
  if Stringgrid1.Col = 0 then
  begin
    label1.Caption := stringgrid1.Cells[ACol,ARow];
  end;
end;

Men hvis du mener at den du har beskrevet er den rigtige, så fortæl mig i hvilken event at den skal skrives. For jeg kan ikke få den til at virke.
Avatar billede martinlind Nybegynder
28. november 2007 - 10:19 #5
prøv :

procedure TCreateForm.StringGrid1SelectCell(Sender: TObject; ACol,
  ARow: Integer; var CanSelect: Boolean);
begin

  CanSelect := ( ACol = 0 );

  if Stringgrid1.Col = 0 then
    label1.Caption := stringgrid1.Cells[ACol,ARow];

end;
Avatar billede kennethv Nybegynder
28. november 2007 - 10:30 #6
Hej Martin, tak for indlægget, men jeg tror faktisk at jeg kunne se hvad det var at Spil2Vind mente nu. Han manglede dog lige at nævne at den skulle have været i OnClick. Så jeg vil acceptere spil2vinds forslag.
Avatar billede kennethv Nybegynder
28. november 2007 - 11:04 #7
Iøvrigt, hvad bruges canSelect til?
Avatar billede martinlind Nybegynder
28. november 2007 - 14:47 #8
Jeg tror det er ligesom CanClose på din FormCloseQuery event. Noget med at du kan bestemme om man må Select'e den celle, så jeg tænkte at det måske var fordi den ikke var TRUE. Det var bare en hurtig tanke :)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester