Deutsch
Forum

Ein großes Problem (hier sind die Profis gefragt)

 
- Seite 1 -



Stephie
So ich fange mal ganz langsam an und hoffe ihr kommt damit klar.
Mein Programm soll offen sein für Erweiterungen. Daher habe ich einen Ordner Erweiterungen erstellt und einen Menupunkt der auch Erweiterungen heisst, keine Untermenus.
In dem Ordner soll eine ini oder cfg -Datei erstellt werden können vom Anwender die auf eine Vorlage zugreift. Durch einen Text in der ini oder cfg-Datei soll mein Hauptprogramm erkennen das es ein untermenu unter Erweiterungen anzeigen soll.
(Diese Art gibt es z.b. bei dem Prog Ahnenblatt mit den Plugins).
Hier wäre z.b. so eine ini - cfg-Datei als Vorschlag. Die eingesetzten Befehle sind nur Vorgaben, sie können auch anders genannt werden (so wie es Profan oder die dll vorgeben würden).

Somit würde im Hauptfenster und Erweiterungen als Menupunkt html erscheinen, geht man auf html soll rechts daneben der untermenupunkt Help erscheinen und darunter Liste.
Geht man dann auf Liste soll die Vorlage ausgeführt werden. Die sollte dann so z.B. aussehen.
%Font="ariel", 24'Schriftgröße
%Text="Personenblatt"
%Font="ariel", 12
%Text=Name$'sind in meinem Prog vordefiniert
%Text=GebDatum$+" in "+GebOrt$
%Linie= 10,10 - 10,200'Beginn links - Ende rechts
%Pic=Personbild$
%End

Es sollten nach Möglichkeit einige Befehle sein, damit man frei kreieren kann.

Hab ihr eine Vorstellung wie man so etwas hinbekommt bzw. was man dafür braucht ? Wenn ich gute Vorschläge habe weis ich auch, das ich viel Lesen ausprobieren muss, aber ich habe Zeit und brauche nur eine zündelnde Idee.
 
19.08.2011  
 



« Dieser Beitrag wurde als Lösung gekennzeichnet. »

Vlt. meint sie soetwas wie eine kleine (eigene) Druckersprache...

Download
externer Download



487 kB
Hochgeladen:20.08.2011
Ladeanzahl106
Herunterladen
112 kB
Hochgeladen:20.08.2011
Ladeanzahl0
Herunterladen
 
20.08.2011  
 



Ich bin nicht sicher es richtig verstanden zu haben aber hab Dir was hingepinselt...

Download
externer Download


PS:
%Font="ariel", 12
... ich glaube Du meinst den Schriftartnamen "Arial".

 
19.08.2011  
 




Thomas
Freier
Bin mir nicht sicher, ob es den Kern trift. Mit SubPopUp bekomme ich es nicht hin. Möglicherweise kann die dlgmenu.pcu ein SubPopUp einfügen und auch wieder löschen. Alles ohne *.ini, denn den Variablen a$, b$ kannst du ja den Werten zuweisen und auch in die *.ini zurückspeichern.
' für nur Zahlen
Def GetWindowLong(2) !"USER32", "GetWindowLongA"
Def SetWindowLong(3) !"USER32", "SetWindowLongA"
Def SetEditNumeric(1) SetWindowLong(@&(1),-16, (GetWindowLong(@&(1), -16) | $2002))
cls
UseFont "Arial",15,0,0,0,0
SETDIALOGFONT 1
var a$="111|Hilfe|1"
var b$="112|Info|0"
var c$="113| |0"
'usw.
PopUp "&Datei"
AppendMenu 100,"&Laden"
AppendMenu 101,"&Speichern"
AppendMenu 102,"&Neue Menüpunkte"
AppendMenu 103,"&Menüpunkte bearbeiten"

while 1

    waitinput
    case %key=2:BREAK
    case MenuItem(100):Print "Laden"
    case MenuItem(101):Print "Speichern"
    case MenuItem(102): Z_MENU
    case MenuItem(103): MENU_AEND
    case MenuItem(111):Print a$
    case MenuItem(112):Print b$
    case MenuItem(113):Print c$

wend

Proc Z_MENU

    '   Menüpunkte löschen
    RemoveMenu 111
    RemoveMenu 112
    RemoveMenu 113
    ' usw. und dann neu
    case val(substr$(a$,-1,"|"))=1 : AppendMenu val(substr$(a$,1,"|")),substr$(a$,2,"|")
    case val(substr$(b$,-1,"|"))=1 : AppendMenu val(substr$(b$,1,"|")),substr$(b$,2,"|")
    case val(substr$(c$,-1,"|"))=1 : AppendMenu val(substr$(c$,1,"|")),substr$(c$,2,"|")
    'usw.

EndProc

Proc MENU_AEND

    var dlg%=Createdialog(%hwnd,"Menü erstellen",100,100,300,300)
    var box%=Create("GridBox", dlg%, "N;0;40;Text;0;160;aktiv;0;50", 1, 10, 10, 280, 200)
    Create("Tooltip",%hwnd,box%,"Bitte eine Zeile wählen")
    AddString(box%,a$)
    AddString(box%,b$)
    AddString(box%,c$)
    'usw.
    var  Ed1%=CreateEdit(dlg%,"",50,216,160,22)
    var  Ed2%=CreateEdit(dlg%,"",214,216,50,22)
    SetEditNumeric(Ed2%)'nur Ziffereingaben erlauben
    @sendmessage(Ed2%,$00C5,1,0)'und auf 1 Stelle begrenzt
    var  Sp1%=CreateButton(dlg%,"Speichern",210,242,80,20)
    var  Neu1%=CreateButton(dlg%,"Ändern",110,242,80,20)
    var  x%=-1

    while 1

        waitinput
        x%=GetCurSel(box%)
        case %key=2:BREAK

        If GetFocus(box%) AND (x% > -1)

            SetText Ed1%,Substr$(GetString$(box%,x%),2,"|")
            SetText Ed2%,Substr$(GetString$(box%,x%),-1,"|")

        ElseIf GetFocus(Neu1%)

            case val(GetText$(Ed2%))>0 : SetText Ed2%,"1"
            SetText box%, x%, 1, GetText$(Ed1%)' 1. Spalte ist 0 !!
            SetText box%, x%, 2, GetText$(Ed2%)

        ElseIf GetFocus(Sp1%)

            a$=GetString$(box%,0)
            b$=GetString$(box%,1)
            c$=GetString$(box%,2)
            'usw.
            '     und neu
            Z_MENU

        EndIf

    wend

    DestroyWindow(dlg%)
    SetFocus(%hwnd)

EndProc

 
Gruß Thomas
Windows XP SP2, XProfan X2
19.08.2011  
 




Stephie
Hallo Thomas,
also deine Version kommt leider nicht dahin, was ich brauche, aber sehr interessant. Habe es mir mal als Beispiel abgespeichert.

Zu Dir iF, Ja, das ist genau so etwas in der Richtung wie ich es suche. Für diesen Vorkampf schonmal ein DANKE, Hilft mir schon wieder einen großen Schritt weiter.
Jetzt nur die Frage: Welche Befehle kann ich dort platzieren, damit er mir z.B. wie oben Beschrieben so ein Personenblatt ausgibt auf Drucker oder am Bildschirm (Bildschirm wäre mir natürlich lieber, da ich das mit dem Drucker schon soweit dann selber hinbekomme).
Die ini soll entweder selbst die Vorlage enthalten, oder diese seperat als z.B. Personenblatt.txt aufrufen und ausführen.
Und Ja mit "Ariel" meinte ich die Schriftart (Font).

Das ist etwas was jetzt noch meinen Horizont bezgl Profan übersteigt. Aber dank eurer bisherigen Hilfe ist mein Ahnenprogramm, für meine Verhältnisse schon extrem weit. Ich hoffe das ich euch spätestens zu Weihnachten meine erste beta-Version dann vorstellen kann.
 
20.08.2011  
 




Thomas
Freier
So etwas?
Def GetSysColor(1) !"USER32","GetSysColor"
Declare Ende%
Declare a$[]
Declare a%
a%=2' Anzahl der Personen aus der INI
a$[1]="Meyer"' Personen aus der INI
a$[2]="Wassermann"
cls GetSysColor(15)
' Font für alle Fenster und Objekte, die mit "Create..." erstellt werden, festlegen
UseFont "Arial",15,0,0,0,0
SETDIALOGFONT 1
PopUp "&Datei"
AppendMenu 109,"&Ende"
PopUp "&Bearbeiten"

WhileLoop a%

    AppendMenu (1000+&loop),a$[&loop]

EndWhile

Clear Ende%

WhileNot Ende%

    WaitInput

    If @MenuItem(109)

        Ende% = 1

    ElseIf (%MenuItem >1000) AND (%MenuItem < 2000)'1001 bis 1999 reserviert für Personen

        Info %MenuItem

    EndIf

EndWhile

End

Proc Info

    Parameters y%
    var pt%=CreateText(%hwnd,a$[y%-1000],10,10,200,20)
    var M_Ed%=CreateMultiEdit(%hWnd,a$[y%-1000],10,40,600,-300)
    ' Datei öffnen und ins Multiedit ..Datei könnte a$[y%-1000].txt heißen
    var M_Close%=CreateButton(%hwnd,"Beenden",400,10,80,20)
    ' weiteren für SPEICHERN, LÖSCHEN, usw.
    var End_MEd%=0
    SetFocus(M_Ed%)

    WhileNot End_MEd%

        Waitinput
        case GetFocus(M_Close%):End_MEd%=1
        ' Speichern, Löschen, usw.

    EndWhile

    DestroyWindow(pt%)
    DestroyWindow(M_Close%)
    DestroyWindow(M_Ed%)

EndProc

 
Gruß Thomas
Windows XP SP2, XProfan X2
20.08.2011  
 



Vlt. meint sie soetwas wie eine kleine (eigene) Druckersprache...

Download
externer Download



487 kB
Hochgeladen:20.08.2011
Ladeanzahl106
Herunterladen
112 kB
Hochgeladen:20.08.2011
Ladeanzahl0
Herunterladen
 
20.08.2011  
 




Stephie
Danke iF, Du hast verstanden was ich suche und auch ein verdammt gutes Beispiel gegeben.
Jetzt muss ich mich erstaml damit auseinander setzen und schauen in wie weit ich dieses in meinen Code einbauen kann.

Nochmals DANKE, ich hatte echte nicht gedacht, das es jemand so schnell schafft.

Ich schließe jetzt den Beitrag erstmal.
 
21.08.2011  
 



Gern geschehen!
 
21.08.2011  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

5.959 Betrachtungen

Unbenanntvor 0 min.
Peter Max Müller30.09.2014
Heltal25.07.2014
Bernd Lies22.08.2013
Christian Hahn26.06.2013
Mehr...

Themeninformationen

Dieses Thema hat 3 Teilnehmer:

Stephie (3x)
iF (3x)
Thomas Freier (2x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie