![]() |
ressource datei liest keine Integer werte aus!
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:
nun kann ich aber doch nicht integerwerte benutzen... denn mein PC hängt sich jedesmal auf.... mein Programm: DER BUTTON ----------
Delphi-Quellcode:
DIE RESource
procedure TForm1.Button1Click(Sender: TObject);
var x:integer; begin x:=x+1; Image1.Picture.Bitmap.LoadFromResourceName(HInstance, MAKEINTRESOURCE(x)); end; end. ------------- 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] |
Re: ressource datei liest keine Integer werte aus!
Hi,
Delphi-Quellcode:
So sollte es klappen:
var
x: Integer; begin x := x + 1; // Hier ist X nicht 1 oder 2, sondern undefiniert. ... end;
Delphi-Quellcode:
var
x: Integer; begin x := 1; ... end; |
Re: ressource datei liest keine Integer werte aus!
Auch wenn ich einfach nur
x:=1 setze klappt es leider nicht |
Re: ressource datei liest keine Integer werte aus!
Dumme frage: Bist du dir sicher, dass du die ressource eingebunden hast ?
|
Re: ressource datei liest keine Integer werte aus!
Vllt. hier noch was:
Delphi-Quellcode:
oder vllt. auch:
procedure TForm1.Button1Click(Sender: TObject);
var x:integer; begin x:=x+1; Image1.Picture.Bitmap.LoadFromResourceName(HInstance, IntToStr(x)); end;
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var x:integer; begin x:=x+1; Image1.Picture.Bitmap.LoadFromResourceID(HInstance, x); end; |
Re: ressource datei liest keine Integer werte aus!
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 |
Re: ressource datei liest keine Integer werte aus!
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,
ich glaube das Problem liegt hier: Zitat:
[edit] Quick and dirty Lösung:
Delphi-Quellcode:
Resourcendatei:
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.
Code:
[/edit]
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" [edit2] Kleines Beispiel angehängt [/edit2] |
Re: ressource datei liest keine Integer werte aus!
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 |
Re: ressource datei liest keine Integer werte aus!
Zitat:
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. |
Re: ressource datei liest keine Integer werte aus!
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 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz