AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

SpinEdit in HTML-Code

Ein Thema von zappel · begonnen am 1. Mär 2005 · letzter Beitrag vom 1. Mär 2005
Antwort Antwort
zappel

Registriert seit: 30. Jan 2004
65 Beiträge
 
Delphi 2005 Personal
 
#1

SpinEdit in HTML-Code

  Alt 1. Mär 2005, 11:27
Hallo!

In Delphi gibt es ja den "SpinEdit". Gut geeignet, um z.B. schnell die Jahreszahl in einem Kalender zu ändern. Nun brauche ich eine Komponente, die gleich aufgebaut ist, in HTML. Habe schon alles Mögliche bei google eingegeben, aber bis jetzt nichts Vergleichbares gefunden.

Gibt es den "SpinEdit" in HTML?
Oder kann mir jemand sagen, wie ich das realisieren kann?
  Mit Zitat antworten Zitat
Benutzerbild von Marcel Gascoyne
Marcel Gascoyne

Registriert seit: 18. Nov 2003
Ort: Uetersen
271 Beiträge
 
Delphi 2005 Architect
 
#2

Re: SpinEdit in HTML-Code

  Alt 1. Mär 2005, 11:39
Du musst die Funktionalität mit JavaScript selber programmieren: Button mit Ereignis versehen und neues Fenster erzeugen; in diesem Fenster den Kalender zeichnen; Bei Datumsauswahl Ergebnis in das Formularfeld übernehmen.

Oder Du lädst Dir einfach einen fertigen Kalender herunter und baust diesen in Deine Seite ein, z.b. von Hotscripts.

Gruß,
Marcel
Marcel Gascoyne
Der Fehler sitzt immer vor der Tastatur
  Mit Zitat antworten Zitat
Benutzerbild von gothic_mike
gothic_mike

Registriert seit: 2. Okt 2003
Ort: Olbernhau
134 Beiträge
 
Delphi 7 Personal
 
#3

Re: SpinEdit in HTML-Code

  Alt 1. Mär 2005, 11:40
Zitat von zappel:
Hallo!

In Delphi gibt es ja den "SpinEdit". Gut geeignet, um z.B. schnell die Jahreszahl in einem Kalender zu ändern. Nun brauche ich eine Komponente, die gleich aufgebaut ist, in HTML. Habe schon alles Mögliche bei google eingegeben, aber bis jetzt nichts Vergleichbares gefunden.

Gibt es den "SpinEdit" in HTML?
Oder kann mir jemand sagen, wie ich das realisieren kann?
hmm, sowei ich weis gibt es sowas nicht in HTML.
du könntest aber neben einem normalen Edit zwei buttons (images) anbringen,
die bei klick ein javascript aufrufen, was den wert im Edit entsprechend ändert...
bye4now, gothic_mike
. ..: carpe noctem :: coding in the darkness :.. .
  Mit Zitat antworten Zitat
zappel

Registriert seit: 30. Jan 2004
65 Beiträge
 
Delphi 2005 Personal
 
#4

Re: SpinEdit in HTML-Code

  Alt 1. Mär 2005, 11:49
Danke für die schnellen Antworten!

Ich habe schon selber einen Kalender in PHP programmiert. Ich brauche nur noch eine elegante Lösung, wie bequem das Jahr gewechselt werden kann. SpinEdit wäre geeignet, gibt es aber wohl in HTML nicht.
Dann muss ich mir wohl eine Alternative einfallen lassen.
  Mit Zitat antworten Zitat
Benutzerbild von SubData
SubData

Registriert seit: 14. Sep 2004
Ort: Stuhr
1.078 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: SpinEdit in HTML-Code

  Alt 1. Mär 2005, 11:55
Code:
/*
  Kalender by rp @ ZI-Zeitsysteme
  More Infos: [url]http://cover-of-darkness.de[/url]
  This notice must stay intact for use!
*/
var ns4 = document.layers;
var ie4 = document.all;
var ns6 = document.getElementById&&!document.all
var isVisible = false;
var currentdate, datefield, futureonly;
var Months  = new Array("Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember");
var Days    = new Array("Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag", "Sonntag");
var DayShort = new Array("So", "Mo", "Di", "Mi", "Do", "Fr", "Sa", "So");
var InitD, InitM, InitY;
var posx, posy;
var wDay = 0;

function Init()
{
 if(document.layers)
 {
  document.captureEvents(Event.MOUSEMOVE);
  document.onmousemove=MouseMoved;
 }
 else
 {
  document.body.onmousemove=MouseMoved;
 }
}

function MouseMoved(MouseEvent)
{
 posy=(document.layers)?MouseEvent.pageY-(window.pageYOffset):event.y;
 posx=(document.layers)?MouseEvent.pageX-(window.pageXOffset):event.x;
}



function PickDate(date)
{
 InitD = date; InitM++;
 if (InitD < 10){ InitD = '0' + InitD; }
 if (InitM < 10){ InitM = '0' + InitM; }
 document.getElementsByName(datefield)[0].value = InitD + '.' + InitM + '.' + InitY;
 HideCalendar();
}

function FirstDay(day)
{
  var yy=day.getFullYear(), mm=day.getMonth();
  var fd=new Date(yy,mm,1);
  return fd.getDay();
}


function LastDay(day)
{
  var yy=day.getFullYear(), mm=day.getMonth();
  for (var i=31; i>=28; i--)
  {
    var nd=new Date(yy,mm,i);
    if (mm == nd.getMonth())
    {
      return i;
    }
  }
}

function ChangeYear(mod)
{
 if (mod == 1){ InitY++; }
 if (mod == -1){ InitY--; }
 InitX   = new Date(InitY, InitM, InitD);
 RedrawCalendar();
}

function ChangeMonth(mod)
{
 InitM = InitM + mod;
 if (InitM > 11){ InitM = 0; InitY++; }
 if (InitM < 0 ){ InitM = 11; InitY--; }
 InitX   = new Date(InitY, InitM, InitD);
 RedrawCalendar();
}

function RedrawCalendar()
{
 var Calendar = CalHeader() + CalTable() + CalFooter();
 document.all.FloatingKalender.innerHTML = Calendar;
}


function ShowCalendar(field, futureflag)
{
 if (futureflag) { futureonly = true; }
 if (isVisible) { HideCalendar(); }
 if (ie4)
 {
  DateArray = document.getElementsByName(field)[0].value.split(".");
  currentdate = new Date(DateArray[2], DateArray[1] - 1, DateArray[0]);
 }
 else
 {
  currentdate = new Date(document.getElementsByName(field)[0].value);
 }
 datefield = field;
 InitD = currentdate.getDate();
 InitM = currentdate.getMonth();
 InitY = currentdate.getFullYear();
 crossobj=ns6? document.getElementById('FloatingKalender') : document.all.FloatingKalender;
 if (ie4)     { crossobj.style.left=posx; crossobj.style.top=posy; crossobj.style.visibility="visible"; }
 else if (ns6) { crossobj.style.left=posx + 'px'; crossobj.style.top=posy + 'px'; crossobj.style.visibility="visible"; }
 else if (ns4) { document.FloatingKalender.left = posx; document.FloatingKalender.top = posy; document.FloatingKalender.visibility="show"; }
 if (ie4)
 {
  for(i=0; i<document.getElementsByTagName("SELECT").length; i++)
  {
   document.getElementsByTagName("SELECT")[i].style.visibility = "hidden";
  }
 }
 var Calendar = CalHeader() + CalTable() + CalFooter();
 document.all.FloatingKalender.innerHTML = Calendar;
}

function HideCalendar()
{
 crossobj=ns6? document.getElementById('FloatingKalender') : document.all.FloatingKalender
 if (ie4||ns6) { crossobj.style.visibility="hidden"; }
 else if (ns4) { document.FloatingKalender.visibility="hide"; } 
 if (ie4)
 {
  for(i=0; i<document.getElementsByTagName("SELECT").length; i++)
  {
   document.getElementsByTagName("SELECT")[i].style.visibility = "visible";
  }
 }
 isVisible = false;
}

