AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Ein Programm (Form) mehrfach in einer Form ausführen
Thema durchsuchen
Ansicht
Themen-Optionen

Ein Programm (Form) mehrfach in einer Form ausführen

Ein Thema von sinumeriker · begonnen am 11. Feb 2017 · letzter Beitrag vom 13. Feb 2017
Antwort Antwort
Seite 1 von 2  1 2      
sinumeriker

Registriert seit: 11. Sep 2016
6 Beiträge
 
Delphi 2007 Professional
 
#1

Ein Programm (Form) mehrfach in einer Form ausführen

  Alt 11. Feb 2017, 20:42
Hallo Zusammen...

Ich (Anfänger) programmiere grade eine Maschinenüberwachung.
Es soll angezeigt werden wenn eine Maschine eine Störung hat. Dieses Funktioniert auch soweit.

Jetzt sollen aber 12 Maschinen angezeit werden, aber ich möchte nicht alles 12 mal kopieren und anpassen…

Gibt es eine Möglichkeit die Form mehrfach parametriert aufzurufen? Oder wie macht man sowas?

Grüße aus dem Hochsauerland…
Peter
Miniaturansicht angehängter Grafiken
form1.jpg  
  Mit Zitat antworten Zitat
Rollo62

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

AW: Ein Programm (Form) mehrfach in einer Form ausführen

  Alt 11. Feb 2017, 21:06
Du könntestTframe statt Tform nehmen.

Rollo
  Mit Zitat antworten Zitat
RSF

Registriert seit: 13. Mär 2008
150 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: Ein Programm (Form) mehrfach in einer Form ausführen

  Alt 11. Feb 2017, 21:45
Da gibt es viele Möglichkeiten. Aber es kommt darauf an wie die 12 Maschinen mit dem Programm kommunizieren.
  • ID-Maschine o.ä. vorhanden
  • Art der Schnittstelle
  • Protokoll
Ronald
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.297 Beiträge
 
Delphi 12 Athens
 
#4

AW: Ein Programm (Form) mehrfach in einer Form ausführen

  Alt 12. Feb 2017, 06:14
Hallöle...
Zitat:
Ich (Anfänger) programmiere grade eine Maschinenüberwachung.
Zitat:
Jetzt sollen aber 12 Maschinen angezeit werden
...das nenn ich mal sportlich. Mit Verlaub...etwas schwierigeres zum Anfang hättest du du dir nicht aussuchen können.

Zum Thema:
1: wie schon gesagt: TFrame statt TForm (TFrame ist ein Container http://docwiki.embarcadero.com/Libra...l.Forms.TFrame)
2: wie schon gesagt: Art der Schnittstelle? Nachtrag: TCP/IP Verbindung mit ClientSocket
3: Das ist erst der Anfang der Probleme. Du solltest ein Konzept auf dem Papier machen.
* Vernünftige Namensgebung der Komponenten und der Variablen von Anfang an. (nicht Form1 wie in dem Bild )
* Trennung der Logik von der Oberfläche. (Units) Das macht die Erweiterungen später raus leichter. Ich wette das momentan alles in einer Unit abläuft.
* Codeeinrückung ggf. mit Formatter.
* Was wird wie von den Geräten abgeholt. (nacheinander / parallel http://docwiki.embarcadero.com/Libra...lasses.TThread)
* Was wird wie von den Geräten angezeigt. (nacheinander / parallel http://docwiki.embarcadero.com/Libra...lasses.TThread)
* Speicherung der Daten? (Datenbank?)
* Events
* Ohne dich anzugreifen (wir haben auch alle mal angefangen ): Mehr als ein Timer auf der Form eines Anfängers sagt eigentlich das man das Konzept der Abarbeitung der Befehle (eventbasiert) nicht wirklich verstanden hat. Ich will damit sagen das es mit Sicherheit eine Lösung ohne Timer gibt. Da wären wir wieder beim Konzept.
* Als Anfänger über Freigaben der Objekte nachdenken? Die Anwendung soll später 24/365 laufen? Dann ist das wichtig!
* usw...

Ich will dir nicht den Mut nehmen, aber da gehört ein wenig Erfahrung dazu...Sorry
Wir helfen dir kein Thema...aber das wird mit dem Verstehen dauern. Ich habe das Gefühl das hinter dir ein Chef steht der "morgen" ein fertiges Programm erwartet.

Bitte hinterlege deine Delphi Version in deinem Profil. Danke.

Geändert von haentschman (12. Feb 2017 um 07:20 Uhr)
  Mit Zitat antworten Zitat
sinumeriker

Registriert seit: 11. Sep 2016
6 Beiträge
 
Delphi 2007 Professional
 
#5

AW: Ein Programm (Form) mehrfach in einer Form ausführen

  Alt 12. Feb 2017, 08:38
Guten Morgen…

Tframe ist glaube ich genau das was ich gesucht habe…

Die Schnittstelle läuft über Clientsocket und Serversocket. Die habe ich soweit ans Laufen gebracht. Als Protokoll werden simple Textnachrichten ohne Parameter übertragen.
Etwas Erfahrung habe ich mit Delphi und diversen anderen Sprachen (Wochenendprogrammierer, gelernter ITA).
Mein größtes Defizit ist das ich nur einen Bruchteil der Funktionen / Befehle kenne aber man wurstelt sich so durch…
Zugegeben, Professionell sieht der Code nicht aus (Variablennamen, Einrücken usw…) aber es läuft….

Danke,
Peter

PS:der Chef bin ich, also kann es auch etwas länger dauern...
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.297 Beiträge
 
Delphi 12 Athens
 
#6

AW: Ein Programm (Form) mehrfach in einer Form ausführen

  Alt 12. Feb 2017, 10:43
Moin...
Zitat:
Zugegeben, Professionell sieht der Code nicht aus (Variablennamen, Einrücken usw…) aber es läuft….
...im Prinzip ist es jedem selbst überlassen. DU mußt auch in 3 Monaten wissen, daß das Label34 für den Status der Maschine 5 ist. Was kostet es mehr wenn man es gleich konsequent macht.

Du hast noch nicht auf alle Fragen geantwortet:
* Was wird wie von den Geräten abgeholt. (nacheinander / parallel)
* Was wird wie von den Geräten angezeigt. (nacheinander / parallel)
* Speicherung der Daten? (Datenbank?)
* Warum die Timer?

Zitat:
PS:der Chef bin ich, also kann es auch etwas länger dauern...
...da haben wir aber Glück gehabt.

Geändert von haentschman (12. Feb 2017 um 10:46 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.336 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Ein Programm (Form) mehrfach in einer Form ausführen

  Alt 12. Feb 2017, 10:47
Also ich sehe das nicht so problematisch.
Ein Formular für eine Maschine funktioniert?

Jetzt stellt sich die Frage, wie die anderen 11 Maschinen dargestellt werden sollen.
Quasi 12 Panels in einem Formular auf einen Blick?

Dann solltest Du Deine Anwendung so bauen, dass Du dem Formular eine Maschine 1..12 zuweisen kannst und diese dann dargestellt wird.

Jetzt erstellt Du ein MainForm mit 12 Panels und setzt in jedes Panel ein "embedded form", dem Du jeweils eine Maschine zuweist (dann wird quasi der Formularinhalt einfach im Panel gezeichnet).
Das sollte schon alles sein.

Man könnte noch einiges optimieren und die "Geschäftslogik" in eigene Klassen auslagern.
Für den Anfang sollten aber embedded forms als Lösung ausreichen.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
mensch72

Registriert seit: 6. Feb 2008
838 Beiträge
 
#8

AW: Ein Programm (Form) mehrfach in einer Form ausführen

  Alt 12. Feb 2017, 10:52
Wenn schon Quick&Dirty, dann richtig

- füge einfach mal ein zunächst leeres "MainForm" mit nur einem Button zum Projekt dazu (!und lasse auch nur dieses von Delphi selbst erzeugen!)
- schaffe es, dass deine Einzellösung zunächst weider mit dem nun von dir selbst dynamisch erzeugten "StateForm" funktioniert
- schaffe es, das sich deinem Form die Maschinendaten irgendwie überegeben werden können(z.B. ganz schumtzig im CaptionText)
- schaffe es im Mainfom eine sagen wir RecordListe(oder böse StringListe) zu haben, wo die einzelnen Maschinen samt der Mindestparameter zur Unterscheidung und Verbindung drin sind
- nimm ein PageControl wo es eine feste ConfigPage mit der Maschinenliste gibt und erzeuge pro Maschine ein TabSheet was jeweils das Parent&Owner vom jeweils dynamisch erzeugten "StateForm" ist
- programmiere ruhig mal alles ganu böse direkt in die FormUnits!!! und bringe es irgendwie zum laufen

-> nutze das Ding mal einen Monate und sieh aber nicht mehr in die Quelltexte
-> nach dem Monat mache dir mal Gedanken, wie du dein dein Tool mit logischen BlackBoxen beschreiben und zerlegen könntest
=> jetzt versuche die funtionlalen Blackboxen mal mit den richtigen&schönen Delphimitteln zu realisieren und die GUI(also die Anzeigefunktionen) von der Kommunikation und den Konfigurations und Programmdaten zu trennen
-> gutes Anfangsstichwort: Datenmodule... nicht perfekt, aber bei Bedarf noch schön einfach mit nicht visuellen Komponenten und RAD-IDE-Events zu nutzen

Wenn du der Chef bist, und dich so/damit etwas ablenkst ist das Ok und sieh ruhig mal zu das es "irgendwie" funktioniert. Schon nach den 4 Wochen wirst du erkennen, das es schwer ist noch alles zu verstehen und und noch schwerer es zu erweitern(andere Maschinen, Protokolle,...). Man muss einfach damit leben, das RAD Prototypen mit etwas Funktion trotzdem "Wegwerfsoftware" sind. Wenn man das erkennt und RECHTZEITIG jeweils vergessen und (richtig)neu durchzieht ist das zwar nicht ganz konform der "alles immer vorab planen" Regel, aber was solls. Chefs dürfen das

Wenn du ein guter Chef bist, erkennst du ja auch wo du nicht deine Stärken hast. Also wäre es nach den 4..6Wochen als Chef eine durchaus gute Entscheidung sich für 2 Monate mal einen Informatik Praktikanten von der Uni zu holen. Dem statt Erklärungen dein "böses" Programm zeigen und geben, damit er es "analysiert", fachlich korrekt stukturiert und dir an Hand eines Pflichten&Lastenheftes erklärt was er wie tun würde. Nun entscheidest du als Chef(und Mensch mit Ego), ob du es selbst nochmal versuchst, oder es den auch mal realisieren lässt und dir anschaust was er wie nach den Vorgaben ausprogrammiert hat.

Wenn du da 3x Monate a 450€ zahlst, ist das für dich kein Geld, aber zusammen mit deiner eigenen Erfahrung bist du ab jetzt in der Lage, kaufmännisch sinnvolle Entscheidungen zu treffen, wenn es um so betriebsinterne Tools geht. Und auch wichtig für die zukünftigen Auftragsvergaben, jeder vom Fach weiß, das du es notfalls auch irgendwie selbst machen könntest und so auch erkennst ob das was man dir anbietet&abliefert wenigstens ein so hohes Level hat das du GERNE dafür bezahlst.
  Mit Zitat antworten Zitat
sinumeriker

Registriert seit: 11. Sep 2016
6 Beiträge
 
Delphi 2007 Professional
 
#9

AW: Ein Programm (Form) mehrfach in einer Form ausführen

  Alt 12. Feb 2017, 17:11
Hallo Zusammen...

für mich ist das Hobby und Spaß an der Freude.
Die Programme sind auch nicht sonderlich Groß und Komplex...

Eine 450 Euro kraft suchen wir schon lange (Delphi, PHP, S7); leider ohne Erfolg…

Anbei ein Screenshot vom Aktuellen Stand.
Jetzt noch Parametrieren, Ausrichten und ein wenig Optik…

Danke nochmals…

Peter
Miniaturansicht angehängter Grafiken
screenshot-2017-02-12-17.59.19.jpg  
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.336 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Ein Programm (Form) mehrfach in einer Form ausführen

  Alt 12. Feb 2017, 17:50
Schau mal hier unter #5 -> http://www.delphipraxis.net/177706-p...er-frames.html

Du könntest ein neues Main-Formular erstellen mit 12 gedockten Panels und in jedes Panel ein Formular einsetzen.
Dann wären die einzelnen Formulare Bestandteil des MainForms.

Welche Delphi-Version hast Du denn (solltest Du auch im Profil eintragen)?
Vielleicht steht Dir auch ein GroupPanel zur Verfügung. Das würde die Anordnung vereinfachen.

Evtl. kannst Du auch meine http://www.delphipraxis.net/165177-scrollboxflow.html verwenden.
Die ordnet auch Einträge automatisch an. Dazu müsste Dir aber ggf. jemand bei der Installation der Komponente helfen.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)

Geändert von stahli (13. Feb 2017 um 11:24 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 04:05 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