AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

1 Button 2 ereignisse

Ein Thema von gekkorist · begonnen am 29. Apr 2007 · letzter Beitrag vom 4. Mai 2007
Antwort Antwort
Seite 1 von 2  1 2   
gekkorist

Registriert seit: 14. Jan 2007
30 Beiträge
 
#1

1 Button 2 ereignisse

  Alt 29. Apr 2007, 23:37
Hallo, ich überlege und probier schon ganze Zeit.. es will aber nicht klappen..

Also meine Frage:
Ich habe ein Button, wenn ich ihn einmal drücke wird eine schleife begonnen... drück ich den GLEICHEN button noch einmal, hört die schleife auf!
Ich weiß nicht welche funktion ausgibt ob der Button gedrückt ist/wurde oder nicht.

danke schonmal im vorraus.
  Mit Zitat antworten Zitat
SirTwist

Registriert seit: 28. Sep 2006
196 Beiträge
 
Delphi XE Professional
 
#2

Re: 1 Button 2 ereignisse

  Alt 29. Apr 2007, 23:45
Das klappt so nicht, weil Du den Button erst dann wieder drücken kannst, wenn die Schleife zu Ende ist.

Beim Drücken eines Buttons wird die damit verbundenen Ereignisroutine aufgerufen, das OnClick-Event. Solange diese Routine ausgeführt wird, ist die gesamte Oberfläche nicht bedienbar.

Was willst Du denn in Deiner Schleife machen? Vielleicht hilft Dir ein Timer weiter, der z.B. alle 200ms aufgerufen wird und dann jeweils einen Schleifendurchlauf erledigt.

Den Timer kontrollierst Du dann im OnClick-Ereignis Deines Buttons:
Timer.Enabled := not Timer.Enabled; Das sollte so in etwa in die Richtung Deiner Frage gehen...
  Mit Zitat antworten Zitat
gekkorist

Registriert seit: 14. Jan 2007
30 Beiträge
 
#3

Re: 1 Button 2 ereignisse

  Alt 30. Apr 2007, 00:11
also, ich habe da was was immer punktweise den desktop einfärbt... was aber wenn ich 1 mal den Knopf drücke nie mehr endet... ausser wenn ich das begrenze.. aber hätte ja sein koennen das man zB ein Bild erstellt, wenn man ein mal drückt, und wenn man nochmal drückt es wieder löscht.

__
So einfach hätte ich das nicht gemacht mit den Timer... das das überhaupt geht

timer1.Enabled := not Timer1.Enabled ;
timer1.an := nicht timer1.an;

versteh ich aber nicht
kann mir das mal einer erklären O_o
__

Das mit den Timer is mir bissel zu langsam, in der schleife macht er das richtig schnell aber der timer braucht ja ewig um immer ein pixel einzufärben...
  Mit Zitat antworten Zitat
chaoslion

Registriert seit: 1. Mär 2006
52 Beiträge
 
#4

Re: 1 Button 2 ereignisse

  Alt 30. Apr 2007, 00:34
nimm doch de ProcessMessages-Prozedur zur Hilfe, in der Schleife
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#5

Re: 1 Button 2 ereignisse

  Alt 30. Apr 2007, 00:43
Zitat von gekkorist:
So einfach hätte ich das nicht gemacht mit den Timer... das das überhaupt geht

timer1.Enabled := not Timer1.Enabled ;
timer1.an := nicht timer1.an;

versteh ich aber nicht
kann mir das mal einer erklären O_o
__

Das mit den Timer is mir bissel zu langsam, in der schleife macht er das richtig schnell aber der timer braucht ja ewig um immer ein pixel einzufärben...
Moin!

timer1.Enabled := not Timer1.Enabled; Entspricht
Delphi-Quellcode:
If timer.Enabled then
   Timer.Enabled:=False else
      Timer.Enabled:=True;
not kehrt den Boolwert einfach um, aus False mach True und andersrum

Wenn Dir der Timer zu langsam ist, versuche mal das Interval auf 10 zu setzen

Grüße!

PS: Mit Application.ProcessMessages wre ich da vorsichtig, wenn Du im QT n Fehler hast kannst Du mehrfach in der Schleife landen, wenn einer n paar mal auf den Button klickt
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
gekkorist

Registriert seit: 14. Jan 2007
30 Beiträge
 
#6

Re: 1 Button 2 ereignisse

  Alt 30. Apr 2007, 00:54
ich kann ja erlich sein.. das was ich mache is um meinen info lehrer bissel zu ärgern .. ^^
Der weiß aber von wem es kommt,
da wird der Bildschirm Punkt für Punkt in eine Farbe gemacht, Komplett, aber beim timer, egal ob auf 10 geht das sehr langsam.
aber in ner Repeat schleife geht das saus schnell, und man bekommt schon bissel bange.D.. naja egalIch werde jetzt müde, gute nacht @all.
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#7

Re: 1 Button 2 ereignisse

  Alt 30. Apr 2007, 01:20
Info Lehrer ärgern, da werden Erinnerungen wach... ^^

Du kannst ja im Timer einen Kompletten Zyklus durchlaufen, anstatt jedesmal nur einen einzelnen Pixel zu ändern.
  Mit Zitat antworten Zitat
gekkorist

Registriert seit: 14. Jan 2007
30 Beiträge
 
#8

Re: 1 Button 2 ereignisse

  Alt 30. Apr 2007, 13:10
Nagut, ich probiere es mal.. und Infolehrer kann man es nicht nennen Er weiß wie der rechner angeht und man Delphi startet, wenn der sein schlaues Buch nicht hätte würde er Total versagen
  Mit Zitat antworten Zitat
Maa83

Registriert seit: 7. Nov 2002
220 Beiträge
 
Delphi 10.3 Rio
 
#9

Re: 1 Button 2 ereignisse

  Alt 3. Mai 2007, 08:17
wieso nicht einfach in der Schleife ein Application.ProcessMessage?

Delphi-Quellcode:
var bMachWeiterDuArsch : Boolean;

procedure formcreate...
begin
    bMachWeiterDuArsch := False;
end;

procedure Button1Click(Sender : TObject);
begin
  bMachWeiterDuArsch := not bMachWeiterDuArsch;
  while bMachWeiterDuArsch do //Als Alternativbedingung natürlich das Ende der Punkte
  begin
    ZeichnePunkt(PosX,PosY);
    Application.ProcessMessage;
  end;
end;
geht natürlich auch mit repeat-Schleifen.

oder hab ich grad nen Denkfehler drin?
Martin
  Mit Zitat antworten Zitat
Benutzerbild von Light
Light

Registriert seit: 3. Feb 2006
Ort: Paderborn NRW
123 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: 1 Button 2 ereignisse

  Alt 3. Mai 2007, 09:03
Hi Ihr,

ich leider nur schlechte Erfahrungen mit Info-Lehrer Ärgern gemacht^^
- zwei aus der Gruppe waren nen halbes Schuljahr vom unterricht ausgeschlossen worden weil sie meinten nen so nen illegales Trojaner dingsbums zum fernsteuern von pcs auf dem lehrerpc installieren zu müssen... Selbst dran schuld...

und mich mochte er nicht mehr nachdem ich (war ja mit ihm abgesprochen )
die HTML Thematik unterrichtet hatte
- er konnte nicht ertragen das mir die Gruppe besser zugehört hat als ihm *duck*

Back To Topic *G* :
öhm eigentlich brauchst du doch nur eine Procedure die Unabhängig von allem anderen die Schleife ausführt?!
Und dann kannst du ja einfach ne globale Variable Definieren mit der du dann entscheidest ob oder ob nicht der Bildschirm gefärbt wird oder?

Leuchtende Grüße

Stefan
Stefan
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 01:46 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