Diskussion zum Artikel "Grafische Interfaces VI: Die Slider und Dual-Slider Controls (Kapitel 2)"

 

Neuer Artikel Grafische Interfaces VI: Die Slider und Dual-Slider Controls (Kapitel 2) :

In dem vorherigen Artikel haben wir unsere Bibliothek um die vier sehr häufig verwendeten Controls: Checkbox, Edit, Edit mit Checkbox und Check-Combobox erweitert. Das zweite Kapitel des sechsten Teils widmet sich den Slider (Schieberegler) und Dual-Slider Controls.

Dieses Element wird aus sechs grafischen Objekten zusammengebaut. Diese sind:

  1. Hintergrund
  2. Caption (text label)
  3. Eingabefeld
  4. Slider-Linie
  5. Slider-Läufer
  6. Slider Indikator

 

Abbildung 1. Komponenten des Slider-Controls

Autor: Anatoli Kazharski

 
Реter Konow:
...

Ich bin an Ihren Kommentaren und Vorschlägen interessiert.

Ich brauche eine Klarstellung.

  1. Wie trennen Sie das Konzept des Hauptfensters und des Einstellungsfensters?
  2. Welche Funktionen schlagen Sie vor, der derzeitigen Implementierung des Fensters hinzuzufügen, damit es als "Hauptfenster" bezeichnet werden kann?

 

Bei den Beispielen in den Artikeln ging es mir darum, zu zeigen, wie die Elemente in verschiedenen Kombinationen funktionieren. Es ist nur ein Weg, um zu zeigen, dass die verschiedenen Arten von Elementen nicht miteinander in Konflikt stehen. Dies gilt insbesondere für Dropdown-Elemente und Elemente, die Bildlaufleisten verwenden.

 
Реter Konow:

...

Wenn Sie das Hauptanwendungsfenster zu einem zusammengesetzten Fenster machen, geben Sie allen Entwicklern die Möglichkeit, den "Haupt"-Inhalt dafür zu wählen. Meiner Meinung nach ist die "Kompositionsfähigkeit " die Besonderheit des "Haupt"-Anwendungsfensters.

Auf jeden Fall sollten Sie sich mit der Entwicklung der Fähigkeiten Ihrer Fenster befassen.

Gedacht. Die derzeitige Bibliotheksstruktur erlaubt es, eine solche Funktionalität zu implementieren. Aber bevor wir mit der Implementierung beginnen, müssen wir noch eine Reihe anderer Probleme lösen, damit es wirklich schön wird. Ich sehe mehrere Möglichkeiten. Ich weiß noch nicht, welche ich verwenden werde, da ich eine Reihe von Experimenten und Tests durchführen muss, um die am wenigsten ressourcenintensive Variante auszuwählen.

Das werde ich tun, wenn die geplanten Artikel der aktuellen Serie veröffentlicht sind. Die komplexesten und interessantesten aus der Sicht der Entwicklungssteuerung sind übrig geblieben.

Generell verspreche ich nicht, dass es schnell gehen wird, da ich außerdem geplant habe, den Code in der aktuellen Version zu optimieren und einige Ergänzungen und Korrekturen vorzunehmen, die den Ressourcenverbrauch deutlich reduzieren sollen. Und es ist auch so, dass man bei Optimierungen und Versuchen, den Ressourcenverbrauch zu reduzieren, noch nicht weiß, ob man am Ende überhaupt etwas davon hat. Es kann passieren, dass man viel Zeit investiert und am Ende feststellt, dass es gar nichts bringt. Aber das macht mir keine Angst. Wenn du es nicht versuchst, wirst du es nicht wissen. ;)

 
Реter Konow:

Dennoch eine sehr interessante Art, die Frage zu stellen.... Mir persönlich ist nie in den Sinn gekommen, dass Optimierung und Verringerung des Ressourcenverbrauchs unnötig und sogar schädlich sein können und auf der "Ziellinie" keinen Nutzen bringen. Sie haben mich auf dem falschen Fuß erwischt.... Über dieses Thema kann man sicher diskutieren oder streiten, aber ich finde nicht genügend Argumente, da ich das Thema nie von dieser Seite aus betrachtet habe.

...

Es ist nicht meine Meinung, dass "die Optimierung und Reduzierung des Ressourcenverbrauchs unnötig und sogar schädlich sein kann". In meinem Fall muss die Optimierung durchgeführt werden, und es wird definitiv einen Gewinn geben. Ich werde es einfach tun, und wenn es ein Ergebnis gibt, werde ich einen Artikel darüber schreiben. Im Moment habe ich einfach nicht genug Zeit, um mich damit zu beschäftigen.

Ist die ganze OOP-Syntax wirklich notwendig? Warum zum Beispiel Variablen an Funktionen übergeben, wenn man sie auf globaler Ebene sichtbar machen kann? Warum Klassen verbinden, wenn man Funktionsdateien verbinden kann? Dateien erfordern kein komplexes System der Funktionsverknüpfung, derErstellung von Klassenobjekten für den Zugriff auf Funktionen und Variablen. Warum ein kolossales Durcheinander von Regeln und unterschiedlicher Syntax, das vom Kern des zu lösenden Problems ablenkt und verwirrt.

