| Autor |
Beitrag |
oneP
      
Beiträge: 71
Win XP Professional
Turbo Delphi 2006
|
Verfasst: Mi 27.05.09 19:01
Hallo
habe hier die Threds über Mauszeiger zwar gelesen jedoch hat keiner dieses Problem.
Also ich habe einen Mauszeiger mit nem Programm gemacht und ihn ins Programm eingefügt.
Im Quellcode stimmt alles. Jedoch beim Programmstart zeigt er eine Meldung:
"unsupported 16bit recource in file C:\dokumente und einstellungen\......\Cursor.cur"
wenn ich ein cursor von Windows in meinen Ordner kopiere und ihn benutzen will zeigt er die gleiche Meldung an.
Hat vielleicht jemand das selbe Problem gehabt? oder kann mir jemand helfen?
|
|
ffgorcky
      
Beiträge: 573
WIN XP/2000 & 7Prof (Familie:Win95,Win98)
|
Verfasst: Mi 27.05.09 19:42
Du hast den Cursor so geladen, wie in diesem Thema?
Oder köntest Du sonst den relevanten Teil Deines Quelltextes hier einstellen?
|
|
oneP 
      
Beiträge: 71
Win XP Professional
Turbo Delphi 2006
|
Verfasst: Mi 27.05.09 19:52
Ja, so hab ichs gemacht
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38:
| unit MohrhuhnUnit;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls;
type ...
private public end;
var ...
const arrow_r = 1;
implementation
{$R *.dfm} {$R arrow_r.cur}
procedure TForm1.FormCreate(Sender: TObject); begin ... Screen.Cursors[arrow_r] := LoadCursor(HInstance, 'arrow_r'); Form1.Cursor:=arrow_r end;
... |
(arrow_r ist übrigens ein Cursor von windows. Ich hab den in mein Ordner kopiert.)
wie gesagt es wird nichts rot markiert aber es wird beim compilieren im "Meldungen" Fenster dieser Fehler gezeigt.
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mi 27.05.09 20:43
Du hast ja auch keine Ressourcendatei mit dem Cursor erstellt sondern einfach nur die Cursordatei genommen und Delphi gesagt, dass es eine Ressourcendatei wäre...
Du musst eine .rc Datei erstellen um die Cursordatei in eine Ressource zu kompilieren. Diese .res Datei kannst du dann einbinden.
|
|
oneP 
      
Beiträge: 71
Win XP Professional
Turbo Delphi 2006
|
Verfasst: Mi 27.05.09 20:49
| Zitat: |
Du musst eine .rc Datei erstellen um die Cursordatei in eine Ressource zu kompilieren. Diese .res Datei kannst du dann einbinden. |
..ja und wie mach ich des?
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mi 27.05.09 20:51
|
|
Yogu
      
Beiträge: 2598
Erhaltene Danke: 156
Ubuntu 13.04, Win 7
C# (VS 2013)
|
Verfasst: Mi 27.05.09 20:54
Google mal nach DELPHI RC und sieh dir das erste Ergebnis an. Dort findest du eine (englische) Erklärung, wie man eine Ressourcendatei erstellt und compiliert. Punkt drei und weitere interessieren nicht mehr.
Oder du nimmst ein Programm wie XN Resource Editor.
|
|
oneP 
      
Beiträge: 71
Win XP Professional
Turbo Delphi 2006
|
Verfasst: Mi 27.05.09 21:30
und wie compilire ich die .rc datei zu .res?
der compiler brcc32.exe schaltet sich gar nicht ein wenn ich drauf klicke.
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mi 27.05.09 21:33
Mit einem Doppelklick kannst du ja auch die Parameter nicht übergeben...
Entweder mit einer Batchdatei oder über die Kommandozeile selbst.
Oder du verknüpfst das .rc Ressourcenskript damit, dann kannst du darauf doppelklicken.
Oder du ziehst das Skript auf den Ressourcencompiler.
Wie du es machst, ist egal, jedenfalls muss das Ressourcenskript an den Ressourcencompiler übergeben werden. Frag mich nicht wo die kompilierte Datei in den letzten beiden Fällen landet... ich nehme immer die erste.
|
|
oneP 
      
Beiträge: 71
Win XP Professional
Turbo Delphi 2006
|
Verfasst: Do 28.05.09 18:18
so, das hab ich jetz.
Jetzt stellt sich natürlich die Frage wieso das nicht funzt:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| const spring = 1;
implementation
{$R *.dfm} {$R RecourcePics.res}
procedure TForm2.FormCreate(Sender: TObject); begin Image1.Picture.Bitmap.Handle:=LoadBitmap(hInstance,'spring'); Image1.Picture := spring end;
end. |
"spring" hab ich ein Bitmap in der resource benannt
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Do 28.05.09 18:19
Und mit welchem Typ? RC_BITMAP? Das ist da nämlich dann wichtig.
|
|
oneP 
      
Beiträge: 71
Win XP Professional
Turbo Delphi 2006
|
Verfasst: Do 28.05.09 18:25
also die RES sieht so aus: spring RC_BITMAP "Pic1.bmp"
es geht aber nicht.
Könntest du mir vielleicht den Code anschreiben mit dem ich das im TImage anzeigen kann?
|
|
ffgorcky
      
Beiträge: 573
WIN XP/2000 & 7Prof (Familie:Win95,Win98)
|
Verfasst: Do 28.05.09 18:26
Das sieht mir so ziemlich nach dem selben Problem wie in Thema 65252 aus.
Guck Dir das dort doch einfach mal an!
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Do 28.05.09 18:27
Delphi-Quelltext 1:
| Image1.Picture.Bitmap.LoadFromResourceName(HInstance, 'spring'); |
|
|
oneP 
      
Beiträge: 71
Win XP Professional
Turbo Delphi 2006
|
Verfasst: Do 28.05.09 18:35
ich hab hier alle möglichen ähnlichen themen angeguckt. Ich habs ja eigentlich jetz genauso wie es beschrieben ist, dass es funktionieren müsste. Aber bei dem Code wird in der vorletzten Zeile, also das "end;" rot markiert. Und als fehler wird beschrieben: Inkompatible Typen "TPicture" und "Integer"
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35:
| unit Unit2;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls;
type TForm2 = class(TForm) Image1: TImage; procedure FormCreate(Sender: TObject); private public end;
var Form2: TForm2;
const spring = 1;
implementation
{$R *.dfm} {$R RecourcePics.res}
procedure TForm2.FormCreate(Sender: TObject); begin Image1.Picture.Bitmap.LoadFromResourceName(HInstance, 'spring'); Image1.Picture := spring end;
end. |
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Do 28.05.09 18:37
1. Ist spring nun einmal ein Integerwert. Und du versuchst den einem Objekt (TPicture) zuzuweisen...
2. Habe ich geschrieben wie es für eine Bitmap geht.
3. Wurde für einen Cursor schon am Anfang ein Link gepostet wie es geht.
|
|
ffgorcky
      
Beiträge: 573
WIN XP/2000 & 7Prof (Familie:Win95,Win98)
|
Verfasst: Do 28.05.09 18:45
Dass Du so ein normales Bild lädst, ist Dir aber schon klar - oder?
Delphi-Quelltext 1:
| Image1.Picture.LoadFromFile(DateiName_EvtlMitPfadFallsNichtDasArbeitsVerzeichnis); |
Zuletzt bearbeitet von ffgorcky am Do 28.05.09 18:48, insgesamt 1-mal bearbeitet
|
|
oneP 
      
Beiträge: 71
Win XP Professional
Turbo Delphi 2006
|
Verfasst: Do 28.05.09 18:46
Die Hilfeseite habe ich schon angeguckt trotzdem werd ich da nicht schlau draus... aber bei vielen hier im Forum gehts doch nur mit diesen Zwei Zeilen im Code. Könntet ihr vielleicht einen ganzen Code posten der bei mir funktionieren würde? 
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Do 28.05.09 18:53
|
|
oneP 
      
Beiträge: 71
Win XP Professional
Turbo Delphi 2006
|
Verfasst: Do 28.05.09 19:04
der vorherige code von dir zeigt wie gesagt diesen fehler an und beim Folgendem kann man das Programm starten aber es wird kein neuer Cursor gezeigt
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| const Cursor =3;
implementation
{$R *.dfm} {$R Resource.res}
procedure TForm2.FormCreate(Sender: TObject); var CursorHandle: THandle; begin CursorHandle := LoadCursor(HInstance, 'Resource'); if CursorHandle <> 0 then Screen.Cursors[Cursor] := CursorHandle; Form2.Cursor := Cursor end; |
|
|