Paules-PC-Forum.de Anzeige:

Microsoft Windows Intune: PC-Verwaltung und -Sicherheit in der Cloud: Updateverwaltung, Anti-Virus und vieles mehr!


Zurück   Paules-PC-Forum.de > Programmierung > XProfan

XProfan Alles rund um die Programmiersprache XProfan.

EM-Tippspiel

Paule bei Facebook


Paule bei Twitter


Letzte Forenthemen
Gehe zum ersten neuen Beitrag Kein Audiogerät
Aufrufe: 0, Antworten: 0
Gehe zum ersten neuen Beitrag Algorithmen Teil IV...
Aufrufe: 3361, Antworten: 129
Gehe zum ersten neuen Beitrag Hamachi deinstallieren
Aufrufe: 58, Antworten: 5
Gehe zum ersten neuen Beitrag Bundesliga-Tippspiel Saision...
Aufrufe: 7670, Antworten: 187
Gehe zum ersten neuen Beitrag PPF - Spiel "Wörter weiter...
Aufrufe: 26970, Antworten: 4223
Gehe zum ersten neuen Beitrag PPF - Shoppingwahn
Aufrufe: 50963, Antworten: 1397
Gehe zum ersten neuen Beitrag Pc lahmt plötzlich
Aufrufe: 186, Antworten: 6
Gehe zum ersten neuen Beitrag PC fährt nicht mehr hoch.
Aufrufe: 0, Antworten: 0
Gehe zum ersten neuen Beitrag Von Live CD Windowspfad...
Aufrufe: 329, Antworten: 19
Gehe zum ersten neuen Beitrag Captur 2.2 (Snow Leo)
Aufrufe: 28, Antworten: 0
Zeige:





Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 28.01.2012, 22:20   #1 (Direktlink)
Stammuser
 
Registriert seit: 04.04.2009
Ort: Lübeck
Beiträge: 264
Standard SysMonthCal32

Ich suche eine "Einklick"-Lösung ohne GetMessage um ans Datum zu kommen.
Hat einer von euch eine Lösung/ Vorschlag.
Code:
declare calender&,calender2&
DEF getsystime(2) SendMessage(&(1),4097,0,&(2))

PROC GETDATE
    declare d$,m$,y$,dtp#
    dim dtp#,20
    parameters chdl&
    getsystime(chdl&,dtp#)
    d$=format$("00",word(dtp#,6))
    m$=format$("00",word(dtp#,2))
    y$=format$("0000",word(dtp#,0))
    dispose dtp#
    return d$+"."+m$+"."+y$
ENDPROC
usermessages 16
cls

var ELEMENT2&=Control("DIALOG","",$54000000,255,26,184,169,%hwnd,0,%hinstance,$0)
calender2&=Control("SysMonthCal32","",$54000000,2,2,180,165,ELEMENT2&,$0,%hinstance)

while 1
    waitinput
    case %umessage=16:break
    
    If  %MWnd=ELEMENT2&
      If %MouseKey=1
        getdate calender2&
        locate 0,0
        print $(0)
      endIf
   endIf
wend
DestroyWindow(ELEMENT2&)
End
Thomas
THFR ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 29.01.2012, 06:49   #2 (Direktlink)
Stammuser
 
Benutzerbild von Andreas Miethe
 
Registriert seit: 08.02.2009
Ort: Bielefeld
Alter: 53
Beiträge: 428
Standard

Zitat:
Zitat von THFR Beitrag anzeigen
Ich suche eine "Einklick"-Lösung ohne GetMessage um ans Datum zu kommen.
Hat einer von euch eine Lösung/ Vorschlag.
So sollte es gehen.
Code:
declare calender&,calender2&
DEF getsystime(2) SendMessage(&(1),4097,0,&(2))

Proc GetDate
    Declare Datum#
    dim Datum#,20
    SendMessage(Calender2&,4097,0,Datum#)
    Var Zurück$ = format$("00",word(Datum#,6))+"."+format$("00",word(Datum#,2))+"."+format$("0000",word(Datum#,0))
    Dispose Datum#
    Return Zurück$
ENDPROC

usermessages 16
cls

var ELEMENT2&=Control("DIALOG","",$54000000,255,26,184,169,%hwnd,0,%hinstance,$0)
calender2&=Control("SysMonthCal32","",$54000000,2,2,180,165,ELEMENT2&,$0,%hinstance)

while 1
    waitinput
    case %umessage=16:break

    If  %MWnd=ELEMENT2&
      If %MouseKey=1
        GetDate
        locate 0,0
        print $(0)
      endIf
   endIf
wend
DestroyWindow(ELEMENT2&)
End
__________________
Gruss
Andreas

______________________
http://www.ampsoft.eu

Profan 3.3 - XProfanX2
Windows 95,98,ME,2000,XP
Vista - Windows 7 32 / 64 Bit

ASUS X93S - Intel Core I7 - NVIDIA GForce GT540M - 8GB Arbeitsspeicher
Andreas Miethe ist offline   Mit Zitat antworten
Alt 29.01.2012, 10:24   #3 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
Standard

Geht unter Windows 7. Ich würde Prozeduren aber immer als Funktion aufrufen:

Code:
declare calender&,calender2&
DEF getsystime(2) SendMessage(&(1),4097,0,&(2))

Proc GetDate
    Declare Datum#
    dim Datum#,20
    SendMessage(Calender2&,4097,0,Datum#)
    Var Zurück$ = format$("00",word(Datum#,6))+"."+format$("00",word(Datum#,2))+"."+format$("0000",word(Datum#,0))
    Dispose Datum#
    Return Zurück$
ENDPROC

usermessages 16
cls

var ELEMENT2&=Control("DIALOG","",$54000000,255,26,184,169,%hwnd,0,%hinstance,$0)
calender2&=Control("SysMonthCal32","",$54000000,2,2,180,165,ELEMENT2&,$0,%hinstance)

while 1
    waitinput
    case %umessage=16:break

    If  %MWnd=ELEMENT2&
      If %MouseKey=1
        locate 0,0
        Print GetDate()
      endIf
   endIf
wend
DestroyWindow(ELEMENT2&)
End
__________________
Gruß, Frank


Webpage http://frabbing.bplaced.net
mit Freeware - Tools, Spiele und Grafiken.
Frabbing ist gerade online   Mit Zitat antworten
Alt 29.01.2012, 11:06   #4 (Direktlink)
Dauergast
 
Benutzerbild von p. specht
 
Registriert seit: 06.02.2009
Ort: Wien, Österreich
Beiträge: 1.083
Standard

Das Kalenderfenster des Controls berandet in Win7 zu eng und schneidet in die ersten und letzten, obersten und untersten Zeichen fast zur Hälfte rein. EDIT: Nach einigen Experimenten Abhilfe gefunden:
Code:
var ELEMENT2&=Control("DIALOG","",$54000000,255,26,200,180,%hwnd,0,%hinstance,$0)
calender2&=Control("SysMonthCal32","",$54000000,0,0,200,200,ELEMENT2&,$0,%hinstance)
__________________
Win7-64HomPremSP1,XProfan11.2a,XPIA,JWasm,XPSE,IntelCoreQuad2.5GHz/4GB/je1TB HD intern:esataBay:USB2:USB3

Geändert von p. specht (29.01.2012 um 11:12 Uhr)
p. specht ist gerade online   Mit Zitat antworten
Alt 29.01.2012, 11:10   #5 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
Standard

Kann ich nicht bestätigen, hast du einen Screenshot?
__________________
Gruß, Frank


Webpage http://frabbing.bplaced.net
mit Freeware - Tools, Spiele und Grafiken.
Frabbing ist gerade online   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 29.01.2012, 11:12   #6 (Direktlink)
Dauergast
 
Benutzerbild von p. specht
 
Registriert seit: 06.02.2009
Ort: Wien, Österreich
Beiträge: 1.083
Standard

Gelöst, siehe oben. Scheint von der Systemschrift abzuhängen...
(Blöd nur, daß das nun keine universelle Lösung ist).
__________________
Win7-64HomPremSP1,XProfan11.2a,XPIA,JWasm,XPSE,IntelCoreQuad2.5GHz/4GB/je1TB HD intern:esataBay:USB2:USB3
p. specht ist gerade online   Mit Zitat antworten
Alt 29.01.2012, 12:28   #7 (Direktlink)
Stammuser
 
Registriert seit: 04.04.2009
Ort: Lübeck
Beiträge: 264
Standard

Danke, der Vorschlag hat den Vorteil, dass
Code:
DEF getsystime(2) SendMessage(&(1),4097,0,&(2))
nicht mehr erforderlich ist.
Leider reagiert es auf meinem System (XP SP2) nicht anders, d.h. 1. Klick markiert das gewählte Datum und der 2. Klick zeigt es an.
Leiter ging es ohne "Träger" bei mir gar nicht, und Darstellungsgröße muß ggf. den Systemeinstellungen angepasst werden.

Thomas
THFR ist offline   Mit Zitat antworten
Alt 29.01.2012, 14:14   #8 (Direktlink)
Stammuser
 
Benutzerbild von Andreas Miethe
 
Registriert seit: 08.02.2009
Ort: Bielefeld
Alter: 53
Beiträge: 428
Standard

Zitat:
Zitat von THFR Beitrag anzeigen
Leider reagiert es auf meinem System (XP SP2) nicht anders, d.h. 1. Klick markiert das gewählte Datum und der 2. Klick zeigt es an.
Leiter ging es ohne "Träger" bei mir gar nicht, und Darstellungsgröße muß ggf. den Systemeinstellungen angepasst werden.
Thomas
Dann versuchs mal mit Subclassing.

Code:
Declare Kalender&, Ende%

SubClassProc
    If SubClassMessage(Kalender& , 15)'Tag angeklickt
        SetMenuItem 15000
        Set("WinProc",1)
    EndIf
EndProc

Proc Kal_GetDate
    Declare Datum#
    Dim Datum#,20
    SendMessage(Kalender&,4097,0,Datum#)
    Var Zurück$ = format$("00",word(Datum#,6))+"."+format$("00",word(Datum#,2))+"."+format$("0000",word(Datum#,0))
    Dispose Datum#
    Return Zurück$
EndProc

Window 800,600
Kalender&=Control("SysMonthCal32","Kalender",$50000000,600,0,180,200,%HWnd,5000,%hinstance,0)
SubClass Kalender&,1

WhileNot Ende%
    Waitinput
    If %Key = 2
        Ende% = 1
    ElseIf @MenuItem(15000)
        Locate 0,0
        Print  Kal_GetDate()
    EndIf
EndWhile
SubClass Kalender&,0
end
__________________
Gruss
Andreas

______________________
http://www.ampsoft.eu

Profan 3.3 - XProfanX2
Windows 95,98,ME,2000,XP
Vista - Windows 7 32 / 64 Bit

ASUS X93S - Intel Core I7 - NVIDIA GForce GT540M - 8GB Arbeitsspeicher
Andreas Miethe ist offline   Mit Zitat antworten
Alt 29.01.2012, 16:09   #9 (Direktlink)
Stammuser
 
Registriert seit: 04.04.2009
Ort: Lübeck
Beiträge: 264
Standard

@Andreas, Danke, damit geht es wie gewünscht. SubClassProc setze ich so selten ein und musste im alten Programm, einmal eingesetzt für die ScrollArea, Dank meiner Unordnung länger suchen bis ich es gefunden hatte.
Daher an dieser Stelle meine Bitte für deinen Editor: ein "naktes" SubClassProc mit auflisten.
Wie ist der Stand beim MultiTiff?
Benötige ich zwar im Moment nicht mehr, aber wer weis wann.

Gruß Thomas
THFR ist offline   Mit Zitat antworten
Alt 29.01.2012, 16:43   #10 (Direktlink)
Stammuser
 
Benutzerbild von Andreas Miethe
 
Registriert seit: 08.02.2009
Ort: Bielefeld
Alter: 53
Beiträge: 428
Standard

Zitat:
Zitat von THFR Beitrag anzeigen
@Andreas, Danke, damit geht es wie gewünscht. SubClassProc setze ich so selten ein und musste im alten Programm, einmal eingesetzt für die ScrollArea, Dank meiner Unordnung länger suchen bis ich es gefunden hatte.
Daher an dieser Stelle meine Bitte für deinen Editor: ein "naktes" SubClassProc mit auflisten.
Wie ist der Stand beim MultiTiff?
Benötige ich zwar im Moment nicht mehr, aber wer weis wann.

Gruß Thomas
Was wollte ich da gleich machen beim Multitiff ? Bin da nicht mehr auf dem laufenden.

Was Subclassproc angeht.
Füge folgenden Code per Drag&Drop in den Editor ein.
Dann Rechtsklick in den Code und '' Datei als Vorlage speichern '' auswählen und speichern.
So hast du auf der linken Seite des Editors unter Vorlagen die ''xprf-Vorlagen'' zur Verfügung. Einfach einen Doppelklick darauf und Du hast Dein Grundgerüst als neue Datei im Editor.

Code:
'######################
'Header-Dateien
'######################
$H Windows.ph
$H Messages.ph
'######################

Windowstyle 543

$H Windows.ph
Declare Ende&
CLS ~GetSysColor(~Color_BTNFACE)
SubClass %HWnd,1
WindowTitle "Neues Projekt"
Whilenot Ende&
  Waitinput
Endwhile
End

SubClassProc
  If SubClassMessage(&sWnd,~WM_CLOSE)
    Ende& = 1
    Set("WinProc", 1)
  EndIf
EndProc
__________________
Gruss
Andreas

______________________
http://www.ampsoft.eu

Profan 3.3 - XProfanX2
Windows 95,98,ME,2000,XP
Vista - Windows 7 32 / 64 Bit

ASUS X93S - Intel Core I7 - NVIDIA GForce GT540M - 8GB Arbeitsspeicher
Andreas Miethe ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 29.01.2012, 17:18   #11 (Direktlink)
Stammuser
 
Registriert seit: 04.04.2009
Ort: Lübeck
Beiträge: 264
Standard

@Andreas, bei deinen GDIplus-Beispielen neben dem Anzeigen von Multi-Tiff auch ein Beispiel zum Erstellen von Multi-Tiff erarbeiten.
Zur Proc-Auflistung: SubClassProc wird nur gelistet, wenn noch Zeichen hinter SubClassProc kommen. Geht's auch ohne?

Gruß Thomas
THFR ist offline   Mit Zitat antworten
Alt 29.01.2012, 17:31   #12 (Direktlink)
Weiß worum´s geht
 
Benutzerbild von GT43A
 
Registriert seit: 04.12.2011
Ort: Pöcking
Beiträge: 126
Standard

Hallo,

es geht auch mit den Mauskoordinaten

Code:
Declare Kalender1&,Kalender2&, Ende%
Proc Kal_GetDate
    Parameters Aktive_Kalender&
    Declare Datum#
    Dim Datum#,20
    SendMessage(Aktive_Kalender&,4097,0,Datum#)
    Var Zurück$ = format$("00",word(Datum#,6))+"."+format$("00",word(Datum#,2))+"."+format$("0000",word(Datum#,0))
    Dispose Datum#
    Return Zurück$
EndProc
Window 800,600
Kalender1& = Control("SysMonthCal32", "Kalender", $54000004, 20, 45 ,243, 208, %Hwnd, 0, %hInstance, 0)
Kalender2& = Control("SysMonthCal32", "Kalender", $54000000, 20, 300 ,243, 208, %Hwnd, 0, %hInstance, 0)
WhileNot Ende%
    Waitinput
    If %Key = 2
        Ende% = 1
    EndIf
 
     If ((%MouseX > 20) & (%MouseX < 243))
      If ((%MouseY > 45) & (%MouseY < 208))
        Locate 0,0
        Print  Kal_GetDate(Kalender1&), + " mit der KW"
      Endif
    EndIf
 
     If ((%MouseX > 20) & (%MouseX < 243))
      If ((%MouseY > 300) & (%MouseY < 508))
        Locate 0,0
        Print  Kal_GetDate(Kalender2&) , + " ohne der KW"
      Endif
    EndIf
EndWhile
end
__________________
Gerd
Windows 7 Home Premium SP1 32Bit XProfanX2 12.0B-N
GT43A ist offline   Mit Zitat antworten
Alt 29.01.2012, 17:58   #13 (Direktlink)
Stammuser
 
Benutzerbild von Andreas Miethe
 
Registriert seit: 08.02.2009
Ort: Bielefeld
Alter: 53
Beiträge: 428
Standard

Zitat:
Zitat von THFR Beitrag anzeigen
@Andreas, bei deinen GDIplus-Beispielen neben dem Anzeigen von Multi-Tiff auch ein Beispiel zum Erstellen von Multi-Tiff erarbeiten.
Zur Proc-Auflistung: SubClassProc wird nur gelistet, wenn noch Zeichen hinter SubClassProc kommen. Geht's auch ohne?
Ach ja, speichern von Multitif.
Werde ich dran bleiben.

Proc-Auflistung ist geändert und hochgeladen.
Download : http://www.ampsoft.eu/xprofed32a1.zip
__________________
Gruss
Andreas

______________________
http://www.ampsoft.eu

Profan 3.3 - XProfanX2
Windows 95,98,ME,2000,XP
Vista - Windows 7 32 / 64 Bit

ASUS X93S - Intel Core I7 - NVIDIA GForce GT540M - 8GB Arbeitsspeicher
Andreas Miethe ist offline   Mit Zitat antworten
Alt 29.01.2012, 19:35   #14 (Direktlink)
Stammuser
 
Registriert seit: 04.04.2009
Ort: Lübeck
Beiträge: 264
Standard

@Andreas, Danke!
@Gerd, unter XP keine Einklick-Übernahme.

Gruß Thomas
THFR ist offline   Mit Zitat antworten
Alt 30.01.2012, 13:53   #15 (Direktlink)
Weiß worum´s geht
 
Benutzerbild von GT43A
 
Registriert seit: 04.12.2011
Ort: Pöcking
Beiträge: 126
Standard

Hallo Andreas,

mit den Sub ist ne gute Lösung, der Vorschlag von Rolland geht auch nicht unter XP
Code:
'SysMonthCal
 '-----------
 
   $H Windows.ph
   $H Messages.ph
   $H commctrl.ph
 
 Declare OldTest&,ende%
 
 Struct POINT = \
      x&, \
      y&
 
 Struct SYSTEMTIME = \
      wYear%, \
      wMonth%, \
      wDayOfWeek%, \
      wDay%, \
      wHour%, \
      wMinute%, \
      wSecond%, \
      wMilliseconds%
 
 Struct MCHITTESTINFO = \
      cbSize&, \
      pt!POINT, \
      uHit&, \
      st!SYSTEMTIME
 
  Proc Get_MonthCalHit
       Declare DATA#, HIT%
       Dim DATA#,MCHITTESTINFO
       DATA#.cbSize& = SizeOf(DATA#)
       DATA#.pt!x& = %MouseX - 500
       DATA#.pt!y& = %MouseY - 150
       Var QT% = SendMessage(KAL1&,$100E,0,DATA#) ' $100E = $1000 + 14 = HITTEST
       Var TEXT$ = str$(DATA#.st!wDay%)+"."+str$(DATA#.st!wMonth%)+"."+str$(DATA#.st!wYear%) 
       Messagebox(TEXT$,"HITFLAG "+Str$(QT%),$40000)
       Dispose DATA#
       RETURN QT%
  EndProc
 
  WINDOW 0,0 - 800,600
  Var KAL1& = Control("SysMonthCal32", "Kalender",$54000000, 500, 150, 180, 300, %HWND, 0, %hInstance, 0)
 
  WhileNot Ende%
  Waitinput
     If %Key = 2
        Ende% = 1
     Else
        Get_MonthCalHit
     EndIf
  EndWhile
würde gerne deinen Vorschlag aufnehmen und deinen Code auch als Vorlage Speichern,
eine Frage hab ich dazu noch, ist es wirklich nötig die $H Windows.ph 2-mal zu laden?
Oder kann ich einmal löschen?
MfG
__________________
Gerd
Windows 7 Home Premium SP1 32Bit XProfanX2 12.0B-N
GT43A ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Antwort

  Paules-PC-Forum.de > Programmierung > XProfan

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen erlaubt, neue Themen zu verfassen.
Es ist Ihnen erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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 an




Alle Zeitangaben in WEZ +2. Es ist jetzt 12:53 Uhr.


Powered by vBulletin® Version 3.8.7 (Deutsch)
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Powered by vBCMS® 2.7.0 ©2002 - 2012 vbdesigns.de
(c) Paules-PC-Forum.de

::: Impressum :::

Search Engine Optimization by vBSEO 3.3.2