function CalHeader()
{
 mykalhead = '<table border="0" align="center" bgcolor="#333333" cellspacing="0" cellpadding="1" width="177">';
 mykalhead += '<tr><td height="10" width="151" colspan="7" class="CalendarBorder" onMousedown="InitDrag(event, \'FloatingKalender\', \'FloatingKalenderBar\')" id="FloatingKalenderBar" style="cursor: hand;"> Kalender</td><td align="center" class="CalendarBorder" colspan="2" width="26">[url="javascript:HideCalendar();"][img]/gif?image=icon_close[/img][/url]</td></tr>';
 mykalhead += '<tr><td width="1" class="CalendarBorder"></td><td width="175" colspan="7" align="center" class="CalendarHead">[url="javascript:ChangeYear(-1);"]&#0171[/url] [url="javascript:ChangeMonth(-1);"]&#0139[/url] ' + Months[InitM] + ' ' + InitY + ' [url="javascript:ChangeMonth(1);"]&#0155[/url] [url="javascript:ChangeYear(1);"]&#0187[/url]</td><td width="1" class="CalendarBorder"></td></tr>';
 mykalhead += '<tr><td width="1" class="CalendarBorder"></td><td width="25" align="center" class="CalendarHead">Mo</td><td width="25" align="center" class="CalendarHead">Di</td><td width="25" align="center" class="CalendarHead">Mi</td><td width="25" align="center" class="CalendarHead">Do</td><td width="25" align="center" class="CalendarHead">Fr</td><td width="25" align="center" class="CalendarHead">Sa</td><td width="25" align="center" class="CalendarHead">So</td><td width="1" class="CalendarBorder"></td></tr>';
 return (mykalhead);
}

function CalFooter()
{
 mykalfoot = '<tr><td width="1" class="CalendarBorder"></td><td width="175" align="center" colspan="7" class="CalendarHead">[url="javaScript:HideCalendar();"][Abbruch][/url]</td><td width="1" class="CalendarBorder"></td></tr>';
 mykalfoot += '<tr><td height="1" width="177" colspan="9" class="CalendarBorder" align="center"></td></tr>';
 mykalfoot += '</table>';
 return (mykalfoot);
}

function CalTable()
{
 var mykalbody = "", dayCount = 1, fd = FirstDay(currentdate), ld = LastDay(currentdate), sclass;
 if (fd == 0){ fd = 6 }
 else { fd--; }
 for (var i=0; i<6; i++)
 {
   mykalbody += '<tr><td width="1" class="CalendarBorder"></td>';
   for (var j=wDay; j<wDay+7; j++)
   {
     if (i*7+j<fd || dayCount>ld)
     {
       mykalbody += '<td width="25" class="CalendarContent"></td>';
     }
     else
     {
       sclass="CalendarContent";
       if (dayCount==InitD)
       {
         sclass="CalendarDay";
       }
       mykalbody += '<td class="' + sclass + '" width="25">[url="javascript:PickDate(' + dayCount + ')"]' + (dayCount++) + '[/url]</td>';
     }
   }
   mykalbody += '<td width="1" class="CalendarBorder"></td></tr>';
 }
 return(mykalbody);
}
Der Aufruf erfolgt einfach über ShowCalendar(feldname);
Feldname ist ein textfeld wo hinterher das Datum angezeigt wird.

Wäre natürlich nett, wenn du mich mit nem Dankeswort erwähnst

Das Div hier musste noch irgendwo nach unten setzen:
Code:
<div id="FloatingKalender" style="position: absolute; width: 177; visible: false">
  <ilayer width="100%" onSelectStart="return false">
    <layer width="100%" onMouseover="DragSwitch=1; if (ns4) DragDropNS('FloatingKalender')" onMouseout="DragSwitch=0">
    </layer>
  </ilayer>
</div>
Edit: Im Onload Tag muss noch Init(); gesetzt werden
Ronny
/(bb|[^b]{2})/
  Mit Zitat antworten Zitat
zappel

Registriert seit: 30. Jan 2004
65 Beiträge
 
Delphi 2005 Personal
 
#6

Re: SpinEdit in HTML-Code

  Alt 1. Mär 2005, 12:15
Danke für deine Mühe! Werde mir das mal anschauen, aber ich denke nicht, dass ich das verwenden werde, denn ein Kalender in PHP ist wesentlich dynamischer und kann auf eine MySQL-Datenbank zugreifen, so dass ich sehr einfach Termine im Kalender verwalten kann.
  Mit Zitat antworten Zitat
Benutzerbild von SubData
SubData

Registriert seit: 14. Sep 2004
Ort: Stuhr
1.078 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: SpinEdit in HTML-Code

  Alt 1. Mär 2005, 12:59
Achso... ein richtiger Kalender mit Einträgen... Na das ist mit JavaScript schwer zu realisieren.
Das Ding hier kann man eher mit nem TDateTimePicker vergleichen
Ronny
/(bb|[^b]{2})/
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:19 Uhr.
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