AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

PopUp als Panel

Ein Thema von Vienesko · begonnen am 8. Dez 2017 · letzter Beitrag vom 3. Jan 2018
Antwort Antwort
Vienesko

Registriert seit: 21. Mai 2017
Ort: Hamburg
13 Beiträge
 
#1

PopUp als Panel

  Alt 8. Dez 2017, 20:48
Moin Moin

Ich schreibe ja derzeit an einer eigenen, umfangreichen Haussteuerung die mich noch lange beschäftigen- und bestimmt des öfteren eure Hilfe benötigen wird.

Was das tatsächliche Steuern meiner Haussteuerungskomponenten angeht bin ich schon recht weit. Jetzt habe ich mehr ein Problem, was in Richtung "intelligente Programmierung" geht und ich weiß da nicht weiter.
Folgendes ist mein Problem:

Aufgrund der Optik (und Touchfunktionalität), die ich mir für mein Programm vorstelle, habe ich meine Benutzeroberfläche mit Panels realisiert. Bisher hat auch alles so funktioniert, wie ich mir das vorstelle.
Wenn ich jetzt aber auf ein bestimmtes Panel klicke, möchte ich, dass sich ein Panel öffnet (mit einigen weiteren Panels darauf) wo ich weiter Einstellungen vornehmen kann.

Das Design dieses "PopUp Panels" ist fertig und alles funktioniert auch genau so, wie ich es möchte. Aber so, wie ich es gelöst habe, ist es vielleicht mit maximal 2 oder 3 verschieden (in diesem Fall) Heizungen noch übersichtlich (vom Quelltext her).
Ich werde aber am Ende ca. 19-20 Stück von immer genau dem gleichen Quelltextkontrukt haben jedoch aber 2-3 Anweisungen, die sich immer unterscheiden.
Klicke ich zB. auf OK wird im PopUp Panel 1 die Heizung Küche gesteuert und bei PopUp Panel 2 das Badezimmer.
Das habe ich mit eigenen Klassen realisiert, sodass ich dementsprechend nur "HeizungBadezimmer.Einschalten" eingeben brauche. Dies wäre also immer anders.


Ich habe schon versucht, die Panels zur Laufzeit erst zu erzeugen. Da habe ich am Ende ja sogar mehr Quelltext.
Dann wollte ich es in eine eigene Klasse also auch eigene Unit auslagern. Könnte klappen, nur meckert er beim setzen des Parent vom Hauptpanel, weil er das angeblich nicht kennt. Konnte das also nicht testen.

Hatte auch schon an eine Prozedur gedacht mit Variablen für die Anweisungen, die sich immer ändern aber ich weiß nicht, wie/ob ich dort zb "HeizungKüche.Einschalten" benutzen kann und ob das überhaupt der richtige Weg ist...

Ich hoffe, es klingt nicht zu kompliziert was mein Problem ist und was ich eigentlich möchte
Ich kann sonst auch gerne noch Bilder davon posten, um das zu verdeutlichen.

Hat jemand einen Tipp, wie ich das ganze angehen könnte?
Vielleicht stell ich mich auch einfach zu doof an aber ich bin ja auch kein Profi

Wieder ein mal bin ich für jeden Tipp sehr dankbar.
Dankeschön

LG
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.093 Beiträge
 
Delphi 12 Athens
 
#2

AW: PopUp als Panel

  Alt 9. Dez 2017, 12:21
Frames ?
  Mit Zitat antworten Zitat
Vienesko

Registriert seit: 21. Mai 2017
Ort: Hamburg
13 Beiträge
 
#3

AW: PopUp als Panel

  Alt 14. Dez 2017, 10:45
Habe ich mir angeguckt und ausprobiert.
Frame erstellt und in die Palette aufgenommen. Jetzt kann ich das PopUp zur Entwurfszeit auf die Oberfläche packen und anzeigen lassen.
Das hatte ich ja so auch bei dem ersten Versuch. Nur jetzt hätte ich am Ende 19-20 Frames zur Entwurfszeit auf der Oberfläche liegen was dann nicht den Quelltext unübersichtlich macht sondern die Entwurfsoberfläche.

Ich werde mich nochmal an den Ansatz mit der eigenen Klasse setzen. Dort haperte es ja an dem Owner, wenn ich mich recht erinnere...

Was mein Problem wohl am einfachsten lösen könnte:
Gibt es eine Möglichkeit, bei einer Anweisung eine Variable als Platzhalter einzusetzen?

Also z.B. xxxxxxx.Einschalten statt HeizungBadezimmer.Einschalten?
Dann könnte ich das eine (zur Entwurfszeit existierende) PopUp bei Klick auf den entsprechenden Button an die richtige Stelle verschieben, die Variable ändern und bei Klick auf "OK" das PopUp schließen und den Befehl abfeuern.
Geht sowas irgendwie oder klappt das nicht?

