AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Benachrichtigung bei Änderung an übergeordnete Elemente
Thema durchsuchen
Ansicht
Themen-Optionen

Benachrichtigung bei Änderung an übergeordnete Elemente

Offene Frage von "Keldorn"
Ein Thema von Keldorn · begonnen am 21. Nov 2005 · letzter Beitrag vom 3. Dez 2005
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von sh17
sh17

Registriert seit: 26. Okt 2005
Ort: Radebeul
1.664 Beiträge
 
Delphi 11 Alexandria
 
#11

Re: Benachrichtigung bei Änderung an übergeordnete Elemente

  Alt 27. Nov 2005, 13:31
oder Du machst es wie bei virtuellen Komponenten, Du rufst Grid.Repaint auf. Ist natürlich nichts automatisches
Sven Harazim
--
  Mit Zitat antworten Zitat
Keldorn

Registriert seit: 6. Mär 2003
Ort: Meißen
876 Beiträge
 
Delphi 10.1 Berlin Professional
 
#12

Re: Benachrichtigung bei Änderung an übergeordnete Elemente

  Alt 27. Nov 2005, 19:22
Zitat von sh17:
Ich hab jetzt nicht den Code im Kopf, aber folgender Vorschlag:
Die Eigenschaft Cells[x,y] : TCell des Grids so implementieren, dass das Grid zwar mitbekommt, welche Zelle angefragt wird (bei Zugriff auf Cells[x,y]), dann aber nur die Zelle an sich zurück liefert. Der Zelle kannst Du dann zuweisen, was Du willst.
oups, hatte deine Antort übersehen. Wenn ich dich verstnaden habe, geht das aber eben nicht. wenn ich das als
Property CellValue[ACol, ARow: Integer]:TcellValue read GetcellValue write SetCellValue mache, wird bei einem Aufruf Grid.cellvalue[x,y].blabla:=blabla beim Grid nur die getmethode aufgerufen, nicht die set-methode. und in der Getmethode muß ich dann wissen, ob die Zelle neugezeichnet werden muß oder nicht, ich kann sie dort nicht immer neuzeichnen, da cellvalue auch bei Drawtext aufgerufen wird. Ich wäre so ganz schnell in einer Endlosschleife.

Zitat:
oder Du machst es wie bei virtuellen Komponenten, Du rufst Grid.Repaint auf. Ist natürlich nichts automatisches
geht auch nicht. Erstens habe ich das sicherlich Geschwindigkeitsproblem, wenn ich bei einer einzelnen Zelländerung immer das ganze Grid neuzeichne, außerdem kann ich so schlecht unterscheiden, ob es überhaupt neu gezeichnet werden muß. Ich würde immer Grid.repaint aufrufen, auch wenn die Zelle nicht im sichtbaren Bereich liegt.

Mfg Frank

Lükes Grundlage der Programmierung:
Es wird nicht funktionieren
(Murphy)
  Mit Zitat antworten Zitat
Benutzerbild von sh17
sh17

Registriert seit: 26. Okt 2005
Ort: Radebeul
1.664 Beiträge
 
Delphi 11 Alexandria
 
#13

Re: Benachrichtigung bei Änderung an übergeordnete Elemente

  Alt 28. Nov 2005, 06:38
Zitat von Keldorn:
geht auch nicht. Erstens habe ich das sicherlich Geschwindigkeitsproblem, wenn ich bei einer einzelnen Zelländerung immer das ganze Grid neuzeichne, außerdem kann ich so schlecht unterscheiden, ob es überhaupt neu gezeichnet werden muß. Ich würde immer Grid.repaint aufrufen, auch wenn die Zelle nicht im sichtbaren Bereich liegt.
Mfg Frank
Naja, das ist ja gerade das virtuelle. Das Grid bekommt Repaint und zeichnet den "sichtbaren" Bereich neu. Der ist ja nicht so groß. Wenn die geänderte Zelle nicht im sichtbaren Bereich war, ist das ja nicht schlimm-
Sven Harazim
--
  Mit Zitat antworten Zitat
Keldorn

Registriert seit: 6. Mär 2003
Ort: Meißen
876 Beiträge
 
Delphi 10.1 Berlin Professional
 
#14

Re: Benachrichtigung bei Änderung an übergeordnete Elemente

  Alt 2. Dez 2005, 21:38
Sorry für die späte Antwort, aber in der Woche bin ich nicht zu meinem Problem gekommen
Zitat von sh17:
Das Grid bekommt Repaint und zeichnet den "sichtbaren" Bereich neu. Der ist ja nicht so groß. Wenn die geänderte Zelle nicht im sichtbaren Bereich war, ist das ja nicht schlimm-
Doch , das ist schlimm , wenn bei einer Änderung einer nichtsichtbaren Zelle trotzdem immer das Grid beugezeichnet wird.

Aber so richtig weiter bin ich immer noch nicht. die Variante propertys CellValueAsString[x,y], CellValueAsFloat[x,y], CellValueAsInteger[x,y]..., die dann auf die entsprechenden CellValuepropertys zugreift ist wahrscheinlich doch am Besten.

Meine Idee mit einer Boolean-property bei TCellvalue geht natürlich auch nicht , da der Bool innerhalb von TCellvalue erst gesetzt wird, wenn GetCells komplett durchgelaufen ist. Eine Abfrage dort hat gar keinen Sinn.

Lükes Grundlage der Programmierung:
Es wird nicht funktionieren
(Murphy)
  Mit Zitat antworten Zitat
Benutzerbild von sh17
sh17

Registriert seit: 26. Okt 2005
Ort: Radebeul
1.664 Beiträge
 
Delphi 11 Alexandria
 
#15

Re: Benachrichtigung bei Änderung an übergeordnete Elemente

  Alt 3. Dez 2005, 20:59
vielleicht sehe ich das ganze ja falsch:

Du hast ein Object "Grid", was Deine Daten in Form von Zellen hält. Zum Benutzer hin ist nur ein kleiner Bereich sichtbar (wie z.B. beim StringGrid). Dieser Bereich muss vom Grid gezeichnet werden.

Warum musst Du alles neu zeichnen, wenn eine nicht sichtbare Zelle geändert wird.

Würde uns ein Screenshot weiterhelfen?
Sven Harazim
--
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz