Új hozzászólás Aktív témák

  • vz12

    tag

    válasz Yodafon #1723 üzenetére

    Azt hiszem hogy egy kis hibát vétettem, ezt korrigálom:

    mezo[1].OnSelectCell:=Sajat_SelectCell; // paraméterek NÉLKÜL
    mezo[2].OnSelectCell:=Sajat_SelectCell; // paraméterek NÉLKÜL

    Helyesen tehát "OnSelectCell" kell ide ahogy Fire példáján is látszik, ezt tévesztettem el. Ha az értékadás jobb oldalaira azonos eljárás nevet írsz be akkor szerintem megvalósul amit szeretnél, tehát közös OnSelectCell eljárása lesz minden példánynak.

    Egyébként ez is belerakható ám a ciklusba, így lesz biztosítva a legegyszerűbben a közös OnSelectCell, tehát:
    mezo[i].OnSelectCell:=Sajat_SelectCell; // paraméterek NÉLKÜL

    A többi rész viszont változatlan, tehát a Sajat_SelectCell eljárást szigorúan a definiálandó eljárás paraméterlistájával (OnSelectCell) deklarálni és definiálni (kifejteni) kell.

    procedure TForm1.Sajat_SelectCell(Sender: TObject; ACol,
    ARow: Integer; var CanSelect: Boolean);

    Meghíváskor át kell adni a paramétereket is!
    Pl. mezo[1].OnSelectCell(Sender,1,1,bValtozo);
    Figyelj rá hogy a 4. paraméternek logikai változónak kell lennie a "VAR" miatt!
    Ez át fog irányítódni a form Sajat_SelectCell eljárásába és továbbadja a paramétereket is. Viszont a Sajat_SelectCell-t meg kell írni !!! Tehát le kell reagálni a cella kiválasztódás eseményét, ha nem írsz bele semmit akkor ilyenkor nem fog történni semmi. Legalábbis úgy gondolom, mert ezt sem próbáltam ki. :)

    [ Szerkesztve ]

Új hozzászólás Aktív témák