Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   So kann es nicht weitergehen (https://www.delphipraxis.net/100948-so-kann-es-nicht-weitergehen.html)

FLINKER_FINGER 5. Okt 2007 20:20


So kann es nicht weitergehen
 
Hallo an alle Delphianer =)

Ich habe ein Grundsätzliches Problem und stelle mir die Frage wie ich dieses lösen kann.
Mein Problem ist, dass meine sich Delphienntnisse nicht wirklich weiterentwickeln. Sprich, ich bin an einem Punkt angelangt, an dem ich nicht wirklich ohne fremde Hilfe meine Vorstellungen von einem Programm umsetzten kann.
Mir ist klar, dass eine Programmiersprache sehr schwer zu erlernen ist und man wahrscheinlich nie alles können und wissen kann, aber es sollte doch möglich sein auf eine Problemstellung eine eigene Lösung zu finden.
Ich habe nen Haufen guter ideen für Programme, scheitere dann aber leider an der Umsetzung. Dann Google ich nach einer Lösung und Kopiere ggf. wenn ich was brauchbares finde den Code in mein Programm. Meist wird der Code noch überflogen und versucht zu verstehen was diese Zeilen bewirken, was nicht immer hinhaut.

Doch so soll und kann es nicht weitergehen! Meine Frage daher: Wie kann ich mir Sachen ohne vorgegebenen Code aneignen.

Wäre echt nett wenn mir vielleicht jmd. anworten könnte der eventuell ähnliche Erfahrungen schon durchgemacht hat und mir sagen könnte wie er/sie das Problem gelöst hat.
Bin für jeden Vorschlag offen und bedanke mich im Voraus.

LG Flinker_Finger

mkinzler 5. Okt 2007 20:21

Re: So kann es nicht weitergehen
 
Geh mehr problem- und weniger lösungsorientiert vor.

Daniel 5. Okt 2007 20:22

Re: So kann es nicht weitergehen
 
Bin für jeden Vorschlag offen

Du solltest den Titel Deines Beitrages ändern.

und bedanke mich im Voraus.

Gern. ;-)

DeddyH 5. Okt 2007 20:24

Re: So kann es nicht weitergehen
 
In Ergänzung zu mkinzler: zerlege große Probleme immer erst in kleine Teilprobleme. Wenn Du diese lösen kannst, löst sich das große Problem von selbst.

MrSpock 5. Okt 2007 20:30

Re: So kann es nicht weitergehen
 
Hallo Flinker_Finger,

eigentlich ist es nicht wirklich schwer eine Programmiersprache zu lernen. Es gibt je nicht sehr viele Elemente in einer Sprache. Bei objektorientierten Sprachen kommen dann aber Konzepte wie Vererbung und Polymorphismus dazu, die man verstehen muss.

Die Umsetzung einer Problemstellung in ein Programm ist tatsächlich das Schwierige. Dazu gibt es verschiedene Ansätze. Du könntest das Programm als etwas ansehen, dass Funktionen implementiert. Dabei konzentrierst du dich auf die Funktionen und versuchst diese immer weiter zu vereinfachen. Dieser funktionale Systemaufbruch ermöglicht dir dann die gewünschte Funktion letztendlich umzusetzen.

Moderner ist der objektorientierte Ansatz, bei dem du in Objekten denkst. Du versuchst dabei deine Problemwelt in verschiedene Objekte zu zerlegen, die Eigenschaften und Fähigkeiten haben. Diese Objekte arbeiten zusammen, in dem sie sich Nachrichten zuschicken, die in der Regel zu Zustandsübergängen in dem Objekt führen, das die Nachricht empfangen hat. Als Reaktion darauf werden dann neue Nachrichten versendet.

Zu beiden Ansätzen gibt es umfangreiche Bücher. Ich denke, dass du nicht umhin kommst, ein solches zu kaufen und einmal detailliert zu lesen.

Phoenix 5. Okt 2007 20:54

Re: So kann es nicht weitergehen
 
