Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Fenster/Seiten (https://www.delphipraxis.net/183454-fenster-seiten.html)

OrakelvonDelphi 10. Jan 2015 13:44

Fenster/Seiten
 
Folgendes ist etwas unsauber / anfängermäßig beschrieben aber leider kann ich meine Frage nicht anders beschreiben. Da ich mit der Formulierung Probleme habe, ist auch das nachgucken in bereits vorhandenen Threads nicht leicht.
Ich stelle mal den Vergleich zu einer Website an: Wenn ich dort auf einen Hyperlink klicke, komme ich zu einer neuen Seite, die z.B. anders aussieht. Ähnliches möchte ich in Delphi erreichen: Ich habe 2 Buttons A und B. Nun soll nach dem Klick auf A eine neue Seite zu sehen sein, nach dem Klick auf B eine andere. Natürlich wäre das möglich, wenn ich in einer Form alles übereinanderpacke und dann die .visible Eigenschaften von einigen Objekten ändere. Dies scheint aber unelegant, da man in der Entwiklungsoberfläche dann innerhalb der Form ein Chaos von Objekten hätte.
Außerdem möchte ich nicht, dass sich die jeweils folgende Seite in einem Popup öffnet, sondern sie eben an Stelle des Fensters mit den beiden Buttons A und B tritt.

Vielen Dank und sorry für die verwirrende Erklärung :)

haentschman 10. Jan 2015 13:49

AW: Fenster/Seiten
 
Moin...8-)

zuerst solltest du mal verraten ob du mit der VCL oder mnit FMX abeiten willst. Ansonsten stelle ich mal PageControl(VCL) bzw. TabControl(FMX) in den Raum.

Sir Rufo 10. Jan 2015 13:53

AW: Fenster/Seiten
 
Zitat:

Zitat von haentschman (Beitrag 1286146)
Moin...8-)

zuerst solltest du mal verraten ob du mit der VCL oder mnit FMX abeiten willst. Ansonsten stelle ich mal PageControl(VCL) bzw. TabControl(FMX) in den Raum.

Obwohl es schon stark nach Frames riecht, aber du hast recht, ein konkretere Beschreibung wäre schon besser.

haentschman 10. Jan 2015 13:54

AW: Fenster/Seiten
 
Zitat:

Obwohl es schon stark nach Frames riecht
:P Ich wollte für den Anfang nicht überfordern.

p80286 10. Jan 2015 13:55

AW: Fenster/Seiten
 
Ich verstehe es so, daß Du zwei weitere Forms einrichten mußt, die über Show bzw. Showmodal angezeigt werden.

Gruß
K-H

haentschman 10. Jan 2015 13:57

AW: Fenster/Seiten
 
:P eben nicht:
Zitat:

Außerdem möchte ich nicht, dass sich die jeweils folgende Seite in einem Popup öffnet, sondern sie eben an Stelle des Fensters mit den beiden Buttons A und B tritt.

Sir Rufo 10. Jan 2015 13:57

AW: Fenster/Seiten
 
Zitat:

Zitat von p80286 (Beitrag 1286150)
Ich verstehe es so, daß Du zwei weitere Forms einrichten mußt, die über Show bzw. Showmodal angezeigt werden.

Gruß
K-H

Dann hast du aber eben dieses nicht gewünschte Popup-Verhalten ;)
Zitat:

Zitat von haentschman (Beitrag 1286151)
:P eben nicht:
Zitat:

Außerdem möchte ich nicht, dass sich die jeweils folgende Seite in einem Popup öffnet, sondern sie eben an Stelle des Fensters mit den beiden Buttons A und B tritt.

Ich sehe, wir verstehen uns ;)

OrakelvonDelphi 10. Jan 2015 14:00

AW: Fenster/Seiten
 
Bin gerade dabei, mich ersteinmal zu informieren was esd mit VCL und FMX auf sich hat ;)
Bis jetzt habe ich in Delphi wirklich nur leichte Projekte realisiert (Mini-Datenbanken, Mathematische Probleme, Ampelschaltung, etc...).
Deshalb bin ich mit diesen Begriffen wohl nicht vertraut.

Danke! :)

p80286 10. Jan 2015 14:01

AW: Fenster/Seiten
 
Oh da hab ich die letzte Zeile überlesen...
(Naja, das Ausgangsform auf visible:=false setzen und noch ein bißchen tricksen...gleiche Koordinaten...)

Klären wir erst einmal wofür es gut sein soll, dann gibt es bestimmt einen Weg wie man es umsetzen kann.

Gruß
K-h

Sir Rufo 10. Jan 2015 14:02

AW: Fenster/Seiten
 
Zitat:

Zitat von OrakelvonDelphi (Beitrag 1286153)
Bin gerade dabei, mich ersteinmal zu informieren was esd mit VCL und FMX auf sich hat ;)
Bis jetzt habe ich in Delphi wirklich nur leichte Projekte realisiert (Mini-Datenbanken, Mathematische Probleme, Ampelschaltung, etc...).
Deshalb bin ich mit diesen Begriffen wohl nicht vertraut.

Danke! :)

Damit bekommst du aber genau das Popup-Verhalten, was du explizit nicht haben wolltest.

mkinzler 10. Jan 2015 14:04

AW: Fenster/Seiten
 
Dann ist VCL wahrscheinlicher. Welche Delphiversion? FMX ist die neue plattformübergreifende UI Bibliothek, welche anderst als die VCL nicht auf die vom Betriebsystem angebotene (UI)API, sondern auf mit Vektorgrafik erzeugte Oberflächen setzt.

Zitat:

Oh da hab ich die letzte Zeile überlesen...
(Naja, das Ausgangsform auf visible:=false setzen und noch ein bißchen tricksen...gleiche Koordinaten...)
Das wäre vielleicht theoretisch möglich, sollte man aber in der Praxis nicht unbedingt als Möglichkeit sehen.

OrakelvonDelphi 10. Jan 2015 14:06

AW: Fenster/Seiten
 
Mit VCL und FMX?
Mit den Forms bekomme ich diese Pop-ups, das habe ich jetzt begriffen.
Wie nennt man das Modul/die Komponente, das kein Pop-up-Verhalten aufweist?
Nur damit ich danach googlen kann...

Ich glaube ich muss VCL verwenden, das ist das einzigste, was ich schonmal irgendwo vorher gelesen habe in einem Menü :D
Delphi 7 ist meine Version (Ich weiß, nicht das neuste, aber ich hoffe, das reicht...:?)

mkinzler 10. Jan 2015 14:09

AW: Fenster/Seiten
 
Ein Formular ist ein neues Fenster. Bei der Verwendung von Frames ( der Form sehr ähnlich) kann man diese aber in eien Fenster Ein- und Ausblenden und damit den Inhalt des Fensters ( oder Teile, nämlich den Frame) Austauschen.

Bei einem PageControl kann man beliebig viele Seiten anlegen zwischen denen man Umschalten kann. Wenn man die Anzeieg der Tabs ausblendet ist das optisch mit der Verwendung von Frames identisch.

haentschman 10. Jan 2015 14:10

AW: Fenster/Seiten
 
Zitat:

Delphi 7 ist meine Version (Ich weiß, nicht das neuste, aber ich hoffe, das reicht...)
natürlich reicht das. Die erste Frage wäre beantwortet. Du arbeitest mit der VCL (VisualComponentLibrary). :P Verrate mal grob den Umfang den die Seiten haben sollen (Anzahl Controls).

OrakelvonDelphi 10. Jan 2015 14:13

AW: Fenster/Seiten
 
Also von Umfang soll das ganze ca. so aussehen:
Erstes "Fenster": 2 Buttons mit "Neu beginnen" oder "altes Laden"
Zweites "Fenster": Da wird dann ein bisschen mit Variablen rumgerechnet, je nachdem, auf welche Buttons man klickt.
Drittes "Fenster": erreicht man über zweites "Fenster" und zeigt Highscores an.

mkinzler 10. Jan 2015 14:18

AW: Fenster/Seiten
 
Dann sollte die Lösung mit dem PageControl ausreichend sein.

haentschman 10. Jan 2015 14:25

AW: Fenster/Seiten
 
Ergänzung: Die Tabs lassen sich über
Delphi-Quellcode:
TabVisible:= False
ausblenden.

OrakelvonDelphi 10. Jan 2015 14:26

AW: Fenster/Seiten
 
Gut :) Kennt einer von euch ein gutes Tutorial dazu? Google hat mir auf die schnelle noch nichts brauchbares geliefert aber ich suche mal weiter...

mkinzler 10. Jan 2015 14:28

AW: Fenster/Seiten
 
Probier es doch einfach aus und schaue Dir die Delphibeispiele an und auch in der Hilfe sollte etwas zu finden sein.

OrakelvonDelphi 10. Jan 2015 14:33

AW: Fenster/Seiten
 
Habe die Hilfe von Delphi jetzt erstmal zum Laufen gebracht (ging unter Win7 erstmal nicht). Sollten sich weitere Fragen ergeben, weiß ich ja, wer Ahnung hat ;)

Sir Rufo 10. Jan 2015 14:34

AW: Fenster/Seiten
 
Da hier doch vollkommen unterschiedliche Inhalte angezeigt werden sollen (es riecht nach einem Spiel), sollte man definitiv mit Frames arbeiten.

Ein Frame für das Startbild,
eins für das Spiel selber und
eins für den HighScore.

Die MainForm, bestimmt anhand das GesamtStatus, welches Frame angezeigt werden soll. Weitere Frames sind dann auch kein Problem (Einstellungen, etc.).

Ansonsten gibt das doch einfach nur Gewurschtelt in einem Formular, wenn hier mit einem PageControl gearbeitet wird.
Delphi-Quellcode:
TMainForm = class( TForm )
private
  FView : TFrame;
  FState : Integer;
  procedure SetState( const Value : Integer );
end;

procedure TMainForm.SetState( const Value : Integer );
begin
  if FState <> Value then
  begin
    if Assigned( View ) then
    begin
      FView.Release;
      FView := nil;
    end;
    FState := Value;
    case FState of
      0 : FView := TStartFrame.Create( Self );
      1 : FView := TGameFrame.Create( Self );
      2 : FView := THighscoreFrame.Create( Self );
    end;

    if Assigned( FView ) then
    begin
      FView.Parent := Self;
      FView.Align := alClient;
    end;
  end;
end;

haentschman 10. Jan 2015 14:36

AW: Fenster/Seiten
 
Schau mal hier: http://www.delphipraxis.net/dp_refer...y=Tpagecontrol
...eine Zusammnefassung aus Hilfe und Foren. Ist eigentlich Pflichtlektüre. Imho besser als die lokale Hilfe weil immer aktuell und Beispiele / Fragen aus den Foren. :thumb:

OrakelvonDelphi 10. Jan 2015 14:43

AW: Fenster/Seiten
 
Ich habe jetzt kurz zu PageControl gelesen und bin mir inzwischen nichtmehr sicher, ob das die Lösung ist.
Anscheinend hat man da solche "Tabs" und oben eine Art Register min einzelnen Registerkarten (?) und die gewünschte "Übersichtlichkeit" innerhalb einer Form sehe ich bis jetzt fraglich (erster Eindruck).

Sir Rufo hat da schon recht, es geht in Richtung Spiel bzw. Simulation.
Werde jetzt mal zu den Frames nachlesen, was die so "können" ;)

Danke auch für den Link mit der Hilfe! Die onboard Hilfe ist da wohl doch beschränkter.

mkinzler 10. Jan 2015 14:48

AW: Fenster/Seiten
 
Zitat:

Anscheinend hat man da solche "Tabs" und oben eine Art Register min einzelnen Registerkarten (?) und die gewünschte "Übersichtlichkeit" innerhalb einer Form sehe ich bis jetzt fraglich (erster Eindruck).
Und diese kann man, wie schon mehrmals von mir und haentschman geschrieben ausblenden.

Aber nimm ruhg Frames, dies ist flexibler aber auch aufwendiger.

OrakelvonDelphi 10. Jan 2015 14:58

AW: Fenster/Seiten
 
Danke, dass da sogar noch Quellcode dabei ist :thumb:
Teste das jetzt mal in Ruhe und bilde mich weier ;)

Die Sache mit dem Ausblenden hatte ich dann wohl überlesen. Sorry.:roll: Trotzdem vielen Dank!


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:23 Uhr.

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