Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi FireMonkey StringGrid (https://www.delphipraxis.net/164982-firemonkey-stringgrid.html)

Sherlock 8. Dez 2011 14:34

FireMonkey StringGrid
 
Vorweg: Frisch installiertes XE2 Update2 unter Win7x64 kompiliert als x86 Anwendung.

Ich werd grad wahnsinnig. Ich hab mir einen kleinen Sudokulöser unter XE gebastelt, und will das jetzt mal in XE2 mit FireMonkey "aufhübschen". In VCL hatte ich ein TStringGrid zur Darstellung des Sudokus verwendet. In FMX macht mir das eigentlich nur Probleme. Ich liste mal auf, wo ich Hilfe oder antworten bräuchte:
1) Ich Fülle das Grid im OnCreateForm mit einem Default-Sudoku. In VCL wurden die Werte sofort gezeigt, im FMX erst nach Mausrad drehen über dem Grid. WTF?
2) Das VCL-Stringgrid hat linke obere Zelle
Delphi-Quellcode:
Grid.Cells[0,0]
und rechte untere Zelle
Delphi-Quellcode:
Grid.Cells[8,8]
. Beim FMX StringGrid bin ich mir nicht sicher, was was ist, denn ich bekomme die Felder nach rechts verschoben befüllt, wenn ich 0-basiert bis 8 fülle und ne Schutzverletzung in der letzten Spalte, wenn ich 1 basiert bis 9 fülle. WTF?
3) Ich erzeuge das Grid zur Designzeit und lege die Anzahl Rows per RowCount fest, die Columns füge ich per Eintragseditor hinzu. Im OI sag ich für das Grid
Delphi-Quellcode:
ShowHeader := False
und mach das selbse sicherheitshalber im OnformCreate nochmal. Dennoch wird ein Header gezeigt, bis ich mit dem Mausrad über dem Grid gedreht habe. WTF?

Mache ich etwas Falsch? Habe ich falsche Erwartungen? Was muss ich tun damit das Ding erwartungskonform arbeitet.

Sherlock

jaenicke 8. Dez 2011 15:31

AW: FireMonkey StringGrid
 
Ich schaue mir das einmal heute Abend genauer an. Hast du es einmal mit z.B. OnShow statt OnCreate versucht?

Ich hatte mir die Komponente nicht genauer angeschaut und arbeite stattdessen an einer virtuellen Treegridkomponente für FireMonkey. Die kann zwar bisher noch nicht viel, aber ich hoffe ich komme damit nach Weihnachten voran. :wink:

Sherlock 8. Dez 2011 15:38

AW: FireMonkey StringGrid
 
Ha, das wäre noch ein weiterer Punkt in meiner Liste geworden. FMX Forms haben kein OnShow. :D WTF?

Danke fürs reinschauen :thumb:

Sherlock

webcss 8. Dez 2011 16:19

AW: FireMonkey StringGrid
 
1. weniger fluchen
2. Nimm Form.OnActivate, dann klappt's

Sherlock 12. Dez 2011 08:01

AW: FireMonkey StringGrid
 
1. Ich fluche ja nicht. Ich sag nur "Welch tolle Funktion"...mehrfach ;)
2. Das behebt nicht mein Indizierungsproblem.

Sherlock

webcss 12. Dez 2011 08:20

AW: FireMonkey StringGrid
 
Also, bei mir klappt's:

Im OI:

- ShowHeader:= false;
- RowCount:= 8;
- Columns 0 bis 9 erstellt;

Delphi-Quellcode:
TForm1.OnActivate(Sender: TObject);
var i, j: integer;
begin
  for i:= 0 to 8 do
    for j:= 0 to 8 do
      Grid.Cells[i, j]:= intToStr(i) + IntToStr(j);
end;
Vielleicht zeigst Du mal Deinen Code? Erstelle einfach nochmal ein neues FMX Project mit Stringgrid drauf und o.g. Code im OnActivate...

Wenn's dann immernoch nicht geht, liegt's evtl. an Deiner FMX Installation. :gruebel:

Sherlock 12. Dez 2011 08:51

AW: FireMonkey StringGrid
 
OK, also irgendwie war wohl das StringGrid durcheinandergeraten. Ich tippe auf einen vertauschten Column, also sorry für die Panik. Was bleibt ist aber folgendes:
- Ich bekomme den Header nicht weg.
- Wenn Scrollbars eingeschaltet sind, zeichnet das Grid initial in die Scrollbars rein. Nach einmal scrollen ist das gefixt.
- Warum gibt es diesen krassen Unterschied im Verhalten zwischen Onshow und OnActivate?

Aber das Befüllen und Auslesen ist nun kein Problem mehr :thumb:
Der Rest ist ja nur Kosmetik (was ja eigentlich die Existenzberechtigung von FMX sein soll, aber so what).

Sherlock


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:21 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