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 2 von 2     12   
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#11

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

  Alt 16. Feb 2010, 00:03
Moin,
erstmal ein kleiner Hinweis: Dieses "a.bmp" ist eigentlich unzureichend. Du weißt nie so richtig, welchen Pfad du davor hast (das muss nicht umbedingt der Pfad zur *.exe sein!).
Stattdessen am besten den Pfad deiner *.exe vorne dranfügen:
ExtractFilePath(ParamStr(0)) + 'a.bmp' Das ParamStr(0) gibt den Dateiname deiner exe-Datei zurück. Und das ExtractFilePath dann den Pfad zu einer Datei inklusive eines abschließenden "\".

Zur "Liste":
An sich ist die Einfach zu benutzen:
Delphi-Quellcode:
var
  SL : TStringList;
  i : Integer;
begin
  SL := TStringList.Create;
  SL.LoadFromFile(....);
  for i := 0 to SL.Count - 1 do
  begin
    ShowMessage(SL[i]);
  end;
end;
Hier erstelle ich zuerst ein Objekt mit dem ich dann arbeiten kann. Dann lade ich die Datei (TStringList.LoadFromFile(<Dateiname>)) und gehe dann jede Zeile durch und lasse die als Dialog ausgeben. Dabei gibt TStringList.Count die Anzahl der Zeilen an. Und mit den eckigen Klammern kannst du auf eine Zeile zugreifen (beginnend bei 0).

MfG
Fabian
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Benutzerbild von Delphi-Narr
Delphi-Narr

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

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

  Alt 16. Feb 2010, 11:29
Das "a.bmp" nicht ausreichend ist, ist mir schon klar... Standardmäßig wird jedoch das Programmverzeichnis benutzt.
Es bringt aber eigentlich nichts, wenn man die Zeilen ausgeben lässt.

Also wenn man jetzt alle Objekte erstellen will und meine Prozedur benutzen würde, könnte man das so aufrufen:

In der Datei sieht das so aus:


Name
Left
Top
Width
Height
Quelle

Aufruf:
Delphi-Quellcode:
var
  SL : TStringList;
  i : Integer;
begin
  SL := TStringList.Create;
  SL.LoadFromFile(Dateipfad der *.txt); //Datei mit Angaben zu den Images in die Liste laden
  i:=0;
  while i<SL.count do //Liste durchlaufen
  begin
       ErstelleImage(Form1,StrToInt(SL[i+1]),StrToInt(SL[i+2]),StrToInt(SL[i+3]),StrToInt(SL[i+4]),SL[i+5],True);
       i:=i+6;
  end;
  SL.Free;
end;
Edit:
Also hier wird die Liste SL, in der sich alle Zeilen der Datei befinden, durchlaufen. Bei dieser Methode empfiehlt sich keine
for-Schleife, da pro Schleifendurchlauf auf 5 verschiedene Zeilen zugegriffen wird.
Anschließend wird die Prozedur ErstelleImage aufgerufen. Als parameter werden Zeilen aus der Liste übergeben. Die Zeilenzahl ist immer relativ zur Zeile, in der sich der Name befindet (Image1,etc)
Um zum nächsten Objekt zu springen, wird i um 6 erhöht. Dadurch werden die bereits in SL[i+x] verwendeten Werte übersprungen

Liebe Grüße
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#13

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

  Alt 16. Feb 2010, 11:36
Zitat von Delphi-Narr:
Das "a.bmp" nicht ausreichend ist, ist mir schon klar...
Dir vielleicht aber nicht den Threadersteller.
Zitat von Delphi-Narr:
Standardmäßig wird jedoch das Programmverzeichnis benutzt.
Aber (wenn ich mich richtig erinnere) sobald ein Speichern/Öffnen Dialog aufgerufen wurde, ist das anders!
Zitat von Delphi-Narr:
Es bringt aber eigentlich nichts, wenn man die Zeilen ausgeben lässt.
Es war nur als Beispiel gedacht, was er mit einer TStringList machen kann. Du hast mehr oder weniger einfach Code gepostet ohne das der Threadersteller weiß was er da tut.

MfG
Fabian
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Benutzerbild von Delphi-Narr
Delphi-Narr

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

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

  Alt 16. Feb 2010, 11:53
Zitat von xZise:
Zitat von Delphi-Narr:
Das "a.bmp" nicht ausreichend ist, ist mir schon klar...
Dir vielleicht aber nicht den Threadersteller.
Es war nur als Beispiel gedacht, dass klar wird, dass man an dieser Stelle den Pfad der Datei weitergeben muss.
Zitat von xZise:
Zitat von Delphi-Narr:
Standardmäßig wird jedoch das Programmverzeichnis benutzt.
Aber (wenn ich mich richtig erinnere) sobald ein Speichern/Öffnen Dialog aufgerufen wurde, ist das anders!
Das war mir nicht so klar... Wieder was gelernt^^

Zitat von xZise:
Zitat von Delphi-Narr:
Es bringt aber eigentlich nichts, wenn man die Zeilen ausgeben lässt.
Es war nur als Beispiel gedacht, was er mit einer TStringList machen kann. Du hast mehr oder weniger einfach Code gepostet ohne das der Threadersteller weiß was er da tut.
Ich hatte den ersten Code mit sehr vielen Kommentaren versehen, alle weiteren Codeschnipsel müssten eigentlich klar sein, wenn man den ersten verstanden hat.
Ich editier den lezten dann mal.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 05: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