Deutsch
Forum

Geschwindigkeitsproblem

 
- Seite 1 -



GDL
Hi Profaner,

habe das Problem,dass Programme welche Startpaint Endpaint,oder
sendkey nutzen auf meinem alten 1GHz Board einwandfrei gehen,aber auf meinem neuen 2,6 GHz Board nicht mehr.

Startpaint Endpaint geht nur mehr im Interpretermodus.Als Exe Datei nur noch dann, wenn hinter jedem Endpaint ein Waitinput folgt.Selbst bei einem Sleep 1000 hinter Endpaint blitzen nur Bruchteile des Textes kurz auf,bevor die Programmunterbrechung eintritt.

sendkey(xyz&,13)
Sendkey funktioniert nur dann, wenn gleich darauf ein Sleep 200 folgt.
Ohne dem sleep Befehl wird sendkey einfach nicht ausgeführt.

Habe 2,6 GHz Intel CeleronD Board mit 510 MB RAM
WindowsME und XProfan 8.0.

Hatte jemand schon ähnliche Probleme?

Mit freundlichen Grüßen
Georg Dankesreiter
 
Windows7 Xprofan 8,9,10 [...]  [...] 
09.02.2005  
 



 
- Seite 1 -



GDL
Hi If

Danke für den Tip.Da aber der Anwender den Text bestimmt müsste ich die Stringvariable vorher erst in eine BMP Datei umwandeln.
Das ganze Programm(dBase Dateigenerator mit kleiner Programieroberfläche) entstand eigentlich nur,weil ich aus Dir bekannten Grund meine kompletten Programme neu schreiben muss.Da mir dabei einige Profaner geholfen haben den Dateigenerator hinzukriegen,wollte ich diesen nun als Freeware für Anfänger(aber nur für hiesige Mitglieder
und nur auf Dein Forum beschränkt) anbieten.

Das der Dateigenerator als EXE bei einer Staticsorte nicht geht,habe ich
erst bemerkt als ich das Installationspacket zum Hochladen herrichtete und nochmals vorher Durchtestete.

Vielleicht liegt der Fehler auch in einem anderen Programmteil,den der Interpreter ignoriert und der Compiler nicht.Graue Statics lassen sich
komischerweise anstandslos beschriften.
Eines kann ich aber jetzt 100%ig ausschließen,an dem neuen Board
liegts nicht.Auf dem alten Board hatte das Programm noch keine weißen
Statics und jetzige Version läuft auch auf dem alten Board nicht richtig.

Löse jetzt betreffende Zeilen aus dem Gesamtcode und schaue was dann
passiert.Rolf hat mir auch was zum Testen geschickt,nochmals ne Chance.

Vielleicht kriege ich auch mal was Vernünftiges auf die Beine.

Mit freundlichen Grüßen aus dem noch verschneiten Niederbayern
Georg
 
Windows7 Xprofan 8,9,10 [...]  [...] 
11.02.2005  
 




GDL
Hi If,

kopiere hier einfach die Nachricht an Rolf

Hi Rolf

legte eine Nachtschicht ein,da mir dies Ding keine Ruhe ließ.
Habe es jetzt gelöst.

Habe deinen Code einfach Stück für Stück zerlegt,dabei kam folgendes raus:

declare test&
proc schrift
startpaint test&
UseFont COURIER,0,12,0,0,0
drawtext 1,1,Test
endpaint
endproc
cls
test&=Control(STATIC,Test,$54001006,200,20,100,20,%hwnd,0, %hInstance,$0)
schrift
schrift
waitkey

Bei einmaligen Aufruf der Procedure Schrift habe ich gleiches altes Problem.
Da aber Du in Deinem Beispiel die Procedure mehrmals Durchlaufen läßt,habe ich die Proc. einfach mal zweimal hintereinander aufgerufen.
Wenn ich es auch nicht verstehe,aber dann gings auf einmal.

Nun lasse ich in meinem Programm Startpaint Endpaint auch mehrmals Durchlaufen und es geht auch.

declare hg%
whilenot hg% > 2
startpaint objekt&[num%]
UseFont COURIER,0,12,0,0,0
drawtext 1,1,objekt$[num%]
endpaint
inc hg%
wend

Ohne Deinen Code wäre ich niemals auf die Idee gekommen Startpaint Endpaint mehrmals hintereinander aufzurufen.Nochmals Danke.

Eine letzte Bitte hätte ich noch,könnte mir jemand erklären warum dies so ist,oder ob dies nur unter WinME so ist.

Also nochmals Euch beiden ein großes Dankeschön.

Mit freundlichen Grüßen
Georg

Für If

Wenn nichts dagegenspricht würde ich das Prog. nochmals durchsehen und auf die Gefahr hin,dass es auf anderen Win.Versionen ausser ME nicht
läuft Dir zukommen lassen.Ich möchte es jetzt doch nicht mehr unangesehen auf die Mitglieder loslassen.
 
Windows7 Xprofan 8,9,10 [...]  [...] 
11.02.2005  
 



 
- Seite 2 -


Es spricht wohl nichts dagegen.

Salve, iF
 
11.02.2005  
 




GDL
Hi If

meine Anwendung nutzt ein paar Includedateien von Prfellow.Prfellow ist zwar Freeware,aber dürfen nur Includedateien auch weitergegeben werden?Wenn nicht dann lösche ich diese aus dem Verzeichnis und Du musst diese dann manuell aus Prfellow einfügen.Thomas Hölzer kann man ja leider nicht mehr anfragen.

