Diskussion zum Artikel "DoEasy. Dienstfunktionen (Teil 2): Das Muster der „Inside-Bar“" - Seite 2

 
Alexey Viktorov #:

Dieser künstliche Idiot kann jeden Müll reproduzieren, der sich in den Chips angesammelt hat. Ich habe dir gezeigt, dass es ein anderes Muster sein wird. Anders.

Ist es nicht ein bisschen arrogant, anzunehmen, dass alle, deren Links bei Google ganz oben stehen, Idioten oder Müll sind?

 

Ich danke Ihnen!
Aus dem Artikel: - "Wie Sie sehen können, funktioniert alles wie angekündigt. Das Zeichnen von Mustern als Zeichnungen hat einige Verzögerungen. Wir werden uns damit befassen."
Die Verzögerung entsteht durch die Suche nach Objekten, die von der Bibliothek im Diagramm erstellt wurden. Da diese Suche bereits synchron erfolgt. Sie müssen die Informationsobjekte im Diagramm löschen und neue erstellen. Dann wird sie asynchron sein.

aus der Hilfe:
Sie können ObjectFind() oder andere Funktionen verwenden, die nach Objekteigenschaften fragen, zum Beispiel der Form ObjectGetXXX, um das Ergebnis der Ausführung zu überprüfen. Sie sollten jedoch bedenken, dass solche Funktionen am Ende der Warteschlange der Diagrammbefehle stehen und auf das Ergebnis der Ausführung warten (da es sich um synchrone Aufrufe handelt), d.h. sie können zeitaufwendig sein. Diesen Umstand sollten Sie im Hinterkopf behalten, wenn Sie mit einer großen Anzahl von Objekten im Diagramm arbeiten.

Dies ist hier der Fall, daher die Verzögerung.

 
BmC #:

Ich danke Ihnen!
Aus dem Artikel: - "Wie Sie sehen können, funktioniert alles wie angekündigt. Das Zeichnen von Mustern als Zeichnungen hat einige Verzögerungen. Wir werden uns damit befassen."
Die Verzögerung entsteht durch die Suche nach Objekten, die von der Bibliothek im Diagramm erstellt wurden. Da diese Suche bereits synchron erfolgt. Sie müssen die Informationsobjekte im Diagramm löschen und neue erstellen. Dann ist sie asynchron.

aus der Hilfe:
Sie können ObjectFind() oder andere Funktionen verwenden, die nach Objekteigenschaften fragen, zum Beispiel der Form ObjectGetXXX, um das Ergebnis der Ausführung zu überprüfen. Sie sollten jedoch bedenken, dass solche Funktionen am Ende der Warteschlange der Diagrammbefehle stehen und auf das Ergebnis der Ausführung warten (da es sich um synchrone Aufrufe handelt), d.h. sie können zeitaufwendig sein. Diese Tatsache sollten Sie im Hinterkopf behalten, wenn Sie mit einer großen Anzahl von Objekten im Diagramm arbeiten.

Genau das geschieht hier, daher die Verzögerung.

Es werden nicht die Objekte auf dem Diagramm durchsucht, sondern die Klassenobjekte im Speicher. Aber das kriegen wir natürlich schon hin.

 
Artyom Trishkin #:

Die Suche erfolgt nicht nach Objekten auf der Karte, sondern nach Klassenobjekten im Speicher. Aber wir werden es natürlich herausfinden.

Jede Änderung eines Objekts im Diagramm löst eine Suche aus.
Ihr Algorithmus:
1. Sie suchen ein Klassenobjekt im Speicher (Ihre Bibliothek)
2. Sie ändern eine Eigenschaft eines Klassenobjekts im Speicher
3. Sie löschen ein Objekt im Diagramm nicht, sondern behalten es im Diagramm.
4. Das Terminal beginnt, die Funktion zur Suche eines Objekts im Diagramm aufzurufen, da Sie es nicht erstellen, sondern ändern.
5. Es findet ein Objekt im Diagramm, in dem Sie eine Eigenschaft aus Punkt 2 ändern müssen.

Das ist es, was ich Ihnen geschrieben habe. Ich dachte, Sie würden es verstehen.))

Jedes Mal, wenn Sie die Maus über ein Muster bewegen, erstellen Sie ein Objekt. Dieses verbleibt auf dem Diagramm. Wenn man mit der Maus über 10 Muster fährt, werden 10 Objekte auf dem Diagramm erstellt.

ObjectSetInteger



Hinweis aus der Hilfe: ........
Sie sollten aber bedenken, dass solche Funktionen am Ende der Befehlswarteschlange eines fremden Diagramms stehen und auf das Ergebnis der Ausführung warten, d.h. sie können zeitaufwendig sein. Diesen Umstand sollten Sie im Hinterkopf behalten, wenn Sie mit einer großen Anzahl von Objekten im Diagramm arbeiten.
Sie haben bereits eine große Anzahl von Objekten im Diagramm!


Deshalb haben Sie eine Verzögerung, wenn Sie die Maus erneut bewegen, denn sie wird nicht wie beim ersten Mal angelegt, sondern ändert die Anzeigeeigenschaften für diesen Zeitraum.


 
BmC #:

Jede Änderung eines Objekts im Diagramm führt zu einer Suche.
Ihr Algorithmus:
1. Sie suchen nach einem Objekt von Klassen im Speicher (Ihre Bibliothek)
2. Sie ändern eine Eigenschaft eines Objekts von Klassen im Speicher
3. Sie löschen ein Objekt im Diagramm nicht, es bleibt im Diagramm.
4. Das Terminal beginnt, die Funktion der Suche nach einem Objekt im Diagramm aufzurufen, da Sie es nicht erstellen, sondern ändern.
5. Es findet ein Objekt im Diagramm, in dem Sie eine Eigenschaft aus Punkt 2 ändern müssen.

Das ist es, was ich Ihnen geschrieben habe. Ich dachte, Sie würden es verstehen.))

Jedes Mal, wenn Sie die Maus über ein Muster bewegen, erstellen Sie ein Objekt. Dieses Objekt verbleibt auf dem Diagramm. Bei 10 Mustern, über die ich den Mauszeiger bewegte, wurden 10 Objekte auf dem Diagramm erstellt.

ObjectSetInteger



Hinweis aus der Hilfe: ........
Sie sollten aber bedenken, dass solche Funktionen am Ende der Befehlswarteschlange eines fremden Diagramms stehen und auf das Ergebnis der Ausführung warten, d.h. sie können zeitaufwendig sein. Diesen Umstand sollten Sie im Hinterkopf behalten, wenn Sie mit einer großen Anzahl von Objekten in einem Diagramm arbeiten.
Sie haben bereits viele Objekte im Diagramm!


Deshalb haben Sie eine Verzögerung, wenn Sie die Maus erneut bewegen, denn sie wird nicht wie beim ersten Mal angelegt, sondern ändert die Anzeigeeigenschaften für diesen Zeitraum.


Dieses Verhalten sollte natürlich nicht vorkommen. Entweder ist es ein Wiederauftauchen aufgrund vergangener Updates (bei mir ist jetzt der ganze Graph kaputt - alles hängt voneinander ab und reagiert auf Ereignisse), oder es ist mein Designfehler. Aber nach einigen kürzlichen Terminal-Updates sind alle Grafiken in der Bibliothek kaputt. Ich habe den gespeicherten alten Build geladen - dort funktioniert alles. Sobald ich auf die neue Version aktualisiert habe, stürzte alles ab. Deshalb sündige ich mit den vergangenen Updates. Ich habe noch keine Zeit, nach den Gründen zu suchen.

Aber die Tatsache, dass viele Objekte erstellt und nicht gelöscht werden - das war definitiv nicht geplant.

Vielen Dank für Ihre Antwort, ich werde mich damit befassen, wenn die Zeit reif ist.

 
Toller Artikel, danke für die Arbeit, die Sie geleistet haben!
 
Hallo! Wird das DoEasy-Projekt nicht mehr unterstützt? Beim Versuch zu kompilieren, gibt es viele Fehler: Parameterumwandlung, Neudefinition des Standardwerts, usw. Oder können Sie vielleicht irgendwo die letzte korrekte Version herunterladen?
 
leonerd DoEasy-Projekt nicht mehr unterstützt? Beim Versuch zu kompilieren, gibt es viele Fehler: Parameterumwandlung, Neudefinition des Standardwerts, usw. Oder können Sie vielleicht irgendwo die letzte korrekte Version herunterladen?

Hallo. Die Entwicklung ist im Moment eingestellt. Aber Sie können alle Fehler selbst beheben. Höchstwahrscheinlich liegt das Problem darin, dass int und uint (long/ulong, short/ushort, etc. jetzt unterschiedliche Typen sind).

Am einfachsten ist es, eine explizite Typkonvertierung hinzuzufügen, bei der der Compiler einen Fehler meldet, z.B.: int x = (int)y; falls y vom Typ uint ist, usw.

PS. Obwohl, nein. So einfach ist es nicht. Es müssen eine Menge Korrekturen vorgenommen werden. Ich werde es korrigieren, wenn ich Zeit habe. Ich habe sie leider noch nicht.