AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Bibliothek zur komplexen Schaltungsberechnung

Bibliothek zur komplexen Schaltungsberechnung

Ein Thema von Dust Signs · begonnen am 20. Aug 2005 · letzter Beitrag vom 21. Aug 2005
Antwort Antwort
Seite 1 von 2  1 2   
Dust Signs
Registriert seit: 28. Dez 2004
Hi!

Für alle, die komplexe Schaltungsberechnung mit Widerständen, Kondensatoren und Spulen in Delphi suchen: meine Bibliothek berechnet diese Schaltungen und bietet einige Zusatzfunktionen wie z.B. die Berechnung von Resonanzfrequenzen.
All jene, die den Quelltext sehen möchten ohne Delphi öffnen zu wollen seien auf das Corssposting im DF verwiesen. Alle anderen seien dazu aufgefordert, den Anhang herunterzuladen .

Lizenz: Open Source; solange mein Name im Header bleibt (als ursprünglicher Autor o.ä.) kann der Code modifiziert werden. Wird der Code in einem Programm verwendet bitte in der About-Box und der Readme (falls es eine gibt) einen entsprechenden Hinweis. Verwendung in Shareware oder anderen kommerziellen Projekten ist nicht gestattet.

Der Code ist noch etwas Beta, da nicht alles getestet ist. Freue mich über Anregungen aller Art

Dust Signs

PS. Beispielcode ist im Anhang nicht dabei!
Angehängte Dateien
Dateityp: zip circuit_890.zip (3,8 KB, 34x aufgerufen)
(aka AXMD in der EE)
Die Nummer, die Sie gewählt haben, ist imaginär. Bitte drehen Sie Ihr Telefon um 90° und versuchen Sie es erneut.
 
omata

 
Delphi 7 Enterprise
 
#2
  Alt 20. Aug 2005, 17:56
Moin,

wirklich sehr gut (Idee, Ausführung & Programmierstil).

Aber trotzdem habe ich eine kleine Frage.
Wieso muss GlobalCircularFrequency im Interface-Teil als globale Variable angelegt werden?
Das kann doch auch mit in die Klasse TCustomCircuitElement.

Oder sehe ich da jetzt was falsch.

MfG
Thorsten
  Mit Zitat antworten Zitat
Dust Signs
 
#3
  Alt 20. Aug 2005, 18:01
Eher noch in TCircuitElementGroup... darüber könnte man nachdenken. Die Idee dahinter war folgende: meist berechnest du eine einzige Schaltung - und da ändert sich die Frequenz nicht

Dust Signs

//EDIT: ich meine z.B., dass der erste Kondensator in der Schaltung einen Wechselstrom mit gleicher Frequenz abbekommt wie der zweite
  Mit Zitat antworten Zitat
omata

 
Delphi 7 Enterprise
 
#4
  Alt 20. Aug 2005, 18:10
Ja, das war mir schon klar.

Nur was ich nicht verstehe ist, warum du deine wunderbare OOP-Struktur mit einer globalen Variable zerschiessen musst?

Und mir ist noch etwas aufgefallen...
Die Elemente mussen doch alle einen Wert bekommen. Überschreibe doch den Konstruktor deiner Elemente mit einem eigenen, der dann auch gleich den Wert des Bauteils initalisiert.

Dann ist das Einrichten eines neuen Elementes einfacher.

aus
Delphi-Quellcode:
  r := TResistor.Create;
  r.ElementValue := 2200;
  g.AddElement(r);
wird dann
  g.AddElement(TResistor.Create(2200)); Über ElementValue kann man immer noch den Wert verändern.
Zur Zeit ist FElementValue nämlich nicht initalisiert. (wenn man ElementValue vergisst)
Dieses Vergessen geht über einen eigenen Konstruktor nicht!

MfG
Thorsten
  Mit Zitat antworten Zitat
Dust Signs
 
#5
  Alt 20. Aug 2005, 18:14
Das wäre zwar schön, hätte aber einen entscheidenen Nachteil: ich könnte TCircuitElementGroup nicht mehr von TCustomCircuitElement ableiten, was aber für die Verschachtelung notwendig ist... oder welchen Bauteilwert hat deiner Meinung nach eine solche Gruppe

//EDIT: hab eine Lösung. Sehr elegant, dein Vorschlag - vielen Dank . Dauert noch ein bisschen bis ich den ersten Beitrag update - mom.

Dust Signs
  Mit Zitat antworten Zitat
omata

 
Delphi 7 Enterprise
 
#6
  Alt 20. Aug 2005, 18:22
Ok, du hast es selber gemerkt.

Musste das auch gerade mal testen. Du bist wahrscheinlich auf die selbe Idee gekommen (zwei ein Gedanke)

Bin gespannt auf deine Erweiterungen...

MfG
Thorsten
  Mit Zitat antworten Zitat
Dust Signs
 
#7
  Alt 20. Aug 2005, 18:25
Mögliche Erweiterungen: Stern- und Dreiecksschaltungen. Eventuell Funktionen, um direkt von einem Bauteil oder einer Bauteilgruppe den Strom/die Spannung bei jeweils gegebener anderer Größe direkt zu berechnen. Sonst noch Vorschläge?

Dust Signs

PS.: Update complete
  Mit Zitat antworten Zitat
omata

 
Delphi 7 Enterprise
 
#8
  Alt 20. Aug 2005, 18:49
Sorry, muss aber noch mal nerven!

in deinem Beispielcode, den du in dem anderen Forum (leider nicht hier) gepostet hast, wird deine TCircuitElementGroup (g) nicht wieder freigegeben.

Ist das dein erwähntes Speicherleck?

MfG
Thorsten
  Mit Zitat antworten Zitat
Dust Signs
 
#9
  Alt 20. Aug 2005, 18:54
g wird doch automatisch freigegeben Siehe circcalc.pas, Zeile 103f

Delphi-Quellcode:
  for i := Low(FElements) to High(FElements) do //Free all elements
    FElements[i].Free;
Dust Signs
  Mit Zitat antworten Zitat
omata

 
Delphi 7 Enterprise
 
#10
  Alt 20. Aug 2005, 19:02
Ja, die Inhalte (Elemente) von g werden freigegeben. Und was ist mit g selbst?

MfG
Thorsten
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 10:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf