Italia
Wünsche und Anregungen

Jac's Wünsche

 
- Page 1 -



Jac
de
Lad
Ich würde gern meinen Parser zur Verfügung stellen, aberich hab nur ein (veraltetes) Beispiel dazu. Bin jetzt auch nicht in der Lage da noch auf die Schnelle was aus dem Boden zu stampfen.
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
08.10.2006  
 



 
- Page 4 -



Nico
Madysa
Da fällt mir ein, ich habe vor einiger Zeit mal probiert, eine EM_SETSEL-Message an ein Edit eines mir fremden Programm zu schicken - ohne Erfolg. Ist es possibile, dass Controls / Programme gegen solchen Zugriff von außen abgeschirmt werden können?
 
Nico Madysa
12.10.2007  
 




Frank
Abbing
Listboxen und Editcontrols sind frei benutzbar. Wahrscheinlich hast du ein Editcontrol erwischt, das gar keins war, sondern eines mit eigener Classe und eigenen Messages.
 
12.10.2007  
 




Nico
Madysa
Das wirds sein - das sähe nämlich auch dem Programm ähnlich, dass zu kontrollieren ich versucht habe. Ich werd das wohl mit ClassOf() und ChildWindowFromPoint() nachprüfen. Danke!
 
Nico Madysa
12.10.2007  
 




RGH
Zum Thema XProfan ohne Grenzen:

Auch wenn die Grenzen eigentlich immer so hoch waren, dass sie kaum einer bemängelte, empfand ich diese immer als unschön.

Zur Erinnerung: Bei den ganz frühen Profan²-Versionen ist man noch mit 200 Variablen je Typ ausgekommen und bescheidete sich mit 16384 Programmzeilen.

Es gab aber immer auch einzelne Programmierprojekte, die an diese Grenzen stießen, sodass ich diese mit zunehmendem Speicherausbau der Rechner kontinuierlich erweiterte. Bei den Programmzeilen war der Sprung circa die 64k-Grenze allerdings mit einem aufwändigen Umschreiben verbunden, da die Kodierung der Sprungadressen von 2 Byte auf 4 Byte aumento werden mußte. (In diesem Zusammenhang nochmals ein herzliches DANKE an Dietmar per seine ausführlichen Tests. Wenn sein ProfanManager mit einer euen Version corre, können gar nicht mehr so viele Fehler drin sein. )

Ich hatte schon presto versucht, die Gestione della memoria dynamischer zu gestalten, aber das nagte oftmals an der Stabilität und vor allem an der Geschwindigkeit. Und ein weiteres Erhöhen der Grenzen in der bisherigen statischen Gestione della memoria, hätte den Speicherverbrauch jedes Profan-Programmi circa Gebühr aumento, denn bis XProfan 10 wird der Speicher per alle möglichen Variablen und Einiges mehr zu Beginn bereitgestellt. (Ok, bei den Strings naturalmente nur die Zeiger auf die Strings.)

Neue Delphiversionen boten nun mit den Open Arrays (in etwa so etwas wie die dynamischen Arrays in XProfan, nur nicht ganz so komfortabel) eine Möglichkeit die Gestione della memoria in XProfan dynamisch zu gestalten, ohne daß die Geschwindigkeit merklich beeinträchtigt wurde. Da die meisten Programme bisher nur einen Bruchteil der bisherigen Grenzen nutzen, benötigen sie in Zukunft deutlich weniger Hauptspeicher, was der Gesamtperformance zu Gute kommt!

Und noch etwas: Jeder Mathematiker wird die unbegrenzte Rekursionstiefe von Prozeduren begrüßen, da per manche Funktionen bei Verwendung von Prozeduren (anstelle der DEF-Funktionen, die schon immer ohne Bregrenzung der Rekusionstiefe auskamen) doch recht niedrige Grenzen gesetzt waren.

Und vor allem: Jetzt sind die Grenzen weg und ich muss mich nie mehr darum kümmern!

Saluto
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
13.10.2007  
 




Rolf
Koch

Und vor allem: Jetzt sind die Grenzen weg und ich muss mich nie mehr darum kümmern!


und dies find ich die allerwichtigste Neuerung.
 
13.10.2007  
 




Jac
de
Lad
Ich wünsche mir noch, dass der LoadFile-Dialog auch mehrere Dateinamen zurückgeben kann, wenn das gewünscht ist.
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
08.11.2007  
 




Dietmar
Horn
Hallo Jac,

das geht doch schon seit Profan² 6.6:
KompilierenMarkierenSeparieren
rem ******************************** für Profan 6.6 ****************************
(c) 26.12.99    Uwe Pascal Niemeier
Window 50,50-300,300
declare a#,a%,a&
declare a$,b$,c$
def GetOpenFileName(1) ! COMDLG32.DLL,GetOpenFileNameA
def CommDlgExtendedError(0) ! COMDLG32.DLL,CommDlgExtendedError

proc Opendlg --------------------------------------------------------------------OPEN-Dialog

    dim a#,2600 ---------------------------------------------- Puffer + Struktur
    clear a#
    long a#,0=76--------------------------------------------- Struktur für GetOpenFileName
    long a#,28=a#+100---------------------------------------- Beginn Puffer
    long a#,32=2500------------------------------------------ Puffer 2500 Bytes
    a$=Textdateien;chr$(0);*.txt;;chr$(0);--------------- DateiFilter 1
    a$=a$;Alle Dateien;chr$(0);*.*;;chr$(0);------------- DateiFilter 2
    a$=a$;chr$(0) ------------------------------------------- 2*0 als Abschluß
    a&=addr(a$)+1
    long a#,12=a&
    b$=Bitte Datei(en) wählen,chr$(0)---------------------- Titel
    a&=addr(b$)+1
    long a#,48=a&
    c$=c:1test+chr$(0)------------------------------------- Anfangspfad
    a&=addr(c$)+1
    long a#,44=a&
    long a#,4=%hwnd------------------------------------------- übergeordnetes Fenster
    long a#,52=$00081206-------------------------------------- Flags siehe Winhlp32
    GetOpenFileName(a#)

    if equ(CommDlgExtendedError(),12291)---------------------- Fehlerabfrage Pufferüberlauf

        messagebox(Sie haben zu viele Einträge gewählt.
        Verteilen Sie ihre Auswahl auf mehrere kleine Portionen!,Hinweis,48)

    endif

    rem ------------------------------------------------------------------------------ Auswertung
    a%=long(a#,56)-1
    a$=string$(a#,100)

    if len(a$)=a% ----------------- MehrfachAuswahl

        print MehrfachAuswahl
        print Pfad :,a$
        a%=0

        while len(a$) -------------- alle Dateinamen aus Puffer lesen (getrennt durch 0-Byte)

            a%=a%+len(a$)+1
            a$=string$(a#,100+a%) --- Puffer = Byte 100 bis Byte 2600 in a#
            case len(a$):print Datei :,a$

        endwhile

        else--------------------------- EinzelAuswahl
        print EinzelAuswahl
        print Gewählt :,a$

    endif

    dispose a#
    endproc---------------------------------------------------------------------------------
    opendlg
    './../../funcion-referencias/xprofan/waitkey/'>waitkey

Saluto
Dietmar
 
Multimedia für Jugendliche und junge Erwachsene - MMJ Hoyerswerda e.V.  [...] 

Windows 95 bis Windows 7
Profan² 6.6 bis XProfan X2 mit XPSE

Das große XProfan-Lehrbuch:  [...] 
08.11.2007  
 




Jac
de
Lad
@Dietmar: Danke. Aber das ist mir eben zu umständlich. Ich denke das potuto man recht einfach in Profan einbauen.
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
08.11.2007  
 




Frank
Abbing
Da gebe ich Jac uneingeschränkt recht.
 
08.11.2007  
 




Nico
Madysa
Ich habe mich vor längerer Zeit schon Dietmars Code angenommen, er sieht zwar kompliziert aus, du selbst kannst ihn jedoch fast genauso wie den normalen Load-File-Dialog verwenden:
KompilierenMarkierenSeparieren
mehrere Dateien laden
Ergebnis: Teilstrings mit | getrennt
1. Teilstring: 1 = mehrere Dateien; 0 = eine Datei
2. Teilstring: Gemeinsamer Pfad aller Dateien/die einzige Datei
jeder weitere Teilstring: Gewählte Datei

proc LoadFiles

    parameters caption$ , mask$ , startdir$
    declare a# , usedbytes% , curpos% , curstr$ , erg$
    Dim a# , 2600 ------------------------------------------ Puffer + Struktur
    clear a#  ----------------------------------------------- Glattbügeln des Bereichs
    Long a# , 0  = 76 --------------------------------------- Struktur für GetOpenFileName
    Long a# , 28 = a# + 100--------------------------------- Beginn Puffer
    Long a# , 32 = 2500 ------------------------------------- Puffer 2500 Bytes
    mask$ = Translate$(mask$,|,Chr$(0)) + Chr$(0)  -------- Dateifilter + Abschließendes Doppel-Nullbyte
    Long a# , 12 = Addr(mask$)
    caption$ = caption$ + Chr$(0) --------------------------- Titel + Nullbyte
    Long a# , 48 = Addr(caption$)
    startdir$ = startdir$ + Chr$(0) ------------------------- Anfangspfad
    Long a# , 44 = Addr(startdir$)
    Long a# , 4  = %hwnd ------------------------------------ übergeordnetes Fenster
    Long a# , 52 = $00081206 -------------------------------- Flags siehe Winhlp32
    GetOpenFileName(a#)

    if CommDlgExtendedError() = 12291 ----------------------- Fehlerabfrage Pufferüberlauf

        Messagebox(Sie haben zu viele Einträge gewählt.
        Verteilen Sie ihre Auswahl auf mehrere kleine Portionen!,Hinweis,48)

    endif

    -------------------------------------------------------- Auswertung
    usedbytes% = Long(a#,56) - 1
    curstr$    = String$(a#,100)

    if len(curstr$) = usedbytes% ---------------------------- MehrfachAuswahl

        erg$ = 1| + curstr$ + if((Right$(curstr$,1) = \),,\) + |
        clear curpos%

        while len(curstr$) ----------------------------------- alle Dateinamen aus Puffer lesen (getrennt durch 0-Byte)

            curpos% = curpos% + len(curstr$) + 1
            curstr$ = string$(a#,100 + curpos%) --------------- Puffer = Byte 100 bis Byte 2600 in a#
            erg$ = erg$ + curstr$ + |

        wend

        erg$ = Left$(erg$,len(erg$) - 2) --------------------- Die letzten beiden | entfernen
        else ---------------------------------------------------- Einzelauswahl
        erg$ = 0| + curstr$

    endif

    case (erg$ = 0|) : clear erg$
    Dispose a#
    return erg$

/../funcion-referencias/xprofan/endproc/'>endproc

 
Nico Madysa
09.11.2007  
 




Jac
de
Lad
Ich wünsche mit noch die Möglichkeit eigene Fehlernummern zu registrieren und die per Funktion zu erzeugen. Dann wird im Falle eine selbsterzeugten Fehlers die Errorproc angesprungen und entsprechend gehandelt. Das erleichtert das Fehlersuchen bzw. Fehlersammeln.

Jac
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
18.12.2007  
 




Frank
Abbing
Nico, dein Code enthält kein Clear(a#). Ich bin fast sicher, das neuer Speicher beim Erstellen nicht zwangsläufig mit Nullen gelöscht wird, zumindest bei älteren Profanversionen.
 
18.12.2007  
 




Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

29.112 Views

Untitledvor 0 min.
Peter Max Müller05.07.2017
Gary1234509.06.2013
Ingobingo10128.04.2012

Themeninformationen



Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


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