![]() |
Delphi-Version: 10 Berlin
TMS String Grid mit Button in einer Spalte
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
ich schaffe es nicht die TMS String Grid Komponente so zu verwenden, dass 1) in einer Spalte Buttons erscheinen, das kann man mit AdvStringGrid1.AddButton zwar erreichen aber: 2) die Buttons dann auch gleich den Fokus haben, wenn man die Zelle mit den Cursor Tasten selektiert. Es wird immer zunächst die Zelle "hinter" dem Button selektiert. Ein Drücken der Leertaste betätigt den Taster nicht. Dies geht wohl nur mit der Maus :gruebel: |
AW: TMS String Grid mit Button in einer Spalte
Hallo,
kann ich nicht nachvollziehen.
Delphi-Quellcode:
Wenn ich in die Zelle mit der Tastatur gehe, wird per Leertaste SGButtonClick aufgerufen.
type
TForm115 = class(TForm) SG: TAdvStringGrid; procedure FormCreate(Sender: TObject); procedure SGButtonClick(Sender: TObject; ACol, ARow: Integer); procedure SGCanEditCell(Sender: TObject; ARow, ACol: Integer; var CanEdit: Boolean); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form115: TForm115; procedure TForm115.FormCreate(Sender: TObject); begin SG.AddButton(1,1,40,20,'1,1',haCenter,vaCenter); end; procedure TForm115.SGButtonClick(Sender: TObject; ACol, ARow: Integer); begin MessageBox(0,'','',0); end; procedure TForm115.SGCanEditCell(Sender: TObject; ARow, ACol: Integer; var CanEdit: Boolean); begin CanEdit := True; end; Setz doch mal einen Breakpoint auf CanEditCell und gehe in die TMS-Quellen rein. Die ButtonClick-Methode wird in WMKeyDown aufgerufen (unit AdvGrid) |
AW: TMS String Grid mit Button in einer Spalte
Okay,
stimmt, der Event Handler wird aufgerufen. Alledings fehlt das optische Feedback das der Taster quasi mechanisch hineingedrückt wird, wie das bei anderen Button der Fall ist. Drücke ich mit der Maus, dann geht das .. |
AW: TMS String Grid mit Button in einer Spalte
Hallo,
hast du nicht die Quellen?
Delphi-Quellcode:
procedure TForm115.SGButtonClick(Sender: TObject; ACol, ARow: Integer);
begin SG.PushButton(ACol,ARow,True); MessageBox(0,'','',0); SG.PushButton(ACol,ARow,False); end; |
AW: TMS String Grid mit Button in einer Spalte
Das ist besser als gar nichts.
Nachteile sind. A) Die Reaktion (in deinem Beispiel die Anzeige der MessageBox) erfolgt schon beim drücken der Space Taste, bei jedem anderen Button erst beim loslasen. B) Bei Betätigung der Maus wird die Animation zwei mal ausgelößt. vielen Dank für deine Hinweise |
AW: TMS String Grid mit Button in einer Spalte
Hallo,
dann dreh es doch rum
Delphi-Quellcode:
Beim Mausklick musst du improvisieren ;)
SG.PushButton(ACol,ARow,True);
Sleep(x) SG.PushButton(ACol,ARow,False); MessageBox(0,'','',0); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:49 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