![]() |
Edit bzw. ComboBox in einem StringGrid darstellen
Moin Moin erstmal!!!
Wollte mal fragen, ob es eine Möglichkeit gibt, z.B. ComboBox(en) und/oder Editfelder in einem StringGrid darzustellen.Also pro Zeile eine "extra" Komponente anzeigen. Weil manche Zellen sollen nur 1/0 enthalten dürfen (CheckBox) oder nur bestimmte Strings (ComboBox-Auswahl...) Hoffe ihr könnt mir helfen. MFG Alex |
Re: Edit bzw. ComboBox in einem StringGrid darstellen
das geht!
hoffe habe an alles gedacht!
Delphi-Quellcode:
type TfoDBEdit = class(TForm)
... procedure setRect(rec:Trect; ObjType:integer); ... private .. end; procedure TfoDBEdit.stringgridSelectCell(Sender: TObject; ACol, ARow: Integer; var CanSelect: Boolean); begin if (ACol=1) or (ARow=1) then // feld 1-1 ist checkbox stringgrid.setRect(CellRect(1,1)); end; procedure TfoDBEdit.setRect(rec:Trect); var r:TRect; begin // CheckBox in stringgrid CopyRect(r,rec); // rec an r übergeben r.BottomRight:=checkbox.Parent.ScreenToClient(stringgrid.ClientToScreen(r.BottomRight)); r.TopLeft:=checkbox.Parent.ScreenToClient(stringgrid.ClientToScreen(r.TopLeft)); checkbox.SetBounds(r.Left,r.Top,r.Right-r.Left,r.Bottom-r.Top); checkbox.BringToFront end; |
Re: Edit bzw. ComboBox in einem StringGrid darstellen
danke das geht!!!
wozu ist ObjType:integer deklariert in der procedure? Der wird doch nie verwendet?! MFG Alex |
Re: Edit bzw. ComboBox in einem StringGrid darstellen
das problem was ich jetzt noch habe ist, dass wenn mein eingabefokus vom StringGrid in die CheckBox "geht", dann wird die zuletzt markierte Zelle im StringGrid komplett blau gefüllt.Das will ich nicht!Also es soll so aussehen als ob der Fokus trotzdem auf dem StringGrid liegt.Bekommt man die "blaue Zelle" irgendwie "normalfarbig" ?
Alex |
Re: Edit bzw. ComboBox in einem StringGrid darstellen
Zitat:
|
Re: Edit bzw. ComboBox in einem StringGrid darstellen
Zitat:
hä? :gruebel: |
Re: Edit bzw. ComboBox in einem StringGrid darstellen
Delphi-Quellcode:
///////////////////////////////////////////////////////////////////////////////
// Wenn Fokus nicht beim SG, dann blaue Zelle verbergen! // procedure TfoDBEdit.stringgridExit(Sender: TObject); var grdRec:TGridRect; begin with grdRec do begin Top:=-1; Left:=-1; Right:=-1; Bottom:=-1; end; stringgrid.Selection:=grdRec; end; /////////////////////////////////////////////////////////////////////////////// // Objekte im Grid unsichtbar machen, // wenn per Scroll der Bereich ausserhalb liegt // procedure TfoDBEdit.stringgridTopLeftChanged(Sender: TObject); begin if checkbox.Visible then checkbox.Visible:=false; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:40 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