![]() |
Bild austauschen ! mit ner ini
Hi,
Ich möchte gerne eine Backgroundchange Funktion in mein Projekt einbauen. Ich hab ein Bild und das möchte ich nun austauschen, gegen ein anderes.
Delphi-Quellcode:
So sieht das grad bei mir aus.
procedure TForm2.ndern1Click(Sender: TObject);
begin begin ini:=TIniFile.create(ExtractFilePath(ParamStr(0))+ 'File1.ini'); try Bild:=ini.ReadString('Backs','BG','D:/b.jpg') finally ini.free; end; // da wird der Pfad des neuen Pics aus die ini gelesen Image1.Picture := Bild; end; end; Aber da meint das Progie immer, das string und pic nich gehn. Kann man denn nicht durch Angabe eines Strings aus ner *.ini den Pfad für das im Prog. angezeigte Bild bestimmen? Oder, wie lässt sich das Bild überhaupt austauschen? Bei Filme und ner Ini klappt das einwandfrei, nur die Bilder woll n nich :cry: :cry: Hoffe auf baldige Hilfe. MfG, Spike2k3 :D :D |
Re: Bild austauschen ! mit ner ini
Moin Spike,
erst einmal herzlich willkommen hier in der Delphi-PRAXiS. In der Regel kann man wohl sagen: Der Compiler hat immer recht ;-) Aber im Ernst: Du liest den Pfad zu der Datei aus, wie Du ja selber schreibst, also musst Du dann
Delphi-Quellcode:
verwenden, um das Bild zu laden.
Image1.Picture.LoadFromFile(Bild);
Wie machst Du's denn beim Film? |
Re: Bild austauschen ! mit ner ini
Hier ist mal der ganze Code, noch ohne deinen Tip.
Zusammenfassung unten drunter.
Delphi-Quellcode:
Hab einfach ne Variable angegeben, die den neuen Filmnamen aus der ini liest und dann den neuen benutzt ;)
unit Unit2;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, MPlayer, ExtCtrls, ToolWin, ActnMan, ActnCtrls, ActnMenus, Menus, jpeg, inifiles; type TForm2 = class(TForm) Button1: TButton; MediaPlayer1: TMediaPlayer; Panel1: TPanel; MainMenu1: TMainMenu; Datei1: TMenuItem; Schliessen1: TMenuItem; Image1: TImage; Zurck1: TMenuItem; Optionen1: TMenuItem; Hintergrundbildndern1: TMenuItem; Edit1: TEdit; Movie1: TMenuItem; Whlen1: TMenuItem; BritneyonHawaii1: TMenuItem; StarwarsOuttakes1: TMenuItem; N11: TMenuItem; ndern1: TMenuItem; procedure Button1Click(Sender: TObject); procedure Schliessen1Click(Sender: TObject); procedure Zurck1Click(Sender: TObject); procedure BritneyonHawaii1Click(Sender: TObject); procedure StarwarsOuttakes1Click(Sender: TObject); procedure N11Click(Sender: TObject); procedure ndern1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form2: TForm2; ini: TIniFile; Pass,Moviez,Bild : String; implementation uses Unit1; {$R *.dfm} procedure TForm2.Button1Click(Sender: TObject); begin begin //Öffnen einer INI-Datei, existiert sie nicht, wird sie neu erzeugt ini:=TIniFile.create(ExtractFilePath(ParamStr(0))+ 'File1.ini'); //ini.WriteString('Form','Pass','Hans'); //Werte auslesen (s. Beispiel oben) //die Parameter: Abschnittsname, Wertname, Standardrückgabewert, //falls nicht vorhanden try Pass:=ini.ReadString('Form','Pass','Horst'); Moviez:=ini.ReadString('Movies','Moviez','D:\Moviez\starwars.mpeg'); finally ini.free; end; if Edit1.Text = Pass then begin MediaPlayer1.FileName := Moviez; MediaPlayer1.open; MediaPlayer1.Display:=panel1; MediaPlayer1.DisplayRect:=Panel1.ClientRect; MediaPlayer1.Play; end else showmessage ('IRRE???? OHNE Pass meine Moviez gucken? Fick dich !!!!') end; end; procedure TForm2.Schliessen1Click(Sender: TObject); begin close; end; procedure TForm2.Zurck1Click(Sender: TObject); begin form2.Hide; form1.Show; end; procedure TForm2.BritneyonHawaii1Click(Sender: TObject); begin begin ini:=TIniFile.create(ExtractFilePath(ParamStr(0))+ 'File1.ini'); try ini.WriteString('Movies','Moviez','D:\Moviez\Britney.Spears.en.Hawaii.avi'); finally ini.free; end; end; end; procedure TForm2.StarwarsOuttakes1Click(Sender: TObject); begin begin ini:=TIniFile.create(ExtractFilePath(ParamStr(0))+ 'File1.ini'); try ini.WriteString('Movies','Moviez','D:\Moviez\starwars.mpeg'); finally ini.free; end; end; end; procedure TForm2.N11Click(Sender: TObject); begin begin ini:=TIniFile.create(ExtractFilePath(ParamStr(0))+ 'File1.ini'); try ini.WriteString('Backs','BG','D:/a.jpg'); finally ini.free; end; end; end; procedure TForm2.ndern1Click(Sender: TObject); begin begin ini:=TIniFile.create(ExtractFilePath(ParamStr(0))+ 'File1.ini'); try Bild:=ini.ReadString('Backs','BG','D:/b.jpg') finally ini.free; end; //Image1.Picture := Bild; end; end; end. Sehr simple eigentlich... Ich probier jetzt ma deinen Tip. |
Re: Bild austauschen ! mit ner ini
Danke für den Tip, das klappt jetzt ...
Delphi-Quellcode:
Bild war zufällig auch meine Variable :D
procedure TForm2.ndern1Click(Sender: TObject);
begin begin ini:=TIniFile.create(ExtractFilePath(ParamStr(0))+ 'File1.ini'); try Bild:=ini.ReadString('Backs','BG','D:/b.jpg') finally ini.free; end; Image1.Picture.LoadFromFile(Bild); end; end; Weisst du zufällig auch wie man bei ner Messagebox die Buttonclick definiert? Means, wenn auf 'ja' dann blub, wenn auf 'nein' dann blüp. Das bekomm ich nämlich auch nicht hin :oops: |
Re: Bild austauschen ! mit ner ini
Quelltext vergessen :oops: :roll:
Delphi-Quellcode:
procedure TForm1.Hintergrundndern1Click(Sender: TObject);
Begin with Application do begin messagebox('Na, Sarah Michelle Gellar','NOOOOOB',MB_YESNO); //wenn ich nu auf ja klicke, soll das passieren ShellExecute(0, 'open', 'about:blank', nil, nil, SW_SHOW); //wenn ich auf nein klicke, dann soll die box einfach verschwinden end; end; |
Re: Bild austauschen ! mit ner ini
Moin Spike,
meine Frage war eher rhetorischer Natur. ;-) Übrigens hier gilt: Neue Frage, neuer Thread. [EDIT] Da ja Deine Eingangsfrage beantwortet ist mach' ich hier mal zu. Solltest Du hier noch etwas hinzuzufügen haben, dann melde Dich bitte. [/EDIT] |
Re: Bild austauschen ! mit ner ini
Ok, wusste ich nicht.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:20 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-2025 by Thomas Breitkreuz