Deutsch
Forum

@db("Browse",X,Y, S1,N1,S2,N2) bei Windows XP

 
- Seite 1 -



Wilfried
Friebe

KompilierenMarkierenSeparieren
-Begin------------------------------------------------------------------
Declare Anzahl%, i%, Name$, Browse$, länge%
Cls
TextColor @RGB(255, 0, 100), -1
Set(CharSet, 0)
UseFont ARIAL, 15, 10, 1, 0, 0
@db(Open, #1,Musik.DBF)
@db(Use, #1)
Print db-Struktur von Musik.DBF
Print Datensätze:      ;&dbRecCount
Print Felder:          ;%dbFCount
Print Satzgröße:       ;%dbRecSize; Byte
Print Headergröße:     ;%dbHeader; Byte
Print Letzte Änderung: ;$dbLUpdate
Anzahl% = %dbFCount
i% = 1

WhileNot i% > Anzahl%

    @db(GetField, i%)
    Print $dbFName,$dbFType,%dbFLen,%dbFDecs
    Print
    Print
    Inc i%

EndWhile

@db(Close, #1)
Waitinput
Name$ = @LoadFile$(Welche Datei,*.DBF)
print Name$
@db(Open, #1,Name$)
@db(Use, #1)
Anzahl% = %dbFCount
i% = 1

WhileNot i% > Anzahl%

    @db(GetField, i%)
    länge%=%dbFLen
    länge%= länge%*5
    @set(Decimals,0)
    Browse$=Browse$+$dbFName+;+$dbFName+;+str$(länge%)+;
    Inc i%

EndWhile

@db(Browse, 10,10,ADRESS-TABELLE,10,  Browse$ ,3)
print   &dbRecCount
@db(AppendBlank)
@dbPack()
@dbClose(#1)
End

Ich habe X Profan und Windows XP
Bildschirmauflösung 1280-1024 und getestet auch mit 1024-768
bei beiden Auflösungen ist der gleiche Fehler aufgetreten
mir fehlen unten bei der Toolbar ein paar Pixel (siehe anhängendes Bild)
das gleiche Programm auf einem Notebook mit Windows ME mit einer
Auflösung von 1024-768 einwandfrei
wer kann mir da helfen

208 kB
Hochgeladen:22.04.2007
Ladeanzahl169
Herunterladen
 
Board MSI B450M BAZOOKA CPU AMD Ryzen 7 2700x 8 Core 3,7-4,2 GH 32 Gb Ram NVIDIA GeForce GTX 3060 12 GB Ram Window 11 Prof 64 Bit

Sun-Guru-Barebone CPU I7-9750H 16 GB Ram NVIDIA GeForce GTX1660TI 6 GB Ram Window 11 Hom 64 Bit

Profan 4.5 bis Xprofan 14
Ein frisch geschriebenes Programm hat meistens einen großen Fehler.Sollte man versuchen diesen großen Fehler zu beseitigen, hat man viele kleine Fehler "Grins"
22.04.2007  
 



 
- Seite 2 -


Jojo - funktionieren tuts. Dennoch weisst auch RGH immer wieder darauf hin solche Anweisungen zu klammern. Im Prinzip hast hierbei nur Glück dass das erste Minus an der richtigen Stelle sitzt. Würdest Du z.B. Parameter 4 und 3 tauschen (Sinnhaftigkeit sei dahingestellt) würde es schon scheitern. Und das ist denk ich mal ein sehr guter Hinweis auf eine ebend falsche Syntax.

Ich persönlich setze mich ein für die Abschaffung von - und ; als Parametertrennzeichen. Einzig und alleine das , sollte hierfür nötig sein. Vielleicht bringt Roland das seinem Parser bei.
 
22.04.2007  
 




Wilfried
Friebe
Sorry
ich dachte das X vor Profan genügt
ich habe Xprofan 10
zum %CyCaption
ich kann es jetzt zwar auslesen es ist 30
und %Cymenu = 20
aber wie verändere ich diese Werte ?
so gut bin ich im programieren nicht
an die sys-variablen habe ich mich bis jetzt nicht getraut
:--/
 
Board MSI B450M BAZOOKA CPU AMD Ryzen 7 2700x 8 Core 3,7-4,2 GH 32 Gb Ram NVIDIA GeForce GTX 3060 12 GB Ram Window 11 Prof 64 Bit

Sun-Guru-Barebone CPU I7-9750H 16 GB Ram NVIDIA GeForce GTX1660TI 6 GB Ram Window 11 Hom 64 Bit

Profan 4.5 bis Xprofan 14
Ein frisch geschriebenes Programm hat meistens einen großen Fehler.Sollte man versuchen diesen großen Fehler zu beseitigen, hat man viele kleine Fehler "Grins"
22.04.2007  
 



Kein Problem! Diese Werte sind nicht gedacht zum Verändern - nur nutzen sollst Du diese!

Wenn Du z.B. ein Fenster mit einem Innenbereich von 400 Pixel in Höhe möchtest dann musst Du das Fenster also mindestens mit window 0,0, x,400+%cycaption erstellen. Da das aber auch Quatsch ist weil Fensterrahmen & Co. auch addiert werden müssten kannst Du einfach hier so ne alte Funktion von mir benutzen:
KompilierenMarkierenSeparieren
Das geht dann so:
KompilierenMarkierenSeparieren
Nach Setinnersize hat Dein HWND dann garantiert einen Anzeigebreich von 640x480 Pixeln.
 
22.04.2007  
 




Wilfried
Friebe
OK soweit so gut
Normale Fenster sind kein Problem
eigendlich geht es um den Befehl

@db(Browse,X,Y, S1,N1,S2,N2)

bei einer GridBox hatte ich den Fehler auch schon einmal
habe durch größere x/y maße aber hinbekommen

bei @db(Browse,X,Y, S1,N1,S2,N2) geht das aber nicht
ob man da etwas machen kann das ist meine eigendliche Frage

Gruß
Wilfried
 
Board MSI B450M BAZOOKA CPU AMD Ryzen 7 2700x 8 Core 3,7-4,2 GH 32 Gb Ram NVIDIA GeForce GTX 3060 12 GB Ram Window 11 Prof 64 Bit

Sun-Guru-Barebone CPU I7-9750H 16 GB Ram NVIDIA GeForce GTX1660TI 6 GB Ram Window 11 Hom 64 Bit

Profan 4.5 bis Xprofan 14
Ein frisch geschriebenes Programm hat meistens einen großen Fehler.Sollte man versuchen diesen großen Fehler zu beseitigen, hat man viele kleine Fehler "Grins"
22.04.2007  
 



Ich glaube (ldr. nicht wissen) der Dialog steckt als Ressource in der Runtime. Also Reshacker besorgen und Dialog in der prfrun32.exe ändern (und in der profan.exe für den Interpretermodus).
 
23.04.2007  
 




RGH
iF
Ich glaube (ldr. nicht wissen) der Dialog steckt als Ressource in der Runtime. Also Reshacker besorgen und Dialog in der prfrun32.exe ändern (und in der profan.exe für den Interpretermodus).


Ich fürchte, hier wird der Reshacker nicht reichen, sondern ich muß es mir auf die ToDo-Liste für die nächste XProfan-Version nehmen. Für db(Edit,...) erfolgt bereits die automatische Anpassung, für db(Browse,...) leider noch nicht.

Gruß
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
23.04.2007  
 



Ok, und ich werd später mal versuchen diesen Dialog nachträglich zu ändern. Erstmal schauen wie man den DLG (den ich noch nie aufgerufen habe ) überhaupt zu Gesichte bekommt.
 
23.04.2007  
 




Wilfried
Friebe
Na gut
Erstmal Danke
jedenfalls lag es nicht an meinen beschränkten programierfähigkeiten
GRINS
werde mich also gedulden
war nicht allzuleicht die umgewöhnung von profan 4,5 auf X Prfan 10
aber langsam gehts

Gruß
Wilfried
 
Board MSI B450M BAZOOKA CPU AMD Ryzen 7 2700x 8 Core 3,7-4,2 GH 32 Gb Ram NVIDIA GeForce GTX 3060 12 GB Ram Window 11 Prof 64 Bit

Sun-Guru-Barebone CPU I7-9750H 16 GB Ram NVIDIA GeForce GTX1660TI 6 GB Ram Window 11 Hom 64 Bit

Profan 4.5 bis Xprofan 14
Ein frisch geschriebenes Programm hat meistens einen großen Fehler.Sollte man versuchen diesen großen Fehler zu beseitigen, hat man viele kleine Fehler "Grins"
23.04.2007  
 



So habs und zwar muss man nur untere Prozedur einbinden - wenn man statt dbbrowse besser _dbbrowse eingibt dann wird das Fenster auf korrekte 514x265 Pixel Innengrösse gebracht. Natürlich ist das unsauberes Schummeln!

Hierfür einfach folgende Funktion im Source platzieren: (XPSE-original-Variante! / unten die nicht-XPSE-Variante)
KompilierenMarkierenSeparieren
Nicht-XPSE-Variante:
KompilierenMarkierenSeparieren
proc _DBBROWSE

    PARAMETERS A&,B&,C$,D&,E$,F&
    var ERR&=0
    var SID$=STR$(&GETTICKCOUNT)
    var TIMER&=EXTERNAL(user32.dll,SetTimer,0,0,250,PROCADDR(_dbbrowse_internal,0))
    DBBROWSE(A&,B&,SID$,D&,E$,F&)

    proc _DBBROWSE_INTERNAL

        var H&=FINDWINDOW(SID$)
        var S$=GETTEXT$(H&)

        IF (SUBSTR$(S$,1, )=SID$)

            EXTERNAL(user32.dll,KillTimer,0,TIMER&)
            SETTEXT H&,C$+ +SUBSTR$(S$,2, )
            SETWINDOWPOS H&=A&,B& - 320,200;0
            SETWINDOWPOS H&=A&,B& - ((320-WIDTH(H&))+514),((200-HEIGHT(H&))+265);0

        ELSE

            INC ERR&

            IF (ERR&=40)

                EXTERNAL(user32.dll,KillTimer,0,TIMER&)

            ENDIF

        ENDIF

    endproc

endproc


und hier mein Testprogramm (achtung XPSE!)
KompilierenMarkierenSeparieren
Und im Anhang eine lauffähige Exe.

727 kB
Hochgeladen:23.04.2007
Ladeanzahl132
Herunterladen
 
23.04.2007  
 



Ja, ja - der iF
 
23.04.2007  
 




Wilfried
Friebe

KompilierenMarkierenSeparieren
declare anzahlspalten& ,Dateiname$ ,Spaltenname$
Declare Text$ ,Z& ,Dateiname1$ ,Dateiname2$
cls
anzahlspalten&=0

WhileNot  anzahlspalten&

    anzahlspalten& = @Input$(Wert eingeben:, Wieviele Spalten ?, anzahlspalten&)

EndWhile

Dateiname$ = @Input$(Namen eingeben:, Welcher Dateiname ? , Dateiname$)
Dateiname1$=Dateiname$+.STR
Assign #1, Dateiname1$
Rewrite #1
print Bitte nach ein ander den Namen des Feldes, dessen Typ,
print dessen Länge und die Anzahl der Dezimalstellen
print getrennt durch ein  ;
print die Feldtypen C=Text, D=Datum, N=Zahlen, L=Ja/Nein und M=Memo-Feld
print NAME;    C; 30; 0

WhileLoop anzahlspalten&

    Spaltenname$ = @Input$(Namen eingeben:, Welcher Spaltenname ? , &loop)
    Print #1, Spaltenname$

endwhile

Close #1
Dateiname2$=Dateiname$+.DBF
db(Create, Dateiname1$ , Dateiname2$)
Waitinput

KompilierenMarkierenSeparieren
-Begin------------------------------------------------------------------

proc _DBBROWSE

    PARAMETERS A&,B&,C$,D&,E$,F&
    var ERR&=0
    var SID$=STR$(&GETTICKCOUNT)
    var TIMER&=EXTERNAL(user32.dll,SetTimer,0,0,250,PROCADDR(_dbbrowse_internal,0))
    DBBROWSE(A&,B&,SID$,D&,E$,F&)

    proc _DBBROWSE_INTERNAL

        var H&=FINDWINDOW(SID$)
        var S$=GETTEXT$(H&)

        IF (SUBSTR$(S$,1, )=SID$)

            EXTERNAL(user32.dll,KillTimer,0,TIMER&)
            SETTEXT H&,C$+ +SUBSTR$(S$,2, )
            SETWINDOWPOS H&=A&,B& - 320,200;0
            SETWINDOWPOS H&=A&,B& - ((320-WIDTH(H&))+514),((200-HEIGHT(H&))+265);0

        ELSE

            INC ERR&

            IF (ERR&=40)

                EXTERNAL(user32.dll,KillTimer,0,TIMER&)

            ENDIF

        ENDIF

    endproc

endproc

Declare Anzahl%, i%, Name$, Browse$, länge%, cy%, cy1%
Cls
Name$ = @LoadFile$(Welche Datei,*.DBF)
@db(Open, #1,Name$)
@db(Use, #1)
Anzahl% = %dbFCount
i% = 1

WhileNot i% > Anzahl%

    @db(GetField, i%)
    länge%=%dbFLen
    länge%= länge%*5
    @set(Decimals,0)
    Browse$=Browse$+$dbFName+;+$dbFName+;+str$(länge%)+;
    Inc i%

EndWhile

_dbbrowse  (10,10,Adress-Tabelle,10,  Browse$ ,3)
@db(Browse, 10,10,ADRESS-TABELLE,10,  Browse$ ,3)
print   &dbRecCount
@db(AppendBlank)
@dbPack()
@dbClose(#1)
End

Irgendwie gehts doch wohl nicht
mit dem ersten Programm erstelle ich eine DB Datei
mit dem zweiten lese ich diese datei dann aus und bearbeite sie
ich habe die MUSIK.DBF Datei als MUSIK.txt im Anhang dazugetan
Die EXE und die andere Datei laufen nur solange wie nur eine Spalte ist
bei mehreren zeigt das Prog falsch an
ist eigendlich ja auch nur ein Schönheitsfehler
im zweiten Programm sind beide Befehle drin _dbbrownse und @db(brownse)
und die neue Procedur

9 kB
Hochgeladen:23.04.2007
Ladeanzahl165
Herunterladen
 
Board MSI B450M BAZOOKA CPU AMD Ryzen 7 2700x 8 Core 3,7-4,2 GH 32 Gb Ram NVIDIA GeForce GTX 3060 12 GB Ram Window 11 Prof 64 Bit

Sun-Guru-Barebone CPU I7-9750H 16 GB Ram NVIDIA GeForce GTX1660TI 6 GB Ram Window 11 Hom 64 Bit

Profan 4.5 bis Xprofan 14
Ein frisch geschriebenes Programm hat meistens einen großen Fehler.Sollte man versuchen diesen großen Fehler zu beseitigen, hat man viele kleine Fehler "Grins"
23.04.2007  
 



@Horst: Könntest Du es ihm zusammenführen? Ich muss nähhmlich los...
 
23.04.2007  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

10.730 Betrachtungen

Unbenanntvor 0 min.
Wilfried Friebe21.04.2019
Wilfried20.05.2016
Anfänger23.12.2015
Profantester29.11.2015
Mehr...

Themeninformationen



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