Delphi-PRAXiS
Seite 3 von 9     123 45     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Reload (https://www.delphipraxis.net/136044-reload.html)

Fussel9 22. Jun 2009 19:31

Re: Reload
 
:roll: immer diese programmierer...
nee jetz ma im ernst...

DeddyH 22. Jun 2009 19:33

Re: Reload
 
MSDN-Library durchsuchenShellExecute

mkinzler 22. Jun 2009 19:33

Re: Reload
 
Zitat:

Zitat von DeddyH
Zitat:

Zitat von Fussel9
Hi, schön das es hier so eine rege Diskussion gab, aber könte mir bitte mal jemand sie ShellExecute erklären? also die Parameter und so?

Nein, dazu bin ich zu schreibfaul :tongue:

Zudem gibt es ja die Delphi-Hilfe und Foren mit Suchfunktion ( wie diese hier) :zwinker:

Fussel9 22. Jun 2009 19:35

Re: Reload
 
Es gibt auch schon das nächste Problem mit meiner alternativ Lösung:


Delphi-Quellcode:
procedure TForm1.Button7Click(Sender: TObject);
begin
name:=EName.Text;
Mediaplayer1.Stop;
save := TIniFile.Create('.\save\SaveFile.ini');
//try
if save.SectionExists(name)=True then
  //wenn name existiert:
  begin
    if MessageDlg('Kaktus existiert bereits, Laden?',mtConfirmation,mbYesNo,0)=mrYes then
      //wenn Laden Ja
      begin
        sek:=save.ReadInteger(name,'ZeitSek',0);
        min:=save.ReadInteger(name,'ZeitMin',0);
        h:=save.ReadInteger(name,'ZeitH',0);
        hunger:=save.ReadInteger(name,'Hunger',30);
        durst:=save.ReadInteger(name,'Durst',30);
        laune:=save.ReadInteger(name,'Laune',50);
        alter:=save.ReadInteger(name,'Alter',0);
        gesundheit:=save.ReadInteger(name,'Gesundheit',100);
      //finally
        save.Free;
        LSekunden.caption:=IntToStr(sek);
        LMinuten.caption:=IntToStr(min);
        LStunden.caption:=IntToStr(h);
        LAHunger.caption:=IntToStr(hunger);
        LADurst.caption:=IntToStr(durst);
        LALaune.caption:=IntToStr(laune);
        LAAlter.caption:=IntToStr(alter);
        LAGesundheit.caption:=IntToStr(gesundheit);
        frame:=0;
        EssenF:=0;
        TrinkenF:=0;
        SpielenF:=0;
        Mediaplayer2.Play;
        Form1.Caption:=EName.Text;
        Button7.visible:=False;
        EName.visible:=False;
        Label1.visible:=False;
        Panel5.visible:=False;
        PName.caption:=EName.Text;
      end
      //Wenn Laden Nein-> Else:Empty...
  end
else
//Wenn name nicht existiert
  sek:=save.ReadInteger(name,'ZeitSek',0);
  min:=save.ReadInteger(name,'ZeitMin',0);
  h:=save.ReadInteger(name,'ZeitH',0);
  hunger:=save.ReadInteger(name,'Hunger',30);
  durst:=save.ReadInteger(name,'Durst',30);
  laune:=save.ReadInteger(name,'Laune',50);
  alter:=save.ReadInteger(name,'Alter',0);
  gesundheit:=save.ReadInteger(name,'Gesundheit',100);
  save.Free;
  LSekunden.caption:=IntToStr(sek);
  LMinuten.caption:=IntToStr(min);
  LStunden.caption:=IntToStr(h);
  LAHunger.caption:=IntToStr(hunger);
  LADurst.caption:=IntToStr(durst);
  LALaune.caption:=IntToStr(laune);
  LAAlter.caption:=IntToStr(alter);
  LAGesundheit.caption:=IntToStr(gesundheit);
  frame:=0;
  EssenF:=0;
  TrinkenF:=0;
  SpielenF:=0;
  Mediaplayer2.Play;
  Form1.Caption:=EName.Text;
  Button7.visible:=False;
  EName.visible:=False;
  Label1.visible:=False;
  Panel5.visible:=False;
  PName.caption:=EName.Text;
end;
Hier mal die Proz um dies eig. geht, Wenn Laden?-> Nein, sollte doch eigentlich nichts passieren oder? Falsch, er macht muter fröhlich mit dem ganznormalen handler weiter also quasi mit dem Laden?-> Ja Handler oder dem SectionExists->False handler... aber warum?

Zwoetzen 22. Jun 2009 19:40

Re: Reload
 
Fehlt im Else-Zweig zufällig das Begin-End außenrum? ;)

DeddyH 22. Jun 2009 19:40

Re: Reload
 
Name ist ein ganz blöder Name für eine Variable, und es fehlt ein begin-end-Block. Mehr ist mir auf den ersten Blick nicht aufgefallen.

[edit] Doch, benutze absolute Pfade, sonst ist nicht klar, wo die Ini gesucht werden soll, und auf true sollte man auch nicht abfragen. [/edit]

mkinzler 22. Jun 2009 19:42

Re: Reload
 
Zudem ist es gefährlich einen relativen datenpfad (zum Arbeitsverzeichnis != Anwendungsverzeichnis) zu verwenden

Popov 22. Jun 2009 19:42

Re: Reload
 
Zitat:

Zitat von Fussel9
Hi, schön das es hier so eine rege Diskussion gab, aber könte mir bitte mal jemand sie ShellExecute erklären? also die Parameter und so?

Also bei vielen Funktionen würde ich dir bereitwilliger helfen, aber gerade ShellExecute müßte tausendfach im Forum behandelt worden sein, weil sie auch sehr oft benutzt wird. Man braucht nur die Suche bemühen.

Edit:

Auf der anderen Seite sind wahrscheinlich 99,99% alle Suchergebnisse die, daß man gebeten wird die Suche zu bemühen :gruebel:

Also ausnahmsweise ;)

ShellExecute(Handle, Anweisung, PChar(Programmpfad), PChar(Programmparameter), PChar(Arbeitsordner), FensterArt);

Als Beispiel:

Delphi-Quellcode:
Uses
  ShellApi;

ShellExecute(0, 'open', PChar(Programmpfad), nil, nil, SW_NORMAL);

haentschman 22. Jun 2009 19:43

Re: Reload
 
Hallo,
- nimm mal die Anweisungen nach dem else komplett in ein begin..end
- hinter dem end aus dem begin..end der if Anweisung würde ich noch ein ; setzen
- Überprüfung nicht auf True
Delphi-Quellcode:
if save.SectionExists(name)=True then
sondern
Delphi-Quellcode:
if save.SectionExists(name) then
dann probier mal...

roter Kasten...egal 8) Gott bin ich langsam...

mkinzler 22. Jun 2009 19:46

Re: Reload
 
Zitat:

Auf der anderen Seite sind wahrscheinlich 99,99% alle Suchergebnisse die, daß man gebeten wird die Suche zu bemühen Grübelnd...

Also ausnahmsweise Wink
Und das Betätigen der F1-Taste kann man ja wirklich keinem zumuten. :stupid:


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:48 Uhr.
Seite 3 von 9     123 45     Letzte »    

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