AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Syntax-Datenbank

Ein Thema von Mpex · begonnen am 26. Dez 2011 · letzter Beitrag vom 28. Dez 2011
Antwort Antwort
Seite 2 von 4     12 34      
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.139 Beiträge
 
Delphi 12 Athens
 
#11

AW: Syntax-Datenbank

  Alt 27. Dez 2011, 13:11
Zitat:
Lesen von Adresse 000001A8.
$00000000 + Property/Feld-Offest = nil

NIL = ein Zeiger, in dem nichts drin ist

Vermutung: Du hast vergessen die Komponente zu erstellen (wie mein Vorredner auch schon vermutete)


PS: Der Dedugger sagt dir auch noch an welcher Codezeile das passiert und dort könnte man sich dann noch die Variablenwerte ansehn und schon weißt du, was da fehlt.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Mpex

Registriert seit: 26. Dez 2011
12 Beiträge
 
#12

AW: Syntax-Datenbank

  Alt 27. Dez 2011, 13:18
Gut, das war etwas unglücklich, hab den Namen einfach mal in BildA geändert. Und ja, zum probieren hab ich das selbst in den Quellcode geschrieben, aber da gibt es sonst noch nichts sehenswertes, ich wollte ja erstmal nur testen ob das Laden des Bildes so funktioniert. Das Testprogramm sieht so aus:

Delphi-Quellcode:
program test;
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

var
BildA: Timage;
Directory:String;


procedure wait(t: longint); {W A R T E}
  var
    a: longint;
  begin
    a := GetTickCount;
    repeat
      Application.ProcessMessages;
    until (GetTickCount > a+t);
  end;


function Pfad: string; {D I R E C T O R Y}
begin
  Result := ExtractFilePath(ParamStr(0));
  Directory:=Result;
end;

begin
  Pfad;
  BildA.Picture.LoadFromFile(Directory+'\Bild1.bmp');
  wait(5000);
end.
Das ist schon alles.

@Himitsu:
Debug-Ausgabe: FTH: (5836): *** Fault tolerant heap shim applied to current process. This is usually due to previous crashes. *** Prozess Test.exe (5836)
ist alles besondere, was ich sehe.. Meinst du die (5836)? Wie muss ich das denn lesen, um die Zeile zu finden?

Geändert von Mpex (27. Dez 2011 um 13:21 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#13

AW: Syntax-Datenbank

  Alt 27. Dez 2011, 13:24
Hi,

jepp, das ist das Problem - da fehlt was.

Du hast jetzt quasi gesagt, es wird da mal ein Bild geben, das wird den Namen BildA tragen, aber angelegt hast du es nicht.
Was da also fehlt ist etwas in der Art (frei aus dem Kopf, keine Garantie) BildA := TImage.Create(); und später, wenn du es nicht mehr brauchst, musst du es auch wieder aufräumen BildA.Free(); - aber damit wäre es dann nicht getan - du musst dem Bild mindestens mal noch nen Parent zuweisen sowie auch Größe und Position wären sinnvoll.

Vermutlich ist es einfacher, du ziehst die Komponente auf dem Formular dorthin, wo du sie haben möchtest und nennst sie BildA.


LG, Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.139 Beiträge
 
Delphi 12 Athens
 
#14

AW: Syntax-Datenbank

  Alt 27. Dez 2011, 13:44
Du hast Application nicht initialisiert. (schau mal in eine nomale DPR, welche Delphi anlegt)

Wenn du das Bild nicht anzeigen willst, dann verwende doch TPicture oder direkt TBitmap, da du ja ein Bitmap lädst.


PS: Das mit dem globalen Directory-Parameter ist doch nicht wirklich dein Ernst?
Bzw. vorallem das mit der Pfad-Funktion.

PSSPPS: Du hast hier keine VCL-Anwendung, also kannst du auch dirtekt Delphi-Referenz durchsuchenSleep verwenden, anstatt diesem Wait.


Die 5836 ist nur die interne Fehlernummer.
Zitat:
Wie muss ich das denn lesen, um die Zeile zu finden?
In diesem Fall? (da hier sämtliche Exceptionbehandlung fehlt, welche die VCL sonst noch automatisch mitbringt)

3 Mal F7 F8 drücken und beim 4. Mal knallt es.
Also spätestens nach dem 3. Mal wirst du sehn, daß die Variable "BildA" immernoch NIL ist und demanch muß es knallen, wenn auf die Picture-Eigenschaft des nichtexistierenden Bildes zugegriffen wird.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (27. Dez 2011 um 22:24 Uhr)
  Mit Zitat antworten Zitat
Mpex

Registriert seit: 26. Dez 2011
12 Beiträge
 
#15

AW: Syntax-Datenbank

  Alt 27. Dez 2011, 13:58
Hmm, tut mir wirklich leid, aber irgendwie verstehe ich das nicht ganz - wenn ich das Bild "reinziehe", kann ich einen Pfad angeben und es funktioniert, scheibar "einfach so".
Aber wenn ich das dann in den tatsächlichen Code reingehe, um mir anzusehen, wie es richtig aussieht, steht da... nichts?! Das kann doch irgendwie nicht sein.

Also um das verständlicher zu machen: Ich habe ein neues Projekt geöffnet, ein Timage reingezogen, den Pfad ausgesucht und es ging. Bei doppelklick darauf lese ich aber nur folgenden Code:

Delphi-Quellcode:
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm2 = class(TForm)
    Image1: TImage;
    procedure Image1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.Image1Click(Sender: TObject);
begin

end;

end.
Es muss doch irgendwo der Pfad und das .create vermerkt sein oder bin ich jetzt völlig daneben?

@himitsu: Später soll das natürlich schon angezeigt werden, das war ja nur ein test(und dann werden es auch .jpg Dateien sein). Ich komme mir irgendwie ziemlich blöd vor bei den ganzen Fehlern. Gibt es nicht ein Tutorial, das den Umgang hiermit von Grund auf erklärt, damit ich euch das hier ersparen kann?
zu PS: Wo ist denn das Problem damit?
zu PPPS: Ah! Wieder was gelernt
  Mit Zitat antworten Zitat
Benutzerbild von implementation
implementation

Registriert seit: 5. Mai 2008
940 Beiträge
 
FreePascal / Lazarus
 
#16

AW: Syntax-Datenbank

  Alt 27. Dez 2011, 14:04
Wenn du den Formulareditor benutzt, wird das Bild als Resource ins Projekt übernommen und mit in die Exe einkompilierteingelinkt. Deshalb siehst du da nirgendwo einen Pfad
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.139 Beiträge
 
Delphi 12 Athens
 
#17

AW: Syntax-Datenbank

  Alt 27. Dez 2011, 14:07
Zu deiner PAS gibt es hier noch eine DFM.

In dieser DFM-Resource steht drin, was alles auf der Form liegt und welche eigenschaften dieses hat.

Die VCL läd nun, beim Erstellen der TForm1-Instanz, diese DFM und erstellt die enthaltenen Komponenten.
Das Image1 := TImage.Create wird also vom VCL-Loader automatisch gemacht.

Du wolltest das TImage aber ohne den VCL-Loader nutzen und dann mußt du das TImage auch sleber erstellen und ebenfalls die nötigen Eigenschaften setzen.

PS: Wenn du über den OI ein Bild in das TImage lädst, dann wird das Bild zu diesem Zeitpunkt in die Kompoente geladen und dann direkt in der DFM gespeichert.
Beim Laden der Form kommt dann das Bild aus der DFM und die externe Datei wird nicht mehr benötigt.



PSS: Rechtsklick auf die Form und "Ansicht als Text". (oder direkt in die .DFM reinsehn, wenn diese im Textformat gespeichert wurde, dann sieht man auch etwas)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (27. Dez 2011 um 14:16 Uhr)
  Mit Zitat antworten Zitat
Mpex

Registriert seit: 26. Dez 2011
12 Beiträge
 
#18

AW: Syntax-Datenbank

  Alt 27. Dez 2011, 14:11
Kopf -> Tisch ...

Okay, aber das Bild möchte ich in ein Programm einfügen, dass ohne Formulare etc. erstellt wurde, also muss ich entweder das gesamte Programm umstellen (Was ein riesenhaufen Arbeit wäre, abgesehen davon, dass ich mich garnicht sogut damit auskenne, als das ich mir das zutrauen würde) oder das Bild anpassen. Aber wie krieg ich jetzt den korrekten Umgang mit Timage raus (Am besten ohne mir alles von euch vorsagen zu lassen )?

P.S: Vielen Dank übrigens für eure Geduld mit mir. Ich gebe mir wirklich Mühe, mitzukommen und möglichst selbst drauf zu kommen, bin aber eben noch sehr unerfahren mit Delphi.

*Edit* Entschuldigung, dein PSS(...) hatte ich nicht gesehen ([OT] Warum eigentlich PSS? [/OT]). Damit kommen wir der Sache ja schon etwas näher. Allerdings steht da auch nicht der Pfad, sondern nur die Bildinformation, die aus einem gigantischem Zahlen/Buchstaben-Salat besteht.

Geändert von Mpex (27. Dez 2011 um 14:16 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.139 Beiträge
 
Delphi 12 Athens
 
#19

AW: Syntax-Datenbank

  Alt 27. Dez 2011, 14:21
Aber wie krieg ich jetzt den korrekten Umgang mit Timage raus (Am besten ohne mir alles von euch vorsagen zu lassen )?
Tipp: In meinem letzen Post versteckte sich ein Stückchen Quellcode.
(in der OH steht auch was für Parameter dort nötig sind > Delphi-Referenz durchsuchenTImage.Create ... Tipp: NIL)

Allerdings steht da auch nicht der Pfad, sondern nur die Bildinformation, die aus einem gigantischem Zahlen/Buchstaben-Salat besteht.
Wie gesagt, den Pfad gibt es dort nicht, da dort direkt das Bild drin ist ... schön kodiert, damit es als Text reinpaßt. (Binärdaten in einer Textdatei sind nicht sonderlich praktisch )
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Mpex

Registriert seit: 26. Dez 2011
12 Beiträge
 
#20

AW: Syntax-Datenbank

  Alt 27. Dez 2011, 16:04
Soweit bin ich mit der Suche schon selbst gekommen, nur gebracht hatt es mir leider nichts Das Problem ist, dass ich die Parametereingabe nicht verstehe - und wenn ich mir den Text zu Owner und die weiterführenden durchlese, wird es nur noch schlimmer. Es soll kein Objekt für die Freigabe usw. zuständig sein, das Bild soll einfach nur zu einer voher im Programm festgelegten Zeit aufgerufen, angezeigt und je nach Programmverlauf(Der ist aber auch schon festgelegt) verschoben oder verändert werden. Was ich suchte war im Prinzip also
"...ZeigeBild1(Position)...VerschiebeBild1(NeuePos ition)...ZeigeBild2..." usw.

Und zum zweiten: Meinst du damit, ich soll alle Bilder (Das wären so um die 100)in dieser Form in mein Programm Kopieren? Dann hab ich ja Seitenweise Buchstabensalat im Quellcode.. geht das nicht anders?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      


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 18:57 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