LazPlan v0.7 (Beta) - Schaltplansoftware

Vorstellungen von Programmen, welche mit Lazarus erstellt wurden.
Antworten
siro
Beiträge: 730
Registriert: Di 23. Aug 2016, 14:25
OS, Lazarus, FPC: Windows 11
CPU-Target: 64Bit
Wohnort: Berlin

Re: LazPlan v0.0.2.2 - Schaltplansoftware

Beitrag von siro »

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.
Grüße von Siro
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...

compmgmt
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

Beitrag von compmgmt »

@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:

Code: Alles auswählen

  ...
  li := LV_Objects.Items.Add;
  li.Caption := ExtractFileNameOnly(sl[i]);
  li.ImageIndex := i; // Hier prüfen
  li := nil;
  ...


edit: Also "i" sollte eigentlich für jedes Objekt in der Liste eins hochzählen.
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);
Have fun with this snippet ;)

compmgmt
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

Beitrag von compmgmt »

siro hat geschrieben:Hab ich selbst compiliert geht es nicht mehr richtig.
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 neuere ;)

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);
Have fun with this snippet ;)

siro
Beiträge: 730
Registriert: Di 23. Aug 2016, 14:25
OS, Lazarus, FPC: Windows 11
CPU-Target: 64Bit
Wohnort: Berlin

Re: LazPlan v0.0.2.2 - Schaltplansoftware

Beitrag von siro »

Ja, ich habe 1.6.4
Grüße von Siro
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...

Mathias
Beiträge: 6160
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

Beitrag von Mathias »

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.
Dateianhänge
ListView.tar.gz
(128.4 KiB) 159-mal heruntergeladen
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

siro
Beiträge: 730
Registriert: Di 23. Aug 2016, 14:25
OS, Lazarus, FPC: Windows 11
CPU-Target: 64Bit
Wohnort: Berlin

Re: LazPlan v0.0.2.2 - Schaltplansoftware

Beitrag von siro »

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
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...

compmgmt
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

Beitrag von compmgmt »

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.
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.

Code: Alles auswählen

InitiateSystemShutdownExA(nil, nil, 0, true, false, $0005000F);
Have fun with this snippet ;)

compmgmt
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

Beitrag von compmgmt »

@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);
Have fun with this snippet ;)

Mathias
Beiträge: 6160
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

Beitrag von Mathias »

So, hab es ausprobiert. Dein Programm hat sowohl unter 1.6.0, als auch unter 1.6.4 wunderbar funktioniert.

Ich habe es auch mit der 1.6.4 kompiliert, mit der Linux und Windows-Version.
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. :roll:

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

Mathias
Beiträge: 6160
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

Beitrag von Mathias »

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;

Diese Zeilen kannst du ignorieren, das war nur ein Test, ob die ImageList richtig ist.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

compmgmt
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

Beitrag von compmgmt »

Mathias hat geschrieben:
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;

Diese Zeilen kannst du ignorieren, das war nur ein Test, ob die ImageList richtig ist.
Jap, hab ich grade eben auch gemerkt, weil es einfach nur auf das Form Canvas zeichnet :lol:
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);
Have fun with this snippet ;)

Mathias
Beiträge: 6160
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

Beitrag von Mathias »

Allerdings ist trotzdem irgendwas bei dir anders als bei mir, dass dein Programm auch bei siro und mir unter 1.6.4 funktioniert.

Dies ist merkwürdig. Habt ihr mit Win oder Linux probiert ?
Ich denke ihr habt Windows probiert.

Was noch interessant ist, mit

Code: Alles auswählen

  ListView1.ViewStyle := vsList;

funktioniert es fehlerfrei, aber es werden wie erwartet keine Iconen gezeichnet.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

compmgmt
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

Beitrag von compmgmt »

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
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);
Have fun with this snippet ;)

Mathias
Beiträge: 6160
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

Beitrag von Mathias »

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

An der Anzahl ändert bei mir auch nichts, es ist immer 13 oder 17.

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

compmgmt
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

Beitrag von compmgmt »

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.
Das wird vermutlich an Wine liegen, da könnte man ja mal die Entwickler von Wine kontaktieren.

Mathias hat geschrieben:Bei nativen Win, bleibt die LitView immer gleich gross, nur die Iconen verschwinden beim zweiten Durchgang.
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.

Code: Alles auswählen

InitiateSystemShutdownExA(nil, nil, 0, true, false, $0005000F);
Have fun with this snippet ;)

Antworten