Anfängerproblem
Anfängerproblem
Hi,
beginne gerade mit LAZARUS meine erstrn Schritte zu machen.
Hallo World um DOS Fenster klappt schon.
Nun habe ich mir die WINGRAPH Library heuntergeladen und spiele mit den Beispielen.
Dbei ist der Quellcode und das .EXE File.
Das EXE File läuft einwandfrei, wenn ich den Quellcode erfolgreich kompiliere, erscheint nur ein kleines, leeres Fenste
und nicht die Animation!
Was habe ich da verbockt?
Danke im voraus für eure Mühe!
Rudi
beginne gerade mit LAZARUS meine erstrn Schritte zu machen.
Hallo World um DOS Fenster klappt schon.
Nun habe ich mir die WINGRAPH Library heuntergeladen und spiele mit den Beispielen.
Dbei ist der Quellcode und das .EXE File.
Das EXE File läuft einwandfrei, wenn ich den Quellcode erfolgreich kompiliere, erscheint nur ein kleines, leeres Fenste
und nicht die Animation!
Was habe ich da verbockt?
Danke im voraus für eure Mühe!
Rudi
-
- Beiträge: 131
- Registriert: So 20. Jul 2014, 10:27
- OS, Lazarus, FPC: kubuntu, raspbian, laz 1.2 / 0.9 microcontroller
- CPU-Target: 8-64 bit
- Wohnort: bodensee
- Kontaktdaten:
Re: Anfängerproblem
starte lazarus IDE, projekt->neu-Anwendung (oder appication) dann kriegst ein fenster, compiliere es (F9) und es sollte laufen
Re: Anfängerproblem
Hi,
erstmal danke für die schnelle Antwort!
Leider immer noch ein Problem:
Habe ein neues Projekt angefangen und in das gezeigte Pascal Fenster den Quellcode aud den Beispielen von Wingraph
kopiert
// Program used to generate the picture 'colors.gif'
{$APPTYPE GUI}
program colors;
uses wingraph,wincrt,winmouse,sysutils;
...restlicher Programmcode
F9
folgende Fehlermeldung:
PPU invalid version 100
Ich verwende Lazarus IDE v1.2.6-demo
Was läuft da schief?
Rudi
erstmal danke für die schnelle Antwort!
Leider immer noch ein Problem:
Habe ein neues Projekt angefangen und in das gezeigte Pascal Fenster den Quellcode aud den Beispielen von Wingraph
kopiert
// Program used to generate the picture 'colors.gif'
{$APPTYPE GUI}
program colors;
uses wingraph,wincrt,winmouse,sysutils;
...restlicher Programmcode
F9
folgende Fehlermeldung:
PPU invalid version 100
Ich verwende Lazarus IDE v1.2.6-demo
Was läuft da schief?
Rudi
-
- Beiträge: 131
- Registriert: So 20. Jul 2014, 10:27
- OS, Lazarus, FPC: kubuntu, raspbian, laz 1.2 / 0.9 microcontroller
- CPU-Target: 8-64 bit
- Wohnort: bodensee
- Kontaktdaten:
Re: Anfängerproblem
hi rudi,
ich galube wir reden nicht vom selben.
installier doch einfach auf deinem system (ich weiss nicht ob dos, win, mac, linux, android, raspberry,....) die software lazarus
unter win am einfachsten, setup, weiter, weiter weiter fertigstellen.
unter linux: sudo apt get update, dann install fpc, dann install fpc-sources, dann install lazarus
danach solltest du eine grafische IDE vorfinden die du startest und wie oben erstmal weiter machst, wenn das mal geht, also du ein prog erstellen kannst was fast noch nix kann, dann geht der rest schnell
sorry, ich weiss nicht wie weit du bis, wie dein betriebssystem heisst, wie gerade dein bidschirm aussieht, sorry.... naechste antwort nur wenns konkreter wird
gruss
w
ich galube wir reden nicht vom selben.
installier doch einfach auf deinem system (ich weiss nicht ob dos, win, mac, linux, android, raspberry,....) die software lazarus
unter win am einfachsten, setup, weiter, weiter weiter fertigstellen.
unter linux: sudo apt get update, dann install fpc, dann install fpc-sources, dann install lazarus
danach solltest du eine grafische IDE vorfinden die du startest und wie oben erstmal weiter machst, wenn das mal geht, also du ein prog erstellen kannst was fast noch nix kann, dann geht der rest schnell
sorry, ich weiss nicht wie weit du bis, wie dein betriebssystem heisst, wie gerade dein bidschirm aussieht, sorry.... naechste antwort nur wenns konkreter wird
gruss
w
Re: Anfängerproblem
Ich kenn jetzt die Unit WinGraph nicht. Wenn ich aber eine Suchmaschine bemühe, macht sie mir allerdings nicht den Eindruck, dass sie noch ein "must have" darstellt (für grafische Aufgaben unter Lazarus wird sie jedenfalls - zumindest von mir - nicht benötigt). Ich würde vermutlich bei einem Selbststudium den Einstieg über ein Delphi-Tutorial oder dem Lazarus-Wiki versuchen z.B. http://wiki.freepascal.org/Form_Tutorial/de
Code: Alles auswählen
type
TLiveSelection = (lsMoney, lsChilds, lsTime);
TLive = Array[0..1] of TLiveSelection;
Re: Anfängerproblem
Mit wingraph habe ich vor kurzem experimentiert, ich kann mich nicht an Probleme erinnern (bis auf das Gefühl, wieder in den 80er Jahren zu sein...)
Die genannte Fehlermeldung lässt vermuten, dass da veraltete Units herumliegen. Lösche einfach mal das Ausgabeverzeichnis: wenn du nichts geändert hast, landen die compilierten Units in lib/i386-win32, der sich in deinem Projektordner befindet. Oder öffne "Projekt" / "Projekteinstellungen" / "Compilereinstellungen" / "Pfade"; lösche den Ordner, der unter "Unit-Ausgabeverzeichnis" angegeben ist. Prüfe, ob in deinem Quelltext-Ordner ppu-Dateien herumliegen --> löschen. Bei den Pfaden muss im Feld "Andere Units" der relative Pfad zum Verzeichnis "src" der WinGraph-Bibliothek eingetragen sein (von der Projekt-Datei aus gesehen).
Kannst du das demo-Projekt (wingraph\demo\demo.lpi) compilieren?
Die genannte Fehlermeldung lässt vermuten, dass da veraltete Units herumliegen. Lösche einfach mal das Ausgabeverzeichnis: wenn du nichts geändert hast, landen die compilierten Units in lib/i386-win32, der sich in deinem Projektordner befindet. Oder öffne "Projekt" / "Projekteinstellungen" / "Compilereinstellungen" / "Pfade"; lösche den Ordner, der unter "Unit-Ausgabeverzeichnis" angegeben ist. Prüfe, ob in deinem Quelltext-Ordner ppu-Dateien herumliegen --> löschen. Bei den Pfaden muss im Feld "Andere Units" der relative Pfad zum Verzeichnis "src" der WinGraph-Bibliothek eingetragen sein (von der Projekt-Datei aus gesehen).
Kannst du das demo-Projekt (wingraph\demo\demo.lpi) compilieren?
-
- Beiträge: 8
- Registriert: Fr 27. Mär 2015, 10:34
Re: Anfängerproblem
Hallo,
bin auch neuer Lazarus User wie rudi1943 und in diesen Thread hier einfach nur mal so reingestolpert.
Nun schreibt da der rudi1943:
Warum benutzt der dann also einen Demoversion?
Also bei mir steht da nix von Demoversion.
Grüße
bin auch neuer Lazarus User wie rudi1943 und in diesen Thread hier einfach nur mal so reingestolpert.
Nun schreibt da der rudi1943:
Das verwirrt mich ein wenig. Ich dachte Lazarus sei OpenSource also free?Ich verwende Lazarus IDE v1.2.6-demo
Warum benutzt der dann also einen Demoversion?

Also bei mir steht da nix von Demoversion.
Grüße
Re: Anfängerproblem
@wbeppler
Danke dür deine Antwort,
stimmt-die Installation von Lazarus unter Windows hat geklappt -"Hello World" läuft auch!
@Michl
Danke für deine Antwort, aber ich suche kein Tool für ein Benutzerinterface, sondern ein Tool zur Entwicklung
von interaktiver Prozessdarstellung.(siehe unten)
wp_xyz
Danke für deine ausführliche Hilfestellung. Habe das alles probiert-immer das selbe Ergebnis.
Kann auch die Demo nicht kompilieren. Deine Vermutung mit de veralteten Units dürfte stimmen,
bloß, wo diese zu finden sind, weiß ich leider nicht.
@Ich_bin_dabei
Das -demo kann sich aber auch auf das Projekt beziehen-ich spiele momentan mit den Demodaten
Hier möchte ich meine Aufgabenstellung beschreiben-vieleicht gibt es auch bessere Lösungen als WinGraph
Was ich erstellen möchte, ist ein Programm zur Arbeitsablaufvisualisierung.
Hierzu sollen zur Laufzeit T-Panels erzeugt werden, die vom Benutzer im Fenster verschoben werden können oder per Programm an bestimmten Stellen plaziert werden.
Die Informationen über den Ablauf sollen mittels geometrischer Objekte auf dem jeweiligen T-Panel
dargestellt und zur Laufzeit vom Programm aus verändert werden. T-Panel und die darauf dargestellten
Objekte sind für alle gleich-lediglich die Objekteigenschaften sollen sich ändern(visible,color etc)
Nochmals allen Danke für die Bemühungen!
Rudi
Danke dür deine Antwort,
stimmt-die Installation von Lazarus unter Windows hat geklappt -"Hello World" läuft auch!
@Michl
Danke für deine Antwort, aber ich suche kein Tool für ein Benutzerinterface, sondern ein Tool zur Entwicklung
von interaktiver Prozessdarstellung.(siehe unten)
wp_xyz
Danke für deine ausführliche Hilfestellung. Habe das alles probiert-immer das selbe Ergebnis.
Kann auch die Demo nicht kompilieren. Deine Vermutung mit de veralteten Units dürfte stimmen,
bloß, wo diese zu finden sind, weiß ich leider nicht.
@Ich_bin_dabei
Das -demo kann sich aber auch auf das Projekt beziehen-ich spiele momentan mit den Demodaten
Hier möchte ich meine Aufgabenstellung beschreiben-vieleicht gibt es auch bessere Lösungen als WinGraph
Was ich erstellen möchte, ist ein Programm zur Arbeitsablaufvisualisierung.
Hierzu sollen zur Laufzeit T-Panels erzeugt werden, die vom Benutzer im Fenster verschoben werden können oder per Programm an bestimmten Stellen plaziert werden.
Die Informationen über den Ablauf sollen mittels geometrischer Objekte auf dem jeweiligen T-Panel
dargestellt und zur Laufzeit vom Programm aus verändert werden. T-Panel und die darauf dargestellten
Objekte sind für alle gleich-lediglich die Objekteigenschaften sollen sich ändern(visible,color etc)
Nochmals allen Danke für die Bemühungen!
Rudi
Re: Anfängerproblem
Hallo Rudi,
deine Antwort bestärkt mich in meiner Vermutung, dass du eher ein Package zur Darstellung von Flussdiagrammen/Ablaufdiagrammen (engl. flowchart) suchst, als die Unit WinGraph. Du kannst im Netz ja mal danach suchen, ich hatte das eben mal gemacht und als erstes diese Seite http://forum.lazarus.freepascal.org/ind ... ic=17688.0 gefunden, wo avra ein Import von Delphi vorstellt.
Das habe ich gleich mal probiert, das Ganze sieht dann so aus:

Sicherlich gibt es auch noch andere Packages, wie http://sourceforge.net/projects/evssimplegraph/, die soetwas möglich machen, habe aber jetzt nicht wirklich danach weiter gesucht.
PS: Frei bewegliche TPanels auf einem TPanel gehen problemlos, ohne WinGraph oder externe Packages, zu realisieren!
deine Antwort bestärkt mich in meiner Vermutung, dass du eher ein Package zur Darstellung von Flussdiagrammen/Ablaufdiagrammen (engl. flowchart) suchst, als die Unit WinGraph. Du kannst im Netz ja mal danach suchen, ich hatte das eben mal gemacht und als erstes diese Seite http://forum.lazarus.freepascal.org/ind ... ic=17688.0 gefunden, wo avra ein Import von Delphi vorstellt.
Das habe ich gleich mal probiert, das Ganze sieht dann so aus:

Sicherlich gibt es auch noch andere Packages, wie http://sourceforge.net/projects/evssimplegraph/, die soetwas möglich machen, habe aber jetzt nicht wirklich danach weiter gesucht.
PS: Frei bewegliche TPanels auf einem TPanel gehen problemlos, ohne WinGraph oder externe Packages, zu realisieren!
Code: Alles auswählen
type
TLiveSelection = (lsMoney, lsChilds, lsTime);
TLive = Array[0..1] of TLiveSelection;
Re: Anfängerproblem
versuch mal statt panels TPaintBox zu verwenden, und via canvas zu Zeichnen etwa so
Ich hoffe es wurde klar wie ich es meine, bin Grad am Handy, wenn ich wieder am Pc bin kann ich mal ein besseres Beispiel bringen
Im Tag einfach den Index für die Informationen zum Zeichnen zwischenspeichern
Code: Alles auswählen
DataArr: Array of TData; // Informationen Panelie boxen
BoxArray: Array of TPaintBox;
...
Function CreateNewBox(...): Integer; //schreibt eine neue Box in den Array und gibt den Index zurück
Begin
...
Result:=High(BoxArray);
End;
Procedure BoxPaint(Sender: TObject);
Var Dat:TData
Begin
Dat:=DataArr[TPaintBox(Sender).Tag];
With TPaintBox(Sender).Canvas Do
Begin
// Zeichnen
End;
End;
Im Tag einfach den Index für die Informationen zum Zeichnen zwischenspeichern
Re: Anfängerproblem
@Michl
Danke für das Organigramm-ist leider nicht das, was ich suche.Schaue es mir aber an-vieleicht
sind Teile davon in meine Aufgabe zu integrieren!
Danke!
Rudi
@Warfley
Danke für deine Antwort, das kommt der Sache schon näher!
Kennst Du eine Beispielsammlung oder Beschreibung der Paintbox-habe das bei dir zum ersten mal gelesen:
Über deine Beispiele würde ich mich freuen!
Danke!
Rudi
Danke für das Organigramm-ist leider nicht das, was ich suche.Schaue es mir aber an-vieleicht
sind Teile davon in meine Aufgabe zu integrieren!
Danke!
Rudi
@Warfley
Danke für deine Antwort, das kommt der Sache schon näher!
Kennst Du eine Beispielsammlung oder Beschreibung der Paintbox-habe das bei dir zum ersten mal gelesen:
Über deine Beispiele würde ich mich freuen!
Danke!
Rudi
Re: Anfängerproblem
Ich bin zwar nicht Warfley, doch unter
Werkzeuge -> Beispielprojekte -> pen_brush\project1.lpi
oder
Werkzeuge -> Beispielprojekte -> affinetransforms\project1.lpi
gibt es Beispiele in denen Paintboxen zum Einsatz kommen.
Eigentlich ist deren Verwendung aber recht einfach:
- TPaintbox in der Komponentenpalette "Additional" auswählen und mit einem Klick auf das Formular platzieren
- im Objektinspektor im Reiter Ereignisse von PaintBox1 das Ereignis (Event) "OnPaint" doppelklicken
- im Eventhandler sowas machen:
- noch ein TButton hinzufügen und in dessen OnClick-Eventhandler die PaintBox neu zeichnen lassen:
Ich hoffe, es hilft dir, aber wie gesagt, deine Aufgabenstellung würde ich anders umsetzen.
Werkzeuge -> Beispielprojekte -> pen_brush\project1.lpi
oder
Werkzeuge -> Beispielprojekte -> affinetransforms\project1.lpi
gibt es Beispiele in denen Paintboxen zum Einsatz kommen.
Eigentlich ist deren Verwendung aber recht einfach:
- TPaintbox in der Komponentenpalette "Additional" auswählen und mit einem Klick auf das Formular platzieren
- im Objektinspektor im Reiter Ereignisse von PaintBox1 das Ereignis (Event) "OnPaint" doppelklicken
- im Eventhandler sowas machen:
Code: Alles auswählen
procedure TForm1.PaintBox1Paint(Sender: TObject);
begin
PaintBox1.Canvas.Pen.Color:=Random($100000);
PaintBox1.Canvas.Line(
Random(PaintBox1.Width),
Random(PaintBox1.Height),
Random(PaintBox1.Width),
Random(PaintBox1.Height));
PaintBox1.Canvas.Pen.Color:=Random($100000);
PaintBox1.Canvas.Rectangle(
Random(PaintBox1.Width),
Random(PaintBox1.Height),
Random(PaintBox1.Width),
Random(PaintBox1.Height));
PaintBox1.Canvas.Pen.Color:=Random($100000);
PaintBox1.Canvas.Ellipse(
Random(PaintBox1.Width),
Random(PaintBox1.Height),
Random(PaintBox1.Width),
Random(PaintBox1.Height));
end;
Code: Alles auswählen
procedure TForm1.Button1Click(Sender: TObject);
begin
PaintBox1.Invalidate;
end;
Code: Alles auswählen
type
TLiveSelection = (lsMoney, lsChilds, lsTime);
TLive = Array[0..1] of TLiveSelection;
Re: Anfängerproblem
Die PaintBox ist sozusagen das einfachste Graphische Element, sie kann eigentlich nichts anderes als dir ein Canvas zum zeichnen zu bieten.
Allerdings halte ich persönlich es nicht ganz so für klug dynamisch neue Komponenten zu erzeugen, das kann zu ungewollten Problemen führen, und ist meist auch recht umständlich. Ich würde dir lieber empfehlen, ein Zeichenobjekt zu nutzen, die Daten aller Objekte zu sammeln und diese dann nacheinander runter zu Arbeiten und zu zeichnen.
Hier habe ich dir mal ein Beispiel Projekt hochgeladen was ich mal schnell zusammengeschustert habe, da werden die Zeicheninformationen in einem Record gespeichert, und alle Elemente in einer Liste werden dann einzeln auf das selbe Canvas gezeichnet. Je nachdem wie viele Informationen/wie Komplex deine Datenstrukturen sind würde ich dabei auch eher auf Klassen ausweichen, da du damit wahrscheinlich ein wenig mehr Übersichtlichkeit rein bekommst.
Allerdings halte ich persönlich es nicht ganz so für klug dynamisch neue Komponenten zu erzeugen, das kann zu ungewollten Problemen führen, und ist meist auch recht umständlich. Ich würde dir lieber empfehlen, ein Zeichenobjekt zu nutzen, die Daten aller Objekte zu sammeln und diese dann nacheinander runter zu Arbeiten und zu zeichnen.
Hier habe ich dir mal ein Beispiel Projekt hochgeladen was ich mal schnell zusammengeschustert habe, da werden die Zeicheninformationen in einem Record gespeichert, und alle Elemente in einer Liste werden dann einzeln auf das selbe Canvas gezeichnet. Je nachdem wie viele Informationen/wie Komplex deine Datenstrukturen sind würde ich dabei auch eher auf Klassen ausweichen, da du damit wahrscheinlich ein wenig mehr Übersichtlichkeit rein bekommst.
- Dateianhänge
-
One Canvas.zip
- (4.98 KiB) 71-mal heruntergeladen
Re: Anfängerproblem
@Michl
Danke für die Hinweise auf die Werkzeugseite-ist genau das, was man als Anfänger zum basteln braucht!
@Warfley
Danke für dein ausführliches Beispiel!
Habe mir den Code angesehen-denke, das ist in etwas das, was ich mir vorstelle-
zwar mir anderen Komponenten aber passt im Prinzip.
Habe zwar noch massive Probleme beim kompilieren, aber das bekomme ich hoffentlich gebacken.
(findet die includes($R) nicht)
Nochmals viele Dank für eure Hilfe!
Rudi
Danke für die Hinweise auf die Werkzeugseite-ist genau das, was man als Anfänger zum basteln braucht!
@Warfley
Danke für dein ausführliches Beispiel!
Habe mir den Code angesehen-denke, das ist in etwas das, was ich mir vorstelle-
zwar mir anderen Komponenten aber passt im Prinzip.
Habe zwar noch massive Probleme beim kompilieren, aber das bekomme ich hoffentlich gebacken.
(findet die includes($R) nicht)
Nochmals viele Dank für eure Hilfe!
Rudi
Re: Anfängerproblem
Hi,
dank eurer Hilfe bin ich sicher, daß ich meine Aufgabe mit LAZARUS erledigen kann.
Dank eurer Hilfe habe ich schon mal ein Miniprogramm compilieren können.
Funktioniert aber nicht so, wie ich es mir vorstelle:
unit Unit1;
Die Objekte Panel1 und SpeeButton1 habe ich mit der graphischen Oberfläche eingetragen die erscheinen auch im Pbjetinspektor, lassen sich aber nicht ansprechen-die Paintbox tut nichts.
Was könnze ich da vermurkst haben?
Danke!
Rudi
dank eurer Hilfe bin ich sicher, daß ich meine Aufgabe mit LAZARUS erledigen kann.
Dank eurer Hilfe habe ich schon mal ein Miniprogramm compilieren können.
Funktioniert aber nicht so, wie ich es mir vorstelle:
unit Unit1;
Code: Alles auswählen
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls,
Buttons;
type
{ TForm1 }
TForm1 = class(TForm)
Panel1: TPanel;
SpeedButton1: TSpeedButton;
PaintBox1: TPaintBox;
procedure panelcolor(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
procedure TForm1.panelcolor(Sender: TObject);
begin
form1.panel1.color:=clred;
form1.PaintBox1.color:=clblue;
panel1.Invalidate;
end;
end.
Was könnze ich da vermurkst haben?
Danke!
Rudi
Zuletzt geändert von Lori am Sa 28. Mär 2015, 21:46, insgesamt 1-mal geändert.
Grund: Highlighter
Grund: Highlighter