Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Erklären (https://www.delphipraxis.net/106964-erklaeren.html)

ScrollbarKopf 19. Jan 2008 22:33


Erklären
 
Kann mir bitte irgend jemand diesen Quellcode mit kommentaren in den zeilen ausfüllen kapiere ihn nicht im geringsten und es nützt mir nichts ihn einfach abzuschreiben.

Delphi-Quellcode:
var
  frmConfig: TfrmConfig;

implementation

{$R *.dfm}

uses
  IniFiles, uHelper, ShlObj;

procedure TfrmConfig.btnCancelClick(Sender: TObject);
begin
  Application.Terminate;
end;

procedure TfrmConfig.btnSaveClick(Sender: TObject);
var
  fn: string;
  ini: TIniFile;
begin
  fn := GetShellFolder(CSIDL_APPDATA) + '\CKAnts\';
  ForceDirectories(fn);
  fn := fn + 'config.xml';
  ini := TIniFile.Create(fn);

  ini.WriteInteger('main', 'fillmode', cbxMode.ItemIndex);
  ini.WriteInteger('main', 'bgcol', cbxBG.Selected);
  ini.WriteInteger('main', 'antcol', cbxAnts.Selected);
  ini.WriteBool('main', 'antrnd', cbRndAnt.Checked);
  ini.WriteBool('main', 'usescreen', cbScreenshot.Checked);
  ini.WriteBool('main', 'extonmouse', cbExitOnMouse.Checked);

  ini.Free;
  Application.Terminate;
end;

procedure TfrmConfig.cbRndAntClick(Sender: TObject);
begin
  cbxAnts.Enabled := not cbRndAnt.Checked;
end;

procedure TfrmConfig.cbScreenshotClick(Sender: TObject);
begin
  //cbxBG.Enabled := not cbScreenshot.Checked;
end;

procedure TfrmConfig.FormCreate(Sender: TObject);
var
  fn: string;
  ini: TIniFile;
begin
  ShowWindow( Application.Handle, SW_HIDE );
  SetWindowLong( Application.Handle, GWL_EXSTYLE,
                 GetWindowLong(Application.Handle, GWL_EXSTYLE) or
                 WS_EX_TOOLWINDOW and not WS_EX_APPWINDOW);
  ShowWindow( Application.Handle, SW_SHOW );
 
  fn := GetShellFolder(CSIDL_APPDATA) + '\CKAnts\';
  ForceDirectories(fn);
  fn := fn + 'config.xml';
  ini := TIniFile.Create(fn);

  cbxMode.ItemIndex := ini.ReadInteger('main', 'fillmode', 1);
  cbxBG.Selected := ini.ReadInteger('main', 'bgcol', clblack);
  cbxAnts.Selected := ini.ReadInteger('main', 'antcol', clred);
  cbRndAnt.Checked := ini.ReadBool('main', 'antrnd', False);
  cbScreenshot.Checked := ini.ReadBool('main', 'usescreen', True);
  cbExitOnMouse.Checked := ini.ReadBool('main', 'extonmouse', True);

  ini.Free;
end;

end.

DeddyH 19. Jan 2008 22:39

Re: Erklären
 
Sollen wir wirklich jede Zeile kommentieren? Sag doch lieber, was Du nicht verstehst.

ScrollbarKopf 19. Jan 2008 22:51

Re: Erklären
 
Ich verstehe vom ganzen code 2 zeilen und sonst nix

DeddyH 19. Jan 2008 22:57

Re: Erklären
 
Ok, da wiederholt sich aber einiges.

ScrollbarKopf 19. Jan 2008 22:59

Re: Erklären
 
Ich habe den Code net geswchrieben net meine schuld danke wenn du ihn für dumme (also für mcih übersetzt)

sirius 19. Jan 2008 23:00

Re: Erklären
 
Delphi-Quellcode:
procedure TfrmConfig.btnCancelClick(Sender: TObject);
begin
  Application.Terminate; //Programm beenden (sollte man aber nicht so machen; wer steigt schon mit dem Schleudersitz aus nem Flugzeug aus)
end;

procedure TfrmConfig.btnSaveClick(Sender: TObject);
var
  fn: string;
  ini: TIniFile;
begin
  fn := GetShellFolder(CSIDL_APPDATA) + '\CKAnts\'; //gibt ../Eigene Dateien/Anwendungsdaten zurück und hängt noch CKAnts an
  ForceDirectories(fn); //Wenn die Verzeichnisse noch nicht existieren, werden sie angelegt
  fn := fn + 'config.xml';
  ini := TIniFile.Create(fn); //Ini-Datei öffnen

  ini.WriteInteger('main', 'fillmode', cbxMode.ItemIndex); //und ini befüllen (näheres siehe Hilfe)
  ini.WriteInteger('main', 'bgcol', cbxBG.Selected);
  ini.WriteInteger('main', 'antcol', cbxAnts.Selected);
  ini.WriteBool('main', 'antrnd', cbRndAnt.Checked);
  ini.WriteBool('main', 'usescreen', cbScreenshot.Checked);
  ini.WriteBool('main', 'extonmouse', cbExitOnMouse.Checked);

  ini.Free;
  Application.Terminate; //Schleudersitz
end;

procedure TfrmConfig.cbRndAntClick(Sender: TObject);
begin
  cbxAnts.Enabled := not cbRndAnt.Checked;
end;

procedure TfrmConfig.cbScreenshotClick(Sender: TObject);
begin
  //cbxBG.Enabled := not cbScreenshot.Checked;
end;

procedure TfrmConfig.FormCreate(Sender: TObject);
var
  fn: string;
  ini: TIniFile;
begin
  //3 Befehle um den TaskbarEintrag zu verstecken (Warum vorher das Fenster verschwinden [SW_Hide] soll, weiß ich nicht)
  ShowWindow( Application.Handle, SW_HIDE );
  SetWindowLong( Application.Handle, GWL_EXSTYLE,
                 GetWindowLong(Application.Handle, GWL_EXSTYLE) or
                 WS_EX_TOOLWINDOW and not WS_EX_APPWINDOW);
  ShowWindow( Application.Handle, SW_SHOW );
 
 
  //wie oben, nur jetzt aus ini lesen
  fn := GetShellFolder(CSIDL_APPDATA) + '\CKAnts\';
  ForceDirectories(fn);
  fn := fn + 'config.xml';
  ini := TIniFile.Create(fn);

  cbxMode.ItemIndex := ini.ReadInteger('main', 'fillmode', 1);
  cbxBG.Selected := ini.ReadInteger('main', 'bgcol', clblack);
  cbxAnts.Selected := ini.ReadInteger('main', 'antcol', clred);
  cbRndAnt.Checked := ini.ReadBool('main', 'antrnd', False);
  cbScreenshot.Checked := ini.ReadBool('main', 'usescreen', True);
  cbExitOnMouse.Checked := ini.ReadBool('main', 'extonmouse', True);

  ini.Free;
end;

end.
Noch mehr Hilfe wäre unangebarcht du hast auch eine Hilfe in Delphi. Die bringt die Sachen schon auf den Punkt.

himitsu 19. Jan 2008 23:03

Re: Erklären
 
Also beim Meißten hilft die OH ... einfach mal da reinschauen was die zu den befehlen sagt
und du solltest das leicht rausbekommen.

bei ShowWindow SetWindowLong GetWindowLong ShowWindow hilft das MSDN,
aber in Kurz: dieses stellt wohl die Fensterdarstellung um (auf ToolWindow), auch wenn ich nicht ganz weiß, warum man dafür nicht die entpsrechende VCL-Eigenschafft benutzt :gruebel:
[add]ahhh *an kopf hau*

ShowWindow: nja, vielleicht will jemand sicherstellen, daß der Eintrag wirklich verschwindet, aber bei 'nem eh nicht sichtbarem Fenster wohl wirklich "unnütz"[/add]

wo hast du denn den Code her?
(am Einfachsten ist es ja den Ersteller zu fragen, wenn man was nicht weiß und es selber nicht rausbekommt)

sirius 19. Jan 2008 23:10

Re: Erklären
 
Zitat:

Zitat von himitsu
wo hast du denn den Code her?

"CKAnts"
Ich würde meinen da gibts hier nen Thread zu, wo dieses Programm vorgestellt/... wird.

himitsu 19. Jan 2008 23:15

Re: Erklären
 
jetzt wo du's sagst ... stümmt, der zuschnelle AmeisenSchoner von (vor)gestern oder so ... hab da aber nicht weiter reingeguckt :stupid:

ScrollbarKopf 19. Jan 2008 23:25

Re: Erklären
 
jetzt noch eine frage was von diesen ganzen code bracuhe ich wenn cih einen anderen screensaver erstellen möchte also keine ameisen


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:14 Uhr.
Seite 1 von 3  1 23      

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