GLScene installieren ?

Für Probleme bezüglich Grafik, Audio, GL, ACS, ...
pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

dabei gibt es nur ein Problem: ich meine das sobald ich ein record angebe im published bereich meckert der complier das das nicht geht !

Das gehen nur Klassen oder einfache Variablen !
MFG
Michael Springwald

schnullerbacke
Beiträge: 1187
Registriert: Mi 13. Dez 2006, 10:58
OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
CPU-Target: AMD A4-6400 APU
Wohnort: Hamburg

Beitrag von schnullerbacke »

Dann bau dir ne Klasse:

Code: Alles auswählen

type
 
  TMyData = class(TObject)
  private
    FData: TMyRecord;
 
    function    GetDatenFeld1: integer;
    procedure SetDatenFeld1(Value: integer);
    function  GetDatenFeld2: string;
    procedure SetDatenFeld2(Value: string);
 
  public
     DatenFeld1: integer read GetDatenFeld1 write SetDatenFeld2;
     DatenFeld2: string GetDatenFeld1 write SetDatenFeld2;
     // usw
  end;
 
  TMyObject = class(TIrgendwas { mindestens TPersistent })
  private
    FData: TMyData;
 
    function GetData: TMyData;
    procedure SetData(Value: TMyData);
 
  published
    Data: TMyData read GetData write SetData;
  end;
 
implementation
 
function TMyData.GetDatenFeld1: integer;
begin
   Result:= FData.Feld1;
end;
 
procedure TMyData.SetDatenFeld1(Value: integer);
begin
  if (Value <> FData.Feld1) then FData.Feld1:= Value;
end;
 
function TMyData.GetDatenFeld2: string;
begin
   Result:= FData.Feld2;
end;
 
procedure TMyData.SetDatenFeld2(Value: string);
begin
  if (Value <> FData.Feld2) then FData.Feld2:= Value;
end;
 
// TMyObject
 
function TMyObject.GetData: TMyData;
begin
   Result:= FData;
end;
 
procedure TMyObject.SetData(Value: TMyData);
begin
  if (Value <> FData) then FData:= Value;
end;


Normalerweise müßte es aber reichen in TMyObject einfach:

Code: Alles auswählen

TMyObject = class(TIrgendwas { mindestens TPersistent })
  privat
    FData: TMyRecord;
 
    function GetData: TMyRecord;
    procedure SetData(Value: TMyRecord);
 
  published
    Data: TMyRecord read GetData write SetData;
  end;


anzugeben. Bedingung dafür ist, das in TMyRecord nur solche Datentypen angegeben sind, für die ein PropertyEditor existiert. Das sind grundsätzlich alle Standard-Datentypen von ObjectPascal, auch Sets können benutzt werden. Existiert kein PropertyEditor, dann muß du dir selbst einen dafür bauen. Ich denke aber, das wird nicht nötig sein.

Das müßte dann im OI zu einem Feld mit einem "+", also einer Liste führen, die man aufklappen kann und dann dort die Werte verändern kann.
Wichtig ist es, die nötigen Get- und Set-Methoden zu deklarieren, nur dann funzt das.
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.

(Ringelnatz)

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

in meinem Paint2 Projekt habe ich das genau so änliche gemach:
ich wollte ein TPoint im OI anzeigen lassen, das ging nicht also habe ich ein TPoint2 Defniert als classe und schon ging es !
MFG
Michael Springwald

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Wie können aber nicht einfach die GLScene Typen in Klassen ändern damit würde es inkompatibel zu den Delphi und früheren Versionen.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

nicht umbedingt es sei denn dort arbeitet der OI anders als bei Lazarus !

ich würde sagen es müste in Delphi genauso gehen wie bei Lazarus !
Es müssen einfach alle Typen in klassen geändert werden dann geht es !

evlt. gibt es noch einen anderen Weg.... aber den kenne ich leider nicht...

wobei: warum sollte das denn in Delphi nicht mit Klassen gehen ?
MFG
Michael Springwald

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Pluto, ich habe nicht geschrieben das es in Delphi mit klassen nicht geht sondern das dann alles was an bestehenden programmen für glscene u.U. nicht mehr compilierbar ist ...
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

schnullerbacke
Beiträge: 1187
Registriert: Mi 13. Dez 2006, 10:58
OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
CPU-Target: AMD A4-6400 APU
Wohnort: Hamburg

Beitrag von schnullerbacke »

Kann er ja machen, dann leitet man einfach von der glscene-Klasse ab.
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.

(Ringelnatz)

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

ich verstehe das Problem nicht !
du definierst doch Variablen dort änderst du einfach den typ und Installsierst sie sobald ein GLScene Objekte installisiert wird und fertig ! ich sehe einfach nicht wo das Problem ist...
Mach doch mal ein beispiel mit dem Problem
MFG
Michael Springwald

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Das problem ist z.b. das sich alle Speicherformate plötzlich ändern.
Also die GLS Files alle Internen formate alles. Muss alles umgebaut werden.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Naja ich muss es ja auch nicht verstehen !

Im Moment nutze ich noch kein GLscene und dabei wird das wohl auch bleiben bis ich eine bessere Grafik karte habe...

evlt. habt ihr das Problem ja bis dahin gelöst !
weil es ist etwas umstätnlich die Position angaben nur in einem Dialog zu ändern
MFG
Michael Springwald

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Naja ich find das nicht so wichtig, in der IDE komplexe scenen bauen zu wollen ist eh quatsch.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

aber für einen Anfänger in GLScene könnte das durchaus praktisch sein.... keiner hat was von komplexe scenen gesagt nur die Möglichkeit kleine abschnitte zu testen in der GLScene..... das würde ich auf jedenfal praktisch finden...

Aber ich weiß ja wie du zu meinen Ideen stehst !
MFG
Michael Springwald

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Aber ich weiß ja wie du zu meinen Ideen stehst !


Ja genau zieh dich ewig an der sache hoch. Das hab jawohl nicht nur ich unsinnig gefunden ! Was hat Matthias Gärtner denn geantwortet ?

Und wo sind denn die Patches für GLScene die du beisteuern wolltest und damit testen ob sie aufgenommen werden ?! Solange die nicht da sind brauchst gar nich son quatsch zu erzählen.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

weiß du was ich lasse das ganze jetzt einfach sein, das hat kein sinn über sowas zu reden ich habe noch keine Antwort bekommen von "Matthias Gärtner" evlt hattes du recht !
verstehen tue ich das nicht ! da es nur ein paar Zeilen code währen die hinzugefügt werden....

naja..... und GLScene werde ich auch erstmal nichts ändern !!! nach dieser erfahrung werde ich es einfach alles sein lassen und mich nur noch auf meine Projekte konzentrieren und fertig alles andere hat anscheind noch keinen sin !!!
MFG
Michael Springwald

Antworten