![]() |
OnSelectCell Überschreiben
Hi ,
Ich hoffe einer von euch kann mir bei meinem kleinen Problem helfen. Erstmal zum Ursprung. Ich habe ein kleines Programm geschrieben welches Telnr,Usw. verwaltet 8anfangs mit listbox) nun wollte ich das ganze mit einem stringgrid ausbauen. Damit ich dem user nun erlauben kann einträge zu adden oder zu löschen wärs relativ einfach wenn ich OnSelectCell benutzen könnte(es würde wohl auch manuell gehen nur wärs sehr umständlich). Mein Problem ist aber das sämtliche Stringrids (26 an der Zahl[Alphabet]) manuell createt wurden. Und ich weiss nun nicht recht wie ich auf die OnSelectCell function zugreifen kann. Theoretisch müsste ich sie für jeden StringGrid Überschreiben oder :?: . Am Ende würde ich gerne einfach nur beim Select ACol und ARow abspeichern können. Ich hoffe einer von euch knn mir helfen :) achja wenn es helfen sollte hier der Quelltext des creates
Delphi-Quellcode:
[Edit=Sakura]Delphi-TAGs eingefügt; Doppelpost gelöscht. MfG.[/Edit]
procedure create_stringgrids;
Var i : Byte; begin for i:=1 to 26 do begin FStringGrid[i]:=TStringGrid.create(Form1); with FStringGrid[i] do begin Parent:= FTabsheet[i]; //Array der Tabsheets im FPageControl Name:= 'StringGrid' +chr(64+i); ColCount:=5; RowCount:=8; end; end; groesse_stringgrid; end; |
Hallo,
ich vermute Deim Problem ist, das Du nicht weißt wie man einem dynamisch erzeugtem Objekt EventHandler zu weist. Jeder Event-Property kann eine Methode zugewiesen werden. Das Geheimnis ist nur wie man an die Methoden-Signatur (unter Methoden-Signatur versteht man die Anzahl der Parameter und deren Typen) kommt. Lege ein TStringGrid auf das Formular und erzeuge über den Objektinspektor den OnSelectCell EventHandler. Der sieht dann so aus
Delphi-Quellcode:
Jetzt kannst Du diesen Teil kopieren
procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean); begin end;
Delphi-Quellcode:
Damit schreibst Du jetzt folgende Methode
(Sender: TObject; ACol, ARow: Integer; var CanSelect: Boolean);
Delphi-Quellcode:
Dein Code wird an entsprechend erweitert:
procedure TForm1.MySelectCell(Sender: TObject; ACol, ARow: Integer; var CanSelect: Boolean);
begin // mach hier irgend was end;
Delphi-Quellcode:
Über den Parameter Sender kannst Du feststellen welches TStringGrid das Event gefeuert hat.
procedure create_stringgrids;
Var i : Byte; begin for i:=1 to 26 do begin FStringGrid[i]:=TStringGrid.create(Form1); with FStringGrid[i] do begin Parent:= FTabsheet[i]; //Array der Tabsheets im FPageControl Name:= 'StringGrid' +chr(64+i); ColCount:=5; RowCount:=8; OnSelectCell:=MySelectCell; end; end; groesse_stringgrid; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:33 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz