Re: [SUCHE] Mentor/Meister /Leherer
Zitat:
Deswegen beantworte ich auch keine Fachfragen in PNs oder E-Mail, sondern verweise dann immer auf das Forum. |
Re: [SUCHE] Mentor/Meister /Leherer
@Gabberjool:
Wie wärs wenn du dir mal ein Buch oder sowas zulegst? :) Wenn du, wie du in nahezu jedem Beitrag betonst, tiefer in die Materie gehen willst, könnte es durchaus nicht schaden sich von der Pike auf gründlich mit Delphi (bzw. Programmierkonzepten an sich) zu beschäftigen. [Hatte ich da nicht vor kurzem einen Thread gesehen wie "Programmierbücher die man gelesen haben muss" ? :gruebel: ] Greetz |
Re: [SUCHE] Mentor/Meister /Leherer
Zitat:
|
Re: [SUCHE] Mentor/Meister /Leherer
Ich denke, um zu lernen, was boolsche Typen und Strings sind oder wann und warum man case verwendet tut es auch ein einfaches Tutorial. Ich denke diese Grundlagen (Typen, Anweisungen usw.) hat man innerhalb kürzester Zeit drauf. Dann kann es sicher schnell ans Eingemachte gehen. Und so wie er schreibt hat er ja schon Programmiererfahrung. Es wohl nur an den Basisdingen speziell zu Delphi zu mangeln. Das ist dann sicher schneller gelesen und begriffen als hier erklärt. Wenn dann was nicht klar wird ist eine Erläuterung des wenn und aber hier schneller getan.
Gruß oki |
Re: [SUCHE] Mentor/Meister /Leherer
Hey erstmal danke für die viele antworten und informationen.
Ich lese im moment viele dokumentationen: wie: Zitat:
Jedoch sparen die leute an beispielen. ^^ ----------------------------------------------------------------------------- Ach sooooo..... Zitat:
|
Re: [SUCHE] Mentor/Meister /Leherer
Zitat:
Wenn man der englischen Sprache nicht (einigermaßen) mächtig ist, artet das Lernen einer Programmiersprache schnell zum stupiden Vokabel-lernen aus, man kommt gar nicht mehr dazu sich die Syntax der Sprache anzueignen. Ergo, zuerst Englisch lernen, dann programmieren. :zwinker: |
Re: [SUCHE] Mentor/Meister /Leherer
Zitat:
|
Re: [SUCHE] Mentor/Meister /Leherer
Zitat:
|
Re: [SUCHE] Mentor/Meister /Leherer
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Hey danke du hast mir das so gut erklärt ! Checke das echt total gut, ..also ich denke ich check es gut habs nun so hingekrigt mit rum testen. oder ist das wider zu umständlich?
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin Probar1.Value := Probar1.Value +1; case Probar1.Value of 0..3, 5: begin Label1.Caption := 'Archive werden gesucht'; end; 6..9, 11: begin Label1.Caption := 'Archive werden Entpackt.'; end; 13..45, 47: begin Label1.Caption := 'Dateien werden installiert.'; end; 48..76, 79: begin Label1.Caption := 'Verknüpfungen werden erstellt.'; end; 80..89, 91: begin Label1.Caption := 'Registry wird geschriben.'; end; 92..99, 100: begin Label1.Caption := 'Installation beendet.'; end; end; Application.ProcessMessages; end; EDIT
Delphi-Quellcode:
Für was ist eigentlich Application.ProcessMessages wichtig... den es Funktioniert auch wen ich es weg lasse.
procedure TForm1.Timer1Timer(Sender: TObject);
begin Probar1.Value := Probar1.Value +1; case Probar1.Value of 0..3, 5: begin Label1.Caption := 'Archive werden gesucht'; sleep(1900); end; 6..9, 11: begin Label1.Caption := 'Archive werden Entpackt.'; sleep(1400); end; 13..45, 47: begin Label1.Caption := 'Dateien werden installiert.'; sleep(100); end; 48..76, 79: begin Label1.Caption := 'Verknüpfungen werden erstellt.'; sleep(1900); end; 80..89, 91: begin Label1.Caption := 'Registry wird geschriben.'; sleep(2900); end; 92..99, 100: begin Label1.Caption := 'Installation beendet.'; end; end; Application.ProcessMessages; end; Das ist zwar eine gut simulation doch ich will eigentlich ein Richtigen Progressbar der durch die Daten-Menge bestimmt wird. Lg ralf |
Re: [SUCHE] Mentor/Meister /Leherer
Zitat:
|
Re: [SUCHE] Mentor/Meister /Leherer
push
|
Re: [SUCHE] Mentor/Meister /Leherer
Um halb eins zu pushen ist natürlich immer sehr geschickt... :mrgreen:
Aber warum pushen? Hier ist doch keine Frage mehr offen, oder? Zitat:
|
Re: [SUCHE] Mentor/Meister /Leherer
Wenn die Position der ProgressBar den Ladefortschritt anzeigen soll, dann musst du die Position auch beim Laden entsprechend setzen.
Zum Beispiel bei einer Kopierroutine: Erste Datei kopieren Position der ProgressBar erhöhen Nächste Datei kopieren Position der ProgressBar erhöhen ... Dabei muss man eben schauen, welcher Vorgang anteilig wie lange dauert und dementsprechend die Position hochsetzen. |
Re: [SUCHE] Mentor/Meister /Leherer
Zitat:
Zitat:
|
Re: [SUCHE] Mentor/Meister /Leherer
Zitat:
Wo wird da was simuliert? |
Re: [SUCHE] Mentor/Meister /Leherer
Zitat:
Da man zwischen manchen Vorgängen kein Positionsupdate machen kann und manche unerwartet lange dauern, springt die Anzeige meistens etwas. Man muss eben versuchen das möglichst gut hinzubekommen. |
Re: [SUCHE] Mentor/Meister /Leherer
wie gesagt meine frag ist wie ich so was Visualisiere ... auch über case ?
|
Re: [SUCHE] Mentor/Meister /Leherer
Mach doch erst einmal deinen normalen Ablauf fertig. Schau, ob der so lange dauert, dass du eine Fortschrittsanzeige brauchst (denn die braucht auch Zeit), und wenn ja, dann füge diese ein.
Wenn du den Quelltext ansonsten fertig hast, dann musst du dazwischen ja nur an günstigen Positionen die Position der ProgressBar setzen. |
Re: [SUCHE] Mentor/Meister /Leherer
ja es braucht eine, da ich eine Installation machen will *Manuel *
|
Re: [SUCHE] Mentor/Meister /Leherer
Das heißt ja nicht, dass die so lange dauert, dass du eine Fortschrittsanzeige brauchst. ;-)
Aber generell habe ich ja gesagt wie. Kopiere die erste Datei, setz die Position z.B. auf 20, kopiere die zweite, setz auf 50, die dritte 80, Registryeinträge machen, einrichten, usw., 95 usw. |
Re: [SUCHE] Mentor/Meister /Leherer
sry hab das wohl ganz vergessen anzugeben ich bin ein anfänger und schnall mit deiner aussage rein garnix....
Beispiel-Code wäre von Vorteil |
Re: [SUCHE] Mentor/Meister /Leherer
Dann zeig doch einfach einmal den Code, der bei dir währenddessen so lange dauert, dass eine Fortschrittsanzeige nötig ist. Da gibts nicht viel zu ändern dann.
Delphi-Quellcode:
Und so weiter. Du musst die Position eben zwischen deinem restlichen Code setzen.
CopyFile(...)
ProgressBarX.Position := 20; Application.ProcessMessages; // damit dein Programm noch reagiert CopyFile(...) ProgressBarX.Position := 50; Application.ProcessMessages; // damit dein Programm noch reagiert |
Re: [SUCHE] Mentor/Meister /Leherer
ach so.. also wider genau wie die Simulation, ausser das ich zwischen den Begin end; Blöcke das kopieren rein schreib....
was meinst du damit:
Delphi-Quellcode:
hab schon mal gefragt was das ist aber ich verstehe es nicht....
Application.ProcessMessages; // damit dein Programm noch reagiert
|
Re: [SUCHE] Mentor/Meister /Leherer
Was du sicherlich weißt: Windows funktioniert mit Botschaften, die im Hintergrund zwischen Fenstern ausgetauscht werden. Dafür hat ein Programm eine Botschaftenwarteschlange, in der die Botschaften ankommen. Von dort werden sie dann abgeholt und ausgewertet.
Solange du jetzt Code ausführst, können diese Botschaften nicht verarbeitet werden. Deshalb sieht es für das System so aus als wäre die Anwendung abgestürzt, denn diese reagiert nicht mehr auf die an sie gesendeten Botschaften. Zu den Botschaften gehören auch die Botschaften, die das Neuzeichnen des Fensters verursachen würden. Das heißt Änderungen, die du an der Oberfläche (Labels, ...) vornimmst, werden auch zunächst nicht sichtbar. Durch das Aufrufen von Application.ProcessMessages wird die Botschaftenwarteschlange abgearbeitet und die darin aufgelaufenen Botschaften werden verarbeitet. Deshalb sieht die Anwendung nach außen hin wieder reagierend aus und die Oberfläche wird ggf. neu gezeichnet. |
Re: [SUCHE] Mentor/Meister /Leherer
WOW... echt nett, für die ausführliche Erklärung. Und jetzt ist es, auch mir klar wofür das ist....
BESTEN DANK |
Re: [SUCHE] Mentor/Meister /Leherer
4monate später....
So hab Sau viel gelesen versteh auch 1000mal mehr als vorher. Hab schon unzählige Tools fertig gestellt ohne irgendwelche fragen zu stellen jedoch stellt sich mir momentan ein Problem. 1. Ich Bau gerade an meinem eigenen Buchhaltung's Programm Rum und es funktioniert auch sehr gut, da ich aber über die Listbox die Einträge mache und das nicht so schön ausschaut würd ich halt gern das gazne über sheets erstellen jedoch kann ich die sheets noch so ansprechen wie ich will die reagieren nicht drauf oder der Compiler spuckt Fehler aus. (jedoch mehr dazu wenich mit meinem pc wider Online bin).... 2. Hab ich noch eine frage durch die Tutorials usw weiss ich ja wie man procedure anlegt und Funktionen jetzt aber wen ich eine normale Prozedur wie z.b. eines Editors für das Neu,öffnen,Speichern schreib:
Delphi-Quellcode:
(weiss nicht ob der Code 100% grammatikalisch stimmt hab es aus dem Kopf geschrieben)
Private
procedure DateiDialog(sender: TObject); procedure TForm1.DateiDialog(sender: TObject); begin case TComponent(sender).Tag of 1: begin Memo.Clear; FileName:='Neue Date.txt'; end; 2: begin if openDialog.execute then begin Memo.lines.loadFromFile(OpenDialog.FileName); FileName:=OpenDialog.FileName; StatusBar.Panels[0].Text.FileName; end; 3: begin FileName:=SaveDialog.FileName; SaveDialog.InitiDir:=ExtractPath(SaveDialog.fileName); if SaveDialog.execte then begin memo.lines.savetofile(SaveDialog.FileName); FileName:=SaveDialog.Filename; Statusbar.panles[0].text:=filename; end; end; procedure TForm1.button1click(Sender: TObject); begin DateiDialog(Sender); end; Ist es besser das ganze in einer Prozedur zu halten oder auf jeden einzelnen Button zu schreiben... oder ist der Sinn eine Prozedur nur das es halt einfach ist wen man es mehrmals verwendet. (hab zurzeit kein Internet sehe also heute bis 12:00 und dann erst am 10.August bis dann danke schon mal für die antworten... great |
Re: [SUCHE] Mentor/Meister /Leherer
Im Prinzip ist es Geschmackssache. Ich persönlich würde jeweils eine eigene Methode dafür schreiben - zumal Öffnen und Speichern inhaltlich unterschiedliche Dinge machen und das ganze ja auch mal aufwändiger werden kann. Dann ist eine Riesen-Methode schwerer zu durchblicken. Ich weiß ja nicht, wie dein Programm aussieht, aber mit einem ActionManager und Actions kann viel zusätzliche Arbeit gerade bei Öffnen/Speichern/etc. vermeiden.
|
Re: [SUCHE] Mentor/Meister /Leherer
ja das klar das mach ich normal auch über den aktionmanager hatte nur Grad kein andre Beispiel code zu hand oder so...
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:39 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