Webmaster Forum Logo Part 1 Webmaster Forum Logo Part 2
Webmaster Forum Logo Part 3
     
 
  :: Anmeldung

Benutzername:

Registrierung...

Passwort:

Passwort vergessen?

angemeldet bleiben


  
  :: Umfrage
Welche sozialen Netzwerke benutzt du regelmäßig?

 Facebook
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 73%
 keines
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 22%
 Google+
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 19%
 Twitter
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 11%
 Xing
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 6%
 schülerVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 6%
 meinVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 4%
 studiVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 4%
 MySpace
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 2%
 LinkedIn
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 2%

 ges. 393 Stimmen
 
  :: Buttons

Valid XHTML 1.0 Transitional

Dabei seit: 09.11.2007

Beiträge: 487

 

1 Zum Seitenanfang

Sonntag, 14. Dezember 2008, 12:35

Delphi: Problem mit FormKeyDown

Hi!

Ich habe ne frage im Bezug auf Delphi. Ich möchte, die FormKeyDown-Prozedur innerhalb einer anderen aufrufen. Wie mache ich das? Soweit bin ich bereits. Innerhalb der FormKeyDown-Prozedur wird der Wert von yb1 verändert. Diese Veränderung möchte ich natürlich auch übernehmen... oder liegt mein fehler woanders?

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
procedure TForm1.LBalkenbewegung;
begin
// löschen
 Form1.Canvas.Brush.Color:= clBlack;
 Form1.Canvas.Rectangle (10,yb1-30,20,yb1+30);
// neue Position bestimmen
 Form1.FormKeyDown();
 //if (yb1<yk) then yb1:= yb1+1
 //else if (yb1>yk) then yb1:= yb1-1;
// zeichnen
 Form1.Canvas.Brush.Color:= clMaroon;
 Form1.Canvas.Rectangle (10,yb1-30,20,yb1+30);
end;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
 if (Key=VK_UP) then yb1:=yb1-1;
 if (Key=VK_DOWN) then yb1:=yb1+1;
end;


Gruß, Twister
Wir freuen uns über jeden Besuch!
Sturmjagd im Münsterland
SCMSL
 

Dabei seit: 28.09.2007

Beiträge: 967

 

2 Zum Seitenanfang

Freitag, 19. Dezember 2008, 20:04

Hallo twister-duelmen,

ich kann Delphi zwar nicht aber ich habe 2 Lösungsvorschläge für dich:

1. deklariere deine Variable global
2. in Visual Basic kann man das machen (Sub in Sub aufrufen), indem man

Quellcode

1
TextBox1_Click(Parameter1, Parameter2)
schreibt.

Keine Ahnung, ob es das auch für Delphi gibt; da kannst du ja mal nachforschen ;)


ak
 

Darkchild

Jungspund

Dabei seit: 12.02.2009

Beiträge: 23

 

3 Zum Seitenanfang

Donnerstag, 12. Februar 2009, 01:27

Hi,

also es ist immer schwer etwas zu sagen wenn man immer nur Codeschnipsel sieht.
Daher ist es immer etwas schwer zu helfen, finde ich.

ICh sehe Du hast 2 Proceduren am start. In der ersten vergleichst Du die werte von yb1 und yk miteinander.
Was ich nicht sehe ist ob du die Variablen auch deklariert hast und wo.

Aber Du kannst natürlich in einer Procedur eine andere aufrufen, wenn es das ist was du möchtest. Dazu musst die aufzurufende Procedur in der anderen bekannt machen und ihr dann dementsprechen werte übergeben mit denen die andere Arbeiten kann.

Das ganze kannst Du auch wunderbar in der Delphi hilfe nachschlagen mit Codebeispielen und einer liste der parameter welche übergeben werden müssen. Das würde Dir evt. im ersten Augenblick weiterhelfen.
Für weiterführende dinge über Delphi kann ich dir nur die Seite www.delphipraxis.net/ empfehlen.

Gruss
Darkchild

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Darkchild« (12. Februar 2009, 01:28)