Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Schreibmaschineneffekt erzeugen (https://www.delphipraxis.net/128658-schreibmaschineneffekt-erzeugen.html)

freshprince 3. Feb 2009 15:48


Schreibmaschineneffekt erzeugen
 
Ich weiß nicht genau in welche Kategorie meine Frage passt, deswegen stell ich sie mal hier rein.

Also ich habe gestern ein paar Programme erstellt die der Show "Familien Duell" ähneln. (diese Programme brauche ich für unseren letzten Schultag.
Und wer die Show kennt, der weiß, dass die Lösungen an der Ratetafel fortlaufend erscheinen.
und ich frage mich nun wie ich das in Delphi am besten umsetzen kann :?::?:

Eine weitere Frage die ich noch habe, ist wie ich die 5 Programme die ich jetzt habe verbinden kann, sodass ich nicht jedes Projekt einzeln öffnen muss, sondern dass ich durch nen Button von einem Projekt ins andere gelange und gleichzeitig verschiedene Werte noch übertragen werden ( die Punktzahlen der Teams)

Bin noch nicht so sehr erfahren mit Delphi, bin über jede Hilfe dankbar :D

Sherlock 3. Feb 2009 15:52

Re: Schreibmaschineneffekt erzeugen
 
Nimm ein Label für die Ausgabe, und füge der Caption des Labels in einer Schleife in jedem Durchlauf ein Zeichen hinzu. Dann bremst Du noch die Schleife entsprechend aus, und fertig.

Sherlock

daniel-h 3. Feb 2009 16:00

Re: Schreibmaschineneffekt erzeugen
 
hay,
wenn ich es richtig verstehe willst du ne art Hauptmenü erzeugen, wo du dann das Programm auswählen musst, oder?

falls ja dann:
kopiere die Anwendungen alle in einen Ordner und benutze diesen code:

Delphi-Quellcode:
ShellExecute(0, Nil, '<dein pfad>', ' /s', NIL, SW_NORMAL);
falls nein dann:
kann ich dir leider nicht weiter helfen.

mfG Daniel

Luckie 3. Feb 2009 16:03

Re: Schreibmaschineneffekt erzeugen
 
Na bestens, jetzt geht es hier wieder drunter und drüber. Nicht umsonst soll für jedes Thema ein Thread erstellt werden. Ich werde den letzten Beitrag deaktivieren und die zweite Frage aus dem ursprüngölichen Posting löschen.

@freshprince: Bitte erstell für jedes Thema einen eigenen Thread. Desweiteren hilft auch die Forensuche.

Helmi 3. Feb 2009 16:33

Re: Schreibmaschineneffekt erzeugen
 
Hallo,

bezüglich dem Schreibmaschineneffekt könnt dir das vielleicht helfen...

freshprince 3. Feb 2009 17:12

Re: Schreibmaschineneffekt erzeugen
 
erstmal danke für die schnelle Hilfe, aber so richtig weiter hilft mir das noch nicht...

Das Problem ist folgendes...
Das Programm wird mit einem Beamer an die Wand geworfen wo es von den Zuschauern gesehen werden kann

Die Finalrunde:
Kandidat sagt eine Lösung. -> Die Lösung wird in das Programm eingefügt ( für die Zuschauer nicht sichtbar) ( das Beamerbild kann dabei ja gefreezed werden;)
es wirkt praktisch in dem Moment programmiert, wenn die Lösung gesagt wird.
Allerdings denke ich dass das nicht so schnell in eine Schleife zu programmieren ist, wenn ein ziemlich langes Wort kommt.

ansonsten habe ich schon für die Runden davor mit einem timer gearbeitet, statt eine schleife, kommt aber aufs gleiche hinaus... bloß das lässt sich auch nicht sehr schnell programmieren...( um es auf den Punkt zu bringen: innerhalb von ca einer minute sollen 5 Lösungen programmiert werden.

Wie kann man es am schnellsten bewerkstelligen, dass man im Programm nur noch die Wörter eingeben muss und diese dann im Schreibmaschineneffekt erscheinen??

himitsu 3. Feb 2009 17:44

Re: Schreibmaschineneffekt erzeugen
 
wieso muß das erst pogrammiert werden?

du brauchst nur ein Edit und 'nen Button zum Starten

dann ließt du den Text aus dem Edit und fügst ihn Stück für Stück z.B. in ein Label:
Delphi-Quellcode:
Procedure TForm1.Button1Click(Sender: TObject);
  Var S: String;

  Begin
    S := Edit1.Text;
    Label1.Caption := '';
    While S > '' do Begin
      Label1.Caption := Label1.Caption + S[1];
      Delete(S, 1, 1);
      Application.ProcessMessages;
      Sleep(150);
    End;
  End;

[add]
Beispiel für 2 Labels
Delphi-Quellcode:
// [Edit1] + [Button1] > [Label1]
// [Edit2] + [Button2] > [Label2]

Const MaximaleZeichenAnzahl = 20;

Procedure ClearLabel(E: TEdit; L: TLabel);
  Var S: String;
    i: Integer;

  Begin
    E.MaxLength := MaximaleZeichenAnzahl;
    E.Text     := '';
    S := StringOfChar('_', MaximaleZeichenAnzahl);
    For i := MaximaleZeichenAnzahl downto 2 do Insert(' ', S, i);
    L.Caption := S;
  End;

Procedure FillLabel(E: TEdit; L: TLabel);
  Var S, S2, S3: String;
    i: Integer;

  Begin
    S := Trim(E.Text);
    If S = '' Then S2 := StringOfChar('_', MaximaleZeichenAnzahl)
    Else S2 := S + StringOfChar(' ', MaximaleZeichenAnzahl - Length(S));
    S3 := L.Caption + StringOfChar(' ', 2 * MaximaleZeichenAnzahl - Length(L.Caption) - 1);
    For i := 1 to MaximaleZeichenAnzahl - 1 do S3[i * 2] := ' ';
    i := 1;
    While i <= MaximaleZeichenAnzahl do Begin
      S3[i * 2 - 1] := S2[i];
      L.Caption := S3;
      If S <> '' Then MessageBeep($40);
      Application.ProcessMessages;
      Sleep(50);
      Inc(i);
    End;
  End;



Procedure TForm1.FormCreate(Sender: TObject);
  Begin
    ClearLabel(Edit1, Label1);
    ClearLabel(Edit2, Label2);
  End;

Procedure TForm1.Button1Click(Sender: TObject);
  Begin
    FillLabel(Edit1, Label1);
  End;

Procedure TForm1.Button1Click(Sender: TObject);
  Begin
    FillLabel(Edit2, Label2);
  End;
jetzt noch'n Sound verbessern und es sieht fast aus wie echt
Text in Edit eintragen und Button klicken
zum löschen einfach Text im Edit löschen und Button drücken

freshprince 3. Feb 2009 20:34

Re: Schreibmaschineneffekt erzeugen
 
danke, so habe ich das gemeint :D:D vielen Dank. klappt einwandfrei :D

freshprince 4. Feb 2009 00:53

Re: Schreibmaschineneffekt erzeugen
 
Zitat:

Zitat von daniel-h
hay,
wenn ich es richtig verstehe willst du ne art Hauptmenü erzeugen, wo du dann das Programm auswählen musst, oder?

falls ja dann:
kopiere die Anwendungen alle in einen Ordner und benutze diesen code:

Delphi-Quellcode:
ShellExecute(0, Nil, '<dein pfad>', ' /s', NIL, SW_NORMAL);
falls nein dann:
kann ich dir leider nicht weiter helfen.

mfG Daniel

das gehörte ja zu meiner zweiten Frage...

nur wenn ich nen Button mache mit folgendem Inhalt
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
ShellExecute(0, Nil,'.\Runde 1\Project.exe', ' /s', NIL, SW_NORMAL);
end;
kommt die Fehlermeldung:
Delphi-Quellcode:
[Pascal Fehler] Unit1.pas(37): E2003 Undefinierter Bezeichner: 'ShellExecute'
muss ich da noch was anderes machen??

Neutral General 4. Feb 2009 00:56

Re: Schreibmaschineneffekt erzeugen
 
Hi,

Musst die Unit "shellapi" in die uses mit aufnehmen.

Ganz oben in der Unit steht ungefähr sowas:

Delphi-Quellcode:
uses Windows, Classes, Forms, ...;
da schreibst du noch irgendwo shellapi hin. z.B.:
Delphi-Quellcode:
uses Windows, Classes, Forms, ..., shellapi;


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:51 Uhr.
Seite 1 von 2  1 2      

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