Versuchen Sie, dasselbe zu tun, aber ohne OOP. So, dass alles genau so funktioniert. Ich habe es zuerst versucht und bin zu dem Schluss gekommen, dass es ohne OOP sehr schwierig ist, ein solches Projekt durchzuführen, selbst wenn man es nur für sich selbst macht. Ich kann mich jetzt sehr gut in dieser Struktur bewegen. Alles ist organisiert und an seinem Platz. Es gibt Zugang zu allen Objekten und Elementen der Bibliothek. Sie überschneiden sich nicht und werden nur dort aufgerufen, wo sie es können, jedes hat seinen eigenen Typ und Namen. Ich kann sehen, wo ich Refactoring betreiben, den Code und einige Algorithmen optimieren und den Ressourcenverbrauch reduzieren kann.

Jeder kann nicht nur Vorschläge machen, sondern auch Methoden zur Lösung einiger Probleme beisteuern, wenn er sieht und weiß, wie. Ich habe bereits viele private Vorschläge von verschiedenen Nutzern erhalten, was und wo ich nachbessern sollte. Auch im englischen Forum wurde auf einige Designfehler in dieser Bibliothek hingewiesen. Ich kenne bereits mindestens vier Faktoren, die den Ressourcenverbrauch erhöhen. Einige verbrauchen offensichtlich unnötig viel, und ihre Beseitigung wird höchstwahrscheinlich zu Ergebnissen führen. Aber das alles ist erst einmal nur Theorie. Auf jeden Fall müssen wir Tests durchführen, und erst danach können wir sagen, ob es einen Gewinn gibt oder nicht.

Auf jeden Fall halte ich Diskussionen darüber, welche Programmiermethoden besser und welche schlechter sind, für sinnlos. Ihre Erfahrung mag Ihnen das eine sagen, jemand anderes aber genau das Gegenteil. Das Leben ist unendlich vielfältig in seiner Vielfalt. ;)

 
Реter Konow:

Die Reihenfolge als solche ist jedoch nicht an eine bestimmte Methode der Implementierung gebunden. Wenn Sie in einem Programm eine Ordnung schaffen, indem Sie die Funktionalität nach Klassen aufteilen, sollten Sie wissen, dass dieselbe Ordnung wiederholt werden kann, indem Sie die Funktionalität nach Dateien aufteilen.

Ordnung - ja, aber Zugriff und Bedienung vieler Objekte unterschiedlichen Typs - nein. Meiner Meinung nach ist es in OOP viel einfacher.

Wenn man eine Aufzählung oder Struktur AS THESE erstellt, dann müssen SIE nicht nach OOP-Regeln und mit OOP-Syntax gemacht werden. Sie können die Zeile einfach auskommentieren und schreiben "Struktur A. Liste der Elemente:" und der Zugriff auf Variablen wird vereinfacht. OOP hilft nicht, irgendetwas zu ordnen, sondern bietet nur einen einheitlichen Standard, um ein vorgefertigtes Ordnungsschema zu schreiben.

Und warum? Weil man eine vollwertige Struktur auf einmal erstellen kann und dann mit all dem jonglieren kann, indem man ihre Instanzen, Arrays und sogar Arrays von Arrays von Instanzen deklariert. Man kann das auch ohne OOP machen, aber meiner Meinung nach ist OOP bequemer.

Und wie soll der Zugriff auf Variablen vereinfacht werden, wenn sie sich außerhalb einer Struktur oder Klasse befinden? Im Gegenteil, es ist das durchdachte Ordnungsschema in OOP, das hilft, alles zu organisieren und den Zugriff auf die Variablen zu vereinfachen, auf die man zugreifen kann, und auf die, auf die man nicht zugreifen kann - um sie ganz zu schließen.

Retag Konow:
Hier kann ich Ihnen nicht widersprechen. Da OOP allgemein akzeptiert ist, kann die Entwicklung Ihrer Bibliothek leicht von anderen Programmierern aufgegriffen werden. Ich wünsche Ihnen, dass dies geschieht. :)

Dafür wurde diese ganze Sache ja auch ins Leben gerufen. Ein Kopf ist gut, aber nicht genug. ;)

 
Реter Konow:

Was geht dich das an, wenn es kein Geheimnis ist?

Frag das Universum. Wir sind nur Werkzeuge in seinen Händen. ;)


Eitelkeit?

Nein. Befriedigung. Aber nicht aus Eitelkeit. Ich weiß nicht, warum. Vielleicht, weil ich den Wust an unrealisierten Ideen und Aufgaben in meinem Kopf teilweise ausdünne. Und auch das Schreiben von Artikeln diszipliniert mich, da die Verantwortung höher ist. Ich habe den Code dieser Bibliothek, die ich ursprünglich für mich selbst geschrieben habe, erheblich verbessert. Und das ist noch lange nicht alles.

Auch die Bezahlung für Artikel ist zumindest eine kleine Entschädigung für die aufgewendete Zeit.

Retag Konow:

Köpfe sind in der Mehrzahl faul und schätzen fertige Produkte weitaus mehr als Baukästen mit Anleitungen oder Baumaterialien, aus denen man diese Produkte herstellen kann. Wenn man sie dazu zwingt, werden sie Ihre Bibliothek verwenden, aber wenn man ihnen die Möglichkeit gibt, den Aufwand zu verringern und eine Schnittstelle zu erstellen, ohne Code zu schreiben, werden sie Ihre schöne Bibliothek leider schnell vergessen. Das ist genau der Verrat, den die Gesellschaft immer an ehrlichen und edlen Menschen begeht, die sich selbstlos für sie einsetzen.

Vielleicht tun das die meisten von ihnen, aber nicht alle. Sie sind es, mit denen ich teile. Genauso wie sie mit anderen teilen.

Übrigens denke ich darüber nach, auch ein visuelles Studio für die Erstellung grafischer Oberflächen zu entwickeln. Es wird mit Hilfe dieser Bibliothek erstellt werden. Ich möchte etwas Ähnliches wie in Microsoft Visual Studio machen. Und vielleicht sogar besser. Die Zeit wird es zeigen. Wie immer beginnt alles mit kleinen Experimenten. Ich weiß noch nicht einmal, was am Ende dabei herauskommen wird. )

Retag Konow:

Mir scheint, die Community ist reif für eine Revolution in der Praxis der Erstellung von Handelsprogrammen, und Sie wollen ein weiteres "Upgrade" anbieten. Wie auch immer, bei all dem wünsche ich Ihnen viel Glück. :)

Natürlich ist es das! Deshalb habe ich beschlossen, all dies zu veröffentlichen. Um zu korrigieren und weiter in diese Richtung zu gehen. ;)

 
Реter Konow:

Welcher Ehrgeiz und welcher Optimismus!!! Genau wie meiner...))))))

Deine Ambitionen sind immer noch nur in Worten. Komm schon, zeig deine Konkurrenz!
 
Реter Konow:

Könnten Sie bitte klarstellen, an wen Sie Ihren Appell richten - nur an mich oder sowohl an Anatoly als auch an mich?

Wenn Sie sich an mich wenden, habe ich kürzlich die grundlegenden Fähigkeiten meiner Fenster, Bildlaufleisten, Tabellen und Spezialeffekte demonstriert.

An Sie, natürlich. Wollen Sie mit Ihren Videos mit Anatolys gut kommentierten Quellen konkurrieren? In welcher Kategorie? )

Um das Programm zu beurteilen, benötigen Sie zumindest eine Demoversion. Es ist eine Schnittstelle, Sie müssen sie fühlen.

Deshalb fordere ich Sie auf, nicht mehr über den "furchterregenden Konkurrenten" zu reden, sondern sich die Demo anzuschauen ;)

 
Реter Konow:
... Frag Anatoly, ob er mich als Konkurrenten betrachtet. Er soll es Ihnen selbst sagen. :)

Nein, ich betrachte Sie nicht als Konkurrenten. Ich arbeite in einem anderen Format und wir überschneiden uns in keiner Weise. Und ich will auch nicht das Rennen machen. Ich werde in meinem üblichen Tempo arbeiten.

Ich veröffentliche Material von meiner Seite erst, wenn ich eine mehr oder weniger, meiner Meinung nach, akzeptable Qualität erreicht habe.

Der nächste Artikel, der veröffentlicht werden soll , ist übrigens: Grafische Schnittstellen VII: Elemente von "Tabellen" (Kapitel 1). Er wird gleich drei Klassen von Tabellen vorstellen. ;)

 
Реter Konow:

Ich hatte auf einen kleinen Wettbewerb gehofft! :) Wie schade. Naja. Ich habe festgestellt, dass die Gemeinschaft einen schwachen Wettbewerbsgeist hat. Als ich nach dem Wettbewerb auf dem Markt fragte - sagten sie, dass es keinen gibt, als ich versuchte, die Initiative einer anderen Person zu unterstützen, um die Meisterschaft zu halten - so Teilnehmer sind fast nicht gefunden.... Langweilig wie es ist...;) Gut und schön.

Ich werde mir zukünftige Artikel auf jeden Fall ansehen. Viel Glück! :)

Lasst uns in Qualität und Funktionalität konkurrieren.

Außerdem habe ich bereits 18 Artikel veröffentlicht. Das sind 18 Züge. Nein, 18 Tore hast du geschossen. Und du hast noch kein einziges davon gemacht. Ich verspreche Ihnen noch mindestens 7 weitere. Es ist nicht sehr interessant, wenn es ein Spiel mit nur einem Tor ist. ;)