w jaki sposob wyswietlic w komponencie StringGrid wybrany

0

Nie wiem w jaki sposob wyswietlic w komponencie StringGrid wybrany zakres kolumn. Chodzi mi o to, ze nie chce zeby tabela wyswietlala kolumny od 0 tylko np. kolumny od 10 do 20

W moim programie StrinGrid pełni role tasmy, na której sa wykonywane pewne operacje (wizualizacja maszyny Turinga). Aktualną operacje na wybranej komorce pokazuje TrackBar, ktory pelni role głowicy. Chcialabym, zeby wraz ze zmianą połozenia tej glowicy zmienialy sie kolumny widoczne na ekranie

//Witam Bialystok ;P - lofix

0

Witam,

Najprościej będzie manipulować szerokościami określonych kolumn.
Przetestuj poniższy kod (przyjąłem, że twój StringGrid ma nazwę StringGrid1):

var
  licz: integer;
begin
  // wpierw "wyzerujemy" szerokość wszystkich kolumn
  for licz:=0 to Stringgrid1.ColCount-1 do
    Stringgrid1.ColWidths[licz]:=-1; // przyjmij zerową szerokość (powinno być -1 jak chcesz to sprawdź co się dzieje dla 0)
    
  // a teraz ustalimy szerokość kolumn z przedziału
  for licz:=Min to Max do // dla kolumn z zakresu Min-Max przyjmij określoną szerokość - ja dałem domyślną
    Stringgrid1.ColWidths[licz]:=Stringgrid1.DefaultColWidth;
end;

Pozdrawiam
Rav

0

thx ale nie o to mi chodzilo :/

0

Witaj. Tez to mialem.

Calkiem niezle i proste rozwiazanie to zwezenie niepotrzebnych kolumn do width:=0;
Minusem jest tylko to, ze jesli w Sgrid masz border np:=1 to gdy zwezisz kolumne do zera, jej obramowanie zostaje, co widac na monitorze jako border pomiedzy kolumnami wynoszacy juz 2 albo 3.

0

thx ale nie o to mi chodzilo :/

No cóż to już nie mój problem, że nie potrafisz dokładnie sprecyzować swojego problemu. Mój kod działa dokładnie tak jak tego chciałaś czyli wyświetla kolumny z zakresu od Min do Max (jak rozumiem dałaś dla przykładu Min=9 i Max=19 dla wyświetlania kolumn tak jak podałaś czyli 10-20?)
Co za problem przerobić to na jakąś tak funkcję którą będziesz wywoływać aby zmienić zakres wyświetlania kolumn?
Jeżeli chcesz coś więcej to albo sprawdź kod który Ci podałem (jeżeli go jeszcze nie sprawdziłaś) lub dokładnie powiedz o co Ci chodzi - czemu ten kod Ci nie odpowiada.

Do Novitius:
Nic nowego nie wniosłeś - powieliłeś tylko to samo co ja już podałem. Co więcej ja pokazałem wyeliminowanie tego obramowania (Width=-1) :)

Pozdrawiam

0

Chyba chodzi o 2 sprawy

  1. Ustawienie pierwszej widocznej kolumny np: StringGrid1.LeftCol:=3; (analogicznie TopRow)
  2. Dopasowanie szerokości kolumn - wcześniej zostało to pokazane
0

Po jednej nieprzespanej nocy program dziala doskonale. Dzieki za pomoc.

Pozdrawiam

1 użytkowników online, w tym zalogowanych: 0, gości: 1