• Willkommen im Geoclub - dem größten deutschsprachigen Geocaching-Forum. Registriere dich kostenlos, um alle Inhalte zu sehen und neue Beiträge zu erstellen.

Zeilenumbruch in Messagebox

minz

Geocacher
Hi,
ich entwickle gerade ein Makro. Diese ist sehr einfach gestaltet. Die Ausgabe erfolgt in einer Messagebox.

Wie kann ich dort einen Zeilenumbruch erzeugen.

Minz
 

happyworld

Geocacher
Einen Zeilenumbruch kannst du mit

Code:
$_NewLine - (String) Use to break up text on to multiple lines (also known as "carriage return line feed").

For example, to split a message on to two lines you are about to show using the PAUSE command:

 
SET $Message = "This part is on line 1" + $_NewLine + "This part is on line 2"

PAUSE Msg="$Message"

bewerkstelligen.

Sascha
 
OP
minz

minz

Geocacher
Super danke.

Kann man auch die größe der Messagebox bestimmen und die Plazierung der Box definieren?

Minz
 

happyworld

Geocacher
So wie es aussieht geht es nicht, aber Du kannst dir eine Form erstellen. Da kann die Größe und Position festgelegt werden.

Sascha
 
OP
minz

minz

Geocacher
happyworld schrieb:
So wie es aussieht geht es nicht, aber Du kannst dir eine Form erstellen. Da kann die Größe und Position festgelegt werden.

Hat jetzt doch ein bischen länger gedauert, hier der Code.

Code:
#############################################
# Found-Logger.txt v1.0-20070206
# by Minz
# REQUIRES: GSAK V7.0.0 or higher
#
#############################################

#############################################
# Usage:	
# 1)Export Fieldnotes from GPSSonar,
# 2)Convert with FieldnoteEditor, Export to GSAK
# 3)Load CacheMate Logs and Finds (File=>Load CacheMate Logs)
# 4)Run this macro
# 5)Log on GC.com
# 6)click 'Next' and enjoy
#############################################

$read = "Yes"
$Next=False
$Cancel=FALSE

# Filter so our list is only new finds using the UserFlag set during Cachemate import
MFILTER IF=$d_UserFlag

# If there's records in the filter, sort 'em and log 'em, pausing between each for the user to confirm.
IF $_FilterCount > 0
	SORT By="FoundByMe;UserSort"
	GOTO Position=Top
	WHILE NOT ($_EOL)

    If $read = "Yes"
    	CLIP Tags="%UserLog"
    	$url = "http://www.geocaching.com/seek/log.aspx?ID=%gcid"
    	WEB Url=$url
    	If $d_found=False
    	 $gefunden="Didn't find it"
    	else
    	 $gefunden="Found"
    	Endif 
    	# Database Variables (Hint for GSAK-Help)
    	# SET $Message = "$d_Code  =  $d_Name" + $_NewLine + $_NewLine 
      # SET $Message =  $Message + "$gefunden = $d_LastGPXDate"+ $_NewLine + $_NewLine
      # SET $Message =  $Message + "Click 'Continue' when logged successfully." + $_NewLine
      $myWaypoint=$d_Code
      $myName=$d_Name
      $myLogType=$gefunden
      $myDate1=DateFormat($d_LastGPXDate)
      $mynotes="%UserLog"  
      $read = "No"
    endif 
 	 
    if ShowForm($form)	
      If $Next
           $read = "Yes"
           GOTO Position=Next           
      EndIf
      If $Cancel
           GOTO Position=Bottom           
      endif
      # Das schließen des Fensters muss noch irgendwie abgefangen werden
      #If $Esc
      #     GOTO Position=Bottom           
      #endif
    endif
		
	ENDWHILE

ELSE
	PAUSE Msg="No found caches in filter! Clearing and exiting."
ENDIF

<data> Varname=$form

Name=Form1
    Type=Form
    Caption=GSAK Makro: Found Logger by Minz
    Height=380
    Width=380

Name=Label1
    Type=Label
    Left=20
    Top=5
    Caption=Found Logger by Minz
    style=bold
    size=13

Name=Label2
    Type=Label
    Left=5
    Top=40
    Caption=Waypoint:

Name=myWaypoint
    Type=Edit
    left=90
    top=40
    color=grey
    Enabled=no

Name=Label3
    Type=Label
    Left=5
    Top=70
    Caption=Name:

Name=myName
    Type=Edit
    Left=90
    Top=70
    color=grey
    Enabled=no

Name=Label4
    Type=Label
    Left=5
    Top=100
    Caption=Type of log:

Name=myLogType
    Type=Edit
    Left=90
    Top=100
    color=grey
    Enabled=no

Name=Date
    Type=Label
    Left=5
    Top=130
    Caption=Date Logged:

Name=myDate1
    Type=Edit
    left=90
    top=130
    color=grey
    Enabled=no

Name=labNotes
    Type=Label
    Left=5
    Top=160
    Caption=Notes:
 
Name=mynotes
    Type=memo
    left=60
    top=160
    width=300
    color=grey
    Enabled=no

Name=labText
    Type=Label
    Left=60
    Top=260
    Caption=Klicke auf 'Next', wenn Du fertig geloggt hast.
    
Name=labText2
    Type=Label
    Left=60
    Top=276
    Caption=Mit Strg+V fügt man den Logtext ein.
 
name=Next
    type=Button
    top=300
    left=100
    caption=Next

name=Cancel
    type=Button
    top=300
    left=200
    caption=Cancel

<enddata>

Minz
 

happyworld

Geocacher
Nicht schlecht.

Es wäre vieleicht nicht schlecht am Ende den Filter wieder zurück zu setzten und die UserFlags wieder zu löschen.

Ich hab da mal ein bischen mit dem Makro rumgespielt, die GPX-Datei kann in der log.dat festgelegt werden und wird beim start des Makros automatisch Importiert. Vor dem ersten Start einmal den richtigen Pfad und Dateinamen in der log.dat eingeben, sonst gibt es zur Zeit einen Fehler. Ich hab auch am Anfang ein clear USERFLAG eingesetzt, damit nur die Caches genommen werden die auch in der GPX Datei sind.

Die Datei kannst Du dir hier runterladen

Sascha
 
OP
minz

minz

Geocacher
happyworld schrieb:
Nicht schlecht.

Die Datei kannst Du dir hier runterladen

Sascha

Hee, tolle Funktionen eingebaut. Gefällt mir, eine kleine Anpassung habe noch gemacht. Falls das File nicht exitiert wird die Funktion Settings aufgerufen.

Perfekt wäre jetzt noch, wenn GSAK während der Laufzeit aktualisiert würde und es würde die aktuelle Zeile markiert.

Die aktuelle Datei liegt jetzt
--> hier <-- zum download bereit.

Minz
 

happyworld

Geocacher
So, hab da mal was eingebaut.

Die aktuelle Zeile wird jetzt in rot dargestellt. Nur bei der ersten Zeile klappt es noch nicht, da diese durch die normale Auswahl verdeckt ist.

Nachdem das Makro mit seiner Arbeit fertig ist werden die Userflags gelöscht und die Zeilenfarbe zurück gesetzt.

Link

Sascha
 
OP
minz

minz

Geocacher
happyworld schrieb:
So, hab da mal was eingebaut.

Die aktuelle Zeile wird jetzt in rot dargestellt. Nur bei der ersten Zeile klappt es noch nicht, da diese durch die normale Auswahl verdeckt ist.

Nachdem das Makro mit seiner Arbeit fertig ist werden die Userflags gelöscht und die Zeilenfarbe zurück gesetzt.

Sascha

ich habe es gerade getestet, das Markieren funktioniert leider nicht. Einmal bei 48 Logs wurde die hälfte einer Zeile markiert. Das zurücksetzen funktioniert.

Uwe
 

Black-Jack-Team

Geomaster
Die normalen Userflags sollten unangetastet bleiben.
Für Makros gibt es die Makrouserflags, die nur in Makros gelten:

Code:
MACROFLAG <type=set|clear|swap> <range=all|filter|nn>

The poor old UserFlag often gets over used. Macro users often find they want to update the user flag for a new condition but not disturb the setting for the old condition. The macro flag addresses this problem (database variable $d_MacroFlag). The syntax for the MACROFLAG command is exactly the same as for USERFLAG but obviously all the options work on the MacroFlag instead. This will enable you to set/clear/filter/Test on the MacroFlag when you don't want to disturb the settings of the UserFlag. The new MacroFlag is only available in a macro ( you do not have access to it in the GSAK GUI).

Type = The type of userflag manipulation to perform

set - set all user flags as specified in the range parameter

clear - clear all user flags as specified in the range parameter

swap - reverse the setting of the userflags specified in the range parameter (if set, then unset and vice versa)

Range = The range of records to manipulate:

All - includes all waypoints in the database, regardless what your current filter is.

Filter - includes only the waypoints in your current filter

nn -  the number of waypoints (starting from the current one) to set, clear, or swap
 

happyworld

Geocacher
Black-Jack-Team schrieb:
Die normalen Userflags sollten unangetastet bleiben.
Für Makros gibt es die Makrouserflags, die nur in Makros gelten:

Das setzten der Userflags wird so weit ich das sehe alleine durch den Importer gesetzt.

Ich hab da bis jetzt noch nichts gefunden wie man das ändern kann, das nicht die Userflags sondern Makroflags benutzt werden.

Sascha
 
Oben