Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Mi Jul 16, 2025 23:06

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 2 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: DrawGrids
BeitragVerfasst: Sa Apr 22, 2006 22:19 
Offline
DGL Member
Benutzeravatar

Registriert: So Okt 26, 2003 20:07
Beiträge: 249
Hi,

habe ein paar probleme damit, andere komponenten ins drawgrid zu bringen.
spezieller hab ich probleme mit Checkboxes und Comboboxes.
Buttons oder Editfelder funktionieren einwandfrei.
Checkboxes kann man seltsamerweise nicht checken (das häkchen verschwindet direkt bzw taucht erst garnicht auf), ComboBoxes flackern und "öffnen" sich nicht. Hoffe mir kann da jemand helfen.

Hier noch etwas Code:

Code:
  1.  
  2. type
  3.  TGridControl = class(TEdit) // TEdit als Beispiel, Code ändert sich bei anderen nicht (bei combobox kommt nurnoch items.add hinzu)
  4.   public
  5.     ACol, ARow: Integer;
  6.   end;
  7.  
  8. var
  9.   Control: TGridControl;
  10.  
  11. procedure TForm2.DrawGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
  12.   var CanSelect: Boolean);
  13. var
  14.   Rect: TRect;
  15. begin
  16.   if Control <> nil then
  17.     Control.Destroy;
  18.   Rect := DrawGrid1.CellRect(ACol, ARow);
  19.   Control := TGridControl.Create(TComponent(Sender));
  20.   Control.Parent := TWinControl(Sender);
  21.   Control.ACol := ACol;
  22.   Control.ARow := ARow;
  23.   Control.Text := 'Test';
  24. end;
  25.  
  26. procedure TForm2.DrawGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  27.   Rect: TRect; State: TGridDrawState);
  28. begin
  29.   if Control <> nil then
  30.   if (Control.ACol = ACol) and (Control.ARow = ARow) then
  31.   begin
  32.     // sollte gescrollt worden und die zelle noch sichtbar sein...
  33.     Control.Visible := True;
  34.     if Control.Left <> Rect.Left then
  35.      Control.Left := Rect.Left;
  36.     if Control.Top <> Rect.Top then
  37.      Control.Top := Rect.Top;
  38.     if Control.Width <> Rect.Right-Rect.Left-1 then
  39.      Control.Width := Rect.Right-Rect.Left-1;
  40.     if Control.Height <> Rect.Bottom-Rect.Top-1 then
  41.      Control.Height := Rect.Bottom-Rect.Top-1;
  42.   end;
  43. end;
  44.  
  45. procedure TForm2.DrawGrid1TopLeftChanged(Sender: TObject);
  46. begin
  47.   // vorsichtshalber ausblenden, die zelle könnte "außer sicht" sein
  48.   if Control <> nil then
  49.    Control.Visible := False;
  50. end;


komischerweise funktionierts, wenn ich die form als parent nehme. allerdings finde ich das sehr unbequem.

gruß

_________________
I'm not the signature, I'm just cleaning the floor...

Derzeitiges Projekt:
FireBlade Particle Engine (Release R2 2009.06.29)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Apr 22, 2006 22:41 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 14, 2004 18:56
Beiträge: 804
Wohnort: GER/OBB/TÖL-WOR/Greiling
In der DP hatte da auch vor kurzem jemand Probleme. Vielleicht findest du da noch was... bei ihm warens buttons^^

mehr weiss ich da allerdings auch nciht...

_________________
Bild

"User Error. Replace User and hit Continue."


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 2 Beiträge ] 
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.007s | 14 Queries | GZIP : On ]