Špatné parametry v OnSelectCell – Delphi – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Špatné parametry v OnSelectCell – Delphi – Fórum – Programujte.comŠpatné parametry v OnSelectCell – Delphi – Fórum – Programujte.com

 

Navara0
Návštěvník
9. 11. 2013   #1
-
0
-

Zdravím,

mám problém s procedurou OnSelectCell, její parametry aRow a aCol mi při označení buňky vrací předchozí hodnoty - předchozí zvolenou buňku. Správně procedura funguje až po druhém kliknutí na tu kterou buňku.

procedure TMain.StrankySelectCell(Sender: TObject; ACol, ARow: Integer;
  var CanSelect: Boolean);
begin
 ARow := Stranky.Row;   // <= ani tohle nepomohlo pro opraveni predchozi hodn. na aktualni
 Stranka.Text := Stranky.Cells[1, Stranky.Row];
 AktualizovatCislaLinek;
end;


poradí mi někdo jak dostat aCol a aRow na správnou hodnotu, než se daná procedura provede?

Děkuji.

Nahlásit jako SPAM
IP: 37.188.230.–
Sniper
~ Anonymní uživatel
215 příspěvků
9. 11. 2013   #2
-
0
-

Jaká verze delphi? Jaká komponenta?

Zkoušel jsem to v Delphi 7 na TStringGrid a parametry jsou správně. Nezapomeň, že se buňky číslují od nuly počítaje v to i FixedCols/FixedRows.

Nahlásit jako SPAM
IP: 90.179.201.–
Navara0
Návštěvník
9. 11. 2013   #3
-
0
-

Delphi 7.3.4.3 komponenta StringGrid z Grids. Že se indexuje od nuly vím, jenže:
 - zvolím řádek 10 dvakrát aby hodnota byla správná
 - zvolím řádek 1 (jedním kliknutím) ale procedura se provede se řádkem 10
 - zvolím řádek 5 a procedura se provede se řádkem 1
 - zvolím 12, provede se s 5 a tak dále... 

Když udělám aby se celý zvolený řádek probarvil nějakým pozadím, vložím do procedury OnSelectCell volání procedury Repaint té tabulky a v proceduře OnDrawCell mám následující
 

procedure TPlanDleGVD.TablePlanGVDDrawCell(Sender: TObject; ACol,
  ARow: Integer; Rect: TRect; State: TGridDrawState);
var BarvaLinky: TColor;
begin
 if ((ARow > 0) and (Acol > 0)) then
 begin
  if Arow MOD 2 = 1
  then TablePlanGVD.Canvas.Brush.Color := $00DADADA
  else TablePlanGVD.Canvas.Brush.Color := $00AAAAAA;
  (*
  if Arow = TablePlanGVD.Row
  then TablePlanGVD.Canvas.Brush.Color := clBlack;
  *)
  TablePlanGVD.Canvas.FillRect(Rect);
 end;
end;


zakomentovaná část provede to, že probarví z nově zvoleného řádku jen zvolenou buňku a v ostatních sloupcích probarví buňky v předchozím zvoleném řádku.

Nahlásit jako SPAM
IP: 37.188.230.–
Sniper
~ Anonymní uživatel
215 příspěvků
9. 11. 2013   #4
-
0
-

Když tak znova koukám na ten kód, tak tohle 

Stranka.Text := Stranky.Cells[1, Stranky.Row];


je jednoznačně špatně, má být 

Stranka.Text := Stranky.Cells[1, ARow];


Protože tahle událost je volaná PŘED vybráním nové buňky, tudíž Stranky.Row obsahuje starou souřadnici, nová je právě v těch předaných parametrech (viz nápověda delphi: The Col and Row parameters indicate the column and row indexes of the cell that is about to be selected.).

Nahlásit jako SPAM
IP: 90.179.201.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 3 hosté

Podobná vlákna

Parametry — založil paking

Parametry — založil Mara

Program v C - parametry — založil sdfa

Metoda s parametry — založil domitea

Metody, parametry — založil Zbiro

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý