DEUTSCHE VERSION |
|
Links | | | Forums | | | Comments | | | Report news |
Chat | | | Polls | | | Newsticker | | | Archive |
amiga-news.de Forum > Programmierung > Ich möchte einfach nur meine komplette Homepage zentrieren! | [ - Search - New posts - Register - Login - ] |
-1- 2 | [ - Post reply - ] |
2004-08-15, 11:27 h IamSONIC Posts: 131 User |
Hallo, kann mir als HTML Neuling mal jemand erklären wie ich meine komplette Homepage zentrieren kann ? Ich möchte einfach nur haben, dass sich alle Frames automatisch in der Mitte des Fensters zentrieren. Ich hatte es selbst schon mal fast geschafft, jedoch die Menüleiste muss aufgrund der Grafik direkt links unten an das Bannerframe! Wäre es möglich ein leeres Frame ganz links anzufügen welches im Prinzip das zentrieren übernimmt ? Danke für die Hilfe Ach ja die Adresse meiner Hompage lautet: http://www.r-alex.de -- Besucht meine Homepage http://www.r-alex.de [ - Answer - Quote - Direct link - ] |
2004-08-15, 12:25 h thomas Posts: 7718 User |
Du mußt halt links und rechts noch zwei Frames hinmachen. Dem oberen mit dem Titelbild gibst du eine feste Breite (die Breite des Bildes) und die beiden äußeren läßt du frei. code:<frameset cols="*,740,*"> <frame src="leer.htm"> <frameset rows="147,*"> <frame src="oben.htm"> <frameset cols="167,*"> <frame src="menu.htm"> <frame src="home.htm"> </frameset> </frameset> <frame src="leer.htm"> </frameset> Gruß Thomas -- Email: thomas-rapp@web.de Home: home.t-online.de/home/thomas-rapp/ [ - Answer - Quote - Direct link - ] |
2004-08-15, 13:43 h IamSONIC Posts: 131 User |
@thomas 1.000 Dank !!! Genau so wollte ich das, ich darf gar nicht sagen wieviele Stunden ich versucht habe das so zu machen. Gruss Alex -- Besucht meine Homepage http://www.r-alex.de [ - Answer - Quote - Direct link - ] |
2004-08-15, 13:59 h Mad_Dog Posts: 1944 User |
Alternativ kannst Du das auch mit der Technik der "blinden Tabellen" machen. Ein guter Einstieg in HTML ist auch SelfHTML. -- http://www.norman-interactive.com [ - Answer - Quote - Direct link - ] |
2004-08-15, 14:18 h IamSONIC Posts: 131 User |
@ Mad_Dog Blinde Tabellen sagt mir jetzt ehrlich gesagt gar nichts. SelfHTML... puhh muss ganz ehrlich sagen, dass ich mit meiner ersten Homepage "persönlich" sehr zufrieden bin und eigentlich genau das erreichen wollte. Das automatische zentrieren der Page war "für mich" die Krönung. Ich nutze im Moment die Freie Zeit die ich habe hauptsächlich für die Amiga Programmierung in C/C++. Als ich eben den Link Deiner Homepage angelickt habe, sah ich das der Amiga C Kurs ja von Dir ist. Ich persönlich finde diesen sehr gut und nutze diesen aktuell auch um mein C++ Know How vom PC auf den Amiga zu transferieren. Da ich überwiegend C++ gewöhnt bin ist die C Syntax vom Amiga schon ein wenig gewöhnungsbedürftig. Da mir Dein C-Kurs sehr gut gefällt, habe ich diesen auf meiner Homepage mit verlinkt. -- Besucht meine Homepage http://www.r-alex.de [ - Answer - Quote - Direct link - ] |
2004-08-15, 15:55 h TriMa Posts: 2793 [Former member] |
ich weiss ja nicht, aber so wie das aussieht, hättest du das ganze ohne frames gemacht, hätte ein table mit einer spezifischen grösse und align=center den selben effekt gehabt. Aber dnan wär das scrollverhalten anders ausgefallen. Deine Navigation solltest du übrigends kleiner machen, sodass man auf 1024x768 die Komplette Nav ohne scrollen sieht. Wär das keine Amigaseite hätte ich eine css Lösung parat was das scrollen angeht ohne das man Frames nutzt. -- join us: Bild: http://sarkasmus-pur.trimaweb.de/images/banner/sarkabanner.png Founder of #Sarkasmus-pur [ - Answer - Quote - Direct link - ] |
2004-08-15, 19:47 h Mad_Dog Posts: 1944 User |
Zitat: "Blinde Tabellen" bedeutet, daß Du eine (oder mehrere) Tabellen machst, die unsichtbar sind (also ohne Rand und in der selben Farbe wie der Hintergrund). Diese kannst Du dann dazu benutzen, um Text und Grafik anzuordnen. Beispiel: code:<table border=0 cellpadding=20> <tr> <td> <center> <font face="verdana,arial,helvetica" size=1 color="white"> <a href="C-Kurs.html"> <img src="C-Kurs/C-Kurs_sm.png" alt="Amiga C Kurs für Einsteiger" vspace="20" Border="0"><BR> </a> </font> </center> </td> <td> <font face="verdana,arial,helvetica" size=1 color="white"> <b>Amiga C Kurs für Einsteiger</b><BR> <p> Ein kleiner Kurs, der absolute Anfänger an die Programmiersprache C heranführen soll. </font> </td> </tr> </table> Zitat: Was meinst Du mit "die C Syntax vom Amiga"? Die CLI-basierten Beispiele sind reines ANSI C. Du darfst natürlich nicht C und C++ verwechseln... Was die AmigaOS API-Programmierung angeht: Jedes OS bzw. jede Bibliothek hat eben so seine Eigenheiten. Ich nehme mal an, daß Du die Sache mit den TagItems etwas "gewöhnungsbedürftig" findest? P.S.: Deine Homepage sieht gut aus! -- http://www.norman-interactive.com [ Dieser Beitrag wurde von Mad_Dog am 15.08.2004 editiert. ] [ - Answer - Quote - Direct link - ] |
2004-08-15, 20:41 h IamSONIC Posts: 131 User |
Zitat: Ok, hab verstanden... ich denke ich habe in meiner Homepage einige blinde Tabellen, ich habe ja mit Tabellen alle Texte und Grafiken angeordnet, insbesondere im PICs Bereich sind das alles Tabellen welche keinen Rand anzeigen. Zitat: Nun gut das wird daran liegen, dass ich bis dato immer nur in C++ Programmiert habe. Ich denke mal wenn ich unter OS 3.x arbeite kann ich auch einen C++ Compiler benutzen (z.B.: StormC), aber da ich ja unter AmigaOS 4.0 programmiere habe ich ja keine andere Wahl als den GNU C oder den vbcc zu benutzen und die beiden Teile kann man ja nur mit ANSI Code füttern. Aber Dein Workshop ist auch zum OS 4.0 SDK recht kompatibel, es gibt zwar ab und zu ne Meldung, im Regelfall aber nur ne Warnung. Zitat: Vielen Dank ! -- http://www.r-alex.de [ - Answer - Quote - Direct link - ] |
2004-08-16, 11:16 h Mad_Dog Posts: 1944 User |
Zitat: Der GNU C++ Compiler heißt g++. Geb einfach mal g++ --help in der Shell ein. Zitat: Gut daß Du das ansprichst. Ich kann das leider nicht testen, da ich keinen AmigaOne habe. Mir wurde berichtet, daß die Amiga spezifischen Sachen nicht funktionieren würden (da OS4 ja ein anderes Library Handling benutzt). -- http://www.norman-interactive.com [ - Answer - Quote - Direct link - ] |
2004-08-16, 12:07 h IamSONIC Posts: 131 User |
Zitat: Gut dass Du das erwähnt hast. Ich würde mich nun gerne auf eine Sprache festlegen. Was ist den besser wenn man auf dem AMIGA etwas programmieren möchte? Gibt es weniger OS-spezifische includes für den g++ ? Mit dem g++ müsste die Syntax ja genau wie auf dem PC ausehen?! Zitat: Liegt wohl daran, dass ich erst angefangen habe und noch im ersten Kapitel bin. Sobald was gar nicht funktioniert, gebe ich Dir bescheid. Man könnte ja evtl. von Deinem C-Kurs eine AmigaOS 4.0 Version anbieten? Gruss Alex -- http://www.r-alex.de [ - Answer - Quote - Direct link - ] |
2004-08-16, 13:13 h Mad_Dog Posts: 1944 User |
[quote] Original von IamSONIC: Zitat: Für C und C++ gibt es Standards. Das bedeutet ein reines ANSI C/C++ Programm läßt sich auf jedem ANSI C/C++ Compiler übersetzen. Die OS spezifischen Includes sind natürlich für jedes Betriebssystem anders. Teilweise bringen diese auch ihre eigenen Datentypen mit. Beim OS4 Dev Kit müssten eigentlich die passenden Header für gcc/g++ dabei sein. Was besser ist (C oder C++) hängt vom jeweiligen Problem ab. C ist eben nicht objektorientiert wie C++. In C gibt es auch kein Überladen von Operatoren oder ähnliches. Ist natürlich auch Geschmackssache, ob man jetzt lieber funktionell oder objektorientiert denkt. Zitat: Wie gesagt: Ich habe keinen AmigaOne, also kann ich auch keine OS4 Version anbieten. -- http://www.norman-interactive.com [ - Answer - Quote - Direct link - ] |
2004-08-16, 13:43 h Mad_Dog Posts: 1944 User |
Wir sind jetzt zwar schon ganz schön off-topic... Aber daß wir nicht aneinander vorbeireden: Du hast gesagt, Du wärst noch in Lektion 1.1... Ein "Hello,World!" in korrektem ANSI C sieht auf jedem System (egal ob Amiga, Linux, MacOS, Solaris oder sonst was) wie folgt aus: code:#include <stdio.h> int main(void) { printf("Hello,World!"); return 0; } Es kann natürlich sein, daß Dein Windows C Compiler noch den alten K&R oder AT&T Standard oder sonst was benutzt. Dann könnte auch sowas gültig sein: code:--#include <stdio.h> main() { printf("Hello,World!"); } http://www.norman-interactive.com [ - Answer - Quote - Direct link - ] |
2004-08-16, 13:44 h thomas Posts: 7718 User |
Im Prinzip kann man den Quellcode von OS3.1 unverändert auf OS4.0 kompilieren. Du solltest nur darauf verzichten, Libraries wie intuition oder graphics selbst zu öffnen. Das ist weder unter 3.1 noch unter 4.0 notwendig und müßte für 4.0 um das Öffnen des Interface ergänzt werden. Gruß Thomas -- Email: thomas-rapp@web.de Home: home.t-online.de/home/thomas-rapp/ [ - Answer - Quote - Direct link - ] |
2004-08-16, 14:04 h Solar Posts: 3680 User |
Zitat: Grundsätzlich läßt sich ein "sauberes" C-Programm immer auch mit einem C++-Compiler übersetzen. (Es gibt da ein paar ganz wenige Ausnahmen, aber wenn Du so weit kommst, daß Dich solche Problemchen beißen könnten, weißt Du auch, damit umzugehen.) Daher empfehle ich persönlich eigentlich immer den Direkteinstieg in C++. Einige Dinge, die Du für C in- und auswendig beherrschen mußt, spielen unter C++ i.d.R. überhaupt keine Rolle mehr. (printf(), string.h, um nur zwei zu nennen.) [ - Answer - Quote - Direct link - ] |
2004-08-16, 16:18 h IamSONIC Posts: 131 User |
Auf dem PC sieht das bei dem Beispiel dann so aus:code:#include <iostream.h> void main(void) { cout<<"Hello,World!"<<endl; return 0; } Was weis ich nach welchem Standart ich C++ erlent habe, wahrscheinlich so 100% Borland typisch. -- http://www.r-alex.de [ - Answer - Quote - Direct link - ] |
2004-08-16, 16:45 h Holger Posts: 8116 User |
Zitat:Es gibt keinen Standard, nach der man "return 0" in einer Funktion, die void zurückgibt, verwenden kann. Ansonsten kommt das dem Standard schon sehr nahe, nur inzwischen gibt's namespaces (mein Gott, da hat man mal ein paar Jahre nicht hingeguckt und schon... ), aber da mögen die C++-Experten zu sprechen. mfg -- Good coders do not comment. What was hard to write should be hard to read too. [ Dieser Beitrag wurde von Holger am 16.08.2004 editiert. ] [ - Answer - Quote - Direct link - ] |
2004-08-16, 16:45 h Mad_Dog Posts: 1944 User |
Zitat: Zum einen ist das C++ und nicht C. Zum anderen ist hier die Definition von main falsch: Du sagst mit code:void main(void) daß die Funktion main eine Variable vom Typ void, also nichts zurückgibt. Andererseits gibst Du mit return 0; einen Integer-Wert zurück. Ist mir ein Rätsel, warum das Dein Compiler überhaupt schluckt. -- http://www.norman-interactive.com [ - Answer - Quote - Direct link - ] |
2004-08-16, 16:51 h Holger Posts: 8116 User |
code:Ich glaube, so schaut's dann standardisierter aus, aber C++-Programmierer mögen mich gerne korrigieren.#include <iostream> int main(void) { std::cout<<"Hello,World!"<<std::endl; return 0; } mfg -- Good coders do not comment. What was hard to write should be hard to read too. [ - Answer - Quote - Direct link - ] |
2004-08-16, 16:53 h Mad_Dog Posts: 1944 User |
@thomas: Man kann natürlich auch drauf hoffen, daß der Compiler das Öffnen der Libraries übernimmt. Ich hab mich jedenfalls an die Beispiele der Developer CD 2.1 gehalten. Ich hab jetzt mal das Sierpinski-Fraktal aus meinem Kurs hergenommen und die entsprechenden Stellen zum Öffnen der Libraries usw. auskommentiert: code:/* Sierpinski-Fraktal * */ #include <exec/types.h> #include <exec/exec.h> #include <intuition/intuition.h> #include <graphics/gfx.h> #include <dos/dos.h> #include <stdlib.h> #include <proto/intuition.h> #include <proto/graphics.h> #include <proto/exec.h> /* Makro zur Erzeugung einer Zufallszahl * im Bereich min..max */ #define random(min,max) ((rand() % ((max+1)-min))+min) // Symbolische Konstanten #define WIDTH 400 // Breite des Fensters #define HEIGHT 300 // Höhe des Fensters struct Window *Fenster; // Zeiger auf Window-Struktur //struct IntuitionBase *IntuitionBase; // Zeiger auf IntuitionBase-Struktur //struct GfxBase *GfxBase; // Zeiger auf GfxBase-Struktur struct RastPort *rp; // Zeiger auf RastPort-Struktur // Funktionsprototypen void DrawSierpinski(void); int main(void) { // Intuition Library öffnen // IntuitionBase = (struct IntuitionBase *) OpenLibrary("intuition.library",36L); // if (IntuitionBase != NULL) // { // Graphics Library öffnen // GfxBase = (struct GfxBase *) OpenLibrary("graphics.library",0L); // if (GfxBase != NULL) // { // Fenster mittels Tags öffnen Fenster = OpenWindowTags(NULL, WA_Left, 100, // Abstand vom linken Rand WA_Top, 100, // Abstand vom oberen Rand WA_Width, WIDTH, // Breite WA_Height, HEIGHT, // Höhe WA_Title, "Sierpinski", // Fenstertitel WA_CloseGadget, TRUE, // Close-Gadget WA_DragBar, TRUE, // Ziehleiste WA_DepthGadget, TRUE, // Depth-Gadget WA_GimmeZeroZero, TRUE, // Ursprung 0/0 WA_IDCMP, IDCMP_CLOSEWINDOW, WA_Activate, TRUE, // Fenster aktivieren TAG_DONE); if (Fenster != NULL) { rp = Fenster->RPort; // rp zeigt auf RastPort des Fensters SetRast(rp, 1L); // Fensterinhalt löschen SetAPen(rp, 2L); // Farbe setzen DrawSierpinski(); // Fraktal zeichnen // Auf Close-Gadget warten Wait(1L << Fenster->UserPort->mp_SigBit); CloseWindow(Fenster); // Fenster schließen } // end if // } // end if // } // end if // Libraries schließen //if (GfxBase != NULL) CloseLibrary((struct Library *)GfxBase); //if (IntuitionBase != NULL) CloseLibrary((struct Library *)IntuitionBase); return 0; } // Funktion zum Zeichnen des Sierpinski-Fraktals void DrawSierpinski(void) { int iterate; SHORT x1, y1, x2, y2; x1 = x2 = WIDTH/2; y1 = y2 = 0; // Schleife zum Iterieren und Zeichnen der Pixel for(iterate = 0; iterate < 10000; iterate++) { // Zufallswerte erzeugen/ switch (random(0,2)) { case 0: x1 = (x2 + WIDTH/2) / 2; y1 = y2 / 2; break; case 1: x1 = x2 / 2; y1 = (y2 + HEIGHT) / 2; break; case 2: x1 = (x2 + WIDTH) / 2; y1 = (y2 + HEIGHT) / 2; break; } // Amiga Graphik-Primitive WritePixel (rp,x1, y1); x2 = x1; y2 = y1; } } Könnte mal ein AmigaOne/OS4 Besitzer testen, ob man das mit dem OS4 Dev Kit compilieren kann? Mit StormC 3.0 (68k) läuft's jedenfalls. -- http://www.norman-interactive.com [ - Answer - Quote - Direct link - ] |
2004-08-16, 17:01 h Mad_Dog Posts: 1944 User |
Zitat: Mir ist bekannt, daß C eine Untermenge von C++ ist. Aber wir wollen den Anfänger ja micht gleich komplett verwirren. Jedenfalls ist der Hauptunterschied bei der Wahl zwischen C und C++ als erste Programmiersprache die Denkweise: Während man in C eben funktionell programmiert, gewöhnt man sich bei C++ eher Objekte mit entsprechenden Methoden an. Das kann dann darin gipfeln, daß ein C++ Programmierer versucht ein reines C-Programm zu schreiben und dort dann Funktionen in Strukturen mit reinwurstelt (kein Witz, alles schon gesehen!). P.S.: C++ Compiler sind in der Regel etwas empfindlicher, was Warnings angeht. Ein C Programm, welches auf einem C Compiler keine Warnings produziert kann auf einem C++ Compiler durchaus Warnings produzieren. -- http://www.norman-interactive.com [ Dieser Beitrag wurde von Mad_Dog am 16.08.2004 editiert. ] [ - Answer - Quote - Direct link - ] |
2004-08-16, 17:11 h Mad_Dog Posts: 1944 User |
@Holger:code:#include <iostream> using namespace std; int main(void) { cout << "Hello,World!" << endl; return 0; } -- http://www.norman-interactive.com [ - Answer - Quote - Direct link - ] |
2004-08-16, 17:18 h Holger Posts: 8116 User |
@Mad_Dog: Globaler import? Jetzt werden garantiert einige Leute aufschreien. mfg -- Good coders do not comment. What was hard to write should be hard to read too. [ - Answer - Quote - Direct link - ] |
2004-08-16, 17:23 h Holger Posts: 8116 User |
Zitat:Prinzipiell ist es ja wurscht, wo eine Funktion steht. Wenn aber ein Programmierer gewohnt ist, Probleme mittels Polymorphismus zu lösen, kommt er gar nicht herum, Funktionspointer mit seinen Datenstrukturen (objekten) zu assoziieren. Das artet in C in eine riesige Schreibarbeit aus, aber zum Glück kommt es ja immer seltener vor, daß ein C++ Programmierer gezwungen ist, warum auch immer, C-Code zu schreiben. Zitat:Und C-Programme, die auf einem C-Compiler Warnings produzieren, können auf einem C++-Compiler durchaus komplett zurückgewiesen werden. Kann nur von Vorteil sein. mfg -- Good coders do not comment. What was hard to write should be hard to read too. [ - Answer - Quote - Direct link - ] |
2004-08-16, 17:25 h Mad_Dog Posts: 1944 User |
Zitat: Bei iostream spricht doch nichts dagegen. Wer will kann natürlich auch ständig std:: schreiben -- http://www.norman-interactive.com [ - Answer - Quote - Direct link - ] |
2004-08-16, 17:29 h Mad_Dog Posts: 1944 User |
Zitat: Polymorphismus und ADTs in C ist vom Problemtyp "den Code kann zwar keiner verstehen, aber ich hab gezeigt, daß es geht". Für sowas nimmt man dann doch lieber C++ oder Ada95. -- http://www.norman-interactive.com [ Dieser Beitrag wurde von Mad_Dog am 16.08.2004 editiert. ] [ - Answer - Quote - Direct link - ] |
2004-08-16, 17:57 h thomas Posts: 7718 User |
Zitat: Die Beispiele sind uralt und schon als sie neu waren, waren sie nicht gut. Viele haben sogar Fehler. Als Programmierer sollte man in der Lage sein, selbst zu denken und eine eigene Meinung zu haben. Bei OS4 steht es jedenfalls in der Doku, daß man es so machen soll. Zitat: gcc sierpinski.c -o sierpinski -D__USE_INLINE__ -lauto Funktioniert ohne eine einzige Warnung. __USE_INLINE__ wird benötigt, damit man nicht dauernd IIntuition->OpenWindow und so schreiben muß und -lauto fügt eben jenen auto-init-Code hinzu, der die benutzten Libs selbständig öffnet. Du solltest dir allerdings abgewöhnen, C++ Kommentare in C-Programmen zu verwenden. Es gibt durchaus C-Compiler, die das nicht akzeptieren. Gruß Thomas -- Email: thomas-rapp@web.de Home: home.t-online.de/home/thomas-rapp/ [ - Answer - Quote - Direct link - ] |
2004-08-16, 18:45 h Mad_Dog Posts: 1944 User |
Zitat: Daß die Beispiele von der AmigaOS Developer CD 2.1 teilweise uralt sind, ist mir bekannt. Ich hab leider keine neuere Dokumentation. Selbst das 3.9 NDK ist in der Hinsicht nicht besser. Wie war nochmal das Zitat von Einstein? Nur aus Beispielen kann man lernen. Zitat: Diese Doku hab ich leider nicht. Ich kann mir auch leider keinen AmigaOne leisten... Zitat: Danke! Ich hoffe, das Executable läuft dann auch problemlos? -- http://www.norman-interactive.com [ - Answer - Quote - Direct link - ] |
2004-08-16, 19:50 h thomas Posts: 7718 User |
Zitat:Natürlich. Zitat:Ich auch nicht. Den Teil mit dem selber denken hast du wohl überlesen ? Gruß Thomas -- Email: thomas-rapp@web.de Home: home.t-online.de/home/thomas-rapp/ [ Dieser Beitrag wurde von thomas am 16.08.2004 editiert. ] [ - Answer - Quote - Direct link - ] |
2004-08-16, 20:59 h Mad_Dog Posts: 1944 User |
Zitat: Beim OS4 Dev Kit wird doch auch Dokumentation dabei sein, oder etwa nicht? Was das "selber denken" angeht: Ich hab mich mit der Programmierung unter OS4 noch nicht beschäftigt. Unter 3.x gab's ja keine Probleme, wenn man die Libraries von Hand öffnet. Also bestand auch kein Handlungsbedarf sich darüber nen Kopf zu machen. Denken ist anstrengend und wie Du ja vielleicht weißt, bin ich ein fauler Student und zudem noch Schwabe, die ja bekanntlich sehr geizig und konservativ sind. -- http://www.norman-interactive.com [ - Answer - Quote - Direct link - ] |
2004-08-16, 22:16 h Holger Posts: 8116 User |
Zitat:Nun, wenn Du Dein Projekt "Website zum Thema Amiga Programmierung" in die Tat umsetzt, könnten wir neuere, bzw. fehlerbereinigte Versionen der Beispielprogramme erstellen. Einfach nach dem Prinzip online stellen und jeder, der etwas konstruktiv zu meckern hat, darf es umschreiben, und seine Version kommt dann in's Netz. Einzige Bedingung: er muß die Änderungen kommentieren, damit jeder weiß warum so, und nicht wie in der alten Version. Mit der Zeit sollten dann perfekte Beispiele mit hohem Lerneffekt entstehen. mfg -- Good coders do not comment. What was hard to write should be hard to read too. [ - Answer - Quote - Direct link - ] |
-1- 2 | [ - Post reply - ] |
amiga-news.de Forum > Programmierung > Ich möchte einfach nur meine komplette Homepage zentrieren! | [ - Search - New posts - Register - Login - ] |
Masthead |
Privacy policy |
Netiquette |
Advertising |
Contact
Copyright © 1998-2024 by amiga-news.de - all rights reserved. |