AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Während ein Programm läuft, Image hinzufügen
Thema durchsuchen
Ansicht
Themen-Optionen

Während ein Programm läuft, Image hinzufügen

Ein Thema von zapper54 · begonnen am 13. Feb 2010 · letzter Beitrag vom 16. Feb 2010
Antwort Antwort
Seite 1 von 2  1 2      
zapper54

Registriert seit: 14. Nov 2009
28 Beiträge
 
Delphi 7 Enterprise
 
#1

Während ein Programm läuft, Image hinzufügen

  Alt 13. Feb 2010, 19:34
Hallo!

Ich habe ein Problem: Während mein Programm läuft, soll in einer Textdatei gelesen werden. Dort soll dann z.B. das wort image stehen. Immer wenn mein Programm das liest, soll es ein neues Image erstellen, und zwar an den Koordinaten, die dann da hinter stehen sollen und mit dem Bild (Pfad soll dann dort stehen) und natürlich auch in der richtigen Größe.

Könnt ihr mir da helfen?

MfG

zapper54
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.332 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Während ein Programm läuft, Image hinzufügen

  Alt 14. Feb 2010, 15:05
Wo ist denn das Problem dabei?
  • Auslesen der Textdatei selbst?
  • Dynamisches Erstellen eines TImage?
  • Positionieren des TImages?
  • Laden des Bildes?
Hast du schon etwas versucht? Funktioniert etwas nicht?
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von Lumpiluk
Lumpiluk

Registriert seit: 25. Dez 2008
110 Beiträge
 
#3

Re: Während ein Programm läuft, Image hinzufügen

  Alt 14. Feb 2010, 15:39
Statt einer einfachen Textdatei würde ich dir für so etwas eine INI empfehlen. Ansonsten würde ich die Koordinaten in der normalen Textdatei auch nicht hinter das Wort 'Image' schreiben, sondern jeweils in eine Zeile.
  Mit Zitat antworten Zitat
Benutzerbild von Delphi-Narr
Delphi-Narr

Registriert seit: 29. Aug 2009
Ort: Duisburg
437 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Während ein Programm läuft, Image hinzufügen

  Alt 15. Feb 2010, 10:46
Ich gehe jetzt mal davon aus, dass du die Werte so in einer Textdatei stehen hast:

Name des Objekts
Left-Koordinate
Top-Koordinate
Width
Heigth

Beispiel:

Image1
100
100
200
150


Delphi-Quellcode:
Uses ...,extctrls;

//In der Variablendeklaration:
var
   //Ich verwende jetzt mal eine Stringlist, um die Datei zu laden
   SL:TStringlist;
   //Um ein dynamisches Objekt zur Laufzeit zu erstellen, ein TImage in einer Variable deklarieren
   Objekt:TImage;

   //Jetzt muss die Datei geladen werden. Ich mache es beim Klick auf einen Button

procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
     SL:=TStringlist.create;
     SL.LoadFromFile('Test.txt');
     i:=0; //Erste Zeile der Stringlist wird durch SL[0] angesprochen (Immer -1)

     //Objekte erstellen durch eine Schleife
     while i<SL.count do
     begin
          Objekt:=TImage.create(Form1);
          Objekt.name:=SL[i]; //Name des Objekts wird aus der Liste ausgelesen
          Objekt.Left:=StrToInt(SL[i+1]); //Leftwert befindet sich eine Zeile hinter dem Namen
          Objekt.Top:=StrToInt(SL[i+2]); //Topwert befindet sich zwei Zeilen hinter dem Namen
          Objekt.Width:=StrToInt(SL[i+3]);
          Objekt.Height:=StrToInt(SL[i+4]);
          Objekt.parent:=Form1;
          Objekt.show;
          Objekt.Canvas.FloodFill(1,1,clblack,fsSurface); //Das musst du halt ersetzen, ein Bild reinladen oder sonst was
          i:=i+5; //Springt zum nächsten Namen in der Liste
     end;
end;
Ich hoffe so sollte es sein...

Liebe Grüße!
  Mit Zitat antworten Zitat
zapper54

Registriert seit: 14. Nov 2009
28 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Während ein Programm läuft, Image hinzufügen

  Alt 15. Feb 2010, 18:47
@Delphi-Narr:

