AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi TImage zur Laufzeit mit weiteren Properties ausstatten
Thema durchsuchen
Ansicht
Themen-Optionen

TImage zur Laufzeit mit weiteren Properties ausstatten

Offene Frage von "torud"
Ein Thema von torud · begonnen am 13. Jun 2007 · letzter Beitrag vom 13. Jun 2007
Antwort Antwort
Seite 2 von 3     12 3      
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#11

Re: TImage zur Laufzeit mit weiteren Properties ausstatten

  Alt 13. Jun 2007, 13:10
Ich habe es gerade nochmal getestet und der FormDesigner von Greatis.com speichert wirklich alle möglichen Controls, die sich auf dem Formular befinden, so auch mein erzeugtes Testpic:

Delphi-Quellcode:
  object testpic: TMyImage
    Left = 0
    Top = 0
    Width = 105
    Height = 105
    Picture.Data = {
      0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000005600
      //usw...
Aber die 2 neuen Eigenschaften speichert er leider nicht. Hat das einen Grund?

Delphi-Quellcode:
type
  TMyImage=class(TImage)
  public
    new_width:integer;
    angle:integer;
    //Methoden fehlen hier auch noch
  end;
Ich übergebe Ihnen schon Daten, aber sie werden einfach nicht gespeichert:

Delphi-Quellcode:
      myDestImage.Picture.Graphic.Assign(x);
      myDestImage.new_width := ScrollBar2.Position;
      myDestImage.angle := ScrollBar1.Position;
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#12

Re: TImage zur Laufzeit mit weiteren Properties ausstatten

  Alt 13. Jun 2007, 13:15
Versuch mal so:
Delphi-Quellcode:
type tmyImage=class(TImage)
       private
         FEigenschaft:Integer;
       published
         property Eigenschaft:integer read FEigenschaft write FEigenschaft;
end;
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#13

Re: TImage zur Laufzeit mit weiteren Properties ausstatten

  Alt 13. Jun 2007, 13:21
Jo , mit dem speichern klappts nun. Nun haperts nur noch mit dem Laden. Er kennt nun natürlich TMyImage nicht. Warum auch immer...naja aber ich bin schon mal ein Stück weiter...

Im Projekt Project1.exe ist eine Exception der Klasse EClassNotFound aufgetreten. Meldung: 'Klasse TMyImage nicht gefunden'. Prozeß wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#14

Re: TImage zur Laufzeit mit weiteren Properties ausstatten

  Alt 13. Jun 2007, 13:31
Ich kenne den Formdesigner nicht. Wann und wo wird denn deine Komponente geladen?
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#15

Re: TImage zur Laufzeit mit weiteren Properties ausstatten

  Alt 13. Jun 2007, 13:36
Die Komponente ist schon sehr geil.

per button1 passiert folgendes:

Delphi-Quellcode:
    FormDesigner1.Active:=true;
    FormDesigner1.SaveToDFM('test.txt',dfmText);
und mit dem anderen Button lade ich

Delphi-Quellcode:
    FormDesigner1.Active := True;
    FormDesigner1.LoadFromDFM('test.txt',dfmText);
Ich habe es mal so modifiziert, dass ich das TMyImage weggelassen habe. Dann läd und speichert er korrekt. Wenn ich TMyImage erzeuge und das Form korrekt speichere ist alles ok, aber sobald ich neu lade "knallts"...
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#16

Re: TImage zur Laufzeit mit weiteren Properties ausstatten

  Alt 13. Jun 2007, 13:42
Keine Ahnung, was da schief läuft. Die Komponenete TmyImage befindet sich ja genauso im Code wie alle anderen Komponenten auch.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#17

Re: TImage zur Laufzeit mit weiteren Properties ausstatten

  Alt 13. Jun 2007, 13:48
Kann es sein, dass zu einem Konflikt kommen kann, weil ich myDestImage:TMyImage; global deklariert habe und dann im OnCreate dies generiert habe und es dann nochmals geladen werden soll und da aber schon existent ist? Ich probiers einfach mal aus, indem ich andere Namen benutze...
Danke
Tom
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#18

Re: TImage zur Laufzeit mit weiteren Properties ausstatten

  Alt 13. Jun 2007, 17:49
Hier ist die Antwort vom Hersteller der Komponente. Leider kann ich damit nicht wirklich was anfangen. Kann mir jemand von Euch nen Hinweis geben?

----------------------------------------

Hello,
Have you registered your new class with RegisterClasses procedure?

It\'s common VCL stream requirement for all the loaded object. This feature is
used for finding the correct constructor by class bane loaded from stream.

Let me know if you have any questions.
Thank you.
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#19

Re: TImage zur Laufzeit mit weiteren Properties ausstatten

  Alt 13. Jun 2007, 19:38
Ah, ja!
Dann versuch doch mal folgendes in deiner Unit ganz am Ende (vor dem "end.")

Delphi-Quellcode:
initialization

registerclass(tmyImage)

finalization

unregisterclass(tmyimage)
Du kannst natürlich daraus auch ein package, also eine Komponente in der IDE machen (siehe "procedure register")
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#20

Re: TImage zur Laufzeit mit weiteren Properties ausstatten

  Alt 13. Jun 2007, 19:41
Danke für den Hinweis.

Nun erhalte ich wenigstens eine andere Meldung. Mit der kann ich gleich gar nichts anfangen...

Im Projekt Project1.exe ist eine Exception der Klasse EAccessViolation aufgetreten. Meldung: 'Zugriffsverletzung bei Adresse 00403806 in Modul 'Project1.exe'. Lesen von Adresse 34333201'. Prozeß wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.

Das eigentlich fast schon tolle ist, dass die Meldung erst nach dem erfolgreichen Laden kommt. Das heisst, dass es nun eigentlich schon funktioniert. Ist nur noch diese Meldung im Wege, die aber sicher ihren Grund hat...

Ich glaube desweiteren, dass es damit zusammenhängt, dass ich das MyImage-Control zu Beginn vom Programm erstellen lasse und das beim Laden der DFM-Datei die Komponente zuerst alle Controls zerstört, um danach die in der DFM-Datei stehenden zu creieren. Könnte da ein Fehler sein?
Danke
Tom
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 10:29 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