LazPlan v0.7 (Beta) - Schaltplansoftware
-
- Beiträge: 758
- Registriert: Di 23. Aug 2016, 14:25
- OS, Lazarus, FPC: Windows 11
- CPU-Target: 64Bit
- Wohnort: Berlin
Re: LazPlan v0.0.2.2 - Schaltplansoftware
Das scheint bei Mathias genauso zu sein wie bei mir.
@Mathias: versuch doch mal die originale .exe aus dem Zip Archiv zu starten, dann läuft es bei mir nämlich.
Hab ich selbst compiliert geht es nicht mehr richtig.
@Mathias: versuch doch mal die originale .exe aus dem Zip Archiv zu starten, dann läuft es bei mir nämlich.
Hab ich selbst compiliert geht es nicht mehr richtig.
Grüße von Siro
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...
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.2 - Schaltplansoftware
@Mathias: Sehr sehr merkwürdig, da beim Laden des Programms, als auch beim Ändern der Kategorie, der selbe EventHandler aufgerufen werden. Kannst du mal bei dir mit dem Debugger durch "CB_CategoriesChange" gehen (natürlich die Compilereinstellungen erst auf "Default" oder "Debug" stellen) und mal schauen was an dieser Stelle nach ein paar Durchgängen für "i" drin steht:
edit: Also "i" sollte eigentlich für jedes Objekt in der Liste eins hochzählen.
Code: Alles auswählen
...
li := LV_Objects.Items.Add;
li.Caption := ExtractFileNameOnly(sl[i]);
li.ImageIndex := i; // Hier prüfen
li := nil;
...
Zuletzt geändert von compmgmt am Fr 28. Jul 2017, 21:09, insgesamt 1-mal geändert.
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.2.2 - Schaltplansoftware
Aber das ist ja nicht die Idee dahinter. Das heißt entweder ihr oder ich haben unterschiedliche Compilereinstellungen. Ich vermute mal, dass es daran liegen könnte, dass ich noch Lazarus Version 1.6.0 und FPC 3.0.0 nutze und ihr vermutlich neueresiro hat geschrieben:Hab ich selbst compiliert geht es nicht mehr richtig.

edit: Ich installiere mir jetzt mal die 1.6.4 und schau mal was passiert
Code: Alles auswählen
InitiateSystemShutdownExA(nil, nil, 0, true, false, $0005000F);
-
- Beiträge: 758
- Registriert: Di 23. Aug 2016, 14:25
- OS, Lazarus, FPC: Windows 11
- CPU-Target: 64Bit
- Wohnort: Berlin
Re: LazPlan v0.0.2.2 - Schaltplansoftware
Ja, ich habe 1.6.4
Grüße von Siro
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...
-
- Beiträge: 6910
- 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
Ich habe unterdessen auch ein bisschen mit der ListView gepastelt, das Miniprogramm im Anhang hat das gleiche Problem wie dein Programm.
Mann kann auch gut beobachten, wie ListView immer länger wird, je mehr man auf die Buttons klickt.
Unter Linux läuft es fehlerfrei.
Ich denke bald, die ist ein Bug in der ListView bei der Windows-Version.
Mann kann auch gut beobachten, wie ListView immer länger wird, je mehr man auf die Buttons klickt.
Unter Linux läuft es fehlerfrei.
Ich denke bald, die ist ein Bug in der ListView bei der Windows-Version.
- Dateianhänge
-
ListView.tar.gz
- (128.4 KiB) 206-mal heruntergeladen
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 758
- Registriert: Di 23. Aug 2016, 14:25
- OS, Lazarus, FPC: Windows 11
- CPU-Target: 64Bit
- Wohnort: Berlin
Re: LazPlan v0.0.2.2 - Schaltplansoftware
Bei Mathias seinem Beispiel:
habe ich 17 bzw, 13 Einträge und da ändert sich auch nichts, egal wie oft ich die Buttons betätige.
Windows 8.1 Lazarus 1.6.4
habe ich 17 bzw, 13 Einträge und da ändert sich auch nichts, egal wie oft ich die Buttons betätige.
Windows 8.1 Lazarus 1.6.4
Zuletzt geändert von siro am Fr 28. Jul 2017, 21:26, insgesamt 2-mal geändert.
Grüße von Siro
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...
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.2 - Schaltplansoftware
So, hab es ausprobiert. Dein Programm hat sowohl unter 1.6.0, als auch unter 1.6.4 wunderbar funktioniert. LazPlan hat allerdings nur mit der 1.6.0 gut funktioniert, bei der 1.6.4 hatte ich das gleiche Phänomen wie siro. Scheint also tatsächlich ein Bug zu sein oder irgendwas wurde geändert und ich habe es nicht zu 100% sauber implementiert. Aber ich schau mir nochmal den Code von deinem Beispiel Programm an, der wirkt mir nämlich sauberer.Mathias hat geschrieben:Ich habe unterdessen auch ein bisschen mit der ListView gepastelt, das Miniprogramm im Anhang hat das gleiche Problem wie dein Programm.
Mann kann auch gut beobachten, wie ListView immer länger wird, je mehr man auf die Buttons klickt.
Unter Linux läuft es fehlerfrei.
Ich denke bald, die ist ein Bug in der ListView bei der Windows-Version.
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.2.2 - Schaltplansoftware
@Mathias: Aha, hier scheint mein Fehler zu sein. Ich hab kein TImageList.Draw in LazPlan:
Code: Alles auswählen
for i := 0 to ImageList1.Count - 1 do begin
ImageList1.Draw(Canvas, i * 16, 0, i);
end;
Code: Alles auswählen
InitiateSystemShutdownExA(nil, nil, 0, true, false, $0005000F);
-
- Beiträge: 6910
- 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
Ich habe es auch mit der 1.6.4 kompiliert, mit der Linux und Windows-Version.So, hab es ausprobiert. Dein Programm hat sowohl unter 1.6.0, als auch unter 1.6.4 wunderbar funktioniert.
Wie schon geschrieben, der Fehler tritt nur bei der Windows-Version auf, egal ob mit Wine oder VB.
Komisch, das mein Programm bei dir mit der 1.6.4 läuft.

