
geloescht_JesterDay
Mitglieder-
Gesamte Inhalte
3822 -
Benutzer seit
-
Letzter Besuch
Inhaltstyp
Profile
Forum
Downloads
Kalender
Blogs
Shop
Alle Inhalte von geloescht_JesterDay
-
Bildgröße mit Javascript festlegen
geloescht_JesterDay antwortete auf FlyingFire's Thema in Skript- und Webserverprogrammierung
Naja, mit Javascript kannst du nur die Anzeigegröße der Bilder im Browser ändern. Mit der eigentlichen Größe der Bilder hat das nichts zu tun. Das bekommst du mit Javascript auch nicht hin. Aber wenn dir das langt: // Bilder eindeutig über ID indiziert var myImg = document.getElementById("Image1"); myImg.height = 480; myImg.width = 640; // alle Bilder im Dokument var myImgs = document.getElementsByTagName("img"); for each (var myImg in myImgs) { myImg.width = 640; myImg.height = 480; } ungetestet, also ohne Gewähr. Nachtrag: Dazu müssen natürlich alle Bilder vorhanden sein im Dokument. Also einfach im Header das ausführen bringt dir nichts. Das muss nach dem Laden des Dokuments ausgeführt werden. Nur dann sind alle Elemente auch wirklich da. -
CMS-Systeme
geloescht_JesterDay antwortete auf R1I9C8H5I's Thema in Skript- und Webserverprogrammierung
Ich habe mal Joomla (bzw hieß es da ja noch Mambo) eingesetzt, und bin auch nicht wirklich zufrieden gewesen. Warum? Ich finde es, trotz toller bunter Oberfläche, alles andere als Intuitiv. Um einen einzelnen eintrag Anzulegen brauch ich erst eine Kategorie und dann noch... keine ahnung mehr wie das Ding heißt und dazu kann ich dann einen Inhalt anlegen. Und genauso werden auch die Menüs aufgebaut, nach Kategorien. Und weil das eben so ist, sehen alle Joomla Seiten auch praktisch gleich aus. Ich habe mal versucht eine andere Art von Oberfläche zu machen, es geht einfach nicht. (Ok, bin kein Joomla Experte, von daher lass ich mich da gern vom Gegenteil überzeugen) Ich habe mir damals zuerst Mambo angesehen. War ja in aller Munde und sollte so toll sein. Ich bin da nicht wirklich durchgestiegen und fand es total kompliziert (s.o.). Dann hab ich mir Typo3 angesehen , was von allen ja als sooo kompliziert angesehen wird. Da fand ich gleich eine total logische Struktur. Root-Seite, Unterseiten und Unterunterseiten, wie ein Baum. Und genauso werden auch die Menüs aufgebaut, jeder Unterebene = ein Menü. Mit den tutorials auf der Seite ist man da total schnell drin. Danach hab ich mir nochmal Mambo angesehen und hab mindestens 2 Wochen gebraucht um da eine Seite mit zu machen. Genausolang hab ich mit Typo3 (von 0 an) für eine kompliziertere Seite gebraucht. Joomla ist schön bunt. Die Adminmenüs sind teilweise besser zugänglich und aufgeräumter (was aber nicht heißt dass sie vom funktionellen besser sind). Das ist aber IMHO der einzige Vorteil den Joomla hat. Vom Aufbau das Inhalts und der ganzen Site ist es hingegen kompliziert und unlogisch, finde ich. Mit Joomla 1.5, oder 2 (weiß nicht mehr was da aktuell ist) sollte sich das ja ändern. Damals war das aber nur als Beta verfügbar und ich sollte das für eine Produktivseite nutzen, und wollte daher kein Beta.... In dieser neuesten Version stimmt vielleicht einiges von meiner Kritik nicht mehr, aber das ist es, was ich schlecht finde an Joomla. -
-
-
[Delphi 2005] Threads verschwinden
geloescht_JesterDay antwortete auf Maulwurf_der_Schlaue's Thema in Delphi/RPG+CL/Sonstige
Noch was: Nein, gerade das wird ja nicht durchlaufen. Ansonsten würde das ja keinen Sinn machen. Wenn ein Fehler auftritt, wird die Ausführung normal an der Stelle abgebrochen. Alles was danach steht wird nie aufgerufen. Aus dem Grund gibt es try finally. Im Try block ist der Code, der Probleme bereiten könnte und im Finally Block ist das, was auch wenn ein Fehler auftritt, auf jeden Fall vor dem Rücksprung noch ausgeführt werden soll. Und nur der Finally Block wird dann ausgeführt vor dem Abbruch. EDIT: Wenn du das mit einem Try Except machst so wie du das mit dem Finally hast bei dir, dann würde der Code ausgeführt werden. Dabei würdest du aber den Fehler einfach verschlucken und nicht auf ihn reagieren und nichts. -
[Delphi 2005] Threads verschwinden
geloescht_JesterDay antwortete auf Maulwurf_der_Schlaue's Thema in Delphi/RPG+CL/Sonstige
Natürlich kannst du das im Hauptformular visualisieren und auch sonst alles tun was du willst. OnTerminate nimmt eine prozedur auf, und die kann kommen von wo sie will. Die ThreadTerminate-Prozedur in meinem Beispiel sollte eben im Form1 implementiert sein, das hab ich nur nicht dazugeschrieben, da ich dachte das wäre klar Solch eine Verschränkung wie bei dir ist unabhängig vom Modularen schon schlecht. Das ist einfach ein schlechter Stil. Mehr kann ich dazu im Moment gar nicht sagen, es ist einfach... schlecht das allein zu sehen Solche Events sind genau dafür da, dass du von außen auf irgendwas in Objekten reagieren kannst. Ohne dass das Außen irgendwas mit dem Objekt zu tun haben muss. Im Prinzip macht das ja nichts anderes als das was du getan hast. Ich weiß nicht ob du schonmal selber ein Event programmiert hast, sieht aber nicht so aus. Also: Ein Event besteht erstmal aus einem Prozedurzeiger, der ist erstmal leer. Wenn du dem Event eine Prozedur zuweißt, dann steht diese da im Zeiger. Kommt der Code jetzt an diese Stelle wo ein Event ausgelöst werden soll, dann geschieht das, indem geprüft wird, ob der Zeiger leer ist, und wenn nicht, wird die Prozedur auf die der Zeiger verweißt aufgerufen. Also ganz einfach ung so: //*** Hier steht u.U. bissl Code type TThreadTerminateEvent = procedure(Sender: TObject); //*** Hier ist die Klasse definiert TThread = Class(Thread) // Keine Ahnung wie die genau aussieht ... private //*** hier der Prozedurzeiger FThreadTerminate: TThreadTerminate; ... public //*** hier sind die Events als public definiert OnTerminate: TThreadTerminate; read FThreadTerminate; write FThreadTerminate; // Denke das war so... kannst dir ja aber den Quelltext anschauen // wenn du willst ... end; //*** eine Menge mehr Code //*** jetzt passiert was und ich als Entwickler des Objekts will, //*** dass man das von außen mitbekommen kann //*** in dem Beispiel ist der Thread beendet if (assigned(FThreadTerminate)) then begin FThreadTerminate(self); end; ... Du kannst also einfach den Code deiner Prozedur in deine ThreatTerminate Prozedur kopieren und alles geht gehauso wie vorher... den Thread bekommst du über den Sender, musst ihn u.U. halt casten vor dem benutzen z.B. (Sender as TThread).ThreadID Und wenn du nicht sicher bist, dass das immer ein TThread ist noch eine Prüfung If Sender is TThread davor. EDIT: Natürlich könntest du auch das ganze überschreiben und dein eigenes Event als OnTerminate ausführen... da könntest du dann wohl deine ThreadID oder was auch immer als Parameter an die Prozedur übergeben. Also ein Event ist im Grunde nichts anderes als das was du gemacht hast, nur eben Source-unabhängig, weil du die aufgerufene Prozedur erst zur Laufzeit da reinkopierst. -
Kontakt -> Referenzen : Seite mit einigen Kunden als Liste -> Da wiederum Link auf Bilderseiten oder jenachdem wie das denn vom Inhalt her aussieht. Wer schaut sich denn 30 Kunden in einem Klappmenü an? (keep it simple, stupid! KISS-Prinzip - Wikipedia ) EDIT: Außerdem ist eine Referenzseite mit 30 Kundenkurzvorstellungen (bzw. Kundenprojekt) eh SEO-technisch besser, IMHO Nachtrag: Und wenn du dennoch ein T3-PlugIn brauchst... ich kenne jemand, der hat ne Firma die sich auf sowas spezialisiert haben (hab ich leider zu spät erfahren, sonst würd ich vielleicht da jetzt arbeiten) Aber als Subunternehmer würde der sich bestimmt auch freuen
-
-
[Delphi 2005] Threads verschwinden
geloescht_JesterDay antwortete auf Maulwurf_der_Schlaue's Thema in Delphi/RPG+CL/Sonstige
Hmmm, threads in Delphi sind schon eine Weile her... ich versuch es mal. Erstmal, was mit gleich aufgefallen ist: type TDownload = class(TThread) public constructor Create(pSpeichort: String; pLink: String; pUniqueID: String; CreateSuspended : BOOLEAN = TRUE); private protected procedure Execute; override; (* Synchronisierter Zugriff auf Hauptthread *) procedure AusListeEntfernen; var Speicherort: String; SourceFile: String; UniqueID: String; end; var im protected? Willst du deine Threads weitervererben? Oder die Variablen irgendwem sonst zugänglich machen? Denke doch nicht. Also solltest du die ganz normal als Felder im Private des threads deklarieren: type TDownload = class(TThread) public constructor Create(pSpeichort: String; pLink: String; pUniqueID: String; CreateSuspended : BOOLEAN = TRUE); private Speicherort: String; SourceFile: String; UniqueID: String; protected procedure Execute; override; (* Synchronisierter Zugriff auf Hauptthread *) procedure AusListeEntfernen; end; Und ohne var davor. Weiter die Einbindung von Form1. :eek Ich hab jetzt keine Delphi-Hilfe mehr da oder sonst was, aber sowas ist ein abolutes NoGo. Zum einen beziehst du dich direkt auf den Formnamen (wobei form1 auch nicht form1 heißen sollte, aber egal ). Wenn du den mal änderst? Oder wenn du die Threads in einem anderen Programm verwenden willst? Wenn du ein zweites Formulas hinzufügst, was dann den Threadaufruf startet? Der Sinn der modularen Programmierung ist ja, dass die Module (die einzelnen Units) recht frei verwendet werden können, auch in anderen Programmen. Genau das verhinderst du ja hier, weil du alles von deinem Hauptformular abhängig machst. Also: Die Prozedur AusListeEntfernen entfernen. Das uses Code entfernen. In der Objektorientierung gibt es etwas wunderbares, nämlich die Events. Ein TThread bietet auch ein paar Events, unter anderem das OnTerminate-Event. Das wird genau dann abgefeuert, wenn der Thread sich beendet. Das solltest du dann auch nutzen. Ich kenn die genaue Signatur des Events nicht mehr, aber die Hilfe sagt dir da ne Menge. (Hab ich schonmal gesagt, dass ich die Delphi Hilfe liebe? Ich hab noch keine Hilfe gesehen, die so ausführlich und gut ist wie die von Delphi. Weder Visual Studio, MSDN, noch Java oder ähnliches haben auch nur annähernd so eine gute Hilfe wie Delphi!) Falls du das noch nie gemacht hast hier eine kleine Erklärung: Einem Event kannst du eine Prozedur zuweisen, die dann ausgeführt wird, wenn das Event aufgerufen wird. Die Prozedur kann irgendeine sein, sie muss nur dieselben Parameter haben wie die geforderten. du kennst es vielleicht, wenn du einen Doppelklick auf einen TButton machst in Delphi. Dann legt Delphi eine ButtonClick Prozedur an und weißt die auch gleich dem Event zu. Das machst du hier auch, nur händig. // Hauptprogramm // viel Code vorher // OnTerminate Event für Threads // Die Parameter weiß ich nicht mehr) procedure ThreadTerminate(Sender: TObject;) begin // Das tun was getan werden soll, wenn der Thread beendet wird end; (* viel Code vorher *) (* Neuen Thread erzeugen und in Array merken*) AktivThreads[idxAktivThread] := TDownload.Create( (* Erster Parameter : Speicherort *) linkSaveName, (* Zweiter Parameter : Quelle *) link, (* Dritter Parameter : Zusätzlich Identifikations# da ThreadID doppelt vorkommt *) threadUID, (* Vierter Parameter : Create Suspended *) True ); // Terminate-Event zuweisen AktivThreads[idxAktivThreads].onTerminate:= ThreadTerminate; (* viel Code nachher *) Somit wird deine Prozedur aufgerufen, sobald der Thread sich beendet. Was das Problem bei deinem Code sein kann: procedure TDownload.Execute; begin try UrlDownloadToFile(nil, PChar(SourceFile), PChar(Speicherort), 0,nil); finally (* keine Aktion nötig, soll nur nicht abstürzen bei Fehler *) end; Synchronize(AusListeEntfernen); end; Wenn UrlDownload einen Fehler Produziert, wird AusListeEntfernen nicht aufgerufen! Das solltest du in finally schreiben, dass das also auf jeden Fall aufgerufen wird. Und um einen Fehler abzufangen musst du eh Try Except benutzen -
typo3.org: Tutorials Da das Tutorial Der Einstieg (doc_tut_quickstart_de) und danach dann Moderne Templateerstellung, Teil1 (doc_tut_templsel_de) Damit solltest du erstmal gewappnet sein für alles was du erstmal brauchst. Speziellere Sachen findest du dann in der TSRef, der TypoScript Referenz. Aber das waren bei mir schon sehr spezielle Sachen wo ich die gebraucht hab damals. mit den Tutorials sollte es für eigentlich jede nornale Seite reichen. Futuristic Template Building hab ich mir mal angesehen... aber das "von Hand", Modern Template Building, find ich immer noch besser Ich hab mir mit dem MTB (bzw danach) damals ein TS erstellt und das schon für 4 oder 5 Seiten, alle doch unterschiedlich und vorallem ganz andere Templates, genutzt (mit minimalen Anpassungen). Das finde ich an Typo3 so toll Also dass du nur eine neue "Seite" (Template) machen musst und wenn die vom Stil her passt und du dich an gewisse IDs hälst und so, dann musst du sonst fast nix tun.
-
-
-
-
Tabellenlayouts sind wie Puzzle, ein Teil neben das andere geklebt. CSS-Layouts sind nicht nebeneinander geklebt sonder verschachtelt. Wenn man von diesem Denken nicht wegkommt, wird das nie was mit CSS und man wird immer meckern, dass CSS ja sch*** ist weil man damit nichts hinbekommt. Und deswegen hör ich nicht auf den Leuten zu sagen, dass sie vom Tabellendenken weg sollen! Selbst wenn es nur 2- oder 3-column layout ist. Das sieht vielleicht nebeneinandergeklebt aus, ist es aber nicht. Und gerade als Entwickler sollte dir der Unterschied zwischen Code und dem was der User sieht bewußt sein. Ach ja: CSS 4 You - The Finest in Stylesheets ist eine Seite die CSS gut erklärt und wo es auch um Grundlagen geht. Hab ich vorhin nur vergessen.
-
Ich sage einfach mal: Das wirst du nicht finden! css-"tabellen"-aufbau... Ich sag das mal mit einer Liedzeile:
-
Sicher dass du das willst? Ich stell mir das nämlich eher bescheiden vor, wenn eine Seite mit wenig Inhalt über den ganzen Browser geht. Dann hast du nämlich ncihts anderes als wenn sie das nciht tut (so wie jetzt)... ne Menge leeren Raum. Nur dass dann ein evtl. Fuß oder anderes am rechten Rand ewig weit weg vom rest sind. Und das sieht einfach schh*** aus! 1024er Auflösungen als Vorgabe zu nehmen ist ja schon, aber heutzutage sind eher höhere Auflösungen wie 1280 standard. Naja, zumindest weit verbreitet. Oder auch noch mehr. Ach und die Border-Box bekommst du so zentriert: <div id="border" style="width: 800px; margin-left: auto; margin-right: auto;"> bla bla bla </div> Und was ist bei einer auflösung von 964x679 oder 1167x989? Nicht alle haben den Browser immer Fullscreen laufen. Anpassungen an genau 1024x768 sind als grobe Vorgabe ok, aber davon auszugehen dass die alle sowas haben... Ich kann dir z.B. nicht sagen wie groß mein Browser ist. Er ist auf jeden Fall nie Fullscreen. Ansonsten: Height 100% bezieht sich immer auf das Elternelement (wie schonmal gesagt. Wenn das elternelement aber <body> ist, dann hat das Elternelement keine definierte Höhe. (Das steht so im CSS-Standard. Hab das letztens mal rausgesucht, in irgeneinem Thread hab ich das zitiert) Ein Browserfüllendes DEsign ist also mit CSS nur über Hacks hinzubekommen, die aber auch wieder Nebenwirkungen haben. Fast alle modernen Designs nutzen übrigens kein widht = height = 100% mehr. Wobei sowas wohl mit CSS3 dann doch eher wieder möglich sein wird. Mal abwarten was das bringt...
-
-
Ja, natürlich. Aber für sowas wurde ja sonst immer Flash genommen. Das meinte ich damit. Das hier ist ganz normales HTML, mit Javascript. Gerade Leute die meinen solche Effekte braucht ihre HP sind ja immer sofort mit Flash zur Stelle. Und genau da kann man sagen: Moooment, das geht auch mit HTML. Was ich noch gar nicht probiert habe ist, wie das ohne Javascript aussieht, also mit deaktiviertem Javascript. Im Idealfall würde das dennoch funktionieren und wäre somit für die meisten eine effektvolle Webseite, wie sie sich das vorstellen und für die die ohne Javascript surfen (Googlebot und co, Screenreader etc.) dennoch genauso zu erreichen. Das wäre eine perfekte Webseite, IMHO. Wahrscheinlich ist das hier aber nicht der Fall, da es ja eh nur um Bilder geht. Somit ist es also fast schon nutzlos das auch ohne Javascript zu machen. Ich finde die Umsetzung dennoch toll und bin bei meiner suche nach einem AJAX-Framework auf sie gestoßen, denn die Seite ist mit dem script.aculo.us Framework gemacht, welches ich auch genutzt habe.
-
Schau mal in der Datei /var/log/auth.log
-
hm?
-
Die Seite Kontakt ist, wie man sich das denken kann, Text Klar ist, dass bei dem Thema da hauptsächlich Bilder sind. Aber es geht auch mit Text.
-
Weiterblättern? Da gibt es eine meiner Meinung nach wirklich geniale Seite, die das mit dem "weiterblättern" IMHO perfektioniert hat. Ohne Flash und ohne Tabellen! christof wagner / fotograf
-
Ajax Aufruf friert IE ein
geloescht_JesterDay antwortete auf spinner's Thema in Skript- und Webserverprogrammierung
Der IE könnte sich an den unterschiedlichen Umgebungen stören. Lokal ist eben, gerade für den IE und seine Sicherheitszonen, ganz und gar nicht das Internet Zum einen siehe oben, zum anderen: Wie bei 99,9% der Fragen hier die irgendwo einen Satz dabei haben wie "das ganze läuft lokal super" gibt es dazu nur eine Antwort, XAMPP ist sch***. Also ok, so pauschal kann man das nicht sagen, aber gerade für Anfänger die damit irgendwas entwickeln kommt es immer wieder zu solchen Problemen. Ganz einfach weil die Einstellungen in XAMPP so lax sind, dass sie so nirgendwo auch nur annähernd in freier Wildbahn zu finden sind (und man bei Windows eh nie irgendwie Probleme mit dem Zugriff bzw Rechten bekommen könnte). Das beste was Leute wie du tun können ist meiner Meinung nach eine VMWare Sitzung runterladen und mit dem VMWare Player laufen lassen. Es gibt bestimmt (die Idee kam mir gerade beim schreiben, hab das noch nciht nachgeprüft) ein VMWare Image, dass einen Apache, PHP, MySQL und Samba laufen hat. Samba einfach damit man den eigentlichen Webordner als NEtzlaufwerk einbinden kann zum entwickeln. Mit der Konstellation (also kein Player, sonder ein solcher Entwicklungsserver halt) hab ich immer entwickelt und würde es auch weiterhin tun, wenn ich jetzt nich den AG gewechselt hätte und (im Moment) nichts mehr mit PHP zu tun habe. In dem Fall denke ich aber eher, der IE mit seinen Zonen ist schuld. Lass dir doch einfach nach jeder Zeile per alert einen "Zustandsbericht" ausgeben, dann weißt du erstmal wo genau er hängen bleibt. -
Command & Conquer: Kanes Rache
geloescht_JesterDay antwortete auf geloescht_JesterDay's Thema in Gaming Club's Allgemeine Themen
Das klingt mir nach einer Standardantwort. Die haben sich wohl nichtmal die Mühe gemacht das groß durchzulesen, sondern sobald sie gesehen haben dass geht um ein Produkt was bald erst erscheint einfach Standardantwort C ausgewählt. Vielleicht haben sie auch eine entsprechende Regel im Posteingang Was mir noch einviele wäre ein Spielemagazin. Da ich die aber seit etlichen Jahren nicht mehr lese weiß ich da auch keins. Da gab es doch bestimmt schon irgendwo einen Vorbericht o.ä., oder?