Wie Albert schon sagt ist eine Programmiersprache nicht sehr schwer zu erlernen. Das ist sozusagen Dein Werkzeug. Nur weil man aber nun ein Messer benutzen kann weiss man noch lange nicht, wie man damit auch schnitzt.

Und genau dort hilft der Ansatz, das große ganze in viele kleine Teile zu zerlegen. Ein Tip an der Stelle: Der kleine Teil den man gerade vor sich hat kann man in 99,9% aller Fälle nochmal zerlegen.

Irgendwann ist man dann aber tatsächlich am Elementaren Kern einer Funktion angelagt. Und dann bist Du an einem Punkt, an dem Dir die Entwicklungsumgebung und die Sprache eine natürliche Barriere baut. So kann man mit Delphi unmittelbar z.B. keinen Windows-User anlegen. Dazu braucht man API-Aufrufe in Windows. Sich dort einzuarbeiten braucht einige Zeit. Aber auch elementare Punkte, die sich möglicherweise sehr einfach mithilfe der VCL lösen lassen, kann man erst dann lösen, wenn man die entsprechenden Teile der VCL kennt.

Um seine 'Umgebung', also die VCL, die WinAPI, ggf. andere Frameworks oder Komponentensammlungen wie z.B. die Jedis kennenzulernen brauchht seine Zeit. An der Stelle kann Dir die DP sicher auch sehr gut weiterhelfen.

Wenn Du an einem solchen Punkt bist, wo Du nicht mehr weiter weisst, dann stelle hier einfach Deine Frage. Dann kann man Dir hier den richtigen Weg, sei es die Win API, sei es eine bestimmte Komponente, aufzeigen. Diese dann kennenzulernen, nachzulesen wie sie funktioniert etc. ist dann wieder Dein Ding, aber ohne manche Hinweise die ich mir hier hole sitze auch ich manchmal auf dem Trockenen und habe keinen Plan, wie man richtig an eine Problemstellung herangeht.

Ein gewisser Spieltrieb, der einen dazu bringt sich mit einer speziellen Thematik intensiv auseinanderzusetzen hilft da im übrigen ungemein. Man lernt so ungeheuer viel.

Du hast jetzt nicht geschrieben, wie lange Du schon so arbeitest, aber aus eigener Erfahrung kann ich sagen dass mich damals die Einarbeitung in die VCL und ein anderes Delphi-Basiertes Framework gut und gerne zweieinhalb Jahre gekostet hat. Den Code den ich am Anfang produziert habe würde ich heute nur noch mit einem Schaudern lesen können. Aber daran sieht man auch, das man sich selber als Entwickler weiterentwickelt. Also lass Dir Zeit, frage ab und zu nach Lösungansätzen und Wegweisern in die richtige Richtung, und das wird schon.

FLINKER_FINGER 5. Okt 2007 21:16

Re: So kann es nicht weitergehen
 
Hui so schnell so viele Anworten =)
Habt Dank dafür !

Der Beitrag von Phoenix scheint mir am am hilfreichsten zu sein.
Gibt es so eine Art Tutorial für VCL und oder WinAPI für Anfänger in diesem Bereich.
Was genau ist denn die Visual Component Libary ( hoffe die Frage ist nicht zu doof)?

Apollonius 5. Okt 2007 21:21

Re: So kann es nicht weitergehen
 
Die VCL ist die graphische Oberfläche, die du als Delphi-Programmierer normalerweise nutzt. Wann immer du einen TButton auf dein TForm ziehst, benutzt du die VCL.

DeddyH 5. Okt 2007 21:23

Re: So kann es nicht weitergehen
 
Zitat:

Zitat von FLINKER_FINGER
Was genau ist denn die Visual Component Libary ( hoffe die Frage ist nicht zu doof)?

Fragen sind niemals doof ;). Die VCL ist vereinfacht gesagt die Kapselung/Vereinfachung der API in (Delphi-)Komponenten.

Nils_13 5. Okt 2007 21:25

Re: So kann es nicht weitergehen
 
Ein Programm hat viele Problemstellen. Wenn du bei einer Sache nicht weiterkommst, kannst du einfach bei einer anderen weiter machen. Wenn du nirgends weiterkommst, bleibt dir nicht die Wahl, also beschäftige dich richtig damit. Falls du es dann immer noch nicht schaffst, kannst du wohl wirklich guten Gewissens nachfragen. Manchmal ist es auch gut, obwohl es vergleichsweise wenig (Er)arbeitungsaufwand wäre nachzufragen. Das musst du selbst entscheiden.

FLINKER_FINGER 5. Okt 2007 21:26

Re: So kann es nicht weitergehen
 
Ahh ok, also war es eine doofe Frage.... =(

Gibt es irgendwie eine Zusammenfassung von allen WinAPI Funktionen ... Also wo ich nachschlagen kann, wenn ich eine bestimmte Funktion brauche?

Phoenix 5. Okt 2007 21:28

Re: So kann es nicht weitergehen
 
Okay, Du bist noch nicht lange mit Delphi dabei ;-)

Nein, die Frage ist nicht doof. Die VCL ist die Bibliothek an (visuellen) Komponenten, mit denen Du Deine Anwendung zusammenstellst. Stell Dir die VCL (und andere Komponenten(-Bibliotheken)) als einen Baukasten vor, der Dir einzelne kleine Teile für Deine Anwendungen schon vorgefertigt zur Verfügung stellt.

Alles, was Du in der Komponentenpalette in Delphi siehst (TButton, TLabel, TEdit etc.) sind Klassen aus der VCL. Ein kleiner Teil der VCL sind auch nicht-Visuelle Komponenten. z.B. Dialoge (TOpenFileDialog), die man nicht direkt auf dem Form sieht, die aber Funktionalität zur Verfügung stellen.

Die VCL ist in der Delphi-Hilfe dokumentiert. Da kannst Du einfach mal durchstöbern.

Luckie hat auf seiner privaten Homepage ein gutes Tutorial zur nonVCL-Entwicklung. Im Prinzip zeigt er auf, wie man ein Frmular und Buttons etc. ohne die VCL, also mit einen Windows-API aufrufen, realisiert. Hier zeigt sich auch, dass auch die VCL nur mit Wasser kocht, bzw. Dir als Entwickler diese Arbeit abnimmt. Wenn man das aber mal selber gemacht hat, dann versteht man viel eher, wie die VCL intern arbeitet und was sie alles kann. Zurück zum nonVCL-Tutorial: Es zeigt Dir, WIE man die Windows API benutzt. Nicht aber, was die API alles kann. Im Prinzip kann die API nämlich alles, oder anders gesagt: Was sich nicht mithilfe der API lösen lässt, lässt sich gar nicht lösen. Die Windows API ist im MSDN gut dokumentiert. Das MSDN ist im Prinzip DIE Referenz, wenn es um Windows-Entwicklung geht. Man braucht ne Weile um sich damit zurechtzufinden, aber wenn man weiss wie man dort sucht und wie das Ding aufgebaut ist kann man damit eigentlich nahezu alles erlernen.

Puhbaehr 5. Okt 2007 21:36

Re: So kann es nicht weitergehen
 
Es schaut aus als verstehst du nicht was eigentlich passiert wenn ich z.B. ein On-Click-Ereignis hinzufüge. Woher kommen die Daten?

Ich hab das alles auch nie verstanden und ein paar Jahre einfach so hingenommen bis ich hier ins Forum kam. In vielen Beiträgen, Luckie sei Dank, wurde auf das faszinierende Tutorial seiner Internetseite hingewiesen.

Und so wie ich bin hab ich es mir einfach mal durchgelesen, versucht zu begreifen, einfachmal losgelegt und etwas zusammengeschustert. Z.B. ein eigenes OnClick. Heute weiß ich woher ein OnClick-Ereignis seine Daten bekommt. Was es aufruft. Was alles passiert: http://www.michael-puff.de/Developer/Delphi/Tutorials/

Gruß, Robert

Edit: Da war wohl jemand schneller :)

DeddyH 5. Okt 2007 21:49

Re: So kann es nicht weitergehen
 
Noch eine gute Seite:OLLI

Nuclear-Ping 5. Okt 2007 21:53

Re: So kann es nicht weitergehen
 
Wirklich schöner konstruktiver Beitrag. :thumb:

Sollte sich ein gewisser jemand hier mal zu Herzen nehmen ... ;)

Puhbaehr 5. Okt 2007 21:59

Re: So kann es nicht weitergehen
 
Zitat:

Zitat von Nuclear-Ping
Wirklich schöner konstruktiver Beitrag. :thumb:

Sollte sich ein gewisser jemand hier mal zu Herzen nehmen ... ;)

:gruebel:


Edit: :pale: "nur Moderatoren haben die Berechtigung, in diesem Forum Beiträge zu löschen." Löscht mal bitte :) Der Smiley macht auf neuer Seite weniger Sinn.

Edit: :-D

Nuclear-Ping 5. Okt 2007 22:08

Re: So kann es nicht weitergehen
 
Editier doch und pack nen Quote dazu.

Hador 5. Okt 2007 23:34

Re: So kann es nicht weitergehen
 
Ich selber, habe mir damals Delphi beigebracht, indem ich versucht habe, verschiedene kleine Projekte zu realisieren. Man sollte sich seine Ziele nicht zu hoch stecken. Denn wenn man ein paar Programme fertig hat, dann merkt man schon, warum Software wie Adobe Photoshop o.ä. recht teuer ist: Es steckt unglaublich viel Arbeitszeit dahinter und man kann soetwas nicht mal eben schnell nachprogrammieren.
Somit würde ich dir raten, wenn dir irgend ein kleines Prgm. fehlt, nicht immer im Web zu suchen (auch wenn man dort für fast alles fündig wird) sondern zu versuchen diese selbst zu Programmieren, wenn du gerade genug Zeit dafür aufbringen kannst. Manches Angefangene Projekt wirst du zwar schnell wieder verwerfen und doch auf bereits vorhandene Programme zurückgreifen, aber selbst dadurch lernt man.

Ich kenne allerdings auch einige, denen diese praktische Lernmethode nicht so sehr liegt, da man teilweise vor scheinbar unlösbaren Problemen steht und drauf und drann ist, das Projekt abzubrechen. Die lernenlieber anhand von Büchern oder Tutorials, was vmtl. etwas einfacher aber auch etwas langweiliger ist. Falls du so jemand bist, dann schau dich doch einfach mal um. Einige Tutorials wurden hier ja schon gepostet, andere findest du bspw. noch auf www.dsdt.net . Ebenso gibt es nicht nur Einsteigerbücher für Delphi, sondern auch welche für fortgeschrittene Programmierer und solche die Spezialthemen behandeln (z.B. Datenbanken). Evtl. lohnt sich ja für dich eine solche Anschaffung. Vieleicht findest du ja auch was günstiges bei www.terrashop.de , www.buecherbillig.de oder ähnlichen Shops.

Abschließend noch ganz wichtig: Mag dir die Frage auch noch so blöd erscheinen. Wenn du nach kurzer Suche (Google/DP/OH/MSDN/Wikipedia) keine Antwort gefunden habe, so frage nach. Wenn du hier einen Ordentlichen Beitrag schreibst und deine Frage gut formulierst - möglichst mit dem, was du schon weißt bzw. bereits herausgefunden hast - so wirst du in den meisten Fällen hier eine vernünftige Antwort erhalten. Selbst wenn einer lachen sollte, so lass ihn doch lachen, denn zumindest bekommst du eine Antwort und hast etwas dazu gelernt. Vorallem aber kannst du davon ausgehen, dass es einen Zeitpunkt gab, an dem derjenige, der gelacht hat, das, was du erfragt hast, ebenfalls noch nicht wusste.

