Autor Beitrag
hRb
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 301
Erhaltene Danke: 12



BeitragVerfasst: Sa 15.11.25 12:42 
Hoffe hier richtig zu sein.
Ich habe ein grundsätzliches Verständnis-Problem zur Verwendung mit VCL und FMX.
Habe in einem VCL-Projekt ein StringGrid und wollte OnSelectCell verwenden. Wunderte mich, dass ich ständig beim Auslesen der Cell-Werte falsche Inhalte bekam, bis mir beim Lesen der Hilfe das Problem klar wurde.
in VCL gilt:
Zitat:
OnSelectCell: Tritt ein, bevor eine Gitterzelle ausgewählt wird.

D.h. ich bekomme ACol und ARow der zuvor angewählten Zelle und nicht die Zelle die ich anklicke.
Unter FMX liefert die Hilfe:
Zitat:
OnSelectCell: Wird ausgelöst, unmittelbar nachdem eine Zelle in einer Spalte ausgewählt wurde.

Letzteres wollte ich, kann aber kein FMX-Stringrid in mein Objekt einfügen (Anmerkung: habe mich mit OnMouseDown und StringGrid.MouseToCell(X,Y, C,R) beholfen, d.h. mein "Fehler" ist behoben. Das nur am Rande).
Meine Frage:
1. Liegt es an meiner heruntergeladenen Free-Version, dass ich FMX-Projekte schon gar nicht erzeugen kann? Erhalte bei "Neues Projekt öffnen" FMX nicht angeboten. Benötige ich dazu eine andere Delphi-Version?
Folgendes habe ich gelesen:
Zitat:
Weitere wichtige Unterschiede
Kompatibilität: VCL und FMX können nicht in derselben Anwendungseinheit gemischt werden, da die Frameworks nicht kompatibel sind.
Aktionsmanager: Der Aktionsmanager-Editor ist ein VCL-spezifisches Feature und funktioniert nicht mit FMX-Aktionen.
Styles: Sowohl VCL als auch FMX unterstützen Styles zur Gestaltung der Benutzeroberfläche, FMX bietet hier jedoch zusätzliche Anpassungsmöglichkeiten

2. Ich muss daraus schließen, dass ich nicht ein einziges FMX-Objekt - selbst einfachste Basis-Objekte - einbinden kann. Warum zeigt mir die Hilfe beide Varianten (VCL und FMX) an, wenn sie nicht nutzbar kann?.
3. Mein Eindruck: oft leisten FMX-Objekte mehr als bei VCL. Ist es daher nicht sinnvoll ganz auf FMX umzusteigen?
Das sind zwar mehrere Fragen, hängen aber für mich irgendwie zusammen.
Oh: 4. kann ich zwei Compiler auf einem Rechner installieren: einmal VCL und zusätzlich FMX?
Danke, wenn sich jemand Zeit nimmt.


Moderiert von user profile iconTh69: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am So 16.11.2025 um 09:28
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4803
Erhaltene Danke: 1060

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: So 16.11.25 09:46 
Bei dem VCL-StringGrid Ereignis OnSelectCell wird dieses vor dem Auswählen ausgeführt, da dieses auch wieder rückgängig gemacht werden kann (die Parameter Col und Row geben aber diese ausgewählte Gitterzelle an):
Zitat:
In einer Ereignisbehandlungsroutine für OnSelectCell können Sie verhindern, dass eine bestimmte Gitterzelle ausgewählt wird. Die Parameter Col und Row bezeichnen die Position der betreffenden Zelle. Setzen Sie den Parameter CanSelect auf False, um zu verhindern, dass die Zelle ausgewählt wird.

Bei dem FMX-StringGrid Ereignis OnSelectCell kann man das Selektieren hiermit aber nicht mehr rückgängig machen (daher nach dem Auswählen).

hRb hat folgendes geschrieben:
Wunderte mich, dass ich ständig beim Auslesen der Cell-Werte falsche Inhalte bekam, bis mir beim Lesen der Hilfe das Problem klar wurde.

Greifst du denn auch mittels der Parameter Col und Row auf die Zelle zu oder mittels der TStringGrid-Eigenschaften Col und Row, welche eben erst nach dem OnSelectCell-Ereignis geändert werden, wenn CanSelect = true ist?
hRb Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 301
Erhaltene Danke: 12



BeitragVerfasst: Mo 17.11.25 16:40 
Oh, Th69 ich danke!
Da habe ich tatsächlich Col und Row mit ACol und ARow verwechselt. Hätte ich eigentlich selbst erkennen müssen.
hRb