Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Problem mit FormKeyPress (https://www.delphipraxis.net/113497-problem-mit-formkeypress.html)

Danül 8. Mai 2008 18:17


Problem mit FormKeyPress
 
Hallo, ich bins mal wieder ;)

Ich wollte heute einige Hotkeys festlegen die ich drücken kann damit etwas passiert.
Eigentlich klappt dies auch bzw. ich kann 2-3 Hotkeys binden aber dann geht auf einmal kein einziger mehr.
Als Fehlermeldung steht da:
[Pascal Fataler Fehler] F2039 Ausgabedatei 'C:\Dokumente und Einstellungen\Administrator\Desktop\Informatik \DelphiHauptmenü\Project1.exe' kann nicht erstellt werden
Ich verändere NICHTS an den vorherigen Hotkeys, bei mir war es gerade z.B. der Fall dass ich anstatt + Hotkey nen - Hotkey dazugetan habe... und dann geht wie gesagt nichts mehr... Kein Key funktioniert mehr und ich weiß nicht warum.

Hab den Quelltext mal eingefügt: die ersten beiden Hotkeys funktionierten.... als ich den dritten hinzugefügt habe erscheint nun der Error und es geht nichts mehr.


Ich danke euch vielmals für eure Hilfe ;)

Daniel
Oh, habs falsch verlinkt den Quellcode, hier ist er nun ;)
Code:
procedure TForm2.FormKeyPress(Sender: TObject; var Key: Char);
begin
If Key = #027     //Escape//
then begin
  Form2.Visible:=false;
  Form1.Visible:=true;
end;

If Key = #049      //1 für Minus bzw. Gang zurückschalten//
then begin
i:=i-1 ;
panel1.caption:=inttostr(i);
end;

If Key = #050      //1 für Plus bzw. Gang hochschalten//
then begin
i:=i+1 ;
panel1.caption:=inttostr(i);
end;

end;
Key 027,049 funktionierten, dann kam 050 dazu und der Fehler ;)

Die Muhkuh 8. Mai 2008 18:18

Re: Problem mit FormKeyPress
 
Stimmt der Pfad?
Läuft die Exe vielleicht noch (TaskManager :arrow: Prozesse)?

Fussball-Robby 8. Mai 2008 18:19

Re: Problem mit FormKeyPress
 
Zitat:

[Pascal Fataler Fehler] F2039 Ausgabedatei 'C:\Dokumente und Einstellungen\Administrator\Desktop\Informatik \DelphiHauptmenü\Project1.exe' kann nicht erstellt werden
Sieht so aus, als würde die Exe noch laufen, dann kann Delphi nicht neu kompilieren.

Edit: Man, immer diese schnellen Rüsselmöpse :mrgreen:

Danül 8. Mai 2008 18:21

Re: Problem mit FormKeyPress
 
Oh hey, das ging ja mal fix ;)

Danke vielmals, das erklärt zumindest den Fatal Error, ich hatte wirklich die Exe noch am laufen.

Allerdings funktionieren die Hotkeys immer noch nicht


grüße Daniel

Die Muhkuh 8. Mai 2008 18:25

Re: Problem mit FormKeyPress
 
Die funktionieren auch nur, wenn die Form fokusiert ist.

Wenn Du richtige Hotkeys willst Hier im Forum suchenRegisterHotkey

Danül 8. Mai 2008 20:02

Re: Problem mit FormKeyPress
 
hm wie meinste das mit die Form muss fokussiert sein?

Ich konnte ja 2 der Hotkeys zum laufen bringen, teilweise auch 3. Dann speicher ich oder will noch einen hinzufügen und dann funktioniert keiner mehr....

Fussball-Robby 8. Mai 2008 20:14

Re: Problem mit FormKeyPress
 
Was heißt, es funktioniert keiner mehr? Gibts nen Fehler, oder passiert einfach nichts?
Du könntest es z.B. so machen(OnKeyDown):
Delphi-Quellcode:
procedure TMyForm.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  case Key of
    vk_Escape: begin
                 Form2.Visible := False;
                 Form1.Visible := True;
               end;
    vk_Add: begin
              Inc(i);
              Panel1.Caption := IntToStr(i);
            end;
    vk_Subtract: begin
                   Dec(i);
                   Panel1.Caption := IntToStr(i);
                 end;
  end;
end;
KeyPreview der Form sollte auf True sein.

Besser wäre es allerdings, wenn du für das ändern des Gangs eine eigene prozedur schreibst.

Mfg

Apollonius 8. Mai 2008 20:16

Re: Problem mit FormKeyPress
 
Dir ist aber bekannt, dass man in Case-Of-Konstrukten auch begin-end verwenden kann?
Ich bin zwar ein ausgesprochener Freund von in Maßen eingesetztem Goto, aber hier ist es wirklich nicht zu empfehlen.

Fussball-Robby 8. Mai 2008 20:21

Re: Problem mit FormKeyPress
 
Zitat:

Zitat von Apollonius
Dir ist aber bekannt, dass man in Case-Of-Konstrukten auch begin-end verwenden kann?
Ich bin zwar ein ausgesprochener Freund von in Maßen eingesetztem Goto, aber hier ist es wirklich nicht zu empfehlen.

Natürlich weiß ich das, ich benutze das begin..end in case aber nicht so gerne. Wird mir dann manchmal zu unübersichtlich, ist halt geschmackssache. Wieso sollte man goto dort denn nicht verwenden?

Danül 8. Mai 2008 20:25

Re: Problem mit FormKeyPress
 
hm mittlerweile hab ich das Problem gefunden....
Ich kann die Form nicht auf visible:=false setzen, da Buttons/Panels auf der Form sind.
Ich brauch aber unbedingt ein ,,wechseln'' der Form.

Der komplette Knopf geht nicht mehr nachdem ein Objekt auf der Form ist :(

Fussball-Robby 8. Mai 2008 20:26

Re: Problem mit FormKeyPress
 
Delphi-Quellcode:
MyForm.KeyPreview := True;
Oder direkt im OI einstellen. Wurde aber auch schon gesagt.

Danül 8. Mai 2008 20:30

Re: Problem mit FormKeyPress
 
großen Dank an den Fußballer ;)

genau der Befehl fehlte mir, danke auch an die anderen ;)

bis zur nächsten Frage

mfg

bluesbear 8. Mai 2008 20:32

Re: Problem mit FormKeyPress
 
Zitat:

Zitat von Fussball-Robby
Natürlich weiß ich das, ich benutze das begin..end in case aber nicht so gerne. Wird mir dann manchmal zu unübersichtlich, ist halt geschmackssache. Wieso sollte man goto dort denn nicht verwenden?

Sorry, aber ich kriege da graue Haare auf den Zähnen, und meine Fussnägel rollen sich auf. <g>
das Goto wird dann unübersichtlich, wenn nicht mehr der ganze code auf den Bildschirm passt. Man sieht nicht mehr, was bei welcher Bedingung getan wird. Mit begin...end ist das wesentlich übersichtlicher.
Und im übrigen bin ich der Ansicht, daß Goto fallen muss.
:zwinker:

Fussball-Robby 8. Mai 2008 20:37

Re: Problem mit FormKeyPress
 
Na gut, habs geändert. Wenn hier alle gegen goto sind.. Aber von der funktionsweise ändert das doch nichts. Es ist ja auch nicht so, dass ich das in jeder Prozedur benutze, aber ab und zu.. :wink:


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:27 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 by Thomas Breitkreuz