AGB  ·  Datenschutz  ·  Impressum  







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

Events zur Designtime

Ein Thema von Medium · begonnen am 14. Mär 2008 · letzter Beitrag vom 22. Mär 2008
Antwort Antwort
Seite 3 von 4     123 4      
Benutzerbild von stahli
stahli

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

Re: Events zur Designtime

  Alt 15. Mär 2008, 19:00
Ich finde es etwas ungewöhnlich, dass Du so flexible und dynamische Änderungen in der IDE realisieren willst. Dann musst Du ja Dein Projekt bei Änderungen jedesmal neu kompilieren.

Warum erstellst Du nicht einfach einen kleinen "Designer" und eine kleine "Palette". Zur Laufzeit kann man dann Poly´s aus der Palette auf den Designer ziehen und bearbeiten. Das ganze wird dann in einen Stream gespeichert und beim nächsten Start geladen...

Deine Exe besteht dann in alle Ewigkeit und die Nutzer können notfalls selbst auch Änderungen an den Poly´s vornehmen.

stahli
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#22

Re: Events zur Designtime

  Alt 15. Mär 2008, 20:16
Zitat von stahli:
Ich finde es etwas ungewöhnlich, dass Du so flexible und dynamische Änderungen in der IDE realisieren willst.
Es scheint in der Tat kaum jemand bislang auf diese Idee gekommen zu sein. Ich habe zumindest nichts dergleichen während meiner Deutsch- und Englischsprachigen Recherche via Google gefunden. Ich bringe "ungewöhnlich" nur selten mit "nicht gut" in Zusammenhang, daher fasse ich das mal nicht als negative Kritik auf

Zitat von stahli:
Dann musst Du ja Dein Projekt bei Änderungen jedesmal neu kompilieren.
Das ist überhaupt nicht schlimm, da sich bei Änderungen in den Bildern ohnehin immer auch Änderungen in der Programmlogik ergeben. Da wir Speziallösungen auf einzelne Produktionsbetriebe zugeschnitten erstellen, ist es nicht nötig bzw. auch nicht erwünscht, dass der Endanwender etwas ändert. Das ganze soll ein Tool werden, dass uns bei der Erstellung die Arbeit erleichtert. Der Enduser soll nachher nur schöne bunte blinkende Bildchen bekommen.

Zitat von stahli:
Warum erstellst Du nicht einfach einen kleinen "Designer" und eine kleine "Palette". Zur Laufzeit kann man dann Poly´s aus der Palette auf den Designer ziehen und bearbeiten. Das ganze wird dann in einen Stream gespeichert und beim nächsten Start geladen...
Nochmal: Es ging nie um den Enduser, und schon garnicht um die Laufzeit. Ich will ein höheres Maß an Editierbarkeit zur Designzeit, und auch nur da!



Ich hab bereits das wesentliche Rahmenwerk auf Basis des überlagerten Formulars gebaut, und bislang sieht es noch immer so aus, als könnte ich es so realisieren. Was dieser "Trick" mit sich bringt ist z.B., dass ich ein weiteres auf dem eigentlichen Formular verschiebbares und größenänderbares Fenster mit einem eigenen kleinen Propertyeditor erzeugen kann. Im Grunde wird es also ein Designer, der in dem Fenster des Delphi-Designers zuuur Designtime läuft, auf dem die Komponente eingefügt wurde.
Innerhalb dieser Fenster kann ich agieren wie in einem separaten eigenen Programm, nur dass alles in einer Komponente gekapselt ist, und im Delphidesigner dargestellt wird. Ich bin selbst erstaunt, dass das so möglich ist, aber nicht wirklich böse darum.

Sobald eine vorzeigbare Version fertig ist, kann ich sie ja mal zur Begutachtung hochladen. Bisher zumindest bin ich noch davon überzeugt, dass das der beste Weg ist für unsere Zwecke, zumal leider alle bisherigen Ansätze Maus-Events aus dem Designer zu erhalten fehlgeschlagen sind.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#23

Re: Events zur Designtime

  Alt 17. Mär 2008, 15:58
Hier mal der bisherige Stand. Es ist ein absoluter "work in progress", und einiges fehlt noch, aber es zeigt schon ganz gut was ich meinte. Erstellt und getestet hab ich es bislang nur unter Delphi 7 Ent.

Installation:
DrawingContainer.pas als neue Komponente registrieren
(Darauf achten, dass alle 3 Files im Bibliothekspfad sind)

Was bisher geht: Es werden in einer Zeichenfläche zwei bearbeitbare Dreiecke erstellt, dessen Eigenschaften sich in einem eigenen Property-Editor der sich mit öffnet geändert werden können. Multiselektion klappt auch schon.
Was fehlt ist Persistenz (beim Starten des Programmes werden nur die 2 Dreiecke in Ausgangsform gezeigt), dynamische Kontextmenues, ein paar Tool-Leisten und weitere Sub-Komponenten, sowie der übliche Feinschliff.

Eine Kleinigkeit muss man noch beachten: Damit man das Element via [Entf] auch wieder löschen kann, und zuvor im "internen" Property Editor etwas gemacht hat, muss man kurz etwas anderem den Focus geben (dem Delphi-Propertyeditor z.B.) und dann den roten Rand um die Komponente anklicken damit sie richtig selektiert ist.
Ich hab leider bisher keinen sinnvollen Weg gefunden, dem internen Prop-Edit den Fokus zu klauen.
Angehängte Dateien
Dateityp: zip drawingcontainer_425.zip (5,7 KB, 17x aufgerufen)
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

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