Mit freundlichen Grüßen
Georg
 
Windows7 Xprofan 8,9,10 [...]  [...] 
11.02.2005  
 



Ich glaube nicht das er etwas dagegen hätte. Es dient ja dem Zweck und ernannt wird er ja auch.

Salve, iF
 
11.02.2005  
 



Hallo Georg...

Profan verarbeitet Messages im Interpretermodus nach jeder Zeile, in der EXE nur nach jeder zwanzigsten Zeile (mehr Geschwindigkeit) => deshalb die Unterschiede. Wenn du mit Starpaint / Endpaint arbeitest, muß sowieso immer ein Repaint her, so wie du das ja schon erkannt hast.
 
11.02.2005  
 




GDL
Hi Andreas

Schön langsam kommt man auf die Kniffe.Falls If das Prog.für erwähnenswert hält,möchte ich es hier downloadbar machen.Da du mir vorher auch schon geholfen hast,bist du auch im Startdialog erwähnt.
Wenn du dies nicht möchtest,sage if er soll es noch nicht bereitstellen.

Mit freundlichen Grüßen
Georg
 
Windows7 Xprofan 8,9,10 [...]  [...] 
11.02.2005  
 



Ich kann nur sagen das ich das Prog noch nicht durchexaminiert habe. Das typsiche warum weshalb wieso-Syndrom ist noch am werkeln.
Wenn ichs geblickt habe dann poste ich es gerne - es ist schließlich ein beträchtliches Stück Arbeit - respekt!

Salve, iF
 
11.02.2005  
 



Hallo Georg...

[quote:466d42be0b]
Wenn du dies nicht möchtest,sage if er soll es noch nicht bereitstellen.
[/quote:466d42be0b]
Das bleibt dir überlassen.

Über die Probleme mit dem Messagehandling kann man sehr leicht stolpern:
Profan fängt Messages ab, um z.B. die profaneigenen Systemvariablen (u.a. %MENUITEM) zu setzen. %MENUITEM ist eigentlich auch nichts anderes als der Rückgabewert einer Message (oder viel besser noch eine Kombination aus meheren Messagerückgaben). Im Interpreter verarbeitet Profan die Messages nach jeder Zeile, in der compilierten EXE dagegen nach jeder 20.Zeile. Bevor Windows also die Info bekommt, daß eventuell etwas neugezeichnet werden muß, kann das Programm schon zwanzig Zeilen weiter sein.
Auffällig wird das in der Regel aber nur an Stellen, an denen Programmabschnitte vorkommen, die längere Zeit in Anspruch nehmen (ADDFILES,PLAYSOUND,Sleep...).

Hier mal was ganz einfaches als Beispiel:
KompilierenMarkierenSeparieren
WindowStyle 31
Windowtitle "Messagehandling in Profan"
Window 0,0-640,400
Declare Listbox&
LET LISTBOX&=@CREATELISTBOX(%HWND,"",20,20,300,300)
@ADDSTRING(LISTBOX&,"Vor Sleep")
Beep 1
Sleep 10000

While @equ(0,0)

    Waitinput

Wend


Wenn du den Code zur EXE compilierst, wirst du feststellen, daß die Listbox erst gezeichnet wird, wenn die 10 Sekunden Sleepzeit verstrichen sind.

Jetzt probier mal das:
KompilierenMarkierenSeparieren
WindowStyle 31
Windowtitle "Messagehandling in Profan"
Window 0,0-640,400
Declare Listbox&
LET LISTBOX&=@CREATELISTBOX(%HWND,"",20,20,300,300)
@ADDSTRING(LISTBOX&,"Vor Sleep")
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
Beep 1
Sleep 10000

While @equ(0,0)

    Waitinput

Wend


Oder auch mal das:
KompilierenMarkierenSeparieren
WindowStyle 31
Windowtitle "Messagehandling in Profan"
Window 0,0-640,400
Declare Listbox&
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
LET LISTBOX&=@CREATELISTBOX(%HWND,"",20,20,300,300)
REM
REM
@ADDSTRING(LISTBOX&,"Vor Sleep")
Beep 1
Sleep 10000
@ADDSTRING(LISTBOX&,"Nach Sleep")

While @equ(0,0)

    Waitinput

Wend


Messages werden u.a. nach einem Waitinput verarbeitet => deshalb IFs Vorschlag mit dem Timer.
Ich hoffe, ich konnte dir etwas mehr Durchblick durch die Sache verschaffen - ist auch für etwas erfahrenere Leute schwer zu durchschauen...
 
11.02.2005  
 




GDL
Hi Andreas

toll,das ihr alle mir helft.Möchte nicht einfach blind alles übernehmen,sondern möglichst viel lernen an solchen Sachen,die eigentlich kein Fehler sind.Werde Euch bestimmt weiter mit banalen
Fragen beschäftigen.

Mit freundlichen Grüßen
Georg Dankesreiter
 
Windows7 Xprofan 8,9,10 [...]  [...] 
11.02.2005  
 



Genau dafür ist diese Community da.

Salve, iF
 
11.02.2005  
 



Freu mich schon drauf...
 
12.02.2005  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

12.492 Betrachtungen

Unbenanntvor 0 min.
RudiB.07.09.2022
Peter Max Müller23.10.2017

Themeninformationen

Dieses Thema hat 3 Teilnehmer:

GDL (10x)
iF (9x)
unbekannt (3x)


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