Entwickler-Ecke
Sonstiges (Delphi) - Countdown zähler im HH:MM:SS Format und Pausierbar
delphineuling - Do 23.02.06 21:33
Titel: Countdown zähler im HH:MM:SS Format und Pausierbar
Hallo,
da wir das im Unterricht noch nicht gemacht haben ich das aber für mein Programm brauche Frage ich jetzt wie man ein Countdown macht.
Einen ganz simplen Countdown hab ich hinbekommen aber ich steig noch nicht ganz da durch.
-Also der Countdown soll im Format HH:MM:SS sein und im Label angezeigt werden.
-Dann würde ich ihn gerne mit einem Button Starten und Pausieren können.
-Am besten so das auf dem Button sich dann die Beschriftungwechselt, also wenn der Countdown läuft soll da Pause stehen und wenn der Countdown im Pause Status ist soll auf dem gleichen Button Countdown Fortführen oder Starten stehen(Wie beim Mediplayer mit Play und Pause).
-Und wieso kann man keinerlei Aktionen mehr machen wen der Countdown läuft?
-Außerdem würde ich gerne die Zeit vorher in einem Label eingeben können, auch am besten in dem Format. Soll ich das dann mit drei Labeln machen also für Stunden Minuten und Sekunden?
-Und ich würde ihn gerne mit einem Button Komplett neu Starten können.
-Das mit den Intervallen hat auch nichts so ganz geklappt. Hab ich die verstellt ginges voll schnell oder total lahm! Woher weiß man was jetzt die richtigen Schritte für Sekunden z.B. ?
Danke euch für Hilfe
inselberg - So 26.02.06 08:03
timer auf 500 stellen, mit button aktivieren deaktiviern
Quelltext
1:
| edit1.text:=timetostr(incsecond(strtotime(edit1.text),-1)); |
das wars
delphineuling - Mi 01.03.06 09:45
Das geht leider nicht, da Delphi den Bezeichner "incsecond" nicht kennt!?
Was nun?
Und gibt es noch andere Lösungsvorschläge?
AXMD - Mi 01.03.06 09:48
Welche Delphiversion hast du? D7 und D2005 kennen die Funktion - wie's in früheren Delphiversionen aussieht weiß ich nicht, aber ich glaube, da gibt's diese Funktion noch nicht.
AXMD
PS. Ansonsten mal die Unit DateUtils einbinden
delphineuling - Mi 01.03.06 09:52
Ne ich arbeite mit Delphi 7 Enterprise!
Was soll ich nun machen?
jakobwenzel - Mi 01.03.06 10:46
delphineuling hat folgendes geschrieben: |
Ne ich arbeite mit Delphi 7 Enterprise!
Was soll ich nun machen? |
Wie wärs mit Posts ganz lesen?
AXMD hat folgendes geschrieben: |
| PS. Ansonsten mal die Unit DateUtils einbinden |
chrisw - Mi 01.03.06 10:58
Timer1.Interval auf 1000 (Jede Sekunde)
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| procedure TForm1.FormCreate(Sender: TObject); begin Label1.Caption := '01:01:59'; end; procedure TForm1.Timer1Timer(Sender: TObject); begin Label1.Caption := TimeToStr(StrToTime(Label1.Caption)-0.000001); end; procedure TForm1.Button1Click(Sender: TObject); begin if Timer1.Enabled then Button1.Caption := 'Start' else Button1.Caption := 'Stop'; Timer1.Enabled := not Timer1.Enabled; end; |
Vera - Mi 01.03.06 11:24
Titel: Re: Countdown zähler im HH:MM:SS Format und Pausierbar
delphineuling hat folgendes geschrieben: |
| Einen ganz simplen Countdown hab ich hinbekommen aber ich steig noch nicht ganz da durch. |
Warum hast Du uns Deinen Quelltext nicht gepostet? Dann hätte man (oder Frau :-D) darauf aufbauen können.
Fabian W. - Mi 01.03.06 12:18
Hallo, ka ob du jetzt noch ein Prob mit dem og Code hast, aber ich wandle Millisekunden (secunden * 1000) immer mit folgender Function um:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33:
| function MSecToDMS(MSec: int64):string; var AllesInSekunden: int64; AllesInMinuten: integer; RestMinuten: integer; RestSekunden: integer; Stunden: integer; begin result := '00:00:00 h'; try AllesInSekunden := MSec div 1000; AllesInMinuten := AllesInSekunden div 60; RestSekunden := AllesInSekunden - AllesInMinuten * 60; Stunden := AllesInMinuten div 60; RestMinuten := AllesInMinuten - Stunden * 60; if (Stunden <= 0) and (RestMinuten <= 0) then begin result := formatfloat('00',RestSekunden)+' sec'; exit; end;
if Stunden <= 0 then begin result := formatfloat('00',RestMinuten)+':'+formatfloat('00',RestSekunden)+' min'; exit; end;
result := formatfloat('00',Stunden)+':'+formatfloat('00',RestMinuten)+':'+formatfloat('00',RestSekunden)+' h'; except result := '00:00:00 h'; end; end; |
In älteren D-Versionen musst du ggf das
MSec: int64 durch
MSec: integer ersetzen
mfg
Fabian Walz
delphineuling - So 12.03.06 17:19
Irgendwie komm ich noch nicht so richtig weiter.
könnt ihr mir nochmal so einen Timer bauen(einen simplen bitte) und dann wenn der Countdown abgelaufen ist soll das ergebnis ausgegeben werden im label und die caption des buttons soll wieder auf start sein.
Der erste quellcode der reingeschrieben wurde war schon ganz gut aber da ich mich kein bisschen mit dem programmieren von timer auskenne bin ich nicht weitergekommen.
Bitte helft mir ich peil so langsam nicht mehr durch!
Fabian W. - So 12.03.06 17:38
Versthst du die Komponente nicht oder hängst wo anders?
Grundsätzlich: Mit Interval legst du fest in welchen Zeitabständen der Code im onTimerevent wiederholt wird. Mit enabled := true / false aktivierst / stoppst du dieses verhalten.
delphineuling - So 12.03.06 17:56
ja genau diese ganzen komponenten und bezeichnungen kenn ich net und hab ich noch nie mit gearbeitet kannst du vielleicht einen countdown so machen das der recht einfach und simpel ist und das man den auch mit grundkenntnissen verstehen erklären und verändern kann?
Hab ich eigentlich vorher mal erwähnt das ich die zeit gerne in einem Label eingeben würde?
Wäre nett wenn mir da jemand sowas zusammen bauen könnte.
Fabian W. - So 12.03.06 18:35
Zusammenbauen, damit du nur noch C & P machen musst ist eigtnlich nicht so Sinn der Sache. Ich nehmen mal an dass du dir nicht im Klaren darüber bist für was du am besten welche Komponente verwendest. is klar ging mir am Anfang auch so ;-).
Die Zeit in einem Label eingeben is nich - TLabel is nur zur ausgabe (über .Caption)
Eingeben kannst du was in ein TEdit. Die Eingabe ließt du mit .Text aus.
Den TTimer hba ich dir oben schon erklärt und Buttons müsstest du eigtnlich soweit erstehen das's geht. Also:
In das Edit kommt die Zeit wie lange er runterzählen soll zB 5 sec also 5.
Du ziehst folgende Kompos aufs Formuar: TButton, Tedit, TLabel & TTimer (je 1 mal)
Beim Timer stellst du die Eigenschaft Enabled im Objektinspektor auf false damit er nicht runterzählst bevor du den Button drückst.
In das OnTimerEvent kommmt folgendes: Zurest deklarierst du eine GLOBALE Variable (count: integer).
Dann erhöhst du den Wert von Count in jedem OnTimerevent um den Interval des Timers.
(Alle Zeitangeben werden in msec verarbeitet!!)
Dann musst du die zeit ausgeben: Also im Label die verbleibende Zeit: eingabe aus edit * 1000 (für die msec) - die schon vergangene zeit (also count). Wenn du das im DMS Format haben möchtest musst du den msec wert vorher meiner Funktion (s.o.) übergeben.
Zu guter Letzt muss im TimerEvent auch noch geprüft werden ob die Zeit vergangen ist:
Delphi-Quelltext
1: 2: 3: 4:
| if count >= strtoint(Edit.text) then begin Edit.enabled := true; Timer.enabled = false; HIER MUSS DANN DER CODE REIN DER AUSGEFÜHRT WERDEN SOLL WENN RUNTERGEZÄHLT IST end; |
Nun fehlt nur noch der Button der das ganze ins Rollen bringt:
Er muss...
...die Variable Count zurücksetzten count := 0
...das Editfeld sperren .enabled := false;
...den Timer aktivieren .enabled := true
So ich hoffe dir hat das geholfen, das ganze müsste von der Logik her funzen.
Entschuldige die Schreibfehler ich habe den Text sammt Überlegung innerhalb von 5 min durchgeleiert ^^
mfg
Fabi
delphineuling - So 12.03.06 19:40
Also mein Quelltext sieht jetzt so aus ich habe den einen befehl auch FormCreate rausgenomen weil nicht beim starten des programms der countdown starten soll sondern wenn ich auf den Button klicke also hab ich es in Button klick gemacht.
Aber der gibt jetzt imer so einen fehler aus und nichts läuft mehr hab schon rumprobiert aber geht nicht könnt ihr da helfen?
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84:
| procedure TForm1.Button1Click(Sender: TObject); var mode, mmh:integer; begin mmh:= Random(100) + 1; mode:=random(2)+1; begin Label7.Caption := '00:00:59'; end; begin if Timer1.Enabled then Button1.Caption := 'Start' else Button1.Caption := 'Stop'; Timer1.Enabled := not Timer1.Enabled; end;
if listbox1.Items.Count=0 then begin showmessage('Geben Sie bitte Namen ein!'); end else if listbox4.items.Count=0 then begin showmessage('Geben Sie Mengenangaben ein!'); end else if listbox2.items.Count=0 then begin showmessage('Geben Sie Getränke ein!'); end else if listbox3.items.Count=0 then begin showmessage('Geben Sie Kurze ein!'); end else begin
If RadioButton1.Checked Then If mmh > 25 Then begin if mode=2 then begin label17.Caption:='Wer muss Trinken? ' + listbox1.Items[random(listbox1.items.count)]+' muss ' + listbox4.Items[random(listbox4.Items.Count)]+ ' ' + listbox2.items[random(listbox2.Items.Count)]+ ' trinken !'; end else begin label17.Caption:='Wer muss Trinken? ' + listbox1.Items[random(listbox1.items.count)]+' muss einen Kurzen ' + listbox3.items[random(listbox3.Items.Count)]+ ' trinken !'; end; If RadioButton2.Checked Then If mmh > 50 Then begin if mode=2 then begin label17.Caption:='Wer muss Trinken? ' + listbox1.Items[random(listbox1.items.count)]+' muss ' + listbox4.Items[random(listbox4.Items.Count)]+ ' ' + listbox2.items[random(listbox2.Items.Count)]+ ' trinken !'; end else begin label17.Caption:='Wer muss Trinken? ' + listbox1.Items[random(listbox1.items.count)]+' muss einen Kurzen ' + listbox3.items[random(listbox3.Items.Count)]+ ' trinken !'; end; If RadioButton3.Checked Then If mmh > 75 Then begin if mode=2 then begin label17.Caption:='Wer muss Trinken? ' + listbox1.Items[random(listbox1.items.count)]+' muss ' + listbox4.Items[random(listbox4.Items.Count)]+ ' ' + listbox2.items[random(listbox2.Items.Count)]+ ' trinken !'; end else begin label17.Caption:='Wer muss Trinken? ' + listbox1.Items[random(listbox1.items.count)]+' muss einen Kurzen ' + listbox3.items[random(listbox3.Items.Count)]+ ' trinken !'; end; end; end; end; end; end;
procedure TForm1.FormCreate(Sender: TObject); begin Randomize; end; procedure TForm1.Timer1Timer(Sender: TObject); begin Label7.Caption := TimeToStr(StrToTime(Label7.Caption)-0.000001); end;
end. |
Hab einfach mal so ziemlich alles reingemacht vielleicht liegt es ja auch an was anderem oder so
Delete - So 12.03.06 21:13
wie gewünscht ein beispiel. einfach einen button als
button1 und einen ttimer als
timer1 auf ein formular und schon läuft dein count down.
ups, beinahe hätt ich es noch vergessel, ein tpanel brauchste auch noch, benant als
MSG.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133: 134: 135: 136: 137: 138: 139: 140: 141: 142: 143: 144: 145: 146: 147: 148: 149:
| unit uTimerTest;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;
const cZeit = '00:02:00'; type tZeit = record Stunde, Minute, Sekunde: integer;
class operator implicit(value: string): tZeit; class operator implicit(value: tZeit): string; class operator implicit(value: tDateTime): tZeit; class operator implicit(value: tZeit): tDateTime; class operator dec(Value: tZeit): tZeit; class operator equal(Value1, Value2: tZeit): boolean; end;
type TForm5 = class(TForm) msg: TPanel; Button1: TButton; Timer1: TTimer; procedure Button1Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure FormCreate(Sender: TObject); private zeit: tZeit; public end;
var Form5: TForm5;
implementation {$R *.dfm}
class operator tZeit.dec(Value: tZeit): tZeit; begin result := value; if value.Sekunde > 0 then begin dec(result.Sekunde); end else begin if value.minute > 0 then begin dec(result.minute); result.Sekunde := 59; end else begin if value.Stunde > 0 then begin dec(result.Stunde); result.Minute := 59; result.Sekunde := 59; end else begin result.Sekunde := 59; result.Minute :=59; result.Stunde := 23; end; end; end; end;
class operator tZeit.equal(Value1, Value2: tZeit): boolean; begin if (value1.Stunde = value2.stunde) and (value1.Minute = value2.Minute) and (value1.Sekunde = value2.Sekunde) then result := true else result := false; end;
class operator tZeit.implicit(value: tZeit): string; begin result := format('%2.2d:%2.2d:%2.2d', [value.Stunde, value.Minute, value.Sekunde]); end;
class operator tZeit.implicit(value: string): tZeit; begin result := StrToDateTime(value); end;
class operator tZeit.implicit(value: tDateTime): tZeit; var s, m, sek: word; msec: word; begin decodetime(value, s, m, sek, msec); result.Stunde := s; result.Minute := m; result.Sekunde := sek; end;
class operator tZeit.implicit(value: tZeit): tDateTime; begin result := EncodeTime(value.Stunde, value.Minute, value.Sekunde, 0); end;
procedure TForm5.Button1Click(Sender: TObject); begin timer1.Enabled := not timer1.Enabled; if timer1.enabled then begin button1.Caption := 'Stop'; end else begin button1.Caption := 'Start'; zeit := cZeit; end; end;
procedure TForm5.FormCreate(Sender: TObject); begin zeit := cZeit; msg.caption := zeit; timer1.Enabled := true; end;
procedure TForm5.Timer1Timer(Sender: TObject); begin dec(zeit); msg.Caption := zeit; if zeit = '00:00:00' then begin timer1.Enabled := false; close; end; end;
end. |
edit: leg noch kurz die demo bei
delphineuling - So 12.03.06 21:47
das ist ja wieder sowas heftiges könnt ihr nich meinen code oben so verändern das es funktionirt und das ich das halt in nem edit verändern kann also die zeit und pausieren und starten mi button und ergebnisausgabe wie jetzt ohne timer nur noch mit timer vereinbaren und nach ablauf der zeit unten ausgeben
wäre echt super nett weil dann könnte ich es auch nachvollziehen und weiß was ich da gemacht habe und wie auch mit bruchstücken kann ich nicht viel anfangen da mit kenntnisse fehlen um sie richtig einzubauen am besten komplett und funktionstüchtig dann kann ich es mir nochmal angucken und nachvollziehen dann muss ich irgendwann vielleicht auch nicht mehr solche fragen stellen
ich danke sehr für antworten die auf meine wünsche eingehen
Delete - So 12.03.06 21:58
brauchst doch nur statt cZeit --> myEDIT.TEXT einsetzen. dann hast du es doch. wenn du willst kann ich dir auch das das code fragment dazugeben...
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56:
| const cZeit = '00:02:00'; type tZeit = record Stunde, Minute, Sekunde: integer; ... end;
type TForm5 = class(TForm) msg: TPanel; Button1: TButton; Timer1: TTimer; procedure Button1Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure FormCreate(Sender: TObject); private zeit: tZeit; end;
....
procedure TForm5.Button1Click(Sender: TObject); begin timer1.Enabled := not timer1.Enabled; if timer1.enabled then begin button1.Caption := 'Stop'; end else begin button1.Caption := 'Start'; end; end;
procedure TForm5.FormCreate(Sender: TObject); begin zeit := cZeit; msg.caption := zeit; timer1.Enabled := true; end;
procedure TForm5.Timer1Timer(Sender: TObject); begin dec(zeit); msg.Caption := zeit; if zeit = '00:00:00' then begin timer1.Enabled := false; close; end; end; |
delphineuling - So 12.03.06 22:22
am besten wäre wenn du das mit meinem code von meinem programm oben so einbauen zusammenbauen würdest mit allem drum und drann das ich das nur noch einfügen bräuchte! (bis auf ein paar veränderung z.b. welches label und so kannst du ja net wissen)
und das es dann läuft sonst mach ich da nur wieder irgend ein mist und alles is kaputt.
so wäre das auch am besten für mich weil ich mir dann meinen delphi ordner schnappen kann und das schritt für schritt durchgehen kann und am ende hab ich dann wieder was gelernt denn so lerne ich das am besten und ich kann meinem lehrer nachher auch erklären was was macht und schreib in der nächsten arbeit wieder ne 1.
wäre echt nett und super
Blackheart666 - So 12.03.06 22:26
Bisschen Eigeninitiative könnte nichts schaden.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, DateUtils,ExtCtrls;
type TForm1 = class(TForm) Timer1: TTimer; Start: TButton; Stop: TButton; Edit1: TEdit; procedure Timer1Timer(Sender: TObject); procedure StartClick(Sender: TObject); procedure StopClick(Sender: TObject); procedure FormCreate(Sender: TObject); private public end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Timer1Timer(Sender: TObject); begin edit1.text:=timetostr(incsecond(strtotime(edit1.text),-1)); if Edit1.Text ='00:00:00'then Timer1.Enabled:=False; if Edit1.Text ='00:00:00'then ShowMessage('Zeit um !'); end;
procedure TForm1.StartClick(Sender: TObject); begin Timer1.Enabled:=True; end;
procedure TForm1.StopClick(Sender: TObject); begin Timer1.Enabled:=False; end;
procedure TForm1.FormCreate(Sender: TObject); begin Timer1.Enabled:=False; Timer1.Interval:=1000; Edit1.Text:='00:00:10'; end;
end. |
Fabian W. - Mo 13.03.06 18:24
| Zitat: |
| Also mein Quelltext sieht jetzt so aus |
Wenn du probleme hast einen teil zu implementieren warum baust du dann am Programm weiter? vlt baust du dadurch zusätzlich fehler ein die dir alles erschweren... Im übrigen hab ich dir oben eine genaue Beschreibung gepostet, wenn du die mal befolgen würdest würdest du den Code auch verstehen und hättest keine Probleme. Du kannst dir deinen Code doch nicht andauernd vorkauen lassen, Mann... :roll:
delphineuling - Do 16.03.06 02:18
Also ich hab das jetzt soweit eingebaut aber wenn ich halt auf den Startbutton klicke zählt der countdown garnicht runter hab schon selbst versucht das hinzukrigen und hab im internet nach lösungen gesucht aber hat nicht geklappt?
Hab auch die Startbuttons reingebaut und das DateUtility
Mein Quellcode sieht jetzt so aus:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33:
| procedure TForm1.FormCreate(Sender: TObject); begin Randomize; Timer1.Enabled:=False; Timer1.Interval:=1000; edit5.Text:='00:00:10'; end;
procedure TForm1.Button10Click(Sender: TObject); var i : integer; begin for i := 1 to 1000 do begin Button1Click(Sender); label7.Refresh; end; end;
procedure TForm1.Timer1Timer(Sender: TObject); begin edit5.text:=timetostr(incsecond(strtotime(edit5.text),-1)); if Edit5.Text ='00:00:00'then Timer1.Enabled:=False; if Edit5.Text ='00:00:00'then ShowMessage('Zeit um !'); end;
procedure TForm1.StartClick(Sender: TObject); begin Timer1.Enabled:=True; end;
procedure TForm1.StopClick(Sender: TObject); begin Timer1.Enabled:=False; end; |
delphineuling - Do 16.03.06 02:40
ok sorry funktioniert jetzt doch plötzlich
und damit ich damit nun den button1 ausführe könnte ich doch einfach anstatt
then showmessage then button1.click:=????
oder muss ich dazu ein mausklick simulieren also den simulierten mausklick hinter das then machen und die koordinaten des buttons eingeben?
delphineuling - Do 16.03.06 03:02
ok doch nicht hab ich jetzt auch hinbekommen is ja nur then begin button 1.click
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!