Re: Events zur Designtime

  Alt 17. Mär 2008, 17:42
Unter BDS2006 erhalte ich beigefügte Meldungen...
Mich würde mal ein kleines Bilchen oder kurzes Video interessieren...

stahli
Miniaturansicht angehängter Grafiken
dc_132.jpg  
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#25

Re: Events zur Designtime

  Alt 17. Mär 2008, 23:17
Ich hab schon befürchtet, dass mich die RTTI und Konsorten in anderen Versionen ärgern werden. Schade.
Ich hab mir aber mal fix Camtasia angesehen, nettes Progrämmchen! Meinen ersten Film hab ich mal angehängt

Das Popupmenu ist da nun schon ansatzweise drin. Was im Video nicht deutlich wird: Es wird dynamisch aufgebaut, je nach dem was gerade für ein Element selektiert ist. Da es derzeit nur das Polygon gibt, schaut es immer gleich aus.
Angehängte Dateien
Dateityp: zip drawingcontainer01_video_937.zip (1,16 MB, 15x aufgerufen)
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#26

Re: Events zur Designtime

  Alt 18. Mär 2008, 00:20
Das einfügen von csClickEvents, csDesignInteractive oder csDoubleClicks in ControlStyle hat nichts gebracht bezüglich der Eventverarbeitung über die entsprechenden Mouse-Methoden zur Designzeit?
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#27

Re: Events zur Designtime

  Alt 18. Mär 2008, 01:33
Leider nicht. Diese Optionen haben, bis auf der Beschreibung nach csDesignInteractive, nur Auswirkungen auf ein Control zur Laufzeit. Setzen von csDesignInteractive hat allerdings in meinem Test auch keinen Unterschied gemacht, würde aber allein auch nicht ausreichen, da ich auch auf MouseMove, -Down und -Up reagieren will, evtl. mehr.

Was mich etwas stutzig macht ist, dass mir bislang noch keine Komponenten mit ansatzweise ähnlicher Editierbarkeit zur Designtime untergekommen sind. So sehr abwegig find ich das Bedürfnis danach eigentlich nicht.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

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

Re: Events zur Designtime

  Alt 18. Mär 2008, 15:14
Hallo Medium,

die Lösung ist elegant umgesetzt und funktioniert ja auch nicht schlecht.

Allerdings kann ich das Ganze nicht so recht einordnen. Du erzeugst sozusagen eine Art Präsentation...!?
Die Optik kannst Du (zugegebener Maßen recht elegant) in der IDE zusammenbasteln und diese in eine Exe manifestieren...

Anderereseits wäre es m.E. sicher auch nicht aufwändiger gewesen, im Projekt zur Laufzeit eine "Arbeitsfläche (Designer+Palette)" bereitzustellen und ddie Polys dort zu bearbeiten. Das Ganze wird dann gespeichert und mit dem Projekt mitgegeben. Durch Ersetzen der Poly-Datei werden andere Komponenten angezeigt. Der Enduser muss ja keine Bearbeitungsmöglichkeit erhalten.

NICHTS gegen Deine Lösung - die ist schon beeindruckend. Nur, ich weiß nicht, ob´s wirklich unbedingt in der IDE sein muss...
Jedenfalls fallen mir keine Komponenten ein, bei denen das sonst noch notwendig wäre...


stahli
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#29

Re: Events zur Designtime

  Alt 18. Mär 2008, 16:00
Es geht dabei um sog. Prozessvisualisierung zur Anlagensteuerung und Überwachung, bei der eine Anlage (Teile eines Produktionsbetriebes o.ä.) visuell stilisiert dargestellt werden, und durch Farben und Ausgabefelder den Zustand der Anlage wiedergeben.
Dabei gibt es zwei Probleme, die ich so löse:
1) Es gibt sehr individuelle Anlagenteile, für die es sich nicht lohnt jeweils eine eigene Komponente zu schreiben. Sie unterscheiden sich jedoch meist nur in der Form von anderen, und daher war es sinnvoll eine generelle Lösung dafür zu finden.
2) Ein einzelnes Element sitzt inmitten von zig anderen, und sollte der Übersicht und Gefäligkeit wegen pixelgenau ordentlich positioniert sein, was zu erreichen eine Tortur ist, wenn man einen externen Editor bemüht. Da Elemente auch ganz normale VCL Komponenten wie Buttons und Edits sein können, ist die direkte Bearbeitung auf dem Designformular das Optimum.

Okay, ich gebe zu, die Anforderungen sind evtl. schon recht spezifisch
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

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

Re: Events zur Designtime

  Alt 18. Mär 2008, 16:17
Zitat von Medium:
Okay, ich gebe zu, die Anforderungen sind evtl. schon recht spezifisch
Ok, dann gebe ICH auch zu, dass Deine Lösung dafür SEHR elegant ist!

Wenn Du dort auch VCL-Komponenten einbindest (und vermutlich auch noch Schalterklicks behandelst) wäre es natürlich äußerst umständlich, das alles in der IDE zu organisieren und später zur Laufzeit die Polys hinzuzufügen.

Also Respekt nochmal

Und gut, dass wir ausführlich drüber gesprochen haben...


stahli


PS: Als Screenrecorder kann ich übrigens auch den "HyperCam" empfehlen (klein aber fein, erzeugt allerdings nur avi) oder von DataBecker den Stream Catcher (beide 30 Eu).
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


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:02 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