Hi ich bins mal wieder
Es geht mal wieder um ein eher gedankliches Problem
Es geht um folgendes:
Ich bin daran ein Matrix-like Chat zu schreiben, also schwarzer Hintergrund, Vollbild und grüne Schrift. (NEIN, das Problem ist nicht wie bei veilenm anderen die Verbindung, die funktioniert perfekt
)
Soweit kein Problem, ich habe das mit einem grossen Memo das den ganzen Bildschirm ausfüllt gelöst.
Ich übernehme die Eingabe auch selber, damit ich besser eingreifen kann (z.B. das man nicht schon stehender Text einfach löschen kann)
Ausserdem lasse ich den Text "hinschreiben", also so wie man es vielleicht aus diversen Hackerfilmen oder so kennt, also der Text nicht sofort erscheint sondern Zeichen für Zeichen.
Hier mal veranschaulicht in einem Video:
Matrix Chat
Das Schreiben des Textes geschieht mittels eines Timers, der Code dazu:
Delphi-Quellcode:
procedure TfrmChat.timWriteTimer(Sender: TObject);
var
DelCursor: string;
begin
if Length(ToWrite) > 0 then
begin
DelCursor := memChat.Lines.Text;
if Phase < 4 then
begin
SetLength(DelCursor,Length(DelCursor)-1);
end
else
begin
SetLength(DelCursor,Length(DelCursor)-3);
end;
memChat.Lines.Text := DelCursor;
if Phase < 4 then
begin
memChat.Lines.Text := memChat.Lines.Text + Copy(ToWrite,0,1)+#95;
end
else
begin
memChat.Lines.Text := memChat.Lines.Text + Copy(ToWrite,0,1)+#95+#10;
end;
Delete(ToWrite,1,1);
CanType := false;
end
else
begin
CanType := true;
end;
end;
ToWrite ist ein String der den Text enthält, der geschrieben werden soll, es wird immer jeweils ein Zeichen am Anfang gelöscht bis er leer ist.
Wenn
CanType = true ist dann kann Text eingegeben werden, ansonsten nicht.
Der eingegebene Text wird in der Variable
Input gespeichert, so ist es einfacher für mich den Text auszulesen weil ich nix parsen muss
Ich würde noch gerne den Quellcode von der Tastenabfrage hier rein stellen aber ich denke er ist zu gross deshalb hier nur einen Link ohne Highlighting:
Quellcode von FormKeyPress
Falls dennoch gewünscht wird ihn hier rein zu stellen und auch die Moderatoren einverstanden sind, dann wedre ich das tun.
So nun zum Problem:
Ich will während oben irgendwelcher Text hingeschrieben wird (von einem anderen Chatpartner zum Beispiel) dass man trotzdem eine Zeile weiter unten normal weiterschreiben kann.
Ich kanns mir gedanklich einfach nicht vorstellen wie ich das bewerkstelligen soll
Ich weiss es war jetzt ziemlich viel Text, tut mir auch wirklich leid aber ich konnte mich nicht kürzer fassen damit ihr versteht was ich machen will. Falls irgendwelche Fragen bestehen einfach stellen.
So, ich danke hier schon mal fürs Durchlesen und ich hoffe auf eure Hilfe
Cu
Kill0r