AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi ressource datei liest keine Integer werte aus!
Thema durchsuchen
Ansicht
Themen-Optionen

ressource datei liest keine Integer werte aus!

Ein Thema von Janek5024 · begonnen am 11. Jun 2005 · letzter Beitrag vom 12. Jun 2005
Antwort Antwort
Seite 1 von 2  1 2      
Janek5024

Registriert seit: 11. Jun 2005
5 Beiträge
 
#1

ressource datei liest keine Integer werte aus!

  Alt 11. Jun 2005, 16:24
Hallo erst mal!
Ich hab vom Studium her folgende Aufgabe bekommen:
Ich soll ein Programm schreiben mit welchem ich Bilder vor und zurück anschauen kann! Kein einlesen über das Programm sondern sollen alle im Programm verankert sein! (nich lachen... ich studiere Maschinenbau)
Meine Lösung wäre gewesen über ein simplen zählmechanismus Bild für Bild durch zu schalten. es sellte sich aber heraus dass ich keine integer werte bekomme um sie zu addieren.
Da habe ich glücklicherweise gelesen dass es über ne resource gehen könnte. So hab ich's gemacht.

Zitat:
Also. Pack die Bitmaps in eine Ressource. Wie das geht steht hier: http://www.delphipraxis.net/viewtopi...t=326&highligh ... e+resource
Anstatt jetzt Namen zu vergeben wie im Beispiel 'calogo', nimmst du eine Zahl: 1, 2, 3, ....
Lden tust du sie dann mit:
Quellcode: markieren

Image1.Picture.Bitmap.LoadFromResourceName(HInstan ce, MAKEINTRESOURCE(1));

Und mit Random kannst du nun eine zufällige Zahl erzeugen und entsprechend einsetzen. Fertig.


nun kann ich aber doch nicht integerwerte benutzen... denn mein PC hängt sich jedesmal auf....

mein Programm:


DER BUTTON
----------

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var x:integer;
begin
x:=x+1;
Image1.Picture.Bitmap.LoadFromResourceName(HInstance, MAKEINTRESOURCE(x));
end;

end.
DIE RESource
-------------

SourceCode RCDATA "uSampleForm.pas"
1 BITMAP "1.bmp"
2 BITMAP "2.bmp"
3 BITMAP "baby256.bmp"
4 BITMAP "p4.bmp"
5 BITMAP "lego.bmp"
6 BITMAP "Junky.bmp"
7 BITMAP "MR.bmp"


Kann mir bitte einer sagen was ich falsch gemacht habe