Sieht ganz gut aus, ich habe aber noch eine Frage:
Ich würde die Textdatei mit
Delphi-Quellcode:
var
f:textfile;
s:string;

assaignfile(f,'C:\geheim.txt');
reset(f); //Damit ich auch die 1. Zeile lese
readln(f,s);
closefile(f);
Soweit erstmal. Sagt mir bitte, wenn das aus irgendeinem Grund nicht geht.

Jetzt verstehe ich das aber nicht, wie du das mit der Liste machst. Ich habe noch nie mit Listen gearbeitet...
Geht es vielleicht auch einfacher, und nicht so umständlich wie
Zitat:
Delphi-Quellcode:
while i<SL.count do
     begin
          Objekt:=TImage.create(Form1);
          Objekt.name:=SL[i];
          Objekt.Left:=StrToInt(SL[i+1]);
          Objekt.Top:=StrToInt(SL[i+2]);
          Objekt.Width:=StrToInt(SL[i+3]);
          Objekt.Height:=StrToInt(SL[i+4]);
          Objekt.parent:=Form1;
          Objekt.show;
          Objekt.Canvas.FloodFill(1,1,clblack,fsSurface);
          i:=i+5;
     end;
Kann man der Form einen Befehl geben, mit der sie selber ein neues Image erstellt?

Danke schonmal für eure Antworten.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Während ein Programm läuft, Image hinzufügen

  Alt 15. Feb 2010, 18:54
Zitat:
Kann man der Form einen Befehl geben, mit der sie selber ein neues Image erstellt?
Man könnte diese um eine entsprechende Methode erweitern.

Achtung: Zeichenbefehle nur in Paint()-Methode ausführen, denn sonst wird beim Neuzeichnen ( beim Verschieben, nach Übdedeckung usw.) deine Zeichnung gelöscht.
Markus Kinzler
  Mit Zitat antworten Zitat
zapper54

Registriert seit: 14. Nov 2009
28 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Während ein Programm läuft, Image hinzufügen

  Alt 15. Feb 2010, 18:55
Ok, aber mit diesen Methoden selbsterstellen... Wie macht man das?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Während ein Programm läuft, Image hinzufügen

  Alt 15. Feb 2010, 18:56
Wann soll ein neues erzeugt werden?
Markus Kinzler
  Mit Zitat antworten Zitat
zapper54

Registriert seit: 14. Nov 2009
28 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: Während ein Programm läuft, Image hinzufügen

  Alt 15. Feb 2010, 19:10
Wenn eine Bedingung erfüllt ist, wie z.B. Wenn mein Mauszeiger inerhalb eines Quadrates ist.
  Mit Zitat antworten Zitat
Benutzerbild von Delphi-Narr
Delphi-Narr

Registriert seit: 29. Aug 2009
Ort: Duisburg
437 Beiträge
 
Delphi 2007 Professional
 
#10

Re: Während ein Programm läuft, Image hinzufügen

  Alt 15. Feb 2010, 19:49
Du kannst das natürlich auch mit Textfile machen...
Du lädst die Textdatei in die Liste und kannst dann über Sl[Zahl] auf eine bestimmte Zeile der Datei zugreifen.
Du kannst natürlich ein Image erstellen, ohne das Ganze immer einzelnd zu machen.
Hier eine allgemeine Prozedur ohne eine neue Methode zu erstellen:

Delphi-Quellcode:
procedure TForm1.ErstelleImage(Fuer:TForm;aLeft,aTop,aWidth,aHeight:integer; Quelle:string; Strecken:Boolean);
var I:TImage;
begin
     I:=TImage.create(Fuer);
     I.left:=aLeft;
     I.Top:=aTop;
     I.width:=aWidth;
     I.height:=aHeight;
     if FileExists(Quelle) then I.Picture.Bitmap.LoadFromFile(Quelle);
     I.parent:=Fuer;
     I.Stretch:=Strecken;
end;
So würde dann der Aufruf aussehen:

     ErstelleImage(Form1,100,100,100,100,'a.bmp',True); Hierbei würde ein Image auf Form1 mit Left, Top, Width und Height = 100 erstellt. Es würde ein Bild aus der Datei "a.bmp" geladen und dieses würde auf die Größe des Images gestreckt werden...

Liebe Grüße!
  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 15:49 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