Starthilfe bei Grafik-Programm erbeten
Starthilfe bei Grafik-Programm erbeten
Hallo,
ich bin Nachrichtentechnik Entwicklungs-Ing. und habe bis vor 20 Jahren viel mit BP programmiert.
Nun habe ich mit Lazarus die Chance auf einem modernen Rechner mit W7 als Rentner in meine alte Welt einzutauchen.
Reine Kalkulations- Programme beherrsche ich schon, aber mit Objektorientierung und Grafik habe ich Schwierigkeiten.
Kann mir bitte jemand ein komplettes Programm zeigen, mit dem man in einen Rahmen von 300 * 400 farbige Pixels schreiben kann.
Damit möchte ich eine Messung in 2,5 D Grafik darstellen. In den Lazarus Examples finde ich ausgerechnet das nicht.
Ich denke mit dieser Starthilfe komme ich weiter.
Im voraus besten Dank.
ich bin Nachrichtentechnik Entwicklungs-Ing. und habe bis vor 20 Jahren viel mit BP programmiert.
Nun habe ich mit Lazarus die Chance auf einem modernen Rechner mit W7 als Rentner in meine alte Welt einzutauchen.
Reine Kalkulations- Programme beherrsche ich schon, aber mit Objektorientierung und Grafik habe ich Schwierigkeiten.
Kann mir bitte jemand ein komplettes Programm zeigen, mit dem man in einen Rahmen von 300 * 400 farbige Pixels schreiben kann.
Damit möchte ich eine Messung in 2,5 D Grafik darstellen. In den Lazarus Examples finde ich ausgerechnet das nicht.
Ich denke mit dieser Starthilfe komme ich weiter.
Im voraus besten Dank.
Re: Starthilfe bei Grafik-Programm erbeten
Naja, am einfachsten geht es, indem du in deinem Formular das OnPaint Ereignis einhängst, und dann sowas reinschreibst:
Damit kannst du die ganze Grösse des Formulars bepixeln. Geht auch für z.B. eine PaintBox.
Es gibt auch schnellere Methoden, aber für den Anfang...
S.a. http://wiki.freepascal.org/Developing_with_Graphics/de
Code: Alles auswählen
procedure TForm1.FormPaint(Sender: TObject);
begin
Canvas.Pixels[20,20]:=clRed;
Canvas.Pixels[21,20]:=clGreen;
Canvas.Pixels[22,20]:=clBlue;
end;
Es gibt auch schnellere Methoden, aber für den Anfang...
S.a. http://wiki.freepascal.org/Developing_with_Graphics/de
-
- 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
Lazarus kennt auch die Unit Graph aus dem BP-Zeitalter, evetuell hilft dir dies weiter, wen du alte BP-Programme hast.e bis vor 20 Jahren viel mit BP programmiert.
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
Danke theo für die prompte Antwort, aber sie hilft mir noch nicht weiter.
Weil ich noch nicht so drin bin, habe ich um ein komplettes lauffähiges Programm gebeten.
Dann wäre klar, was "in deinem Formular das OnPaint Ereignis einhängst" bedeutet.
Bitte zeigt mir welche Projekt-Art und welches Formular wie wo reingeschrieben gehört.
Sorry, da ich es noch nicht durchblicke, brauche ein kleines komplettes lauffähiges Programm, um daran weiter zu entwickeln.
Weil ich noch nicht so drin bin, habe ich um ein komplettes lauffähiges Programm gebeten.
Dann wäre klar, was "in deinem Formular das OnPaint Ereignis einhängst" bedeutet.
Bitte zeigt mir welche Projekt-Art und welches Formular wie wo reingeschrieben gehört.
Sorry, da ich es noch nicht durchblicke, brauche ein kleines komplettes lauffähiges Programm, um daran weiter zu entwickeln.
Re: Starthilfe bei Grafik-Programm erbeten
Wenn du gar keinen Schimmer hast, solltest du zuerst ein paar Tutorials durcharbeiten.
z.B. hier
http://www.delphi-treff.de/tutorials/grundlagen/ (für Delphi, aber auch für Lazarus gut geeignet.)
http://wiki.freepascal.org/Lazarus_Documentation/de
z.B. hier
http://www.delphi-treff.de/tutorials/grundlagen/ (für Delphi, aber auch für Lazarus gut geeignet.)
http://wiki.freepascal.org/Lazarus_Documentation/de
Re: Starthilfe bei Grafik-Programm erbeten
Anbei mal ein kleines Programm '(als Zip), welches mittels eines Timers zufällig Pixel in ein Rechteck zeichnet - sehr einfach, wie gewünscht - viel Erfolg!
Code:
Code:
Code: Alles auswählen
TForm1 = class(TForm)
Timer1: TTimer;
procedure FormPaint(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
...
procedure TForm1.FormPaint(Sender: TObject);
var
i: Integer;
begin
Canvas.Rectangle(100,100,500,400);
for i:=0 to 1000 do
Canvas.Pixels[Random(400)+100, Random(300)+100] := Random($1000000);
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Repaint;
end;
- Dateianhänge
-
Pixels.zip
- (125.63 KiB) 82-mal heruntergeladen
Code: Alles auswählen
type
TLiveSelection = (lsMoney, lsChilds, lsTime);
TLive = Array[0..1] of TLiveSelection;
Re: Starthilfe bei Grafik-Programm erbeten
Vielen Dank an alle, besonders Michl hat mir sehr geholfen.
So kann ich wie ein Koch etwas ausprobieren und verändern,
ohne gleich die ganze Lebensmittel-Chemie verstehen zu müssen.
So kann ich wie ein Koch etwas ausprobieren und verändern,
ohne gleich die ganze Lebensmittel-Chemie verstehen zu müssen.
Re: Starthilfe bei Grafik-Programm erbeten
Das freut mich. Falls Du Fragen hast, warum, was, wieso und Dir das Web keine verständlichen Antworten liefert, kannst Du gern hier nachfragen. Objektorientierung und Events/Ereignisse klingen erstmal kompliziert, wenn man den Einstieg gefunden hat, sind sie es aber nicht!
Code: Alles auswählen
type
TLiveSelection = (lsMoney, lsChilds, lsTime);
TLive = Array[0..1] of TLiveSelection;
Re: Starthilfe bei Grafik-Programm erbeten
Naja, da würde ich für deinen Fall eine andere Anaologie bemühen.nelke12 hat geschrieben: So kann ich wie ein Koch etwas ausprobieren und verändern,
ohne gleich die ganze Lebensmittel-Chemie verstehen zu müssen.
Beim Nachsalzen einer fertigen Suppe lernst du nicht kochen, da liest du besser mal die Bedieunungsanleitung deines Kochherds und ein paar Rezeptbücher durch.

Re: Starthilfe bei Grafik-Programm erbeten
Ich persönlich kann nelke12s Ansatz verstehen, koche ich auch eher intuitiv. Falls es nicht schmeckt oder wenn ich mal was neues ausprobieren will, dann lese ich mir ein Rezept durch oder frage jemanden. Ich möchte kein 5-Sterne-Koch werden, sondern das kochen soll mir vor allem Freude machen 

Code: Alles auswählen
type
TLiveSelection = (lsMoney, lsChilds, lsTime);
TLive = Array[0..1] of TLiveSelection;
Re: Starthilfe bei Grafik-Programm erbeten
Trotzdem musst du wissen wie man den Kochherd einschaltet. Und genau das weiss nelke12 noch nicht.
@nelke12: Hat nichts persönlich mit dir zu tun, es ist nur eine Diskussion um die richtige Art von Hilfe.
Ich denke da hilft es nicht wirklich, wenn du ihm eine fertige Suppe oder ein fertiges Programm vor die Nase setzt.nelke12 hat geschrieben:Dann wäre klar, was "in deinem Formular das OnPaint Ereignis einhängst" bedeutet
@nelke12: Hat nichts persönlich mit dir zu tun, es ist nur eine Diskussion um die richtige Art von Hilfe.
Re: Starthilfe bei Grafik-Programm erbeten
theo hat geschrieben:Ich denke da hilft es nicht wirklich, wenn du ihm eine fertige Suppe oder ein fertiges Programm vor die Nase setzt.

Sorry, kanns mir nicht verkneifen: Dann wären ja alle mitgelieferten Examples sinnfrei - die schaut man sich ja nur an, wenn man nicht weiss, wie es geht. Weiss man wie es geht, braucht man sich diese ja nicht ansehen.
PS: Ich halte mich ja schon zurück...

Code: Alles auswählen
type
TLiveSelection = (lsMoney, lsChilds, lsTime);
TLive = Array[0..1] of TLiveSelection;
Re: Starthilfe bei Grafik-Programm erbeten
Sind sie auch, so lange du nicht weisst was ein Eventhandler ist und dass man den durch Doppelclicken auf einen Eintrag unter "Ereignisse" im Objektinspektor "einhängt".Michl hat geschrieben: Sorry, kanns mir nicht verkneifen: Dann wären ja alle mitgelieferten Examples sinnfrei
Wenn du ihm etwas selber erklären willst, dann doch diese Sache. Ich verweise da lieber auf Tutorials, denn dafür sind sie da, und man kann (und will) nicht jedem Neuling eine private Einführung geben.
Re: Starthilfe bei Grafik-Programm erbeten
Hatte auch kurz überlegt (und nachher nochmal angeboten), ob ich den Code etwas kommentiere (bzw. wie man zu diesem kleinen Programm mittels ein paar Klicks und etwas Codeeingabe kommt), doch wenn keine Fragen zurück kommen, scheint es doch zu genügen?!
nelke12 hatte jedoch explizit um ein Bsp. gebeten, ansonsten sehe ich "Ich verweise da lieber auf Tutorials, denn dafür sind sie da, und man kann (und will) nicht jedem Neuling eine private Einführung geben" genauso. Wobei gute Tutorials immer noch nicht leicht zu finden sind. Wenn ich so darüber nachdenke, werde ich mal einen neuen Thread aufmachen...
nelke12 hatte jedoch explizit um ein Bsp. gebeten, ansonsten sehe ich "Ich verweise da lieber auf Tutorials, denn dafür sind sie da, und man kann (und will) nicht jedem Neuling eine private Einführung geben" genauso. Wobei gute Tutorials immer noch nicht leicht zu finden sind. Wenn ich so darüber nachdenke, werde ich mal einen neuen Thread aufmachen...
Code: Alles auswählen
type
TLiveSelection = (lsMoney, lsChilds, lsTime);
TLive = Array[0..1] of TLiveSelection;
Re: Starthilfe bei Grafik-Programm erbeten
Hallo, ich melde mich mit einem Teilergebnis noch mal.
Ich erfasse die Leistung meiner Photovoltaik über Jahr und Tag im 5 Minuten Takt und möchte sie durch farbcodierte Pixel abbilden.
Aus dem Beispiel von Michl habe ich eine Grafik abgeleitet mit Farben, wie ich sie mir wünsche.
Allerdings habe ich die Werte nur simuliert, weil mir in Lazarus mit OO das Einlesen von Files und Werten nicht gelingt.
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.
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 ?
Ich erfasse die Leistung meiner Photovoltaik über Jahr und Tag im 5 Minuten Takt und möchte sie durch farbcodierte Pixel abbilden.
Aus dem Beispiel von Michl habe ich eine Grafik abgeleitet mit Farben, wie ich sie mir wünsche.
Allerdings habe ich die Werte nur simuliert, weil mir in Lazarus mit OO das Einlesen von Files und Werten nicht gelingt.
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.
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 ?