Autor |
Beitrag |
Popov
Gast
Erhaltene Danke: 1
|
Verfasst: Do 17.10.02 17:06
Ich brauch Leute dazu die Windows2000 oder WindowsXP haben. Eventuell wären WindowsNT und WindowsME auch nicht falsch.
Ich hab unten ein Stück Code gepostet das wunderbar funktioniert. Es läd eine Bitmap von der Festplatte (Pfad ev. anpassen) und kachelt es auf dem Formular. Wie gesagt funktioniert es wunderbar. Allerdings soll es nur unter Windows9x funktionieren. Deshalb brauche ich jemanden der das auch unter den oben genannten Systemen testet und mir sagt ob es da Probleme gibt. Die schlimme Methode ist FillRect. Allerdings steht in der Onlinehilfe nichts über Probleme bei anderen Systemen. FillRect soll die Kapselung einer API Funktion sein die nur max 8x8 große Bitmaps kachelt. Wie gesagt steht nichts davon in der Delphi Onlinehilfe.
Bitte kopiert euch die ganze Prozedur, klickt einmal auf den Button und sagt mir das Ergebnis. Eventuell muß der Pfad angepaßt werden. Wenn ihr keine 1stboot.bmp habt, dann könnt ihr auch eine Andere Grafik nehmen. Sie muß nur größer als 8x8 Pixel sein und natürlich kleiner als das Formular. Der Kachel Erfekt sollte schließlich sichtbar sein.
Sagt mir dann bitte mit welchem System ihr das gemacht habt.
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| procedure TForm1.Button1Click(Sender: TObject); var Bitmap: TBitmap; begin Bitmap := TBitmap.Create; try Bitmap.LoadFromFile('c:\windows\1stboot.bmp'); Form1.Canvas.Brush.Bitmap := Bitmap; Form1.Canvas.FillRect(Rect(0,0,Form1.Width,Form1.Height)); finally Form1.Canvas.Brush.Bitmap := nil; Bitmap.Free; end; end; |
|
|
MathiasH
      
Beiträge: 699
WinXP, Win98SE, Debian, Win95
D5 Stand, D6 Prof
|
Verfasst: Do 17.10.02 17:50
das dürfte kein Problem sein diese Funktionen zu bentutzen
aufpasen musst du nur, wenn du Funktionen wie MaskBlt, oder strechBlt verwendest, diese laufen nur auf Win NT /2000/XP, aber der normale canvas geht weiterhin, das wär ja ne katastrophe wenn nicht!!!
MathiasH
_________________ "Viel von sich reden, kann auch ein Mittel sein, sich zu verbergen."
Friedrich Nietzsche
|
|
Popov
Gast
Erhaltene Danke: 1
|
Verfasst: Do 17.10.02 19:13
Eigentlich bin ich auch deiner Meinung. Allerdings gab es mehrere Leute die gemeint haben, daß es nur unter Win9x funktioniert und unter WinNT ff es nur für max. 8x8 Kachelungen geeignet ist. Würde mich zwar wundern, weil nichts darüber in Canvas.FillRect steht, aber ich bin nun mal sehr leicht zu beeinflussen
Wenn also mehrere Profis mich anmeckern weil ich FillRect empfehle, dann will ich das ein für alle male praktisch klären. Außerdem will ich endlich einige Programme auf den Markt werfen und hab keine Lust auf Überaschungen.
Deshalb würde es mich freuen wenn die Leute es Testen würde. Dann hab ich den praktischen Beweis und kann endlich behaupten, daß die Leute Schwachköpfe sind 
|
|
AndyB
      
Beiträge: 1173
Erhaltene Danke: 14
RAD Studio XE2
|
Verfasst: Do 17.10.02 20:38
Popov hat folgendes geschrieben: | Allerdings gab es mehrere Leute die gemeint haben, daß es nur unter Win9x funktioniert und unter WinNT ff es nur für max. 8x8 Kachelungen geeignet ist. |
Es gibt eine Einschränkung, aber nicht so wie du sie hier beschreibst.
Zitat: | Würde mich zwar wundern, weil nichts darüber in Canvas.FillRect steht |
Das ist ja auch kein Wunder, denn die Information steht bei CreatePatternBrush. Dort steht, dass unter Win98/ME/NT/2k/XP keine Einschränkung bezüglich der Größe des Bitmaps besteht. Jedoch unter Windows 95 kann nur ein Bitmap mit den Maßen 8x8 Pixel eingesetzt werden. Und ich bin mir sicher, dass XXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX dies auch gelesen haben und somit gar nicht solch falsche Aussagen, wie du sie ihnen oben vorwirfst, ("Die schlimme Methode ist FillRect.", "Allerdings soll es nur unter Windows9x funktionieren") verbreitet haben.
Und da FillRect nicht das Problem ist, kann der folgende Satz von dir gar nicht wahr sein:
Zitat: | Wenn also mehrere Profis mich anmeckern weil ich FillRect empfehle ... |
Kleine Anmerkung: Seit wann bezeichnest du XXXXXXXXXXXX als Profi? Du sprichst ihm doch sein Fachwissen ab, oder habe ich da was falsch in Erinnerung?
Deswegen wirst du auch folgendes nicht behaupten können.
Zitat: | Dann hab ich den praktischen Beweis und kann endlich behaupten, daß die Leute Schwachköpfe sind  |
Denn den "praktischen Beweis" für deine oben aufgestellte (fehlerhafte) These gibt es nicht.
Zitat: | Außerdem will ich endlich einige Programme auf den Markt werfen und hab keine Lust auf Überaschungen. |
Davon hält dich doch keiner ab. Du musst eben nur für Win95 eine entsprechende Ersatzroutine schreiben.
Z. B. kannst du so vorgehen:
Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| if (Win32Platform = VER_PLATFORM_WIN32_WINDOWS) and (Win32MajorVersion = 4) and (Win32MinorVersion = 0) then begin // Windows 95 Ersatzcode end else begin Canvas.Brush.Bitmap ... end; |
_________________ Ist Zeit wirklich Geld?
Zuletzt bearbeitet von AndyB am Do 17.10.02 21:58, insgesamt 2-mal bearbeitet
|
|
AndyB
      
Beiträge: 1173
Erhaltene Danke: 14
RAD Studio XE2
|
Verfasst: Do 17.10.02 20:45
MathiasH hat folgendes geschrieben: | aufpasen musst du nur, wenn du Funktionen wie MaskBlt, oder strechBlt verwendest, diese laufen nur auf Win NT /2000/XP |
Da hast du dich wohl um eine Funktion zu viel vertan. StretchBlt geht nämlich sehr wohl unter Win9x. Wie würde denn sonst StretchDraw und CopyRect funktionieren?
Zitat: |
StretchBlt
...
Windows NT/2000/XP: Included in Windows NT 3.1 and later.
Windows 95/98/Me: Included in Windows 95 and later. |
_________________ Ist Zeit wirklich Geld?
|
|
Popov
Gast
Erhaltene Danke: 1
|
Verfasst: Do 17.10.02 21:20
Tue mir bitte ein gefallen und schmeiß die Namen raus. Es war nicht nur X und Y die das gesagt haben, sondern auch andere in andern Foren. Es geht mir auch nicht drum irgendwen als Dumkopf darzustellen, auch wenn ich das Wort "Schwachkopf" benutzt habe. Ich habs nur scherzhaft gemeint und mit dem "Zwinker" verdeutlicht. Ich hätte auch dann nirgendwo geschrieben, daß Z da keine Ahnung hat. Es geht mir hier nicht drum ob ich recht habe und die anderen nicht, sondern es geht mir hier um einige Anwendungen von mir. Ich hab schon einige Programme von mir an Personen verteilt und diese haben sie weiter verteilt. Darunter muß es auch einige andere Systeme gegeben haben als nur Win98. Allerdings habe ich noch nie eine Beschwerde bekommen weil irgendetwas nicht funktioniert hat. Jetzt will ich einiges auf den breiten Markt bringen und brauche Bestätigung. Es ist für mich überhaupt kein Problem mir mit zwei for-Routinen selbst eine Kachelfunktion zu schreiben. Aber warum 8 Zeilen wenns auch mit 3 geht. Hier hat ausnamsweise X nichts mit dem Problem zu tun. Ich hoffe nur, daß paar Leute den Code kopiern, einfügen, einmal klicken und mir des Ergebnis sagen. Ist in 30Sekunden erledigt. Hätte wirklich nicht gedacht, daß das so ausartet.
Das soll nicht bedeuten, daß ich jetzt zahm geworden bin. Bin für ein gute Fight immer wieder zu haben. Allerdings gehts mir hier wirklich nur um den Test.
Kurz zu X. Ob er ein Profi ist oder nicht. Ich hab ihn gebeten eine bessere Kachelfunktion zu schreiben. Er hats nicht hingekriegt. Was soll ich also drüber denken. Außerdem sollen bei seiner Aussage die Probleme be WinNT ff vorkommen und nicht Win95.
Allerdings soll sich bitte keiner davon abhalten jetzt mir den Gefahlen zu tun und den kleinen Code Testen. Ich hab keine Lust extra deswegen mit Win2000 oder WinXP zu installieren. Ist auch nicht schwer und es ist da auch kein Virus versteckt. Bitteeeeeeeeeeeee.
/Edit
Ich weiss natürlich auch was irgenwo in der API steht, allerdings gibts da die Delphi Canvas. Dort steht nichts. Deshalb auch der Test. Vielleicht reagiert Delphi selbst auf die API Ausnahmen mit eigenen Routinen. Das will ich gerade testen.
|
|
AndyB
      
Beiträge: 1173
Erhaltene Danke: 14
RAD Studio XE2
|
Verfasst: Do 17.10.02 22:04
Popov hat folgendes geschrieben: | Ich hab keine Lust extra deswegen mit Win2000 oder WinXP zu installieren. |
Das brauchst du nicht. Es läuft auf beiden (2k Pro und XP Home)
Zitat: | allerdings gibts da die Delphi Canvas. Dort steht nichts. Deshalb auch der Test. Vielleicht reagiert Delphi selbst auf die API Ausnahmen mit eigenen Routinen. |
Nein, dass macht Delphi nicht (Quelle: Graphics.pas). Das wäre auch ein zu großer Aufwand wenn bei jedem FillRect, Rectange, FillPoly, ... überprüft werden müsste, ob Win95 und Brush.Bitmap <> nil zutrifft.
_________________ Ist Zeit wirklich Geld?
|
|
Popov
Gast
Erhaltene Danke: 1
|
Verfasst: Fr 18.10.02 00:59
Was sagte meine Oma: Wenn du sicher sein willst, daß etwas erledigt wird dann mach es selbst.
Sorry, bevor ich gefragt habe hab ich mir die Win32 angeguckt. Ich wußte was drinnsteht. Allerdings haben einige Blödsinn behauptet und ich wollte es überprüfen. Ich wollte mich hier nicht auf Diskusionen einlassen.
Ich hab eine kleine Fesptlatte und einge Beriebssysteme als Ghostsicherung. War zwar ein kleiner Aufwand und hat zwei Stunden gedauert, aber ich hab meine Tests.
|
|
Aya
      
Beiträge: 1964
Erhaltene Danke: 15
MacOSX 10.6.7
Xcode / C++
|
Verfasst: Do 24.10.02 19:31
Hi,
also ich muß schon sagen, irgendwie is das verrückt hier...
Da bittet jemand um einen kleinen test-gefallen und andere "besserwisser" kommen daher und mäckern über ALLES was er gesagt hat, dabei ist sowas zu testen wirklich nich schwer, oder???
aber nein~ man muß ja zeigen was man alles tolles weiß und so...
Na ja, ok... lassen wir das
hab das Post leider erst eben gelesen... aber bei mir (Win2k, SP3) funktioniert es absolut problemlos
Au'revoir,
Aya
|
|
Ist die Frage beantwortet? Das Problem gelöst?
Dann klicke hier, um das Thema entsprechend zu markieren!
|
|