Dankeschön
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.093 Beiträge
 
Delphi 12 Athens
 
#4

AW: PopUp als Panel

  Alt 14. Dez 2017, 11:51
Frames oder Forms kann man auch zur Laufzeit laden.
Das müsste man nicht Alles zur Designzeit reinwerfen.
So bleiben die Frames schön getrennt, in separaten Units, und
je nach momentaner Aufgabe kann man die in z.B. Panel, TablControl, o.ä. laden.

Rollo
  Mit Zitat antworten Zitat
bcvs
Online

Registriert seit: 16. Jun 2011
703 Beiträge
 
Delphi 12 Athens
 
#5

AW: PopUp als Panel

  Alt 14. Dez 2017, 12:51

Was mein Problem wohl am einfachsten lösen könnte:
Gibt es eine Möglichkeit, bei einer Anweisung eine Variable als Platzhalter einzusetzen?

Also z.B. xxxxxxx.Einschalten statt HeizungBadezimmer.Einschalten?
meinst du sowas?
Delphi-Quellcode:
prodecure HeizungEinschalten(Heizung:TMyHeizungsPanel);
begin
  Heizung.Einschalten;
end;
Aufruf mit:
Delphi-Quellcode:
HeizungEinschalten(HeizungBadezimmer);
HeizungEinschalten(HeizungWohnzimmer);
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.051 Beiträge
 
Delphi 2009 Professional
 
#6

AW: PopUp als Panel

  Alt 14. Dez 2017, 15:56
Frames oder Forms kann man auch zur Laufzeit laden.
Das müsste man nicht Alles zur Designzeit reinwerfen.
So bleiben die Frames schön getrennt, in separaten Units, und
je nach momentaner Aufgabe kann man die in z.B. Panel, TablControl, o.ä. laden.

Rollo
Frames sollte man deshalb auch immer zur Laufzeit erstellen (deren eigenes Layout natürlich nicht). Der Designer macht da nur Blödsinn draus. Beim Erstellen nicht vergessen, Parent zu setzen!
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
Neumann

Registriert seit: 6. Feb 2006
Ort: Moers
535 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: PopUp als Panel

  Alt 16. Dez 2017, 16:23
Hallo, sieht für mich interessant aus, könnte etwas sein wobei meine frei konfigurierbare Oberfläche nützlich sein könnte. Falls Interesse, bitte eine Nachricht, sende dann meine Telefonnummer.

Vielleicht kann man ja zusammenarbeiten.
Ralf
Gruß vom Niederrhein
  Mit Zitat antworten Zitat
Vienesko

Registriert seit: 21. Mai 2017
Ort: Hamburg
13 Beiträge
 
#8

AW: PopUp als Panel

  Alt 3. Jan 2018, 11:29
Erst einmal Entschuldigung, dass ich mich so lange nicht auf eure Antworten gemeldet habe und vielen Dank für selbige.

Ich habe mich jetzt erstmal mit anderen Aspekten meiner Software gekümmert. Habe die Überwachungskameras (Bild und Steuerung) eingepflegt und hab die Datenbankoberfläche verbessert.
Das habe ich deshalb gemacht, um den Kopf frei zu bekommen, sodass mir danach vielleicht wieder neue Lösungswege einfallen. Außerdem brauche ich Erfolgserlebnisse, damit mir das weiterhin Spaß macht.

@bcvs:
Ich weiß nicht so recht. Ich werde aus dem, was du geschrieben hast, nicht so recht schlau
Aber ich meinte eher, dass zur Entwurfszeit die Anweisung eine Variable enthält, die ich dann je nach Button füllen kann. Also eben <Variable>.Einschalten statt das feste Badezimmer.Einschalten. Dann könnte ich das jedesmal ersetzen, wenn auf einen Button gedrückt wird. Aber er meckert ja, sobald er die Anweisung nicht kennt.

@Neumann:
Das Design meiner Software steht schon und es ist ja nur für mich. Es ist derzeit nicht geplant, es in irgendeiner Weise zu vertreiben. Dafür wäre es nicht flexibel genug. Aber wer weiß, was die Zukunft bringt
Trotzdem danke für das Angebot.

Ich werde mich demnächst mal wieder an das PopUp machen und meine Lösung dann hier posten, sobald ich sie gefunden habe.

Irgendwann werde ich meine Software auch mal in dem entsprechenden Unterforum vorstellen...wenn es herzeigbar ist
  Mit Zitat antworten Zitat
Antwort Antwort


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 18:59 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