Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Mein erstes Programm ohne Hilfe. (https://www.delphipraxis.net/158606-mein-erstes-programm-ohne-hilfe.html)

Connor Temple 23. Feb 2011 18:30

Mein erstes Programm ohne Hilfe.
 
Liste der Anhänge anzeigen (Anzahl: 1)
Nachdem ich mir die Tutorials mal zu Gemüte geführt hab, hab ich eben innerhalb von ein paar Minuten tatsächlich ein kleines, aber lauffähiges Programm zum Installieren einer nicht vorhandenen Software programmiert.
Über Kritik würde ich mich freuen, das es wirklich mein erstes Programm, ohne jegliche Art von Hilfe ist.

Mfg
Connor Temple

hans ditter 23. Feb 2011 18:53

AW: Mein erstes Programm ohne Hilfe.
 
Zunächst mal eine Frage: Wird mit dem Programm tatsächlich ein Programm installiert, oder ist das nur eine Simulation?
Dann gefällt mir das ganz gut, vor allem der Anhalten-Button finde ich gut, hat was. Wozu der Neustart-Button gut sein soll, weiß ich nicht.
Jedoch solltest du noch irgendwie klar machen, ob die Installation gerade läuft oder ob sie gerade angehalten ist.

Als letztes: Du könntest noch ein bisschen am Design basteln. Ist aber fast das unwichtigste am Ganzen... ;)

LG; hans ditter

Connor Temple 23. Feb 2011 19:26

AW: Mein erstes Programm ohne Hilfe.
 
Das ist nur ne Simulation, aber wirkt fast wie echt, oder?
Ja, der Timer verändert an mehreren Stellen seine Intervalle und da werd ich wohl nochmal was hinbauen, irgendeinen Funtext, oder so.
Der Neustart-Button ist halt um nach der "Installation" zurückzusetzen, oder auch schon mittendrin, und um das Label wieder verschwinden zu lassen.

Luckie 23. Feb 2011 19:45

AW: Mein erstes Programm ohne Hilfe.
 
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Gauge1.Progress := Gauge1.Progress + 1;
If Gauge1.Progress = 21 then Timer1.Interval := 5000;
If Gauge1.Progress = 26 then Timer1.Interval := 1;
If Gauge1.Progress = 48 then Timer1.Interval := 1000;
If Gauge1.Progress = 57 then Timer1.Interval := 100;
If Gauge1.Progress = 60 then Timer1.Interval := 1;
If Gauge1.Progress = 95 then Timer1.Interval := 10000;
If Gauge1.Progress = 98 then Timer1.Interval := 1000;
If Gauge1.Progress = 100 then Label1.Visible := True;
end;
Die gesamte Schöpfungskraft besteht also darin den Fortschrittsbalken der Gauge Komponente zu setzen. :gruebel:

Capa 23. Feb 2011 19:50

AW: Mein erstes Programm ohne Hilfe.
 
:) warum nicht jeder fängt klein an ;)
aber das mit der Formatierung is viel schlimmer *hust*

-187- 23. Feb 2011 19:53

AW: Mein erstes Programm ohne Hilfe.
 
Jetzt wird auf jedem Rechner die gleiche Installationszeit simuliert. Versuch noch mal einen zufälligen Timer einzubauen.
Tipp: Randomize, Random()

Viel Erfolg :D

PS: Der Neustart Button müsste eher "Reset" heißen. Achja, welche Tutorials musstest du durchgehen um dieses Werk zu meistern :D

implementation 23. Feb 2011 19:56

AW: Mein erstes Programm ohne Hilfe.
 
Daraus könntest du eine case-Verzweigung machen:
Delphi-Quellcode:
case Gauge1.Progress of
  21: Timer.Intervall := 5000;
  26, 60: Timer.Intervall := 1;
  48, 98: Timer.Intervall := 1000;
  57: Timer.Intervall := 100;
  95: Timer.Intervall := 10000;
  100: Label1.Show;
end;
:wink:

Connor Temple 23. Feb 2011 19:59

AW: Mein erstes Programm ohne Hilfe.
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich hab nochmal ein bisschen dran rumgebastelt...

Ich hab mir den Delphi Crashkurs mal so halb durchgelesen und danach ein bisschen mit den Werkzeugen rumgespielt...

Das mit dem zufälligen Timer wollte ich auch schon versuchen, aber naja, wie hier so schön gesagt wurde, jeder fängt klein an.

Und ja, mit dem Gauge-Balken, ist das denn so schlimm?

Und Case werde ich mir demnächst in Ruhe mal anschauen, nicht zuviel auf einmal, das verwirrt dann doch zu sehr, ich bin froh, dass es überhaupt ein bisschen läuft.^^

-187- 23. Feb 2011 20:16

AW: Mein erstes Programm ohne Hilfe.
 
Naja case und if hab ich mir schon gleichzeitig angeschaut und verglichen. Es ist ziemlich simple: Case kannst du nur bei abzählbaren Typen verwenden. Wozu das ganze? Wenn es an komplexere if..else..if Verschachtelungen geht dann kann man mit case den Code übersichtlich und kürzer gestalten.

Connor Temple 23. Feb 2011 20:29

AW: Mein erstes Programm ohne Hilfe.
 
Okay, ich werds mir demnächst wirklich mal ansehen, hört sich gut an.
Was mich noch interessiert, wie kann ich den PC nach Ablauf der Gauge-Leiste runterfahren?
Welchen Befehl muss man dafür eingeben? Shutdown -s -t 0 ?
So meinte nen Kumpel das... Aber ich glaub nicht, dass das klappt, dann meckert Delphi doch wieder...

-187- 23. Feb 2011 20:33

AW: Mein erstes Programm ohne Hilfe.
 
Naja den Befehl den dein Kumpel dir gegeben hat ist für das Command Line Tool "shutdown"...

Öffne mal deine CMD und gib shutdown -? ein. Du erhälst eine liste der verfügbaren Parameter. Du kannst zum Beispiel den PC runterfahren oder auch neustarten.
Naja das ganze über Delphi ist auch kein Problem. Schau dir mal ShellExecute an.

Schöner wäre es jedoch ohne die shutdown.exe von Windows klar zukommen :)

Connor Temple 23. Feb 2011 20:39

AW: Mein erstes Programm ohne Hilfe.
 
Wenn ich im CMD shutdown -? eingebe öffnet sich für eine Nanosekunde das Fenster, dann verschwindet es wieder...
Wahrscheinlich steht das da auch mit der ShellExecute drin oder?
Denn ein F1 Druck in Delphi hat mir kein Ergebnis gebracht.

-187- 23. Feb 2011 20:43

AW: Mein erstes Programm ohne Hilfe.
 
Nein. Die CMD bzw shutdown.exe hat nichts mit Delphi zu tun. Schreib mal eine batch Datei. (.bat Datei)

In der steht:
Code:
shutdown -?
pause
ShellExecute hingegen ist eine Windows Funktion und auch über ShellExecute in Delphi verwendbar.

Anthrox 23. Feb 2011 21:00

AW: Mein erstes Programm ohne Hilfe.
 
Computer herunterfahren ist recht einfach,
hier mal ein "geklautes" Stück Code (von hier kopiert)
Delphi-Quellcode:
function ExitWin(flag:word): Boolean;
var vi : TOSVersionInfo;
    hToken : THandle;
    tp : TTokenPrivileges;
    h : DWord;

begin
  //result := false;
  vi.dwOSVersionInfoSize:=SizeOf(vi);
  GetVersionEx(vi);
  if vi.dwPlatformId = VER_PLATFORM_WIN32_NT then // Windows NT
  begin
    // Achtung bei Delphi 2 muß @hToken stehen ... !!!! ?????
    OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES,hToken);
    LookupPrivilegeValue(nil,'SeShutdownPrivilege',tp.Privileges[0].Luid);
    tp.PrivilegeCount := 1;
    tp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
    h := 0;
    AdjustTokenPrivileges(hToken,False,tp,0,PTokenPrivileges(nil)^,h);
    CloseHandle(hToken);
    result := ExitWindowsEx(flag,0);
  end
  else // Windows 95
  begin
    Result := ExitWindowsEx(flag,0);
  end;
end;
Diese Funktion besorgt sich auch gleich die benötigten Rechte (wenn nötig und möglich natürlich :)) um Windows herunterzufahren.

Der Parameter "flag" kann folgende Werte annehmen:
Code:
EWX_LOGOFF
EWX_REBOOT
EWX_SHUTDOWN
Die sind ja wahrscheinlich selbsterklärend :wink:

Aber ich denke doch du wirst diesen Code nicht missbrauchen und jemanden einen bösen Streich spielen :stupid:

Connor Temple 23. Feb 2011 21:06

AW: Mein erstes Programm ohne Hilfe.
 
Würd ich doch nie tun xD
Zum Anfang sind Funprogramme doch genau das richtige, weil ich bevor ich Delphi verstanden hab immer dachte, es wäre dämlich, jetzt wo ich mal was hinbekomme macht es richtig Spaß.^^

Hmm, bei mir kommen immer Fehlermeldungen mit dem Code, egal wo ich ihn einfüge...
Gibts nicht einfach einen normalen Befehl zum runterfahren, einen Einzeiler, der sofort ausschaltet?

-187- 23. Feb 2011 21:47

AW: Mein erstes Programm ohne Hilfe.
 
Zitat:

Zitat von Connor Temple (Beitrag 1083919)
..weil ich bevor ich Delphi verstanden hab immer dachte...

Interessant :D Ich bin gespannt auf weiteres ;)

Luckie 23. Feb 2011 22:01

AW: Mein erstes Programm ohne Hilfe.
 
Zitat:

Zitat von Connor Temple (Beitrag 1083919)
bei mir kommen immer Fehlermeldungen mit dem Code

Ah ja. Und wie stellst du dir vor dass wir dir helfen sollen?

Zitat:

Gibts nicht einfach einen normalen Befehl zum runterfahren, einen Einzeiler, der sofort ausschaltet?
Meinst du nicht auch, dass wenn es den geben würde wir ihn dir gegeben hätten oder du ihn mit Google gefunden hättest? :roll:

Und was meinst du, wie viel Spaß es macht, wenn du was nützliches programmierst -- und wenn es nur für dich ist?

-187- 23. Feb 2011 22:32

AW: Mein erstes Programm ohne Hilfe.
 
Connor dir fehlen Basics sonst würdest du nicht sowas sagen wie "..egal wo ich ihn einfüge..." ;)

Ließ dir mal einen Artikel zu Funktionen und Prozeduren durch. Dann weisst du schonmal wie du den Code einsetzt :)

Connor Temple 24. Feb 2011 10:14

AW: Mein erstes Programm ohne Hilfe.
 
Ja, ich weiß, dass mir Basics fehlen, die bringe ich mir dann nach und nach selber bei, durch ausprobieren usw.


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

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