Starthilfe bei Grafik-Programm erbeten
-
- Beiträge: 958
- Registriert: Mo 11. Sep 2006, 22:56
Re: Starthilfe bei Grafik-Programm erbeten
Naja die "alten" Methoden gehen ja alle noch
http://wiki.freepascal.org/File_Handling_In_Pascal
kommt halt aufs File und was du damit machen willst an evtl. wäre eine (Sqlite) Datenbank die bessere Lösung.
als Anregung:
http://wiki.lazarus.freepascal.org/Howt ... OpenDialog
http://wiki.freepascal.org/TStringList- ... utorial/de
http://wiki.freepascal.org/File_Handling_In_Pascal
kommt halt aufs File und was du damit machen willst an evtl. wäre eine (Sqlite) Datenbank die bessere Lösung.
als Anregung:
http://wiki.lazarus.freepascal.org/Howt ... OpenDialog
http://wiki.freepascal.org/TStringList- ... utorial/de
Re: Starthilfe bei Grafik-Programm erbeten
Willst du das nicht selber lernen? Das gehört doch nun wirklich zu den absoluten Grundlagen der Programmierung.nelke12 hat geschrieben: Da ich Lazarus noch nicht kapiere und allein nicht weiter komme, möchte ich fragen ob mir jemand
in meinem Lazarus OO Programm die Auswahl von Files und das Einlesen implementiert ?
Wenn es dich so gar nicht interessiert, kannst du dein Projekt ja gleich in Auftrag geben.
Re: Starthilfe bei Grafik-Programm erbeten
Danke an creed steiger für die Hinweise. Das File Handling stellte sich für mich nicht als Problem dar,
sondern die Einbindung in das abgeänderte Zeichenprogramm von Michl.
Danke auch an theo, der mich aufrütteln möchte und fragt, ob es mich denn gar nicht interessiert.
Doch, es interessiert mich schon sehr, Lazarus zu verstehen, aber ich sehe meine Grenzen wenn ich in zig Stunden aus zwei Büchern mit
über 1500 Seiten nicht erkenne, was für mich denn am wichtigsten ist.
Ich bin ein alter Knabe, der sich ohne Hilfe so komplexe Dinge wie Klassenbibliotheken nicht autodidaktisch anlernen kann.
Mit Lazarus habe ich eine Spielwiese gefunden mit der ich alte Programme wieder lauffähig machen oder neue Ideen umsetzen kann,
aber die Hürden der Klassenbibliotheken kann ich alleine nicht überwinden. Deshalb suche ich wie beim Tauchen einen Buddy,
dem ich ein Programm vorstellen kann und der mir bei der Korrektur hilft.
Ich hoffe, dass ein Mitglied so nett ist und sich bei mir über eine PN meldet.
ps. mein Ergebnis-Bild anzufügen schaffte ich in mehreren Versuchen auch mit unterschiedlichen Formaten nicht.
sondern die Einbindung in das abgeänderte Zeichenprogramm von Michl.
Danke auch an theo, der mich aufrütteln möchte und fragt, ob es mich denn gar nicht interessiert.
Doch, es interessiert mich schon sehr, Lazarus zu verstehen, aber ich sehe meine Grenzen wenn ich in zig Stunden aus zwei Büchern mit
über 1500 Seiten nicht erkenne, was für mich denn am wichtigsten ist.
Ich bin ein alter Knabe, der sich ohne Hilfe so komplexe Dinge wie Klassenbibliotheken nicht autodidaktisch anlernen kann.
Mit Lazarus habe ich eine Spielwiese gefunden mit der ich alte Programme wieder lauffähig machen oder neue Ideen umsetzen kann,
aber die Hürden der Klassenbibliotheken kann ich alleine nicht überwinden. Deshalb suche ich wie beim Tauchen einen Buddy,
dem ich ein Programm vorstellen kann und der mir bei der Korrektur hilft.
Ich hoffe, dass ein Mitglied so nett ist und sich bei mir über eine PN meldet.
ps. mein Ergebnis-Bild anzufügen schaffte ich in mehreren Versuchen auch mit unterschiedlichen Formaten nicht.
Re: Starthilfe bei Grafik-Programm erbeten
Warum per PN, nachfolgende Leser interessiert möglicherweise auch diese Frage?!
Es gibt verschiedene Möglichkeiten Grafiken zu speichern. Lazarus stellt recht komfortable Möglichkeiten mit Hilfe objektorientierter Methoden zur Verfügung, z.B. in TPicture (Speicherung mehrerer Grafikformate möglich).
z.B.
- Neue Anwendung, zwei TButtons, ein TImage (Komponentenpalette Additional) und ein TSaveDialog (Komponentenpalette Dialogs) auf das Formular
- im Eventhandler von Button1 zeichnest Du auf das Canvas vom Image1
- Im Eventhandler von Button2 nutzt Du SaveDialog1 und speicherst Image1.Picture in eine Datei (z.B. Test.jpg)
Es gibt verschiedene Möglichkeiten Grafiken zu speichern. Lazarus stellt recht komfortable Möglichkeiten mit Hilfe objektorientierter Methoden zur Verfügung, z.B. in TPicture (Speicherung mehrerer Grafikformate möglich).
z.B.
- Neue Anwendung, zwei TButtons, ein TImage (Komponentenpalette Additional) und ein TSaveDialog (Komponentenpalette Dialogs) auf das Formular
- im Eventhandler von Button1 zeichnest Du auf das Canvas vom Image1
- Im Eventhandler von Button2 nutzt Du SaveDialog1 und speicherst Image1.Picture in eine Datei (z.B. Test.jpg)
Code: Alles auswählen
procedure TForm1.Button1Click(Sender: TObject);
var
i, x, y, size: Integer;
begin
for i:=0 to 100 do begin
size:=random(10)+10;
x:=Random(Image1.ClientWidth - size);
y:=Random(Image1.ClientHeight - size);
Image1.Canvas.Brush.Color:=Random($1000000);
Image1.Canvas.Ellipse(x, y, x+size, y+size);
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if SaveDialog1.Execute then
Image1.Picture.SaveToFile(SaveDialog1.FileName);
end;
Code: Alles auswählen
type
TLiveSelection = (lsMoney, lsChilds, lsTime);
TLive = Array[0..1] of TLiveSelection;
Re: Starthilfe bei Grafik-Programm erbeten
Hallo Michl, vermutlich hast du mein ps. falsch aufgefasst.
Ich wollte zu meiner Antwort im Forum ein Bild hochladen und habe es nicht geschafft.
Ich wollte zu meiner Antwort im Forum ein Bild hochladen und habe es nicht geschafft.
Re: Starthilfe bei Grafik-Programm erbeten
nelke12 hat geschrieben:Hallo Michl, vermutlich hast du mein ps. falsch aufgefasst.
Ich wollte zu meiner Antwort im Forum ein Bild hochladen und habe es nicht geschafft.

Ansonsten kann man unterhalb des Eingabefeldes im Reiter "Dateianhang hochladen" ein Bild hochladen, das funktioniert allerdings z.Zt. bei mir auch nicht. Ich habe eben die Administratoren in Kenntnis gesetzt!
Code: Alles auswählen
type
TLiveSelection = (lsMoney, lsChilds, lsTime);
TLive = Array[0..1] of TLiveSelection;
-
- Beiträge: 109
- Registriert: Sa 1. Mär 2008, 15:19
- OS, Lazarus, FPC: openSUSE Leap 15.6 (FPC 3.2.2) / Windows 11 Pro (FPC 3.2.2)
- CPU-Target: x64
- Kontaktdaten:
Re: Starthilfe bei Grafik-Programm erbeten
Benutze doch mit Freepascal ptccrt und ptcgraph, das funktioniert einwandfrei mit Windows oder Linux. Wenn du mehr als 16 Farben brauchst solltest du folgendermaßen initieren:nelke12 hat geschrieben: Andererseits habe ich ein Programm unter Einbeziehung der alten BP crt- und graph- unit erstellt mit dem ich in alter Manier
Files einlesen und die gewünschte Grafik erzeugen kann.
Leider nicht mit der von mir gewünschten Farblogik weil es da nur 16 vordefinierte Farben gibt.
Hier wollte ich 2 Ergebnis- Bilder hochladen, aber es wird gemeldet, dass die Größe des Bildes nicht ermittelt werden kann.
Code: Alles auswählen
var gd,gm:smallint;
begin
gd:=d16bit;
gm:=m1024x768;
initgraph (gd,gm,'');
...
end;
Code: Alles auswählen
function hrgb (red,green,blue:byte):word;
begin
result:= (((red Shr 3) Shl 11) + ((green Shr 2) Shl 5) + (blue Shr 3));
end;
Ich hoffe, ich konnte weiterhelfen.
Mit besten Grüßen,
Cybermonkey
Cybermonkey
Re: Starthilfe bei Grafik-Programm erbeten
Hallo zusammen, ich melde mich mit einem Erfolg.
Cybermonkey hat mir mit dem Rat in freepascal ptccrt und ptcgraph zu benutzen entscheidend geholfen.
Damit kann ich 16bit Farbtiefe ausnutzen und eine farblogische Palette verwenden.
Vermutlich ist in der unit ptccrt ein Bug, denn readln und writeln funktionieren dann nicht mehr. Writeln kann aber durch outtextxy ersetzt werden.
Als Ausweg für readln habe ich im Grafikmodus die Funktion GrInput verwendet, die mir Cybermonkey freundlicherweise zur Verfügung stellte.
Für Leute, wie mich, die sich mit Lazarus und OO schwer tun, ist freepascal mit ptccrt und ptcgraph eine Alternative.
Ich bin happy, dass ich mit Lazarus eine Entwicklungsumgebung habe, auf der ich mit meinen alten BP Kenntnissen
jetzt wieder auf einem modernen Rechner arbeiten kann.
Besten Dank an alle die mir geantwortet haben.
Cybermonkey hat mir mit dem Rat in freepascal ptccrt und ptcgraph zu benutzen entscheidend geholfen.
Damit kann ich 16bit Farbtiefe ausnutzen und eine farblogische Palette verwenden.
Vermutlich ist in der unit ptccrt ein Bug, denn readln und writeln funktionieren dann nicht mehr. Writeln kann aber durch outtextxy ersetzt werden.
Als Ausweg für readln habe ich im Grafikmodus die Funktion GrInput verwendet, die mir Cybermonkey freundlicherweise zur Verfügung stellte.
Für Leute, wie mich, die sich mit Lazarus und OO schwer tun, ist freepascal mit ptccrt und ptcgraph eine Alternative.
Ich bin happy, dass ich mit Lazarus eine Entwicklungsumgebung habe, auf der ich mit meinen alten BP Kenntnissen
jetzt wieder auf einem modernen Rechner arbeiten kann.
Besten Dank an alle die mir geantwortet haben.
-
- Beiträge: 109
- Registriert: Sa 1. Mär 2008, 15:19
- OS, Lazarus, FPC: openSUSE Leap 15.6 (FPC 3.2.2) / Windows 11 Pro (FPC 3.2.2)
- CPU-Target: x64
- Kontaktdaten:
Re: Starthilfe bei Grafik-Programm erbeten
Freut mich, dass ich helfen konnte. Der Bug scheint nur in Windows-Betriebssystemen zu existieren, denn unter Linux funktioniert writeln und readln weiterhin.nelke12 hat geschrieben:Hallo zusammen, ich melde mich mit einem Erfolg.
Vermutlich ist in der unit ptccrt ein Bug, denn readln und writeln funktionieren dann nicht mehr. Writeln kann aber durch outtextxy ersetzt werden.
Als Ausweg für readln habe ich im Grafikmodus die Funktion GrInput verwendet, die mir Cybermonkey freundlicherweise zur Verfügung stellte.
Mit besten Grüßen,
Cybermonkey
Cybermonkey
-
- Beiträge: 6906
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Starthilfe bei Grafik-Programm erbeten
Da muss ich zustimmen, Lazarus und FPC ist ein echter Nachfolger von Turbo-Pascal. Die meisten TP-Programme kann man portieren, ausgenommen man hat direkt auf die Hardware zugegriffen. Dies habe ich früher meist gemacht um mehr Speed aus den Programmen rauszuholen.Für Leute, wie mich, die sich mit Lazarus und OO schwer tun, ist freepascal mit ptccrt und ptcgraph eine Alternative.
Ich bin happy, dass ich mit Lazarus eine Entwicklungsumgebung habe, auf der ich mit meinen alten BP Kenntnissen
jetzt wieder auf einem modernen Rechner arbeiten kann.
Besten Dank an alle die mir geantwortet haben.
Was hat man da für Vorteile gegenüber der normalen Unit CRT und GRAPH ?ptccrt und ptcgraph
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
Re: Starthilfe bei Grafik-Programm erbeten
Dass man endlich 16bit Farbtiefe hat und damit auch Pastelltöne erzeugen kann.
Re: Starthilfe bei Grafik-Programm erbeten
Hallo,
hier nun ein fertiges Grafik Ergebnis von freepascal mit ptc, mal grau mal bunt, an der rechten Skala sieht man die Farbstufung.
Ich habe mir 2 Paletten erzeugt und mit den Funktionen hGRB und GetKey und Grinput (von Cybermonkey) in einer unit abgelegt.
Hat jemanden eine Info, ob an dem Readln-Bug in ptccrt und Windows gearbeitet wird ?
Es ist lästig bei Eingaben und Textausgaben immer im Grafikmodus arbeiten zu müssen.
MfG Nelk12
hier nun ein fertiges Grafik Ergebnis von freepascal mit ptc, mal grau mal bunt, an der rechten Skala sieht man die Farbstufung.
Ich habe mir 2 Paletten erzeugt und mit den Funktionen hGRB und GetKey und Grinput (von Cybermonkey) in einer unit abgelegt.
Hat jemanden eine Info, ob an dem Readln-Bug in ptccrt und Windows gearbeitet wird ?
Es ist lästig bei Eingaben und Textausgaben immer im Grafikmodus arbeiten zu müssen.
MfG Nelk12
Re: Starthilfe bei Grafik-Programm erbeten
Du könntest ein Minimalbeispiel erstellen (alz zip und lädst es hier hoch), welches das fehlerhafte Verhalten zeigt. Dann kann man das unter Win/Linux testen. Falls es tatsächlich ein Bug ist, kannst Du den Bugtracker in Kenntnis setzen (am besten mit dem angehangenen Minimalbeispiel).nelke12 hat geschrieben:Hat jemanden eine Info, ob an dem Readln-Bug in ptccrt und Windows gearbeitet wird ?
Es ist lästig bei Eingaben und Textausgaben immer im Grafikmodus arbeiten zu müssen.
MMn: evtl. ist es doch günstiger, Du versuchst Dich in die objektorientierte Programmierung einzuarbeiten und nutzt Formulare. Da gibt es viele fertige Komponenten, Klassen und deren Methoden, die Du für grafische Ein- und Ausgaben nutzen kannst - ist eigentlich wirklich nicht so kompliziert (ich kann Dich verstehen, meine letzte Version war TurboPascal 7, bevor ich nach einiger Programmierabstinenz mit Lazarus/FPC wieder ein Zuhause gefunden habe).
Code: Alles auswählen
type
TLiveSelection = (lsMoney, lsChilds, lsTime);
TLive = Array[0..1] of TLiveSelection;