[edit=alcaeus]Delphi-Tags eingefuegt. In Zukunft bitte selbst machen. Danke Mfg, alcaeus[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#2

Re: ressource datei liest keine Integer werte aus!

  Alt 11. Jun 2005, 16:38
Hi,

Delphi-Quellcode:
var
  x: Integer;
begin
  x := x + 1; // Hier ist X nicht 1 oder 2, sondern undefiniert.
 ...
end;
So sollte es klappen:

Delphi-Quellcode:
var
  x: Integer;
begin
  x := 1;
  ...
end;
  Mit Zitat antworten Zitat
Janek5024

Registriert seit: 11. Jun 2005
5 Beiträge
 
#3

Re: ressource datei liest keine Integer werte aus!

  Alt 11. Jun 2005, 16:40
Auch wenn ich einfach nur
x:=1 setze klappt es leider nicht
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#4

Re: ressource datei liest keine Integer werte aus!

  Alt 11. Jun 2005, 16:41
Dumme frage: Bist du dir sicher, dass du die ressource eingebunden hast ?
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#5

Re: ressource datei liest keine Integer werte aus!

  Alt 11. Jun 2005, 16:43
Vllt. hier noch was:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var x:integer;
begin
x:=x+1;
Image1.Picture.Bitmap.LoadFromResourceName(HInstance, IntToStr(x));
end;
oder vllt. auch:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var x:integer;
begin
x:=x+1;
Image1.Picture.Bitmap.LoadFromResourceID(HInstance, x);
end;
  Mit Zitat antworten Zitat
Janek5024

Registriert seit: 11. Jun 2005
5 Beiträge
 
#6

Re: ressource datei liest keine Integer werte aus!

  Alt 11. Jun 2005, 16:45
100% denn wenn ich die namen der Dateien 'eins'
also als string bezeichne und mit

Image1.Picture.Bitmap.LoadFromResourceName(HInstan ce, 'eins');

bspielsweise auslese, klappt es wunderbar, aber ich möchte ja mit 2 einfachen buttons vor und zurück
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#7

Re: ressource datei liest keine Integer werte aus!

  Alt 11. Jun 2005, 17:01
Hi,

ich glaube das Problem liegt hier:

Zitat von sakura:
Name der Resource (gleiche Bestimmung wir für Pascal Bezeichner)
Pascal Bezeichner dürfen auch nicht mit Zahlen anfangen.

[edit]
Quick and dirty Lösung:

Delphi-Quellcode:
unit umain;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    ScrollBox1: TScrollBox;
    Image1: TImage;
    procedure FormCreate(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
    FBildIndex: Integer;
  public
    { Public-Deklarationen }
  end;

const
  Bilder: array [1..5] of String = ('a', 'b', 'c', 'd', 'e');

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  FBildIndex := 0; // FBildIndex initialisieren
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  Inc(FBildIndex); // FBildIndex um 1 erhöhen

  if (FBildIndex > 5) or (FBildIndex < 1) then // FBildIndex im gültigen Bereich?
    FBildIndex := 1;

  Image1.Picture.Bitmap.LoadFromResourceName(HInstance, Bilder[FBildIndex]);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Dec(FBildIndex); // FBildIndex um 1 erhöhen

  if (FBildIndex > 5) or (FBildIndex < 1) then // FBildIndex im gültigen Bereich?
    FBildIndex := 5;

  Image1.Picture.Bitmap.LoadFromResourceName(HInstance, Bilder[FBildIndex]);
end;

end.
Resourcendatei:

Code:
SourceCode RCDATA "umain.pas"
a BITMAP "Adjust Colour.bmp"
b BITMAP "accounts.bmp"
c BITMAP "Acrobat.bmp"
d BITMAP "Address Book.bmp"
e BITMAP "Adjust Brightness.bmp"
[/edit]

[edit2] Kleines Beispiel angehängt [/edit2]
Angehängte Dateien
Dateityp: rar resourcen-beispiel_289.rar (8,5 KB, 11x aufgerufen)
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#8

Re: ressource datei liest keine Integer werte aus!

  Alt 11. Jun 2005, 17:13
Moin!

@Spider: Du gibst hier Lösungen und Code ohne dich auch nur mal mit den Resourcen auseinander gesetzt zu haben. Die scheint der Sinn von MakeIntResource() etc überhaupt nix zu sagen.

@Threadersteller:

Wenn du die Bilder mit "one" laden kannst, dann liegt das Problem in der deiner RES Datei, wo dann immernoch als Bezeichner keine Zahl sondern "one" drinne steht. Du musst deine Bezeichner wie z.B. "one" durch eine einfache "1" ersetzen und dann kannst du es auch mit MakeIntResource laden. Auch musst du, wenn du das Resourcen-Compile-Skript (.rc) geändert hast, die Resource neu erstellen mit dem Resourcencompiler und dann die neue Resource einkompilieren. Danach sollte dann das Laden der Bilder über den Namen "one" nicht mehr funktionieren, wohl aber mit MakeIntResource(1).

MfG
Muetze1
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#9

Re: ressource datei liest keine Integer werte aus!

  Alt 11. Jun 2005, 17:19
Zitat von Muetze1:
Moin!

@Spider: Du gibst hier Lösungen und Code ohne dich auch nur mal mit den Resourcen auseinander gesetzt zu haben. Die scheint der Sinn von MakeIntResource() etc überhaupt nix zu sagen.
Hi,

so ganz unrecht hast du nicht, aber ich habe es selbst mit MakeIntResource versucht und bekomme immer eine Zugriffverletzung.
Wie oben geschrieben, ist das eine Quick and Dirty Lösung, die aber vollkommen funktioniert.
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#10

Re: ressource datei liest keine Integer werte aus!

  Alt 11. Jun 2005, 17:21
Moin!

Mir ging es nicht nur darum, sondern u.a. auch um den Vorschlag direkt ein Integer anzugeben anstatt des PChar's - was schon böse ist.

Deine Lösung habe ich mir nicht weiter angeschaut - zumindest sollte sich der Threadersteller seine Lösung raussuchen...

MfG
Muetze1
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 23:21 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