Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Bild austauschen ! mit ner ini (https://www.delphipraxis.net/7894-bild-austauschen-mit-ner-ini.html)

Spike2k3 23. Aug 2003 21:26


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:
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;
So sieht das grad bei mir aus.
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

Christian Seehase 23. Aug 2003 21:54

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:
Image1.Picture.LoadFromFile(Bild);
verwenden, um das Bild zu laden.

Wie machst Du's denn beim Film?

Spike2k3 23. Aug 2003 22:04

Re: Bild austauschen ! mit ner ini
 
Hier ist mal der ganze Code, noch ohne deinen Tip.
Zusammenfassung unten drunter.
Delphi-Quellcode:
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.
Hab einfach ne Variable angegeben, die den neuen Filmnamen aus der ini liest und dann den neuen benutzt ;)
Sehr simple eigentlich...
Ich probier jetzt ma deinen Tip.

Spike2k3 23. Aug 2003 22:09

Re: Bild austauschen ! mit ner ini
 
Danke für den Tip, das klappt jetzt ...
Delphi-Quellcode:
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;
Bild war zufällig auch meine Variable :D

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:

Spike2k3 23. Aug 2003 22:12

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;

Christian Seehase 23. Aug 2003 22:12

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]

Spike2k3 23. Aug 2003 22:13

Re: Bild austauschen ! mit ner ini
 
Ok, wusste ich nicht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:24 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