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 -



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  
 



 
- Seite 3 -


Ok, schau ichs mir an...
 
24.04.2007  
 



So habs mit Deiner Musik.Dbf probiert - da scheitert ja schon der normale Aufruf - irgendwas stimmt also mit der Sache so noch nicht - aber es scheint nicht an meiner Ersatzfunktion zu liegen. Hier der Code den ich getestet habe:
KompilierenMarkierenSeparieren
-Begin------------------------------------------------------------------
Declare Anzahl%, i%, Name$, Browse$, länge%, cy%, cy1%
Cls
Name$ = musik.dbf
@db(Open, #1,Name$)
@db(Use, #1)
Anzahl% = %dbFCount
i% = 1
print anzahl%

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
 
24.04.2007  
 



Thomas Freier
kann ich nur bestätigen. Mit einer echten *dbf geht es.
Seine *.txt ist weder eine *.csv noch eine *.dbf.
Bei der Verwendung von Browse sollte man eigentlich eigentlich alles fest vorgeben.
Mein Muster hatte 20 Felder, da muss man das Fenster immer hin und her schieben. Grrr!
Ist eben nur ein Hilfsmittel. Dann lieber Listview oder GridBoxen.

Gruß
Thomas
 
24.04.2007  
 




Wilfried
Friebe
Na denn
mit der .DFB Datei ist wohl bei der umwandlung is .TXT was passiert sind beide unterschiedlich
aber die .DFB Datei konnte ich leider nicht schicken, da hat euer Prog. nicht mitgemacht
zum Programm selber muß ich sagen es läuft so eigendlich richtig bis auf den Schönheitsfehler .
Sind alles im Moment noch Fragmente aber das wird noch.
Werde weiter dran arbeiten . Mal sehen was das dann wird.
Ich melde mich dann wieder.

Der Kopf muß richtig rauchen damit man da oben so ein kleines bischen fit bleibt.
In meinem alter von 62 Jahren sollte man da was tun.

Danke und Guß erstmal
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"
24.04.2007  
 



Hey - packe einfach Deine DBF in eine ZIP (so machen wir das hier bei Dateiendungen welche hier nicht erlaubt sind) - und lade die ZIP hoch.
 
24.04.2007  
 




Detlef
Tussing
Das Problem besteht wohl immer noch

1.475 kB
Hochgeladen:24.04.2010
Ladeanzahl143
Herunterladen
 
Gruß Detlef Tussing
Windows XP, XProfan 10
24.04.2010  
 




Thomas
Freier
Aber nur teilweise.Ist doch zu steuern.
KompilierenMarkierenSeparieren
var Font& = @Create("Font","Arial",14,0,0,0,0)
SETDIALOGFONT font&
 
Gruß Thomas
Windows XP SP2, XProfan X2
24.04.2010  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

10.718 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