Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Half-Life Key-changer / if ... then problem (https://www.delphipraxis.net/3933-half-life-key-changer-if-then-problem.html)

sharkx 6. Apr 2003 18:38


Half-Life Key-changer / if ... then problem
 
Hallo :>

ich schreibe gerade einen key-Changer für half-life.
Funktioniert eigentlich soweit auch ganz gut, bis auf eine blöde if anweisung :/

Delphi-Quellcode:
procedure TForm1.Button6Click(Sender: TObject);
var
  reg: tregistry;
  buffer: String;
  i: integer;
begin
  if RadioButton4.checked and ListBox1.Selected[i] then
  begin
    Buffer := Listbox1.Items.Strings[listbox1.Itemindex];
    reg := tregistry.create;
    reg.RootKey := HKEY_CURRENT_USER;
    try
      Reg.OPENKEY('\Software\Valve\Half-Life\Settings\',true);
    except
      Reg.CreateKey('\Software\Valve\Half-Life\Settings\');
    end;
    reg.writestring('Key',buffer);
    reg.free
  end
  else
  begin
    if listbox1.Selected[i] then
    begin
      reg := tregistry.create;
      reg.RootKey := HKEY_CURRENT_USER;
      try
        Reg.OPENKEY('\Software\Valve\CounterStrike\Settings\',true);
      except
        Reg.CreateKey('\Software\Valve\CounterStrike\Settings\');
      end;
      reg.writestring('Key',buffer);
      reg.free
      end
      else
        showmessage('Klicke bitte einen key an!');
  end;
end;
die prozedur checkt ob radiobutton 4 aktiviert ist, und setzt dann die reg datei, ist radiobutton4 nicht aktiviert, setzt er nen anderen key. Jedoch sollte zu gleich auch gecheckt werden, ob überhaupt in der Listbox einen key markiert wurde!
und genau da liegt mein problem. das Programm lässt sich compilieren, ich kann auch die keys setzen, jedoch ...
markiere ich keinen eintrag in der listbox, schmiert mir das programm ab :/

Vielen dank im vorraus für eure Hilfe :)

Achja ...
Wenn ihr tips habt, wie ich das ganze vieleicht etwas systemfreundlicher ( sprich weniger syslastung ) Coden kann, bin ich natührlich sehr dankbar :)

greetz
sharkx

[edit=Daniel B]Delphi-Tags gesetzt und Code formatiert. MfG Daniel B.[/edit]

Daniel B 6. Apr 2003 18:55

Hallo und herzlich Willkommen im Forum!

prüfen ob Eintrag markeirt ist, kann man auch so, MultiSelect muss auf True stehen.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  if ListBox1.SelCount = 1 then
  begin
    ShowMessage('');
  end;
end;
Grüsse, Daniel :hi:

sharkx 6. Apr 2003 19:17

huhu :>

das problem ist da aber, ich hab in der listBox reg-keys stehen. Da kannst wohl schlecht nen Muslti-Select gestatten und somit einen "ungültigen" Key in die reg schreiben.

Daniel B 6. Apr 2003 19:56

Hallo,

nun, ich bin von dem hier ausgegangen:

"Jedoch sollte zu gleich auch gecheckt werden, ob überhaupt in der Listbox einen key markiert wurde!
und genau da liegt mein problem"

Und dafür war die Lösung. Wenn MSelect auf False ist, kann man zwar nur einen Eintrag markieren, aber somit ist die ganze abfrage überflüssig. Ich denke Du solltest mal Deinen Code im OnClick oder OnDblClick der LB schreiben.
Diese beiden Prozeduren werden ausgeführt, wenn Du einen Eintrag markeirst, oder ein Doppelklick drauf machst.
Am Sinnvollsten ist wohl OnDblClick. Erst bei Doppelklick wird der Code ausgeführt.

Grüsse, Daniel :hi:

Uncle Cracker 27. Mai 2003 16:56

Wusste gar nicht das es erlaubt ist einen Keychanger hier anzubieten.
Habe auch schon einen für CS geschrieben. Dieser beinhaltet über 20 funktionstüchtige Keys, doch habe mir nie getraut ihn hier zum Download freizugeben, da ich dachte, dass es sofort geschlossen wird. Wenn ich darf stelle ich ihn gern rein.

Darty 28. Mai 2003 08:09

Ich habe so eins vor Urzeiten schon geschrieben .. Da lernte ich mit der Registry umzugehen.

@Uncle Cracker: Manche haben 2 Keys da eine deutsche und eine englische Version vorliegen. In Deinem Fall mit den 20 Keys hört es sich schon ein wenig merkwürdig an das Spiel 20 mal in sein Regal stehen zu haben.

Uncle Cracker 28. Mai 2003 20:15

Ich habe extra so viele Keys ausgwählt, da ein Freund von mir meinte, dass wenn es im LAN 3x die gleiche Seriennummer gibt, funktioniert das nicht. Deshalb sind soviele Keys für größere LAN-Partys nützlich.

Darty 29. Mai 2003 00:54

Woher die Keys sind weisste auch nicht oder ? :)

Übrigens im Lan spielt dass keine Rolle weil da keine WonAuth benötigt wird :)


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