So nebenbei habe ich mein Programm mit der neusten Trunk unter Linux mit den Cross-Compiler eine Windows-Version erzeugt, der gleiche Fehler.
Egal, ob 32 oder 64Bit.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 6910
- 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
Diese Zeilen kannst du ignorieren, das war nur ein Test, ob die ImageList richtig ist.compmgmt hat geschrieben:@Mathias: Aha, hier scheint mein Fehler zu sein. Ich hab kein TImageList.Draw in LazPlan:Code: Alles auswählen
for i := 0 to ImageList1.Count - 1 do begin ImageList1.Draw(Canvas, i * 16, 0, i); end;
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
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.2 - Schaltplansoftware
Jap, hab ich grade eben auch gemerkt, weil es einfach nur auf das Form Canvas zeichnetMathias hat geschrieben:Diese Zeilen kannst du ignorieren, das war nur ein Test, ob die ImageList richtig ist.compmgmt hat geschrieben:@Mathias: Aha, hier scheint mein Fehler zu sein. Ich hab kein TImageList.Draw in LazPlan:Code: Alles auswählen
for i := 0 to ImageList1.Count - 1 do begin ImageList1.Draw(Canvas, i * 16, 0, i); end;

Allerdings ist trotzdem irgendwas bei dir anders als bei mir, dass dein Programm auch bei siro und mir unter 1.6.4 funktioniert.
Code: Alles auswählen
InitiateSystemShutdownExA(nil, nil, 0, true, false, $0005000F);
-
- Beiträge: 6910
- 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
Dies ist merkwürdig. Habt ihr mit Win oder Linux probiert ?Allerdings ist trotzdem irgendwas bei dir anders als bei mir, dass dein Programm auch bei siro und mir unter 1.6.4 funktioniert.
Ich denke ihr habt Windows probiert.
Was noch interessant ist, mit
Code: Alles auswählen
ListView1.ViewStyle := vsList;
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
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.2 - Schaltplansoftware
Ich habs raus. Ich wollte auch den Trick mit "TImageList.Draw" anwenden um zu schauen, ob sie überhaupt in der ImageList sind. Aus irgend einem Grund geht es, wenn man das macht. Ich hab jetzt also der Einfachheit ein Panel mit Left, Top, Width und Height 0 erstellt und auf dessen Canvas wird es gezeichnet.
Ich pack jetzt noch alles in eine Zip und lade es gleich hoch. Das ganze scheint mir also ein Bug zu sein, dass man es erst auf ein Canvas zeichnen muss.
Da ist jetzt die Frage: Ist das seit der neuen Version so gewollt oder ein Bug?
edit: es wird wohl eher kein Bug sein, da es ja erst beim zweiten Mal die Bitmaps nicht anzeigt
Ich pack jetzt noch alles in eine Zip und lade es gleich hoch. Das ganze scheint mir also ein Bug zu sein, dass man es erst auf ein Canvas zeichnen muss.
Da ist jetzt die Frage: Ist das seit der neuen Version so gewollt oder ein Bug?
edit: es wird wohl eher kein Bug sein, da es ja erst beim zweiten Mal die Bitmaps nicht anzeigt
Zuletzt geändert von compmgmt am Fr 28. Jul 2017, 21:59, insgesamt 2-mal geändert.
Code: Alles auswählen
InitiateSystemShutdownExA(nil, nil, 0, true, false, $0005000F);
-
- Beiträge: 6910
- 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
An der Anzahl ändert bei mir auch nichts, es ist immer 13 oder 17.siro hat geschrieben:Bei Mathias seinem Beispiel:
habe ich 17 bzw, 13 Einträge und da ändert sich auch nichts, egal wie oft ich die Buttons betätige.
Windows 8.1 Lazarus 1.6.4
Was ich unterdessen festgestellt habe, natives Windows, egal ob XP oder 10, stellt das ganze anders falsch dar als Wine.
Bei Wine, wird die Ausgabe der ListView immer grösser, das sieht man daran, das der Schieber der Scrollbar immer kleiner wird.
Bei nativen Win, bleibt die LitView immer gleich gross, nur die Iconen verschwinden beim zweiten Durchgang.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
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.2 - Schaltplansoftware
Das wird vermutlich an Wine liegen, da könnte man ja mal die Entwickler von Wine kontaktieren.Mathias hat geschrieben:Was ich unterdessen festgestellt habe, natives Windows, egal ob XP oder 10, stellt das ganze anders falsch dar als Wine.
Bei Wine, wird die Ausgabe der ListView immer grösser, das sieht man daran, das der Schieber der Scrollbar immer kleiner wird.
Jap, das wird wohl der Bug sein. Ich glaube kaum, dass es gewollt ist. Zumal es ja beim ersten mal klappt und erst beim zweiten Durchgang spinnt.Mathias hat geschrieben:Bei nativen Win, bleibt die LitView immer gleich gross, nur die Iconen verschwinden beim zweiten Durchgang.
Code: Alles auswählen
InitiateSystemShutdownExA(nil, nil, 0, true, false, $0005000F);