FLINKER_FINGER 6. Okt 2007 13:26

Re: So kann es nicht weitergehen
 
@ Hador

An Ideen für Programme happert es nicht. Wie gesagt hab mehrere tolle ideen für Programme und auch versucht jede Idee umzusetzen.
Doch dann bin ich halt an der Umsetzung meist gescheitert.

Auch ich bin eher ein Typ der sich über die Methode "lerning by doing" versucht weiterzubilden. Gerade im Bereich des programmierens finde ich es viel sinnvoller als bücher zu lesen. Worüber sich aber sicher streiten lässt =)

@ Phoenix
Zitat:

Zitat von Phoenix
Okay, Du bist noch nicht lange mit Delphi dabei ;-)

Naja bestimmt schon an die 4-5 Jahre. Natürlich nicht jeden tag und vereinzeilt auch nicht in jeden Monat, aber immer mal wieder ab und zu. Nur leider musste ich halt feststellen, dass ich unfähig bin ein Problem selbst zu lösen. Nicht vom gedanklichen (Problem in viele kleinere Problme zerlegen z.b.), sondern das ich nicht herausfinden kann welchen Code ich benutzen soll bzw. wie ich auf diesen kommen kann. Kann das Problem nicht richtig benennen... ist so wie wenn man eine IF-Abfrage machen möchte, genau weiss was man erreichen will, aber den "if"-Befehl und dessen Aufbau nicht kennt und nicht weiss wo man da nachschauen soll wie der Syntax ist.

Dezipaitor 6. Okt 2007 13:31

Re: So kann es nicht weitergehen
 
hehe, ja wenn ich was frage, dann ist die Wahrscheinlichkeit hoch, dass es keiner beantworten kann. :(

FLINKER_FINGER 6. Okt 2007 13:51

Re: So kann es nicht weitergehen
 
Ja und es wäre doch toll selbst die Antwort zu finden, oder ?

Irgendwie muss das ja gehen, sonst wüsste es ja niemand wissen...

Christian Seehase 6. Okt 2007 14:09

Re: So kann es nicht weitergehen
 
Moin Flinker Finger,

bei syntaktischen Problemen kann die Hilfe Aufschluss geben.
Falls die nicht hilft (was ja durchaus vorkommen kann), kann ein Blick in funktionierende Sourcen helfen.

FLINKER_FINGER 9. Okt 2007 13:36

Re: So kann es nicht weitergehen
 
Bei meinem Problem kann mir die Hilfe nicht wirklich weiterhelfen... Denke ich mal.

Ich weis es gehört nicht in die Kategorie dieses Forums, aber vielleicht versteht ihr dann was ich meine:
Ich wollte ein Programm erstellen welches mir auflistet, welche Dateien gerade im Netzwerk ( auf meinem Rechner) geöffnet und/ oder benutzt werden. Von Windows gibt es schon genau das was ich brauche: Rechtsklick aufm Arbeitsplatz --> Verwalten --> Freigegebene Ordner --> Geöffnete Dateien.

Wo kann man da nachschauen, wenn man keinen Ansatz hat ? Wie würdet ihr da rangehen, wenn ihr nicht wisst wie man sowas macht ?

Gruß FLINKER_FINKER

OregonGhost 9. Okt 2007 13:52

Re: So kann es nicht weitergehen
 
Zitat:

Zitat von FLINKER_FINGER
Wo kann man da nachschauen, wenn man keinen Ansatz hat ? Wie würdet ihr da rangehen, wenn ihr nicht wisst wie man sowas macht ?

Soweit es Windows betrifft:
  1. MSDN-Library durchsuchenWindows SDK bzw. MSDN: Erstmal direkte Suche probieren, bei Misserfolg durch Kategorien klicken
  2. www.codeproject.com: Wie bei 1.
  3. Google: Einfach die Begriffe auf englisch ausprobieren.
:wink:

mkinzler 9. Okt 2007 14:00

Re: So kann es nicht weitergehen
 
Über WMI kann man was alles abfragen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:07 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz