Seite 20 von 43

Re: WinAPI Library (Snippets) (493)

Verfasst: 07.05.2010 11:33
von sibru
Hab´ das mit der Ausrichtungs-Abfrage hier rumliegen:

Code: Alles auswählen

;Modul      AusrichtGet Version 1.01 vom 17.11.2004 
#PB_Vers  = "4.20"            
;
;Funktion:  liefert Ausrichtung einer ListIcon-Spalte
;
;Aufruf:    Ausrichtung = LI_AusrichtGet(GadNr, Spalte)
;           GadNr:  #GadgetNr eines ListIcon´s
;           Spalte: 0-basierende SpaltenNr (1. Spalte = Nr 0) des
;                   ListIcon´s, dessen Ausrichtung ermittelt werden
;                   soll
;
;           Diese Funktion liefert:
;           -1  bei Fehler (Gadget nicht vorhanden, kein ListIcon,
;               ungültige SpaltenNr...)
;            0  linksbündig (=#LVCFMT_LEFT)
;            1  rechtsbündig (=#LVCFMT_RIGHT)
;            2  mittig (=#LVCFMT_CENTER)
;

;#jaPBeExt exit
Procedure LI_AusrichtGet(GadNr, Spalte)
  Protected Ausricht.LV_COLUMN
  Ausricht\mask = #LVCF_FMT
  If SendMessage_(GadgetID(GadNr), #LVM_GETCOLUMN, Spalte, @Ausricht) = 0
    Ausricht\fmt = #LVS_NOCOLUMNHEADER - 1 ;Error
  EndIf
  ProcedureReturn Ausricht\fmt - #LVS_NOCOLUMNHEADER ;?
EndProcedure
viel Erfolg...

Re: WinAPI Library (Snippets) (493)

Verfasst: 07.05.2010 19:18
von Rudi
@Thomas
Dass das Timeout 1 überflüssig ist ist mir schon klar, denn WaitWindowEvent() wartet, anders als WindowEvent(), ohnehin auf ein Ereignis. Da ich mit PureFORM arbeite, sollte man diesbezüglich den entsprechenden Programmierer kontaktieren.
Kommando zurück: Standardmäßig ist in PureFORM WaitWindowEvent() gesetzt und nicht WaitWindowEvent(1). Habe immer mit jeder neuen Version die alten Einstellungen übernommen und vergessen warum ich das mal eingestellt hatte. :praise:

Zum 2. Beispiel muss ich wiederholen dass ich nur über WinXP verfüge. Und da sieht das Fenster wie gewohnt aus und lässt sich auch schließen. Was uns hier weiter gebracht hätte wäre die Nachricht, ob sich das Fenster unter Vista und/oder Win7 auf den Desktop legt. Und darauf kommt es hier in erster Linie an. Dann wäre als Nächstes interessant zu wissen, was es bedeutet wenn das Aero-Design verloren geht. Lässt sich das Fenster nicht mehr schließen, weil eventuell keine Buttons mehr vorhanden sind?

Zum 3. Beispiel kann ich nur sagen: Das Problem wird durch PureAnfänger (wie mich) nicht gelöst werden!

@sibru
Der Code funktioniert doch wunderprächtig!
Vielen Dank! :allright:

@RSBasic
Der Code von sibru sollte auch ins Archiv übernmmen werden!

Gruß, Rudi

Re: WinAPI Library (Snippets) (493)

Verfasst: 07.05.2010 21:34
von RSBasic
Sorry erstmal, dass ich erst so spät antworte, hatte einige Probleme, die erstmal behoben sind.



Hallo Rudi,


vielen Dank erstmal für das Einreichen von WinAPI-Beispielcodes.
Als Erstes ein Fenster ohne Titelzeile, welches jedoch einen 1px schmalen Rahmen hat um sich vom Hintergrund abzuheben. Dieses könnte z.B. als About-Box oder Splash-Screen Verwendung finden:
Sowas hab ich letztens schon hinzugefügt: http://www.rsbasic.q-soft.ch/index.php? ... &Itemid=59

Sowas sieht man auch in einer Installation zum Schluss (z.b. Wise Installer), wenn ein extra kleines "Popup"-Fenster über den ProgressBarGadget auftaucht und sagt, dass bestimmte Registrierungen und das Erstellen von Verknüpfungen durchgeführt werden.
Als Zweites ein Fenster, welches sich direkt auf den Desktop legt und z.B. als Grundlage für einen Desktopkalender Verwendung finden könnte:
Danke, werd ich hinzufügen.
PS: Bei mir funktioniert es.
Als Drittes ein Code, welcher die Textausrichtung in einem Stringgadget dynamisch ändern kann. Allerdings soll dieser Code erst ab Vista gehen. Testen kann ich das nicht. Unter XP geht er nicht.
Danke, werd ich auch hinzufügen.
PS: Bei mir funktioniert es auch.

Hab: Win7x86

@sibru
Vielen Dank für den Code, werd ich ebenfalls demnächst hinzufügen.



Falls jemand noch weitere Codes hat, nur zu ;)

Re: WinAPI Library (Snippets) (493)

Verfasst: 07.05.2010 21:46
von ts-soft
Der dritte Code zeigt weder unter WindowsXP noch unter Sieben den Text rechts ausgerichtet an,
der Text steht mittig, bevor ich den Button drücke und danach auch /:->

Re: WinAPI Library (Snippets) (493)

Verfasst: 07.05.2010 22:10
von RSBasic
Hallo Thomas,


hm, ich habs nur unter Windows7 x86 getestet und da funktioniert es.
Habs jetzt mal auch unter XP 32 Bit getestet, aber hast Recht, funktioniert nicht.
Warum es unter Windows7 64 Bit und unter WinXP nicht funktioniert, frage ich mich grad auch.

Wie man die Ausrichtung nachträglich einstellt, weiß ich grad nicht, hab auch schon in Boards mit Google gesucht, aber nichts gefunden.
Die einzige Möglichkeit ist, dass man gleich zu Beginn einstellt, welche Ausrichtung man haben möchte:

Code: Alles auswählen

EnableExplicit

If OpenWindow(0,0,0,500,250,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
  StringGadget(1,10,10,200,20,"Testtext",#ES_RIGHT)
  
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf

Re: WinAPI Library (Snippets) (493)

Verfasst: 07.05.2010 22:13
von ts-soft
Ob ich Windows 7 x64 oder x86 nutze, dürfte keine Rolle spielen, die PB-Version
alleine sollte entscheident sein und das war x86!

Re: WinAPI Library (Snippets) (493)

Verfasst: 07.05.2010 22:15
von RSBasic
Dieser Code funktioniert aber schon oder?

Code: Alles auswählen

EnableExplicit

If OpenWindow(0,0,0,500,250,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
  StringGadget(1,10,10,200,20,"Testtext",#ES_RIGHT)
 
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf

Re: WinAPI Library (Snippets) (493)

Verfasst: 07.05.2010 22:32
von ts-soft
RSBasic hat geschrieben:Dieser Code funktioniert aber schon oder?
Der funktioniert.

Re: WinAPI Library (Snippets) (493)

Verfasst: 10.05.2010 08:57
von sibru
@RSBasic: hier das Setzen der Spalten-Ausrichtung:

Code: Alles auswählen

;Modul      Ausricht Version 1.03 vom 29.01.2009
;
;Funktion:  setzt Ausrichtung einer Spalten in einem ListIcon
;
;Aufruf:    LI_Ausricht(GadNr, Spalte, Ausricht$)
;           GadNr    = #Gadget-Nr des ListIcon´s
;           Spalte   = 0-basierende Spalten-Nr
;           Ausricht$= Art der Ausrichtung:
;                      "<" = linksbündig (vorgabe)
;                      "X" = mittig
;                      "x" = mittig
;                      ">" = rechtsbündig
;                      Alle anderen Zeichen in Ausricht$ werden ignoriert !!!
;                      Ist keines der oben angegebenen Zeichen enthalten, so
;                      wird "<" benutzt
;

;#jaPBeExt exit
Procedure LI_Ausricht(GadNr, Spalte, Ausricht$)
  Protected Ausricht.LV_COLUMN
  Ausricht\mask = #LVCF_FMT
  If FindString(Ausricht$,">",1) : Ausricht\fmt = #LVCFMT_RIGHT 
  ElseIf FindString(Ausricht$,"<",1) : Ausricht\fmt = #LVCFMT_LEFT 
  ElseIf FindString(UCase(Ausricht$),"X",1) : Ausricht\fmt = #LVCFMT_CENTER
  Else : Ausricht\fmt = #LVCFMT_LEFT 
  EndIf
  SendMessage_(GadgetID(GadNr), #LVM_SETCOLUMN, Spalte, @Ausricht)
EndProcedure
MFG SiBru

Re: WinAPI Library (Snippets) (493)

Verfasst: 10.05.2010 15:22
von RSBasic
So, nun ist es vollbracht.
Ich habe diesmal einen kostenpflichtigen Webspace inkl. .de-Top-Level-Domain bestellt.

Die Einrichtung der HP-Dateien und der MySql-Datenbank auf dem neuen Webspace wurde bereits gestern durchgeführt, nur musste ich auf die Domain-Registrierung und -Freischaltung abwarten. Nun ist meine Seite fertig und bereit.

Meine offizielle URL ist und bleibt: www.rsbasic.de

Die Seiten sind wie gesagt alles schon fertig eingerichtet, man kann also jetzt beispielsweise auf die WinAPI Library zugreifen.

Werd später noch eine Subdomain für das Zugreifen der WinAPI Library bereitstellen, so dass man direkt auf die WinAPI Library zugreifen kann.

Viel Spaß ;)

@sibru
Danke für dein Code, aber das Ändern der Spalten-Ausrichtung hab ich bereits: http://www.rsbasic.de/index.php?option= ... &Itemid=59