Autor Beitrag
SonGoKi
Hält's aus hier
Beiträge: 5



BeitragVerfasst: So 14.01.07 12:12 
Hi Leute,
ich bin ziehmlicher Noob in Sachen Delphiprogrammierung, jedenfalls was den grafischen Touch angeht.
Jetzt schon mal vielen Dank allen Denen, die mir helfen. :)
Es handelt sich, wie die überschrift schon verrät, um die Programmierung einer Sanduhr.
Im Anhang habe ich mal ein PNG, dass den ungefähren späteren Look der Sanduhr zeigen soll. Selbstverständlich
könnt ihr euch auch für einen anderen style entscheiden. Wichtig für mich ist nur, dass mir jemand diese Sanduhr
programmieren kann. Genau, ich habe wie schon gesagt keinen Peil, wie man das Lösen kann und desshalb habe ich auch
keine Vorlage. Diese Sanduhr sollte genormt an die Sekunden laufen , d.h. für jede Sekunde,Minute oder Stunde je
nachdem wie man es einstellt, soll ein Sandkorn nach unten fallen. Am besten sollte es eine procedure geben, wo man
das einstellt. Eine Init() procedur in der man nur die Zahl eintippen brauch (1[h],2[m],3[s]). Irgendwie so was. Naja
schon mal vielen Dank für eure Antworten und vor alledem für die Projekte. :wink:
ich zähle auf euch.

mfg SonGoKi
Einloggen, um Attachments anzusehen!
Xion
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
EE-Maler
Beiträge: 1952
Erhaltene Danke: 128

Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
BeitragVerfasst: So 14.01.07 12:18 
Hi

glaub nicht, dass es dir jemand so programmiert. Du könntest es mit Canvas machen (du legst die Sanduhr (ohne Sand) als BMP dahinter). Du kannst dann auf das Image malen und (Canvas.Pixels). Nur is das ziemlich langsam, müsste aber für deine Zwecke reichen. Wann ein Sandkorn runterfällt, is ja ganz einfach zu berechnen: *Zahl der Sandkörner* / *Anzahl der Sekunden, die die Uhr laufen soll* = *Anzahl der Sekunden, in der 1 Sandkorn fallen muss*

_________________
a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 14.01.07 12:23 
Erstmal :welcome: hier im Forum!

Hallo! Ich glaube, ich muss hier erstmal was klarstellen! Unser Forum ist dazu da, anderen bei der Umsetzung ihrer Projekte zu helfen, indem Fragen und Probleme bei der Umsetzung in Delphi geklärt werden.
Wir schreiben aber keine kompletten Projekte auf Anfrage...

Wenn du das möchtest, also einfach ein komplettes Projekt oder einen kompletten Quelltext, dann gehört deine Frage in die Jobbörse. ;-)
Umsonst wird dir hier aber wohl niemand ein komplettes Projekt oder so schreiben :!:

Du kannst gerne bitten, dass deine Frage in die Jobbörse verschoben wird, das macht dann einer der Moderatoren schon... ;-)

Ansonsten: Du kannst gerne konkrete Fragen stellen, wie du etwas bestimmtes umsetzt, wenn du an einer Stelle nicht weiterkommst. Dann solltest du posten, was du bereits versucht hast und wie dein bisheriger Quelltext aussieht.

Schönen Gruß,
Sebastian
SonGoKi Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: So 14.01.07 12:25 
Erstmal vielen Dank, dass du dich so schnell gemeldet hast. Und jetzt zu meinen Problem. Die Idee ist schon mal sehr gut nur die Sandkörner programmieren zu wollen, aber wie schon gesagt ich habe keinen Plan von Grafikdarstellung in Delphi. Was ist Canvas? man ist das peimlich. Tut mir wirklich leid. Könnte mir einer so weiterhelfen.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 14.01.07 12:33 
user profile iconSonGoKi hat folgendes geschrieben:
Was ist Canvas? man ist das peimlich. Tut mir wirklich leid.

Da muss dir weder was leid tun noch dir peinlich sein. Dass du am Anfang sowas nicht weißt, ist doch normal! Wir haben alle mal angefangen. ;-)

Hmm, ich glaube, du solltest dir jedenfalls mal erstmal ein paar Tutorials zu Delphi ansehen... ;-)
www.dsdt.info/tutorials/?cat=1
Besonders der "Delphi-Crashkurs von Christian Stelzmann" ist (finde ich) sehr gut!

Canvas ist die Leinwand, also das, wodrauf du zeichnest. Linien, Kreise, ...
Leg am besten mal ein TImage auf dein Formular. Das findest du unter Zusätzlich bzw. Additional in der Komponentenpalette. Dann klick mal doppelt auf dein Formular und gib in das dann erscheinende Quelltextfenster mal Image1.Canvas. ein. Mit dem Punkt hintendran. Dann sollten die zur Verfügung stehenden Prozeduren angezeigt werden. Ggf. drück Strg+Leertaste, damit die angezeigt werden.

Ich denke mal, die Prozeduren wie LineTo und so dürften selbsterklärend sein. Sonst drück mal F1 ;-)
SonGoKi Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: So 14.01.07 12:34 
Da hast du schon recht, dass man eigentlich nur bei der Umsetzung helfen sollte. ich stimme dir da voll zu. Also frage ich anderes. Was ist Canvas? Und wie kann ich es zur Umsetzung der Sanduhr nutzen. Ich nehme ein Image als Vorlage. Hier die Sanduhr. Wie kann ich also mit Canvas dieses Image ansprechen und dort Pixel einfügen? Schon vielen Dank
SonGoKi Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: So 14.01.07 12:36 
Ah ok jaenicke vielen Dank. Noch mehr?
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 14.01.07 12:38 
Erstmal kannst du direkt in Delphi im Objektinspektor, wenn du das Bild auf dem Formular markiert hast, unter Picture das Bild laden...
Ansprechen dann wie gesagt mit Image1.Canvas., probier mal einfach ein wenig aus, was die einzelnen Befehle machen.
Xion
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
EE-Maler
Beiträge: 1952
Erhaltene Danke: 128

Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
BeitragVerfasst: So 14.01.07 12:38 
mal davon abgesehen, dass die Forum-Suche 53 Seiten zu Canvas findet:

so kannst du auf das Image Zeichnen:
Image.Picture.Bitmap.Canvas.Pixels[25, 25]:=clRed
Er macht also auf dem Bild an der Stelle 25/25 einen Roten Punkt.
Der Rest ist eigentlich nur noch Simulations-Arbeit:

-du musst die Grenzen der Sanduhr irgendwie wissen, um deine Sandkörner in die Sanduhr zu malen
-du musst dann immer das unterste Sandkorn fallen lassen
-du musst irgendwie das nachrutschen der Sandkörner berechnen
-du musst dir überlegen, wie sie sich unten anhäufen

aber die grafische Darstellung funktioniert immer so:
Image.Picture.Bitmap.Canvas.Pixels[25, 25]:=clRed

_________________
a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)
SonGoKi Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: So 14.01.07 16:07 
Also vielen Dank Leute für eure geduld. Das mit canvas werde ich mal ausprobieren.