AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Quellcode zur Laufzeit ändern?

Ein Thema von Störtebeker · begonnen am 19. Okt 2007 · letzter Beitrag vom 19. Okt 2007
Antwort Antwort
Benutzerbild von Störtebeker
Störtebeker

Registriert seit: 9. Jul 2007
398 Beiträge
 
#1

Quellcode zur Laufzeit ändern?

  Alt 19. Okt 2007, 01:20
Hi

ich habe in meinem Programm eine Bildschirmtastatur integriert. (Anhang s. Beitrag Beitrag: Bildschirmtastatur)

Zu dieser Tastatur gehört auch ein NUM-Feld, dessen Zahlen am Anfang deaktiviert sind. Zum Aktivieren klicke ich auf NUM. Nun möchte ich die Zahlen auch wieder über diese Taste deaktivieren. Dazu müsste ich aber beim aktivieren der Zahlen den Code des Buttons ändern, damit diser dann den Code hat, die Tasten zu deaktivieren und wieder umgekehrt.

Das ist der Code, um das Zahlenfeld zu aktivieren:

Delphi-Quellcode:
procedure TForm1.Button84Click(Sender: TObject);
begin
Panel16.Color:=clLime;
Button85.Enabled:=true;
Button86.Enabled:=true;
Button87.Enabled:=true;
Button88.Enabled:=true;
Button99.Enabled:=true;
Button96.Enabled:=true;
Button97.Enabled:=true;
Button98.Enabled:=true;
Button93.Enabled:=true;
Button94.Enabled:=true;
Button95.Enabled:=true;
Button90.Enabled:=true;
Button91.Enabled:=true;
Button92.Enabled:=true;
end;
Der Code müsste dann praktisch so aussehen:

Delphi-Quellcode:
procedure TForm1.Button84Click(Sender: TObject);
begin
Panel16.Color:=clGreen;
Button85.Enabled:=false;
Button86.Enabled:=false;
Button87.Enabled:=false;
Button88.Enabled:=false;
Button99.Enabled:=false;
Button96.Enabled:=false;
Button97.Enabled:=false;
Button98.Enabled:=false;
Button93.Enabled:=false;
Button94.Enabled:=false;
Button95.Enabled:=false;
Button90.Enabled:=false;
Button91.Enabled:=false;
Button92.Enabled:=false;
end;
und dann natürlich wieder umgekehrt.

Wie muss ich das machen?
"And he piled upon the whale´s white hump - a sum of all the rage and hate felt by his whole race.
If his chest had been a cannon, he would have shot his heart upon it."
  Mit Zitat antworten Zitat
Benutzerbild von nachti1505
nachti1505

Registriert seit: 7. Apr 2007
188 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Quellcode zur Laufzeit ändern?

  Alt 19. Okt 2007, 01:34
Delphi-Quellcode:
type
  TForm1 = class(TForm)

  private
   bNumPressed: boolean;

  end;
bNumPressed noch im FormCreate oder sonstwo initialisieren

Delphi-Quellcode:
procedure TForm1.Button84Click(Sender: TObject);
begin
  bNumPressed := not bNumPressed;
  Button85.Enabled := bNumPressed;
  [...]
  Button92.Enabled := bNumPressed;

  if bNumPressed then Panel1.Color := clLime
                 else Panel1.Color := clGreen;
end;
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: Quellcode zur Laufzeit ändern?

  Alt 19. Okt 2007, 08:54
Zitat von Störtebeker:
Zu dieser Tastatur gehört auch ein NUM-Feld, dessen Zahlen am Anfang deaktiviert sind. Zum Aktivieren klicke ich auf NUM. Nun möchte ich die Zahlen auch wieder über diese Taste deaktivieren. Dazu müsste ich aber beim aktivieren der Zahlen den Code des Buttons ändern, damit diser dann den Code hat, die Tasten zu deaktivieren und wieder umgekehrt.
Also von Dir hätte ich erwartet, dass Du schon mal was von Boolean, Flags und if-Abfragen gehört hast.

Die Lösung hat ja mein Vorredner schon geschrieben...
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.746 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Quellcode zur Laufzeit ändern?

  Alt 19. Okt 2007, 10:21
Zitat von Störtebeker:
Delphi-Quellcode:
procedure TForm1.Button84Click(Sender: TObject);
begin
Panel16.Color:=clLime;
Button85.Enabled:=true;
Button86.Enabled:=true;
Button87.Enabled:=true;
Button88.Enabled:=true;
Button99.Enabled:=true;
Button96.Enabled:=true;
Button97.Enabled:=true;
Button98.Enabled:=true;
Button93.Enabled:=true;
Button94.Enabled:=true;
Button95.Enabled:=true;
Button90.Enabled:=true;
Button91.Enabled:=true;
Button92.Enabled:=true;
end;
Was hältst du davon, deine Variablen mal umzubenennen? ButtonPlus wäre doch irgendwie sehr viel besser zu verstehen als Button47.

Uli.
Uli Gerhardt
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.639 Beiträge
 
#5

Re: Quellcode zur Laufzeit ändern?

  Alt 19. Okt 2007, 11:20
Eine andere Idee wäre es, den Eventhandler umzubiegen.

Du machst einen Event OnActivate und einen OnDeactivate.
Mit ButtonToggle.OnClick := OnActivate; bzw. ButtonToggle.OnClick := OnDeactivate; Kannst Du also festlegen, welche Methode beim nächsten Klick ausgelöst wird.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:35 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