Hirdetés
- Derült égből villámcsapás: vége a Ford elektromos kalandjának
- Januártól igényelhető a kiskorúak tartalomvédelme a mobilszolgáltatóknál
- Korai iOS árulkodik arról, milyen eszközök várhatók az Apple-től a közeljövőben
- Névlegesen nyer üzemidőcsatát a Honor új szériája
- Decembertől kapható itthon a Baseus Inspire szériája
- Megbüntették, ezért feloszlatná az EU-t Elon Musk
- Korai iOS árulkodik arról, milyen eszközök várhatók az Apple-től a közeljövőben
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Xiaomi 15 - kicsi telefon nagy energiával
- Youtube Android alkalmazás alternatívák reklámszűréssel / videók letöltése
- Hivatalos a OnePlus 13 startdátuma
- Samsung Galaxy Z Fold7 - ezt vártuk, de…
- BlitzWolf termékek topicja
- Samsung Galaxy A55 - új év, régi stratégia
- Xiaomi 15T Pro - a téma nincs lezárva
Új hozzászólás Aktív témák
-
válasz
Yodafon
#1720
üzenetére
Hali!
vz12 leírta helyesen hogy mire kell odafigyelni.
Valamint szigorúan "eredeti" paraméterlistával:
procedure TForm1.Sajat_SelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean);Én annyival egészíteném ki, hogy mivel nevet is adtam az objektumoknak(stringgrid1, stringgrid2, stb) ezért van, hogy nem "akármilyen néven" hivatkozok rá(StringGrid1SelectedCell, StringGrid2SelectedCell)
Valamint a progi kilépésekor fel kell szabadítani az objektumokat.
Gyakorlatban ilyen a kód.unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, StdCtrls;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
procedure StringGrid2SelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
mezo:array[1..2] of TStringGrid;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var
i:Integer;
begin
for i:=1 to 2 do begin
mezo[i]:=TStringGrid.Create(Self);
mezo[i].Parent:=Form1;
mezo[i].Name:='StringGrid'+IntToStr(i);
end;
mezo[1].Top:=20;
mezo[1].Left:=50;
mezo[1].FixedCols:=0;
mezo[1].FixedRows:=0;
mezo[1].ColCount:=3;
mezo[1].RowCount:=3;
mezo[1].DefaultColWidth:=20;
mezo[1].DefaultRowHeight:=20;
mezo[1].Ctl3D:=false;
mezo[1].Width:=64;
mezo[1].Height:=64;
mezo[1].ScrollBars:=ssNone;
mezo[1].OnSelectCell:=StringGrid1SelectCell;
mezo[2].Top:=200;
mezo[2].Left:=120;
mezo[2].FixedCols:=0;
mezo[2].FixedRows:=0;
mezo[2].ColCount:=3;
mezo[2].RowCount:=3;
mezo[2].DefaultColWidth:=20;
mezo[2].DefaultRowHeight:=20;
mezo[2].Ctl3D:=false;
mezo[2].Width:=64;
mezo[2].Height:=64;
mezo[2].ScrollBars:=ssNone;
mezo[2].OnSelectCell:=StringGrid2SelectCell;
end;
procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean);
begin
ShowMessage('Első grid');
end;
procedure TForm1.StringGrid2SelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean);
begin
ShowMessage('Második grid');
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var
i:Integer;
begin
for i:=1 to 2 do begin
mezo[i].Free;
end;
end;
end.Fire.
-
vz12
tag
válasz
Yodafon
#1720
üzenetére
Próbáld meg valahogy így:
mezo[1].SelectCell:=Sajat_SelectCell; // paraméterek NÉLKÜL
mezo[2].SelectCell:=Sajat_SelectCell; // paraméterek NÉLKÜL
Valamint szigorúan "eredeti" paraméterlistával:
procedure TForm1.Sajat_SelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean);Ezt a deklarációs résszel összhangban a kódba is bele kell tenni (természetesen ott kifejtve).
Hozzáteszem hogy nem próbáltam ki, ezen a gépen nincs Delphi sem, de elvileg így kell és ez gyakorlatilag semmiben nem különbözik a "normál" esettől, annak jobb könyvekben benne kell lennie.
Ha már ilyen előrelátó módon tömbbe szervezted az objektumokat akkor azok közös adatait (itt majdnem mind az) én a ciklusban inicializáltam volna a "parent"-hez hasonlóan, tehát pl. mezo[i].Top:=20;
Új hozzászólás Aktív témák
- World of Warships
- Mesterséges intelligencia topik
- Megbüntették, ezért feloszlatná az EU-t Elon Musk
- Autós topik
- Korai iOS árulkodik arról, milyen eszközök várhatók az Apple-től a közeljövőben
- ASUS ROG Ally
- Diablo IV
- Automata kávégépek
- Kerékpárosok, bringások ide!
- Robotporszívók
- További aktív témák...
- Xiaomi Redmi 14C 256GB, Kártyafüggetlen, 1 Év Garanciával
- MSI MAG 271QPX QD-OLED Gamer Monitor!27"/2k/360hz/0,03MS/G-sync -Freesync/Konzolhoz is!Beszámítok!
- MSI MAG 321UPX QD-OLED Gamer Monitor!32"/4k/240hz/0,03MS/G-sync -Freesync/Konzolhoz is!Beszámítok!
- Macbook Air 2017. (1,8ghz 8gb 128gb)
- Intel Core I7 11700K BOX
- Minden szoftver mellé teljesen audit és NIS2 biztos, jogilag hiteles licencigazolást adunk át!
- ÁRGARANCIA!Épített KomPhone i5 14600KF 32/64GB RAM RTX 5060Ti 16GB GAMER PC termékbeszámítással
- Dell Latitude 7410 Intel I7-10810U Refurbished - Garancia - Akció!
- Dell latitude, precision, xps, magyar világítós billentyűzetek eladóak
- ÁRGARANCIA! Épített KomPhone Ultra 9 285K 32/64GB RAM RTX 5080 16GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: ATW Internet Kft.
Város: Budapest
Cég: BroadBit Hungary Kft.
Város: Budakeszi


