AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte DigiSim - Ein Digitaler Simulator
Thema durchsuchen
Ansicht
Themen-Optionen

DigiSim - Ein Digitaler Simulator

Ein Thema von omata · begonnen am 29. Dez 2008 · letzter Beitrag vom 4. Jan 2009
Antwort Antwort
omata
Registriert seit: 26. Aug 2004
Ich habe gerade einen digitalen Simulator fertiggestellt. Die Anwendung ist aus einer Spielerrei hervorgegangen. Vielleicht interessiert sich jemand dafür, deshalb veröffentliche ich ihn hier einfach mal.
Miniaturansicht angehängter Grafiken
digsim.png  
Angehängte Dateien
Dateityp: exe digisim_597.exe (507,5 KB, 153x aufgerufen)

Geändert von omata (14. Aug 2011 um 19:07 Uhr)
 
Benutzerbild von BUG
BUG
 
#2
  Alt 29. Dez 2008, 17:14
Lustige Sache

Aber zwei Sachen sind mir aufgefallen:
  • Wenn ich mit der Maus über einen Ausgang komme, wird die Schaltung nicht mehr angezeigt.
  • Gibt es eine Möglichkeit nicht benötigte (einzelne) Bauteile wieder zu löschen?
MfG,
Bug

EDIT: Ich nutze Vista (siehe unten).
  Mit Zitat antworten Zitat
ConstantGardener

 
Delphi 10.4 Sydney
 
#3
  Alt 29. Dez 2008, 17:17
Hallo omata,

nettes Teil. Besonders interessant für Anfänger um Logische Verknüpfungen zu üben/zu durchschauen.

mfg cg
Andreas Schachtner
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

 
Delphi 2009 Professional
 
#4
  Alt 29. Dez 2008, 17:23
Der Bug mit der Maus über dem Ausgang scheint nur bei Vista so zu sein.
Manuel
  Mit Zitat antworten Zitat
omata

 
Delphi 7 Enterprise
 
#5
  Alt 29. Dez 2008, 18:11
Vielen Dank für die Rückmeldungen

Zitat von BUG:
Wenn ich mit der Maus über einen Ausgang komme, wird die Schaltung nicht mehr angezeigt.
Das ist komisch, ich verstehe nicht, was da bei Vista problematisch sein soll. Im MouseMove-Event lasse ich die Schaltung neu zeichnen

Zitat von BUG:
Gibt es eine Möglichkeit nicht benötigte (einzelne) Bauteile wieder zu löschen?
Ja, Bauteil mit der linken Maustaste nehmen und in den linken Bereich ziehen und dort loslassen.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

 
Delphi 12 Athens
 
#6
  Alt 4. Jan 2009, 15:08
Erstmal 'nen Lob, ist ganicht mal so schlecht geworden.

Aber eines solltest du (falls du dieses Projekt fortführen möchtest) besser mal machen ...
und zwar die "Bausteine" nicht statisch im Programm definieren und überall verstreut diese einzeln zu behandeln.

Besser wäre es die "Bauelemente" (deren Definition, Behandlung, Berechnung und das Zeichnen) dynamisch zu erstellen ... macht es leichter später mal was zu ändern und auch noch Neues zu definieren (gibt ja nicht nur diese Grundelemente).

Hatte mal vor vielen Jahren (bestimmt schon 9-10 Jahre ) selbst mal sowas versucht und ebenfalls (ok, wußte es damals auch nicht besser) alles überall, kreuz und quer fest programmiert in dem Programm und seiner Oberfläche verbaut.
Tja und als es anfing komplexer zu werden, war's aus, da ich einfach nicht mehr durchsah, was wie und wo passierte und ich somit die Fehler nicht mehr fand.


DigiComponents.pas
hier sind die Typendefinitionen und einige Grundfunktionen drin, sowie die Funktionen zur Speicherverwaltung

InternalComponents.pas
definiert die Komponenten
- nicht wundern, da sind 2 Versionen drin, aber mit dem selben Inhalt ... einmal direkt über die Grundfunktionen, ur speicherverwaltung und dann nochmal über 'ne Klasse, welche alles kapselt

Und ich hoff mal ich hab soweit keine "neuen" Fehler reingebaut, als ich alles für dich nochmal auf das "Grundlegende" reduziert hab (nur die von dir schon enthaltenen Bauelemente und nichts bezüglich Zoomen und sonstigen Größenänderungen in der Darstellung)

DC_GetMem/I_GetMem und DC_FreeMem/I_FreeMem sind eigentlich nur da, damit man später eventuelle Probleme ausschließen kann, welche z.B. beim Laden zusätzlicher Bauelemente (z.B. aus DLLs) bekommen könnte.
Angehängte Dateien
Dateityp: zip digisim_105.zip (4,6 KB, 45x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

 
Delphi 2009 Professional
 
#7
  Alt 4. Jan 2009, 15:30
Dem muss ich beiflichten. Mein Editor für DrawBall war zuerst ziemlich statisch (siehe hier im Forum), aber jetzt habe ich einfach eine Oberklasse und dann für besondere Objekte (z.B. Türen, da sie zwei Stati/Status ^^ annehmen können) Unterklassen. Nudn habe ich mich mit deinem Thema noch nicht so beschäftigt, und kann deshalb nicht sagen wie man das bei dir am besten macht (aber himitsu hat ja einen Ansatz).

Btw himitsu:
Zitat von himitsu:
Erstmal 'nen Log,[...]
Ist das ein "Programmierergag" statt Lob Log zu sagen ^^ Oder einfach nur ein paar Zentimeter zu hoch

Aber ansonsten habe ich hier (Windows Vista Home Premium x64) das Problem mit dem Ausgang. Warum genau kann ich dabei nicht sagen. Was interessant ist, dass bei Raufziehen des Ausgangs es zuerst nicht weg war, aber nach ... 100px (?) war alles weg. ging man unter die Grenze zurück war alles in Ordnung.

MfG
xZise
Fabian
  Mit Zitat antworten Zitat
4. Jan 2009, 16:08
Dieses Thema wurde von "fkerber" von "Open-Source" nach "Freeware" verschoben.
auf Wunsch des Autors verschoben
omata

 
Delphi 7 Enterprise
 
#9
  Alt 4. Jan 2009, 16:11
Vielen Dank für diese Kommentare. Ich werde meinen Quellcode ab jetzt für mich behalten.
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

 
Delphi 2009 Professional
 
#10
  Alt 4. Jan 2009, 17:47
Haben wir dich verärgert oder woher kommt der Sinneswandel?

MfG
xZise
Fabian
  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 05:22 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