Delphi-PRAXiS

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

DeddyH 19. Jan 2008 23:28

Re: Erklären
 
Delphi-Grundwissen (nicht böse gemeint).

ScrollbarKopf 19. Jan 2008 23:31

Re: Erklären
 
Delphi Grundwissen ist gut gemeint der lehrer der uns dass bei bringt ist ein riesen a...... und voll.....bei ihm lernt man so gut wie nix

DeddyH 19. Jan 2008 23:37

Re: Erklären
 
Sehen wir mal von Deinem Lehrer ab (egal, wie gut oder schlecht der nun ist), erscheint mir persönlich nach den ersten Eindrücken Deiner Programmiererfahrung ein Screensaver etwas hoch gegriffen. Fang doch besser erstmal klein an, der Rest kommt mit der Zeit, schließlich ist noch kein Meister vom Himmel gefallen. Ich persönlich hatte nie einen Lehrer, nur Bücher und Foren und komme mittlerweile auch ganz gut zurecht, obwohl ich bei manchen Codes in diesem Forum nur noch mit den Ohren schlackern kann.

ScrollbarKopf 19. Jan 2008 23:39

Re: Erklären
 
Dass Proplem habe null ahnug was ich programmieren soll außerdem fehlen mir viele grundlagen

himitsu 19. Jan 2008 23:45

Re: Erklären
 
Der Code hat nichts mit dem Bildschirmschoner zu tun, also für einen Eigenen brauchst du eigentlich garnichts davon, oder alles ...


Dieses ist nur der Options-Dialog, also das wo Einstellungen gespeichert/gelesen/geändert werden.


> schau dir mal den restlichen Code an

DeddyH 19. Jan 2008 23:47

Re: Erklären
 
Das Problem kennt wohl jeder Anfänger: "was soll ich programmieren"? Ich denke, die SuFu sollte dazu eine Menge ausspucken. Und Deine erste Anlaufstelle sollte erstmal die Online-Hilfe sein. Sollte diese sich unklar ausdrücken (das kommt vor, ich weiß das), kannst Du gerne hier nachfragen, und auch dann, wenn Du ein logisches Problem hast. Aber bitte zeige dann Deinen bisherigen Quellcode zum Problem, das wird hier oftmals vergessen. Und nie den Kopf hängen lassen, möglich ist (fast) alles ;)

Carlo91 19. Jan 2008 23:52

Re: Erklären
 
Hi,
guck dich mal auf http://www.delphi-treff.de um. Da gibt es viele gute tuts für anfänger.

MfG Carlo

himitsu 19. Jan 2008 23:56

Re: Erklären
 
Aber (wenn ich mir den Code-Teil anseh) dann könnte es nicht schlecht sein, wen dich hier auch mal nach anderen ScreenSavern umschaust.

> ein ständig geladener Optionsdialog :shock:


außerdem kannst du dann auch vergleichen und Gemeinsamkeiten erkennen.


und wenn ich mich nicht irre, dann gibt/gab es hier in der DP auch irgendwo ein Tutorial zu dem Thema.

DeddyH 19. Jan 2008 23:59

Re: Erklären
 
Zitat:

Zitat von himitsu
und wenn ich mich nicht irre, dann gibt/gab es hier in der DP auch irgendwo ein Tutorial zu dem Thema.

Natürlich auch zu manchen anderen Themen ;)

Blackheart 20. Jan 2008 00:12

Re: Erklären
 
Hier fehlen einfach die Grundlagen, da hilft kein Verweis
auf andere Screensavertutorials (was für ein Wort) sondern
nur...
http://www.epinasoft.com/delphikurs/
http://delphi.zsg-rottenburg.de/lektionen.html
http://www.christian-stelzmann.de/in...crashkurs.html

Nuclear-Ping 20. Jan 2008 09:38

Re: Erklären
 
Zitat:

Zitat von ScrollbarKopf
Delphi Grundwissen ist gut gemeint der lehrer der uns dass bei bringt ist ein riesen a...... und voll.....bei ihm lernt man so gut wie nix

Zitat:

Zitat von ScrollbarKopf
Dass Proplem habe null ahnug was ich programmieren soll außerdem fehlen mir viele grundlagen

Wo ein Wille ist, ist auch ein Weg.

In der Schule war ich unseren Info-Lehrern immer um längen vorraus. Ich hab mich gelangweilt im Unterricht. Ergo hab ich von denen auch nix gelernt. Damals gabs bei uns noch nichtmal Internet. Ich hab mir dann Bücher gekauft und gelesen, Codebeispiele darin abgeschrieben, nachgemacht, versucht zu verstehen.
Meist hat man auch irgendein Spiel-Projekt in solchen Büchern.

Da kann man ne Menge lernen. Aber was man dazu auf jeden Fall braucht - und das kann einem auch kein Lehrer geben - ist Geduld, Zeit und den Willen dazu, den Weg zu gehen. Klingt vielleicht voll philosophisch. Aber auch hier gilt: Von nix kommt nix.

Mit 15 hast du auch das richtige frische Alter dazu. Ich hab mit 14 angefangen. :P


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:31 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