Delphi-PRAXiS
Seite 3 von 3     123   

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/)
-   -   TGrid in FM mit Daten füllen (https://www.delphipraxis.net/178633-tgrid-fm-mit-daten-fuellen.html)

Volker Z. 24. Jan 2014 15:12

AW: TGrid in FM mit Daten füllen
 
Hallo,

Zitat:

[...] Ich habe gestern bis fast Mitternacht an diesem Problem gerätselt und Du hast es in recht kurzer Zeit gefunden.
Wenn Kollege Zufall behilflich ist.

Hast Du es mit
Delphi-Quellcode:
FullScreen := True
und
Delphi-Quellcode:
BorderStyle := bsNone
schon versucht?

Gruß

Peter-Pascal 24. Jan 2014 15:15

AW: TGrid in FM mit Daten füllen
 
Ich habe mir auch die Seite "Gestenunterstützung in Metropolis-UI-Anwendungen" in der Hilfe angeschaut. Bringt mich aber nicht viel weiter. Erklärt, dass es wegen Windows 8 einen Unterschied zu Windows 7 gibt. Und man kann eine globale Variable setzten. Das habe ich getan, aber trotzdem keine Änderung. Wobei ich nicht weiß, was mit "Hauptprogrammdatei" gemeint ist.

Ich habe Fullscreen auf False. Nur so funktioniert es, dass onGesture aus Scrollbox1 antwortet. Borderstyle ist egal, so wie ich das jetzt gesehen habe

Volker Z. 24. Jan 2014 21:26

AW: TGrid in FM mit Daten füllen
 
Hallo,

Zitat:

[...] Wobei ich nicht weiß, was mit "Hauptprogrammdatei" gemeint ist.
Die .dpr Deines Projekts.

Zitat:

Ich habe Fullscreen auf False. Nur so funktioniert es, dass onGesture aus Scrollbox1 antwortet. Borderstyle ist egal, so wie ich das jetzt gesehen habe
Wenn das Ändern der Eigenschaft BorderStyle keine Auswirkung zeigt, dann macht wohl XE4 ≠ XE5 und/oder Windows 8 ≠ Windows 8.1 den Unterschied aus. Der BorderStyle wird während des Erstellens des Hauptformulars so oder so von bsSizeable auf bsNone geändert.

Gruß

Peter-Pascal 26. Jan 2014 15:08

AW: TGrid in FM mit Daten füllen
 
Hallo Volker,

möglich, dass es wegen der Versionsunterschiede zu den Ergebnissen führt. Macht nichts, dann muss ich eben umdenken. Bin schließlich noch am Anfang.

Vielleicht sollte ich mal schreiben, was ich überhaupt plane: Eine Zeitleiste in der Ereignisse der Geschichte aufgenommen werden und mit Klick nähere Details dargestellt werden.
Also fast so wie die Bespiele von Metropolis UI. Das hat mir gut gefallen. Die Listbox erschien mir auf den ersten Blick dazu sehr geeignet mit dem MetropolisItem. Das Item kann Text und ein Bild aufnehmen. Die ListBox auf Horizontal gestellt, wirkte perfekt. Aber im Detail kamen die Probleme. Zum Beispiel: ES ist möglich mehrere Columns für die Listbox einzustellen, aber die werden nicht über den Bildschirmrand hinaus dargestellt, sondern die Items werden immer kleiner gerechnet.

Egal ich probiere noch weiter.

Eine Frage habe ich noch. Warum muss am Anfang TListBox = class (FMX.Listbox.TListbox); end; hinzugefügt werden? Wobei FMX.Listbox.pas der Name der Unit ist? Klar damit der Zugriff auf TScrollbox vorhanden, aber wieso weiß Delphi das nicht ohne diesen Aufruf?

Aber wie dem auch sei, Du hast mir sehr geholfen. Vielen Dank dafür.

Gruß Peter

Volker Z. 26. Jan 2014 22:01

AW: TGrid in FM mit Daten füllen
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo,

Zitat:

Vielleicht sollte ich mal schreiben, was ich überhaupt plane: Eine Zeitleiste in der Ereignisse der Geschichte aufgenommen werden und mit Klick nähere Details dargestellt werden [...]
Mit einer Listbox - hm? Ich weiß zwar nicht was Du genau vorhast, für mich wäre eine Listbox wohl nicht die erste Wahl. Ich denke, Dein Vorhaben ließe sich doch recht einfach Darstellen (siehe Grafiken im Anhang):
  • Eine Klasse, die die Eckdaten der Ereignisse halten
  • Eine Liste (z. B. TObjectList), die die Ereignisse enthält
  • Eine TScrollBox aufs Formular
  • In der ScrollBox eine TLine (Line1.Position.X := 0) mit einer Breite, die der Zeitspanne entspricht
  • Für die "Einträge" zur Laufzeit z. B. ein TCalloutRectangle mit einer TText Komponente (und ein TImage) drauf erzeugen und alles entsprechend positionieren
  • Einen "fixen" OnClick Handler den TCalloutRectangle und TText Komponenten einhängen (der sucht dann den entsprechenden Eintrag in der Listen und zeigt die zugehörigen Details an)
Wenn das für Dich eine Option ist, dann solltest Du Dir dafür besser eigene Klassen ableiten.

Zitat:

Eine Frage habe ich noch. Warum muss am Anfang TListBox = class (FMX.Listbox.TListbox); end; hinzugefügt werden? [...]
Das ist kein Muss. Wenn nur auf die public deklarierte Eigenschaften und Methode bzw. published deklarierte Eigenschaften programmseitig zugegriffen wird, dann ist es unsinnig.
Ich wollte aber auf die Scrollbars der ListBox zugreifen. Die sind aber in der Klasse TScrollBox als protected deklariert (und werden weder in TCustomListBox noch TListBox published), daher ist Zugriff nicht möglich (Stichwort Sichtbarkeit von protected Eigenschaften/Mehtoden: von Aussen nein, innerhalb der Unit ja).
Du kannst Dir den Zugriff auf die Scrollbars auch über einen class helper (in der OH unter: Unterstützende Klassen) bauen, das geht z. B. so:

Delphi-Quellcode:
type
  TListBoxHelper = class helper for FMX.ListBox.TListBox
  private
    function GetVertScrollBar : TScrollBar;
  published
    property VertScrollBar : TScrollBar read GetVertScrollBar;
  end;

function TListBoxHelper.GetVertScrollBar;
begin
  Result := Self.VScrollBar
end;
und der Zugriff dann so:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  ListBox1.VertScrollBar.Value := 40
end;
Gruß

Peter-Pascal 27. Jan 2014 15:23

AW: TGrid in FM mit Daten füllen
 
Hallo Volker,

ich glaube, dass ist die beste Idee mit den TCallOutRectancle zu arbeiten. Es muss halt nur die Position berechnet werden. Und genau dass hoffte ich mit TListBox zu vermeiden. Aber wenn ich mir jetzt Deine Bilder anschaue, muss ich erkennen, es sieht besser aus.

Vielen Dank für Deinen Vorschlag. Ich habe in den letzten Dialogen viel über FMX gelernt.

Gruß Peter


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:21 Uhr.
Seite 3 von 3     123   

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 by Thomas Breitkreuz