eigenen Cursor laden



  • Ich will echt nicht nerven oder so aber ich werde nicht so ganz daraus schlau.

    Kann man diese Liste irgendwo einsehen?

    Was ist eine *.res-Datei und was soll ich damit machen?



  • Was ist eine *.res-Datei und was soll ich damit machen?

    Wo hast du den den Cursor gepeichert.

    Eine *.res Datei ist eine compilierte *.rc Datei. Die Datei wird durch den Recourcecompiler compiliert.

    was soll ich damit machen?

    Darin ist der neue Cursor und die Datei wird dem Projekt hinzugefügt. Diese kann mit dem Bildeditor erzeugt werden.

    Kann man diese Liste irgendwo einsehen?

    In der Hilfe unter TCursor



  • die liste kannsst du einsehen, wenn du in dem Objectinspector den Pfeil nach unten neben Cursor drückst. in einer RES datei kannst du andere dateien (bilder, sounds, cursors, usw.) speichern, die mit in deine exe compiliert werden. du hast doch eine .rc datei gemacht, in der du den cursor eingetragen hast und diese hast du auch dem projekt hinzugefügt oder???
    http://bytesandmore.de/rad/cpp/snipp/sc06010.php



  • Man muss keine RC-Datei machen.
    Mit dem Bildeditor kann man die Resourcen erstellen und gleich als RES speichern



  • ich weiß. aber es ist eine möglichkeit



  • Also mit dem Bildeditor hab ich eine *.cur-Datei gemacht.
    Die hab ich dann im selben Ordner ín dem auch das Programm ist gespeichert.
    Wie kann man denn mit dem Bildeditor eine *.res-Datei machen?



  • Ist jetzt nicht war, oder?

    Wie wäre es, einmal selbst probieren und die Menüs mal testen

    Datei -> Neu-> RES-Datei auswählen



  • Sorry wenn ich mich ein bisschen blöd anstelle aber ich kapiere nicht wozu man dann *cur-Dateien braucht. Ohne die scheint das ganze ja auch nicht zu gehen.



  • *.cur brauchst du, wenn du keinen Bildeditor hast und eine *rc Datei erzeugen musst. Die enthält dann einen Verweis auf die *cur-Datei.

    Du brauchst jetzt hier und heute keine *.cur Datei. Du machst eine neue *.res Datei wählst dort einen Cursor aus, malst deinen Cursor, speicherst die RES, nimmst sie in dein Projekt auf und gut. Vorher merkst du dir noch den den Namen der Cursors in der RES-Datei üblicherweise Cursor1



  • Die Sache mit den Resource usw, ist keine Borland spezifische Entwicklung. Das ist pur Windows und gibt es schon seit Win 3.1. Der Resourceneditor (hier->Bildeditor ) ist ein "Service" von Borland. Früher musste man alles per "Hand" in einer RC-Datei machen (dazu gehörte auch die Bescheribung der Formulare).



  • Also hab jetzt eine Ressourcen-Datei erstellt und im selben Order wie das Programms gespeichert.Hab die Datei auch über das Menü "Projekt" zum Projekt hinzugefügt.Es wird im Programm aber immer noch der normale Windowscursor angezeigt.

    PS: Danke für die Gedult, die ihr bis jetzt hattet.



  • Wie sieht denn nun der Code aus?



  • so

    //---------------------------------------------------------------------------
    #include <vcl\vcl.h>
    #pragma hdrstop
    
    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma resource "*.dfm"
    
    const crMyCursor = 1;
    
    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
    	: TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::FormCreate(TObject *Sender)
    {
    Screen->Cursors[crMyCursor] = LoadCursor(HInstance, "Cursor1");
    Cursor = crMyCursor;
    
    }
    //---------------------------------------------------------------------------
    


  • Screen->Cursor = crMyCursor;

    "Cursor1" ist auch der Name in der RES-Datei?

    Prüfe das Laden derart ab:

    if(LoadCursor(HInstance, "Cursor1")==NULL)
    {
    DWORD error=GetLastError();
    }

    In der Hife zur WIN 32 API kannst du nachschauen was die Fehlernummer bedeuetet.



  • Ups war falsch.Ich hab jetzt den Namen der *res-Datei anstelle von "Cursor1" eingegeben. Geht aber immer noch nicht.
    Bei deiner Eingabe mit dem if-Block passiert auch nichts neues.



  • Doch in error steht eine Fehlernummer



  • Ich hab jetzt den Namen der *res-Datei anstelle von "Cursor1" eingegeben

    Wer hat das gesagt??

    Name in der RES-Datei?

    Der Name des Cursors IN der Res-Datei



  • Hab nun den Namen des Cursors in der RES Datei und im Code geändert.
    Dann ging es plötzlich 😃 😃 😃 😃 😃 :D.
    Wen es interessiert:

    //---------------------------------------------------------------------------
    #include <vcl\vcl.h>
    #pragma hdrstop
    
    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma resource "*.dfm"
    
    const crMyCursor = 1;
    
    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
    	: TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::FormCreate(TObject *Sender)
    {
    Screen->Cursors[crMyCursor] = LoadCursor(HInstance, "MYCURSOR");
    Cursor = crMyCursor;
    
    }
    //---------------------------------------------------------------------------
    


  • Puuuuhhhh 😃 😃 😃


Anmelden zum Antworten