AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Animirten Cursor in exe einbinden?
Thema durchsuchen
Ansicht
Themen-Optionen

Animirten Cursor in exe einbinden?

Ein Thema von Delphi-Noobie · begonnen am 28. Nov 2003 · letzter Beitrag vom 4. Dez 2003
Antwort Antwort
Seite 1 von 3  1 23      
Delphi-Noobie

Registriert seit: 28. Nov 2003
102 Beiträge
 
#1

Animirten Cursor in exe einbinden?

  Alt 28. Nov 2003, 16:18
Hallo,

Ich habe ein Problem mit dem einbinden eines animierten Cursors in die exe. Wenn ich in einem Texteditor schreibe: 1 cursor "cursor.ani", dann als Rc-Datei speichere und versuche es in eine Res-Datei zu Compilieren, sagt der Borlandcompiler (BRCC32.exe), dass es ein unbekanntes Cursorformat ist. Mit normalen Cursorn, die nicht animiert sind klappt das . Weis einer was man dagegen machen kann? z.B nen anderer rc-Compiler oder so und falls man einen anderen braucht, wo kann man den runterladen? Ich hoffe mir kann jemand helfen
Wieviel Lösungen hat die Gleichung x^13=1? .... 13!
  Mit Zitat antworten Zitat
roderich
(Gast)

n/a Beiträge
 
#2

Re: Animirten Cursor in exe einbinden?

  Alt 28. Nov 2003, 16:34
ich binde animierte Cursor einfach so ein (ohne Res-Datei):

Delphi-Quellcode:
  ID := 10;
  cursorfilename := 'c:\bla\cursors\mycursor.ani';
  Screen.Cursors[ID] := LoadCursorFromFile(PChar(cursorfilename));
Roderich
  Mit Zitat antworten Zitat
Delphi-Noobie

Registriert seit: 28. Nov 2003
102 Beiträge
 
#3

Re: Animirten Cursor in exe einbinden?

  Alt 29. Nov 2003, 08:57
Das will ich ja möglichst vermeiden, auf den Cursor extern zuzugreifen. Er soll mit in die exe rein, dass ich ihn nicht extra in den Ordner mit reinpacken muss. Gibts da keine Lösung für?
Wieviel Lösungen hat die Gleichung x^13=1? .... 13!
  Mit Zitat antworten Zitat
scp

Registriert seit: 31. Okt 2003
1.120 Beiträge
 
Delphi 7 Personal
 
#4

Re: Animirten Cursor in exe einbinden?

  Alt 29. Nov 2003, 10:44
Code:
1 ANICURSOR "appstart.ani"
  Mit Zitat antworten Zitat
scp

Registriert seit: 31. Okt 2003
1.120 Beiträge
 
Delphi 7 Personal
 
#5

Re: Animirten Cursor in exe einbinden?

  Alt 29. Nov 2003, 11:59
Delphi-Quellcode:
function LoadAniCursor(hInst : Cardinal; lpID : PChar; lpType : PChar = nil) : HCURSOR;
var
  hRes : HRSRC;
  dwSize : DWORD;
  hGlob : HGLOBAL;
  pBytes : PBYTE;
begin
  If not Assigned(lpType) then
    lpType := PChar('ANICURSOR');

  If (StrToIntDef(StrPas(lpID), 0) <> 0) then
    hRes := FindResource(hInst, PChar('#' + StrPas(lpID)), lpType)
  else
    hRes := FindResource(hInst, lpID, lpType);

  dwSize := SizeofResource(hInst, hRes);
  hGlob := LoadResource(hInst, hRes);
  If (hGlob <> 0) then
    begin
      pBytes := PBYTE(LockResource(hGlob));
      result := HCURSOR(CreateIconFromResource(pBytes, dwSize, FALSE, $00030000));
    end
  else
    result := 0;
end;
  Mit Zitat antworten Zitat
Delphi-Noobie

Registriert seit: 28. Nov 2003
102 Beiträge
 
#6

Re: Animirten Cursor in exe einbinden?

  Alt 29. Nov 2003, 14:04
Könnt ihr da mal bitte ein konlretes Beispiel geben? Also zuerst : 1 anicursor "cursor.ani" zu ner res Datei unwandeln und dann mit der Funktion, die hier steht wie aufrufen? ...loadanicursor(????); <-- was für Werte müssen da rein? ich weis das noch nicht so genau, da ich noch ziemlich neu bin bei Delphi
Wieviel Lösungen hat die Gleichung x^13=1? .... 13!
  Mit Zitat antworten Zitat
scp

Registriert seit: 31. Okt 2003
1.120 Beiträge
 
Delphi 7 Personal
 
#7

Re: Animirten Cursor in exe einbinden?

  Alt 29. Nov 2003, 23:30
Einfach das Beispiel oben abändern:
Delphi-Quellcode:
  ID := 10;
  Screen.Cursors[ID] := LoadAniCursor(hInstance, MAKEINTRESOURCE(1));
  Mit Zitat antworten Zitat
Delphi-Noobie

Registriert seit: 28. Nov 2003
102 Beiträge
 
#8

Re: Animirten Cursor in exe einbinden?

  Alt 30. Nov 2003, 13:38
Funktioniert leider immer noch nicht ich schreib mal mein Sourcecode vielleicht erkennt jemand den Fehler:
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
{$R cursorausgelastet.res} //<--- eigener Cursor 1 anicursor "cursorausgelastet.ani"

function LoadAniCursor(hInst : Cardinal; lpID : PChar; lpType : PChar = nil) : HCURSOR;
var
  hRes : HRSRC;
  dwSize : DWORD;
  hGlob : HGLOBAL;
  pBytes : PBYTE;
begin
  If not Assigned(lpType) then
    lpType := PChar('ANICURSOR');

  If (StrToIntDef(StrPas(lpID), 0) <> 0) then
    hRes := FindResource(hInst, PChar('#' + StrPas(lpID)), lpType)
  else
    hRes := FindResource(hInst, lpID, lpType);

  dwSize := SizeofResource(hInst, hRes);
  hGlob := LoadResource(hInst, hRes);
  If (hGlob <> 0) then
    begin
      pBytes := PBYTE(LockResource(hGlob));
      result := HCURSOR(CreateIconFromResource(pBytes, dwSize, FALSE, $00030000));
    end
  else
    result := 0;
end;

procedure TForm1.Button1Click(Sender: TObject);
var ID : tcursor;
begin
ID := 10;
Screen.Cursors[ID] := LoadAniCursor(hInstance, MAKEINTRESOURCE(1)); // <-- In die Zeile springt er
screen.cursor:= ID;
end;

end.
Wenn ich den Button klicke kommt ne Fehlermeldung und er springt in die Zeile: Screen.cursors[ID]..
Wieviel Lösungen hat die Gleichung x^13=1? .... 13!
  Mit Zitat antworten Zitat
scp

Registriert seit: 31. Okt 2003
1.120 Beiträge
 
Delphi 7 Personal
 
#9

Re: Animirten Cursor in exe einbinden?

  Alt 30. Nov 2003, 13:55
Klappts, wenn du
Screen.Cursors[ID] := LoadAniCursor(hInstance, '1')); // <-- In die Zeile springt er verwendest?
  Mit Zitat antworten Zitat
scp

Registriert seit: 31. Okt 2003
1.120 Beiträge
 
Delphi 7 Personal
 
#10

Re: Animirten Cursor in exe einbinden?

  Alt 30. Nov 2003, 14:02
Hier nochmal eine optmierte Fassung, um Laufzeitfehler zu vermeiden:

Delphi-Quellcode:
function LoadAniCursor(hInst : Cardinal; lpID : PChar; lpType : PChar = nil) : HCURSOR;
var
  hRes : HRSRC;
  dwSize : DWORD;
  hGlob : HGLOBAL;
  pBytes : PBYTE;
begin
  result := 0;

  If not Assigned(lpType) then
    lpType := PChar('ANICURSOR');

  If (Cardinal(lpID) < $10000) then
    hRes := FindResource(hInst, PChar('#' + IntToStr(Cardinal(lpID))), lpType)
  else
  If (StrToIntDef(StrPas(lpID), 0) <> 0) then
    hRes := FindResource(hInst, PChar('#' + StrPas(lpID)), lpType)
  else
    hRes := FindResource(hInst, lpID, lpType);

  dwSize := SizeofResource(hInst, hRes);
  hGlob := LoadResource(hInst, hRes);
  If (hGlob <> 0) then
    begin
      pBytes := PBYTE(LockResource(hGlob));
      If Assigned(pBytes) then
        result := HCURSOR(CreateIconFromResource(pBytes, dwSize, FALSE, $00030000));
    end;
end;
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz