Dann ist deine Signatur aber sehr selbstironischMathias hat geschrieben:Diese Problem habe ich auch, bei roten und grünen Linien muss ich zum Teil 2x gucken.Rot-Grün Sehschwäche)
LazPlan v0.7 (Beta) - Schaltplansoftware
-
- Beiträge: 351
- Registriert: Mi 25. Nov 2015, 17:06
- OS, Lazarus, FPC: Win 10 Pro | Lazarus 1.8.2 | FPC 3.0.4
- CPU-Target: i386 + x86_64
- Wohnort: in der Nähe von Stuttgart
- Kontaktdaten:
Re: LazPlan v0.0.1.1 - Schaltplansoftware
Code: Alles auswählen
InitiateSystemShutdownExA(nil, nil, 0, true, false, $0005000F);
-
- Beiträge: 6194
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: LazPlan v0.0.1.1 - Schaltplansoftware
Dann ist deine Signatur aber sehr selbstironisch
Wen die Augen müde sind, ist der Effekt extremem. Oder auf Papier, wen das Licht schwach ist.
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 351
- Registriert: Mi 25. Nov 2015, 17:06
- OS, Lazarus, FPC: Win 10 Pro | Lazarus 1.8.2 | FPC 3.0.4
- CPU-Target: i386 + x86_64
- Wohnort: in der Nähe von Stuttgart
- Kontaktdaten:
Re: LazPlan v0.0.1.1 - Schaltplansoftware
Code: Alles auswählen
{ TCustomSchaltsymbol }
TCustomSchaltsymbol = class(TImage)
private
FImgPath: String;
FSearchPath: String;
FFileExt: String;
procedure SetImgPath(s: String);
public
DockingPoints: array[0..15] of TPoint;
ACanvas: TCanvas;
constructor Create(AOwner: TComponent; SearchPath, FileExt: String);
destructor Destroy; override;
property ImgPath: String read FImgPath write SetImgPath;
end;
{ TSchaltsymbol }
TSchaltsymbol = class(TCustomSchaltsymbol)
published
property ImgPath;
end;
Die Leitungen werden von Pin zu Pin "gezogen". D.h. ich speicher nur das Start- und Zielschaltsymbol und dessen Anschlusspin (TCustomSchaltsymbol.DockingPoints[<Pin>]). Die Leitungen sind dann in einem dynamischen Array gespeichert und ich zeichne Sie von Pin zu Pin bei der OnPaint-Routine
Code: Alles auswählen
{ TLine }
TLine = record
FromObj, ToObj: TSchaltsymbol;
FromPin, ToPin: Integer;
end;
{ TLines }
TLines = array of TLine;
Code: Alles auswählen
InitiateSystemShutdownExA(nil, nil, 0, true, false, $0005000F);
-
- Beiträge: 351
- Registriert: Mi 25. Nov 2015, 17:06
- OS, Lazarus, FPC: Win 10 Pro | Lazarus 1.8.2 | FPC 3.0.4
- CPU-Target: i386 + x86_64
- Wohnort: in der Nähe von Stuttgart
- Kontaktdaten:
Re: LazPlan v0.0.1.1 - Schaltplansoftware
Beispiel für eine Schaltplandatei
Code: Alles auswählen
[Diode0]
type=image
content=Dioden/Diode N
X=176
Y=16
[Diode1]
type=image
content=Dioden/Diode N
X=232
Y=104
[Leitung]
type=wire
fromobj=Diode0
frompin=1
toobj=Diode1
topin=0
Die Position der Pins auf dem Schaltsymbol werden in der entsprechenden Komponentendatei definiert (Hier "./Components/objects/Dioden/Diode N.cfg")
Code: Alles auswählen
[0]
x=15
y=0
[1]
x=15
y=31
Noch kleiner Hinweis nebenbei: Die Drehung der Schaltsymbole kommt, sobald ich hiermit fertig bin. Denn dann müssen ja auch die Pins mit gedreht werden, deswegen macht es jetzt noch kein Sinn das einzubauen.
Code: Alles auswählen
InitiateSystemShutdownExA(nil, nil, 0, true, false, $0005000F);
-
- Beiträge: 153
- Registriert: Sa 30. Jan 2010, 18:17
- OS, Lazarus, FPC: Windows 10 64Bit/ lazarus 3.0 mit FPC 3.2.2 (32Bit + 64bit)
- CPU-Target: 64Bit
- Wohnort: Berlin
Re: LazPlan v0.0.1.1 - Schaltplansoftware
Ich würde das Dynamisch implementieren:
Code: Alles auswählen
DockingPoints: array of TPoint;
// Array um ein Element vergrößern
SetLength(DockingPoints, length(DockingPoints) + 1);
// Durch die Elemente iterieren
for i:=0 to length(DockingPoints)-1 do
MacheWas(DockingPoints[i]);
-
- Beiträge: 351
- Registriert: Mi 25. Nov 2015, 17:06
- OS, Lazarus, FPC: Win 10 Pro | Lazarus 1.8.2 | FPC 3.0.4
- CPU-Target: i386 + x86_64
- Wohnort: in der Nähe von Stuttgart
- Kontaktdaten:
Re: LazPlan v0.0.1.1 - Schaltplansoftware
So ist es auch angedacht. Ich hab grade nur während der Testphase die Anzahl auf 16 begrenzt, damit ich mich in dem Moment nicht um die Größe kümmern muss. Wenn die Version rauskommt, wird es ein dynamisches Array seinThandor hat geschrieben:Verstehe ich das Richtig? Du hast pro Bauelement nur 16 Anschlussmöglichkeiten? Was machst du wenn du ein IC mit 32 Beinen hast oder einen yControler darstellen möchtest? Oder noch schlimmer eine reguläre CPU, die durch aus an die 100 Pins haben kann?
Ich würde das Dynamisch implementieren:Code: Alles auswählen
DockingPoints: array of TPoint;
// Array um ein Element vergrößern
SetLength(DockingPoints, length(DockingPoints) + 1);
// Durch die Elemente iterieren
for i:=0 to length(DockingPoints)-1 do
MacheWas(DockingPoints[i]);
Code: Alles auswählen
InitiateSystemShutdownExA(nil, nil, 0, true, false, $0005000F);
-
- Beiträge: 153
- Registriert: Sa 30. Jan 2010, 18:17
- OS, Lazarus, FPC: Windows 10 64Bit/ lazarus 3.0 mit FPC 3.2.2 (32Bit + 64bit)
- CPU-Target: 64Bit
- Wohnort: Berlin
Re: LazPlan v0.0.1.1 - Schaltplansoftware
-
- Beiträge: 351
- Registriert: Mi 25. Nov 2015, 17:06
- OS, Lazarus, FPC: Win 10 Pro | Lazarus 1.8.2 | FPC 3.0.4
- CPU-Target: i386 + x86_64
- Wohnort: in der Nähe von Stuttgart
- Kontaktdaten:
Re: LazPlan v0.0.2.0 - Schaltplansoftware
Code: Alles auswählen
v0.0.2.0 27.07.2017
- Bugfixes
- Anwendung beendet sich nicht mehr, wenn man in ungespeichertem Zustand schließt, auf "Ja" klickt und im Speicherdialog auf "Abbrechen" klickt
- Zeilenumbrüche im Hilfedialog unter "Hilfe" -> "Bedienung" an das System angepasst (LineEnding statt #13#10)
- Schaltsymbole sind nun Objekte der Klasse "TSchaltsymbol" (geerbt von "TCustomSchaltsymbol" (geerbt von "TImage")) statt TImage
- Fehlermeldungen werden nun über eine Fehlerausgabe-Routine ausgegeben und sind nummeriert
- Leitungen sind nun Linien und keine Schaltsymbole mehr
- Application.Title zeigt nun auch den aktuellen Dateinamen an
- Die drei zuletzt verwendeten Schaltplandateien werden jetzt im Menü angezeigt
- Dankessatz an "lazarusforum.de" im About-Dialog eingebaut
- Thumbnail von "Leitung Horizontal" und "Leitung Vertikal" auf ein rotes Verbotszeichen geändert, da man diese Schaltsymbole zukünftig nicht mehr verwenden soll
@Thandor: Ja, ist jetzt (wie geplant) ein dynamisches Array
@siro: Besteht das Problem mit den Thumbnails bei dir immer noch?
Code: Alles auswählen
InitiateSystemShutdownExA(nil, nil, 0, true, false, $0005000F);
-
- Beiträge: 6194
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: LazPlan v0.0.2.0 - Schaltplansoftware
Code: Alles auswählen
Projekt kompilieren, Modus: Release, Ziel: /home/tux/Schreibtisch/Schaltplan/source/bin/LazPlan: Exit code 256, Fehler: 1
errors.pas(8,20) Fatal: Circular unit reference between errors and sysutils
Ist dies nur bei mir so ?
PS: Unter Wine geht es.
PSS: Auch die Windows Version hat einen Fehler.
Am Anfang kommt die Diode, dies die wäre noch gut. Wähle ich anliessend nochmals Diode, dann verdoppelt sich die Grösse der TListView.
Die obere Hälfte ist dabei total leer und bei der untern Hälfte kommt nur noch die Beschriftung.
Ich denke der Fehler liegt irgendwo dort:
Code: Alles auswählen
li := LV_Objects.Items.Add;
li.Caption := ExtractFileNameOnly(sl[i]);
li.ImageIndex := i;
li := nil;
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 351
- Registriert: Mi 25. Nov 2015, 17:06
- OS, Lazarus, FPC: Win 10 Pro | Lazarus 1.8.2 | FPC 3.0.4
- CPU-Target: i386 + x86_64
- Wohnort: in der Nähe von Stuttgart
- Kontaktdaten:
Re: LazPlan v0.0.2.0 - Schaltplansoftware
Scheint ein Problem unter Linux zu sein. Ich hab "uses sysutils" in "error.pas" in den implementation-Teil gerückt. Jetzt sollte es funktionieren.Mathias hat geschrieben:Die aktuelle Version lässt sich nicht mehr kompilieren.Code: Alles auswählen
Projekt kompilieren, Modus: Release, Ziel: /home/tux/Schreibtisch/Schaltplan/source/bin/LazPlan: Exit code 256, Fehler: 1
errors.pas(8,20) Fatal: Circular unit reference between errors and sysutils
Ist dies nur bei mir so ?
Also bei mir unter Win10 und Win7 geht alles, scheint evtl. an Wine zu liegen.Mathias hat geschrieben:PS: Unter Wine geht es.
PSS: Auch die Windows Version hat einen Fehler.
Am Anfang kommt die Diode, dies die wäre noch gut. Wähle ich anliessend nochmals Diode, dann verdoppelt sich die Grösse der TListView.
Die obere Hälfte ist dabei total leer und bei der untern Hälfte kommt nur noch die Beschriftung.
Ich denke der Fehler liegt irgendwo dort:Code: Alles auswählen
li := LV_Objects.Items.Add;
li.Caption := ExtractFileNameOnly(sl[i]);
li.ImageIndex := i;
li := nil;
Code: Alles auswählen
InitiateSystemShutdownExA(nil, nil, 0, true, false, $0005000F);
-
- Beiträge: 732
- Registriert: Di 23. Aug 2016, 14:25
- OS, Lazarus, FPC: Windows 11
- CPU-Target: 64Bit
- Wohnort: Berlin
Re: LazPlan v0.0.2.1 - Schaltplansoftware
ich hab grad die aktuelle Version propiert.
Ein sehr merkwürdiges Phänomen:
Wenn ich die Zip Datei entpacke und die .exe starte erscheinen meine Symbole auch ALLE richtig.
Wenn ich das Projekt selbst compiliere, was problemlos läuft, und dann die .exe starte, egal ob aus der IDE oder direkt aus dem Windows Explorer,
dann gehen die Symbole nicht mehr. Also passiert das erst durch die Neucompilierung warum auch immer....
Ansonsten gefällt mir die Darstellung der Verknüpfungspunkte an den Bauteilen sehr gut.
VIEL besser mit den Leitungen jetzt, als mit den Bitmaps.
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...
-
- Beiträge: 351
- Registriert: Mi 25. Nov 2015, 17:06
- OS, Lazarus, FPC: Win 10 Pro | Lazarus 1.8.2 | FPC 3.0.4
- CPU-Target: i386 + x86_64
- Wohnort: in der Nähe von Stuttgart
- Kontaktdaten:
Re: LazPlan v0.0.2.1 - Schaltplansoftware
Das ist wirklich extrem merkwürdigsiro hat geschrieben:Ein sehr merkwürdiges Phänomen:
Wenn ich die Zip Datei entpacke und die .exe starte erscheinen meine Symbole auch ALLE richtig.
Wenn ich das Projekt selbst compiliere, was problemlos läuft, und dann die .exe starte, egal ob aus der IDE oder direkt aus dem Windows Explorer,
dann gehen die Symbole nicht mehr. Also passiert das erst durch die Neucompilierung warum auch immer....
Ich habs grade auch mal als 64-Bit-Version kompiliert (was du glaube ich auch machst), aber es hat auch einwandfrei funktioniert.
Code: Alles auswählen
InitiateSystemShutdownExA(nil, nil, 0, true, false, $0005000F);
-
- Beiträge: 6194
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: LazPlan v0.0.2.0 - Schaltplansoftware
compmgmt hat geschrieben:Scheint ein Problem unter Linux zu sein. Ich hab "uses sysutils" in "error.pas" in den implementation-Teil gerückt. Jetzt sollte es funktionieren.Mathias hat geschrieben:Die aktuelle Version lässt sich nicht mehr kompilieren.Code: Alles auswählen
Projekt kompilieren, Modus: Release, Ziel: /home/tux/Schreibtisch/Schaltplan/source/bin/LazPlan: Exit code 256, Fehler: 1
errors.pas(8,20) Fatal: Circular unit reference between errors and sysutils
Ist dies nur bei mir so ?
Ich habe die Ursache gefunden, eine Unit "errors" gibt es im Basis-Paket von Lazarus schon.
Ein Ausschnitt aus der Unit "sysutils"
Code: Alles auswählen
uses
{$IFDEF LINUX}linux,{$ENDIF}
{$IFDEF FreeBSD}freebsd,{$ENDIF}
Unix,errors,sysconst,Unixtype;
Am besten gibst du deiner Unit einen anderen Namen und das Problem ist weg. Der Vorschlag von dir würde auch Funktionieren, aber dies könnte zu Problemen führen.
Also bei mir unter Win10 und Win7 geht alles, scheint evtl. an Wine zu liegen.
Es funktioniert wohl, aber ich denke das doch etwas kleines unsauber ist. Ausser Wine hat einen Bug.
PS: Ich habe es noch mit WinXP und Win10 in der VB getestet, auch dort gibt es bei mir Probleme.
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 351
- Registriert: Mi 25. Nov 2015, 17:06
- OS, Lazarus, FPC: Win 10 Pro | Lazarus 1.8.2 | FPC 3.0.4
- CPU-Target: i386 + x86_64
- Wohnort: in der Nähe von Stuttgart
- Kontaktdaten:
Re: LazPlan v0.0.2.0 - Schaltplansoftware
So was hab ich heute Mittag auch schon vermutet gehabt. Ich wusste nicht, dass es die schon gibt, weil es unter Windows keine Probleme gab. Ist jetzt geändert (Version 0.0.2.2).Mathias hat geschrieben:compmgmt hat geschrieben:Scheint ein Problem unter Linux zu sein. Ich hab "uses sysutils" in "error.pas" in den implementation-Teil gerückt. Jetzt sollte es funktionieren.Mathias hat geschrieben:Die aktuelle Version lässt sich nicht mehr kompilieren.Code: Alles auswählen
Projekt kompilieren, Modus: Release, Ziel: /home/tux/Schreibtisch/Schaltplan/source/bin/LazPlan: Exit code 256, Fehler: 1
errors.pas(8,20) Fatal: Circular unit reference between errors and sysutils
Ist dies nur bei mir so ?
Ich habe die Ursache gefunden, eine Unit "errors" gibt es im Basis-Paket von Lazarus schon.
Ein Ausschnitt aus der Unit "sysutils"Code: Alles auswählen
uses
{$IFDEF LINUX}linux,{$ENDIF}
{$IFDEF FreeBSD}freebsd,{$ENDIF}
Unix,errors,sysconst,Unixtype;
Am besten gibst du deiner Unit einen anderen Namen und das Problem ist weg. Der Vorschlag von dir würde auch Funktionieren, aber dies könnte zu Problemen führen.
Ich hab es jetzt unter Win XP, 7 und 10 getestet und alles hat perfekt funktioniert. Was genau ist denn der Fehler? Kommen irgendwelche Fehlermeldungen? Kannst du evtl ein paar Screenshots senden? Mein Problem ist eben, dass ich den Fehler nicht reproduzieren kannMathias hat geschrieben:Also bei mir unter Win10 und Win7 geht alles, scheint evtl. an Wine zu liegen.
Es funktioniert wohl, aber ich denke das doch etwas kleines unsauber ist. Ausser Wine hat einen Bug.
PS: Ich habe es noch mit WinXP und Win10 in der VB getestet, auch dort gibt es bei mir Probleme.
Code: Alles auswählen
InitiateSystemShutdownExA(nil, nil, 0, true, false, $0005000F);
-
- Beiträge: 6194
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: LazPlan v0.0.2.2 - Schaltplansoftware
So was hab ich heute Mittag auch schon vermutet gehabt. Ich wusste nicht, dass es die schon gibt, weil es unter Windows keine Probleme gab.
Unter Windows gibt es diese Unit nicht.
Bei starten kommt es richtig wie im zweiten Bild.Was genau ist denn der Fehler? Kommen irgendwelche Fehlermeldungen? Kannst du evtl ein paar Screenshots senden? Mein Problem ist eben, dass ich den Fehler nicht reproduzieren kann
Wähle ich anschliessend in der ComboBox nochmals Transformator, kommt es wie im ersten Bild.
Das selbe, wen ich eine andere Bauteilgruppe wähle.
Klicke ich dann auf "Schatsymbol erstellen", erscheint im Panel rechts aber das Symbol.
- Dateianhänge
-
- Bildschirmfoto vom 2017-07-28 20-29-01.png (9.16 KiB) 2949 mal betrachtet
-
- Bildschirmfoto vom 2017-07-28 20-28-50.png (3.36 KiB) 2949 mal betrachtet
Mit Java und C/C++ sehe ich rot