Virtualtrees,ACS und TParadox dataSet im SVN
@Christian
Die VTV von SVN läuft unter Linux nicht ohne weiteres.
Nebst einem kleineren Durcheinander mit den Gross-Kleinschreibungen der Units,
gibt's eine Exception beim Starten:
Problem:
GetSystemMetrics(SM_CXMENUCHECK) etc (Zeile 3871 von virtualtrees.pas) ist nicht implementiert in GTK.
Bzw. gibt einen beliebigen Integer-Wert zurück worauf
IL := TImageList.CreateSize(Width, Height);
spuckt.
Wenn man manuell einen Wert angibt z.B. 14 läuft der Rest dann.
Die VTV von SVN läuft unter Linux nicht ohne weiteres.
Nebst einem kleineren Durcheinander mit den Gross-Kleinschreibungen der Units,
gibt's eine Exception beim Starten:
Problem:
GetSystemMetrics(SM_CXMENUCHECK) etc (Zeile 3871 von virtualtrees.pas) ist nicht implementiert in GTK.
Bzw. gibt einen beliebigen Integer-Wert zurück worauf
IL := TImageList.CreateSize(Width, Height);
spuckt.
Wenn man manuell einen Wert angibt z.B. 14 läuft der Rest dann.
@Christian
Habe heute abend ein bisschen an VTV rumgeschraubt.
Es sieht so aus, als ob das horizontale Scrolling jetzt funzen würde.
Zumindest auf GTK 1 und 2 und mit den Tests die ich gemacht habe.
Auf Win habe ich es nicht getestet.
Im Attachment ist eine kompilierte GTK1 Demo die das zeigen soll.
Ausserdem der geänderte Quelltext, den ich heute von SVN gezogen habe.
Habe noch alle Unit Namen nach lowercase geändert, damit's bei Linux keine Probleme mehr gibt.
Linux *.lpk ist auch angepasst.
Ich habe meine Änderungen in virtualtrees.pas mit // theo 24.2.2007 gekennzeichnet.
Hoffe, dass es unter Windows auch läuft.
Aber es gibt noch viel zu tun mit VTV ...
Habe heute abend ein bisschen an VTV rumgeschraubt.
Es sieht so aus, als ob das horizontale Scrolling jetzt funzen würde.
Zumindest auf GTK 1 und 2 und mit den Tests die ich gemacht habe.
Auf Win habe ich es nicht getestet.
Im Attachment ist eine kompilierte GTK1 Demo die das zeigen soll.
Ausserdem der geänderte Quelltext, den ich heute von SVN gezogen habe.
Habe noch alle Unit Namen nach lowercase geändert, damit's bei Linux keine Probleme mehr gibt.
Linux *.lpk ist auch angepasst.
Ich habe meine Änderungen in virtualtrees.pas mit // theo 24.2.2007 gekennzeichnet.
Hoffe, dass es unter Windows auch läuft.
Aber es gibt noch viel zu tun mit VTV ...

- Dateianhänge
-
vtscrolldemo.zip
- VTV Scroll Demo.
GTK1 Kompilat und Sourcen - (1.22 MiB) 114-mal heruntergeladen
Und, wie sieht's aus auf Windows?Christian hat geschrieben:Danke ich schaus mir gleich mal an
Joh, war mir nur nicht sicher, ob das mit der geänderten Kleinschreibung der Unit Namen so gut kommt.Christian hat geschrieben: wär nett wenn dus nächste mal n patch machst steht in der lazarus wiki unter creating n patch wie das genau geht ist einfach einfacher zu handlen und für dich auch nicht mehr aufwand
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
und woran hat es jetzt gelegen ?
gibt es schon irgenwelche updates im Quellcode die runtergeladen werden können ?
EDIT:
habe gerade gesehen das du denn Quellcode im zip hattes.
ich habe ihn übernommen und siehe da:
in meinem Paint2 Projekt geht hetzt das horzizontale scrollen und auch die checkboxen werden Angezeigt !
Endlich ! vielen Dank *G* auch wenn es für die Allgemeinheit geschrieben wurde !
edit2:
ich sehe gerade die Checkboxen Grafik wird bei der VST nicht geändert wenn ich drauf klicke....
unter Linux für Windows habe ich im moment keine Möglichkeit es zu testen!
gibt es schon irgenwelche updates im Quellcode die runtergeladen werden können ?
EDIT:
habe gerade gesehen das du denn Quellcode im zip hattes.
ich habe ihn übernommen und siehe da:
in meinem Paint2 Projekt geht hetzt das horzizontale scrollen und auch die checkboxen werden Angezeigt !
Endlich ! vielen Dank *G* auch wenn es für die Allgemeinheit geschrieben wurde !
edit2:
ich sehe gerade die Checkboxen Grafik wird bei der VST nicht geändert wenn ich drauf klicke....
unter Linux für Windows habe ich im moment keine Möglichkeit es zu testen!
MFG
Michael Springwald
Michael Springwald
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
achso.... es war gar nicht so einfach es zu installieren bzw. upzudaten aber ich glaube jetzt geht es !
Was mir jetzt erst aufält:
warum wird die komponente eigentlich ohne Rand angezeigt ?
es sieht so aus als ob BorderStyle bsNone stehen würde !
naja es währe toll wenn es überall klappen würde auser auf Linux und Windows oder ?
Jetzt finde ich die VST auch wieder toll achja zu den Checkboxen....
die sehen irgenwie Merkwürdig aus haben so ein roten Rand
Was mir jetzt erst aufält:
warum wird die komponente eigentlich ohne Rand angezeigt ?
es sieht so aus als ob BorderStyle bsNone stehen würde !
naja es währe toll wenn es überall klappen würde auser auf Linux und Windows oder ?
Jetzt finde ich die VST auch wieder toll achja zu den Checkboxen....
die sehen irgenwie Merkwürdig aus haben so ein roten Rand
MFG
Michael Springwald
Michael Springwald
-
- 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:
Die checkboxen hatt ich letzte woche gemacht.
Aber Theo ist der Held der Woche. Geht auch im Windows.
Jetzt sinds wirklich nur noch kleinigkeiten die man auch leicht umschiffen kann die noch nicht richtig funktionieren.
Und Pluto du hättest ja auch n paar stunden warten können dann hätte ein "svn update" gereicht ....
Aber Theo ist der Held der Woche. Geht auch im Windows.
Jetzt sinds wirklich nur noch kleinigkeiten die man auch leicht umschiffen kann die noch nicht richtig funktionieren.
Und Pluto du hättest ja auch n paar stunden warten können dann hätte ein "svn update" gereicht ....
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
Christian hat geschrieben: Aber Theo ist der Held der Woche. Geht auch im Windows.

Aber 'n paar Sächelchen sind schon noch.....

Christian, hast du eigentlich eine Test-Suite für VTV?
Vielleicht auch nur eine Applikation mit VT's in verschiedenen Modi?
Das wäre ziemlich hilfreich zum debuggen. Damit man nicht irgendwo was "repariert" was in einem anderen Modus Schaden anrichtet.
@Christian
Pluto hat leider recht, die Checkboxes haben einen "undefinierten" Rand und sehen nicht gut aus auf GTK. Mein Screenshot oben war leider reiner Zufall.
Das Problem liegt in virtualtrees.pas in procedure ConvertImageList(...
Du hast da versucht die Transparenz zu erhalten:
Zum "Beweis", dass es daran liegt, habe ich die "Auschneidearbeit" dort mal von einem OpBitmap machen lassen:
Und dann ist alles wunderbar.
Ich habe wirklich versucht, das mit einem normalen TBitmap hinzukriegen, aber ich hab's nicht geschafft.
Nun musst du entscheiden, ob du die Abhängigkeit von OPBitmap in VTV drin haben willst.
Es bräuchte nur opbitmap.pas und lazbridge.pas, die ganzen Lade-Formate ja nicht.
Pluto hat leider recht, die Checkboxes haben einen "undefinierten" Rand und sehen nicht gut aus auf GTK. Mein Screenshot oben war leider reiner Zufall.
Das Problem liegt in virtualtrees.pas in procedure ConvertImageList(...
Du hast da versucht die Transparenz zu erhalten:
Aber irgendwie haut das trotzdem nicht hin auf GTK. Ich hab mich mit sowas auch schon schwarz geärgert.//somehow SaveToStream - LoadFromStream restores the tranparency lost in CopyRect

Zum "Beweis", dass es daran liegt, habe ich die "Auschneidearbeit" dort mal von einem OpBitmap machen lassen:
Code: Alles auswählen
SourceOPB:=TCanvasOPBitmap.create;
AssignBitmapToOpBitmap(Images,SourceOPB);
for I := 0 to (Images.Width div Images.Height) - 1 do
begin
Source := Rect(I * IL.Width, 0, (I + 1) * IL.Width, IL.Height);
TempOPB:=TCanvasOPBitmap.create;
TempOPB.Width:=IL.Height;
TempOPB.Height:=IL.Width;
TempOPB.Canvas.CopyRect(Dest, SourceOPB.Canvas, Source);
TempOPB.TransparentColor:=MaskColor;
AnotherImage:=TBitmap.Create;
AssignOpBitmapToBitmap(TempOPB,AnotherImage);
TempOPB.free;
IL.AddDirect(AnotherImage, nil);
end;
SourceOPB.free;
Ich habe wirklich versucht, das mit einem normalen TBitmap hinzukriegen, aber ich hab's nicht geschafft.
Nun musst du entscheiden, ob du die Abhängigkeit von OPBitmap in VTV drin haben willst.
Es bräuchte nur opbitmap.pas und lazbridge.pas, die ganzen Lade-Formate ja nicht.