Autor |
Beitrag |
NeoAngel
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 14.10.04 19:56
Hallo,
kann mir bitte jemand sagen, wie ich meinem Proggie mitteile,
dass es Werte in 'Echtzeit' berechnet, also ohne, dass ich
auf einen 'tuirgendwas' button klicken mus...?
Zum Beispiel das Addieren zweier Terme.
Gruss,
neo
|
|
Elite
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 14.10.04 20:13
Programme der neueren Genration sind generell ereignisgesteuert, sprich es wird nur dann Code ausgeführt, wenn ein Ereignis passiert. DIese können alledings beleiber Natur sein. So könnte dein Berechnungsvorgang im FormCreate Ereignis beginnen und den gesamten Programmablauf bearbeitet werden. QBasic-Manier gibt es aber nicht mehr.
|
|
tommie-lie
      
Beiträge: 4373
Ubuntu 7.10 "Gutsy Gibbon"
|
Verfasst: Do 14.10.04 20:47
Elite hat folgendes geschrieben: | QBasic-Manier gibt es aber nicht mehr. |
Hast du dir schonmal die DPR-Datei angeschaut? 
_________________ Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert
|
|
sourcehunter
      
Beiträge: 482
Win XP | Suse 10.1
Delphi 2005 Pers.
|
Verfasst: Do 14.10.04 20:48
Es gibt die Möglichkeit ein OnIdle-Ereignis zu definieren. Das wird immer erzeugt, wenn gerade "nichts" gemacht wird, also kein anderes Ereignis bearbeitet wird. Funktioniert wie ein OnClick-Ereignis und gehört zu Application(globale Variable).
_________________ Linux und OpenSource rulez!
|
|
NeoAngel
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 14.10.04 21:23
Also in meinem Programm soll eine Passwortabfrage stattfinden:
Erst wird mit einem Buttonklick ein Editfenster geöffnet,
in dem das PW eingegeben werden soll.
Ist das Passwort falsch, kommt eine Meldung.
Ist es richtig erscheint eine TMemo.
Also ich möchte, dass das Memo Feld erscheint,
sobald das richtige PW eingegeben wird.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| procedure TForm1.Button1Click(Sender: TObject); begin edit1.visible:=true; end;
procedure TForm1.Edit1Enter(Sender: TObject); begin
val(edit1.text,passwort,code); if edit1.text=' geheimes passwort =) ' then memo1.visible:=true else showmessage('falsches passwort'); |
In der delphi hilfe habe ich folgendes gefunden:
Delphi-Quelltext 1:
| type TIdleEvent = procedure (Sender: TObject; var Done: Boolean) of object; |
Kann mir bitte jemand sagen, wie ich das verbinden kann?
Moderiert von Christian S.: Code- durch Delphi-Tags ersetzt.
|
|
tommie-lie
      
Beiträge: 4373
Ubuntu 7.10 "Gutsy Gibbon"
|
Verfasst: Do 14.10.04 21:31
NeoAngel hat folgendes geschrieben: | Erst wird mit einem Buttonklick ein Editfenster geöffnet,
in dem das PW eingegeben werden soll.
Ist das Passwort falsch, kommt eine Meldung.
Ist es richtig erscheint eine TMemo. |
Editfenster?
Wenn man nach der Eingabe des Passwortes dieses auch noch bestätigen soll, hast du damit dein Event -> Klick-Event des passenden OK-Buttons.
Willst du einfach nur ein Editfeld haben, daß beim richtigen Inhalt ein Memo anzeigt, ohne daß man vorher noch Enter oder dergleichen Drücken muss, wäre OnChange vom Edit vielleicht eine Überlegung wert: Bei jedem Tastendruck überprüfst du, ob der Inhalt des Edits richtig ist, wenn ja, zeigst du das Memo an, wenn nicht, dann eben nicht.
_________________ Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert
|
|
NeoAngel
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 14.10.04 21:59
cool, danke.
jetzt hab ich aber folgendes prob lol:
es wird nach jeder tasteneingabe eine tolle falsch meldung angezeigt.
wie kann ich dies unterbinden?
|
|
tommie-lie
      
Beiträge: 4373
Ubuntu 7.10 "Gutsy Gibbon"
|
Verfasst: Do 14.10.04 22:09
NeoAngel hat folgendes geschrieben: | es wird nach jeder tasteneingabe eine tolle falsch meldung angezeigt. |
Hmm, daran hatte ich nicht gedacht. Du könntest vor dem Prüfen die Länge abfragen und nur dann schauen, ob auch der String richtig ist, wenn die Länge stimmt. Ansonsten ist es eigentlich üblich, nach der Passworteingabe irgendeine Bestätigungsaktion durchzuführen.
_________________ Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert
|
|
Anfänger
      
Beiträge: 128
WinXP
D3 Prof
|
Verfasst: Do 14.10.04 22:10
Du musst überlegen, wann dein Programm reagieren soll.
in diesem Fall würde ich auch OnChanche verwenden, aber zusätzlich noch eine If-Anweisung verwenden, die prüft, ob die Anzahl der Zeichen stimmen, und erst dann die richtige Abfrage macht.
Anzahl der Zeichen: Length(Passwort);
|
|
Elite
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 14.10.04 22:13
NeoAngel hat folgendes geschrieben: |
es wird nach jeder tasteneingabe eine tolle falsch meldung angezeigt.
|
Das ist jetzt einfach ne Überlegungssache. Beim OnChange Ereignis ist es wohl kaum sinnvoll, Fehlermeldungen auszugeben, wenn das falsche PW eingeben wurde. Vielmehr sollte eine Bestätigung kommen, wenn es das richtige ist.
Wenn der User nach Eingabe noch Enter drücken soll, ist es hingegen der richtige Weg so wie du es gemacht hast.
Oder hab ich dich falsch verstanden?
|
|
Anfänger
      
Beiträge: 128
WinXP
D3 Prof
|
Verfasst: Do 14.10.04 22:23
Sorry, da hab ich gar nicht dran gedacht.
Vergiss, meinen Einwand und benutze einfach statt OnChange OnKeyUp.
|
|