Paint2 > ein grafik programm

Vorstellungen von Programmen, welche mit Lazarus erstellt wurden.
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 »

evlt. werde ich mir mal denn qullcode dazu ansehen ! weil der fehler ist ja eigentlich ein "ganze" kleiner.

genau is n ganz kleiner fehler na dann beseitige ihn mal ;)
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 »

so ich habe jetzt mal bei onScroll folgendes geschrieben:
sender.Invalidate;

jetzt wird der header mitgescrollt allerdings habe ich das problem das ich nicht weiß wie ich den inhalt also die items mitscrollen kann ! das müste ich als nächts herrausfinden !
MFG
Michael Springwald

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 »

bin sehr dich vorm ziel und es war so wie ich es mir vorgesetllt hatte: die haben beim horzizontalen scorll" vergessen" den inhalt neu zu zeichnen also habe ich folgenden qullcode ins onScroll ereignis geschrieben

Code: Alles auswählen

procedure TForm1.listeScroll(Sender: TBaseVirtualTree; DeltaX,DeltaY: Integer);
var
  Window:TRect;
  Target:TPoint;
begin
//  sender.Updating;
//  sender.Invalidate;
 
  with sender.Canvas do begin
    caption:=IntTostr(DeltaX) + '\' + IntTostr(Deltay);
 
  end;
 
//poBackground,poColumnColor,poDrawFocusRect,poDrawSelection
//    poDrawDropMark,poGridLines,
    //poMainOnly,poSelectedOnly
 
 Window := sender.ClientRect;
 Target := Window.TopLeft;
 
 sender.Invalidate;
 offsetRect(Window, -sender.OffsetX, -sender.OffsetY);
  sender.PaintTree(sender.canvas,
                   window,
                   Target,[poBackground, poColumnColor, poDrawFocusRect, poDrawDropMark, poDrawSelection,poGridLines]
                  );
 
end;

ab er funktniert weiß ich nicht weil der complier ist auf einmal nicht mehr in der lage die unit virtualtreeslc zu finden ! ich habe unter complier einstellgunen alles richtig eingetragen wo er sie zu findent hat ! aber er gibt immer wieder diese meldung aus !

uFont.pas(1,1) Fatal: Can't find unit virtualtreeslcl

edit1:
führet das nicht zum erfolg !
den comlier fehelr habe ich entfernen können indem ich einfach in der lpr die entsprechende unit gelöscht habe wer die da eingefügt hat weiß ich leider nicht ! aber ich glauber immer sträger dran das es was mit dem zeichnen zu tuen hat was nicht passiert !
MFG
Michael Springwald

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 »

da ich gleich wegfahre wollte ich hier mal meine beshieregen ergbnise schreiben also mit folgeden code es ist möglich das der inhalt neu gezeichnet wird ! es sind zwar nicht schön aus... aber es geht ! und ich habe probleme den "alten" text zu löschen:

Code: Alles auswählen

procedure TForm1.listePaintText(Sender: TBaseVirtualTree;
  const TargetCanvas: TCanvas; Node: PVirtualNode; Column: TColumnIndex;
  TextType: TVSTTextType);
var
  item:pobj;
  r:TRect;
begin
    item:=liste.GetNodeData(node);
 
    TargetCanvas.Brush.Style:=bsSolid;
    TargetCanvas.pen.Style:=psClear;
 
//TargetCanvas.ClipRect;
    r:=sender.GetDisplayRect(node,Column,False,False);
 
 
 
//    r.left:=liste.Header.Columns[Column].Left;
//    r.Right:=liste.Header.Columns[Column].Left+liste.Header.Columns[Column].Width;
    caption:=IntTostr(r.left)+'\' + intTostr(r.Right);
    TargetCanvas.Rectangle(r);
//  sender.InvalidateNode(node);
    TargetCanvas.TextOut(r.left,r.Top,item.Name);
//    sender.Invalidate;
end;

probiert den mal aus !
das ist mein letzer stand !
bis in ca 4 Stunden !
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 »

der text wird doch neu gezeichnet in jeder lage das scroll problem hat was mit dem zeichenoffset zu tun was suchst du denn hier jetzt genau ?
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 »

danke für den hinweise mit den offeset den werde ich nach gehen !

ich suchte erst nach einem unterschied zwischen horzizontales scrollen und vertikales scrollen !

wie gesagt mit den obengeannten qullcode geht es "fast" evlt. werde ich mir noch mal die "Delphi Version" davon anschauen ! ich hoffe ich finde den fehler noch !

achja ich hatte nach hinweisen gesucht die auf das zeichnen aus sind weil ich der meinug war das es dran liegt !
MFG
Michael Springwald

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 »

für heute gebe ich mich geschlagen !
ich habe allerdings etwas gefunden was ich nicht nachvollziehen kann und zwar bei:

und zwar in der unit "VirtualTrees"

Code: Alles auswählen

//TODO:whats this ???? Baseoffset cant be 0 or not ?
    BaseOffset := 0;
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 ist ein hinweis an mich selbst und ?
Das es "fast" geht hatte ich auch schon 20 mal toll :)
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 »

gemeinsamm schaffen wir das aber !
da bin ich mir zimlich sicher !
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 »

Ich mir nicht !
ich werde sicher nicht locker lassen aber das Problem ist schon ziemlich tief verwurzelt und da haben sich schon ganz andere Leute dran versucht
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 »

na dann hilft nur eins: das gesammte projekt noch mal umwandeln *G*
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 »

ach pluto meinst du ich hab den code noch nie gegen den originalcode gecheckt ?
kannst gern meine vt variante mal im delphi installiern da funktionierts :)
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 »

ist ja seltsamm !

nur nich die hoffung vierlieren !
MFG
Michael Springwald

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 »

bald gibt es wieder eine neue Version.
Es wurden ein paar bugs behoben z.b. kann jetzt die Größe vom hintergrund wieder einstellen und das wirkt sich jetzt auf die Scrollbox aus.

Es gibt jetzt zwei unterschiedliche Speicherformate:
das eine ist Assci kann mit jedem Editor geändert werden
und ein BIN Format das kann nur mit Paint2 geändert werden.

Vorteile vom ASCI-Format:

lädt die Daten evlt. schneller, weil dort werden keine Dateien mitgespeichert die im document genutzt werden

Kann mit jedem Editor geändert werden, da es ein INI Format ist

Nachteile
Bei vielen Dokumenten die mehrer Externe Dateien wie z.b. Grafiken nutzen, könnte es zu einem durcheinander kommen, wenn das Dokument(oder Das Projekt auf einem anderen Rechner oder einen anderem Betriebssystem laufen soll...

Vorteile vom BIN-Format
*
Es können externe Dateien wie z.b. Grafiken, oder jedes andere Format aufnehmen

Es kann leicht von einem System zum andern getragen werden d.h. wenn es unter Linux läuft müsste es auch unter Windows laufen oder unter OS2...

Nachteile
Es kann nicht geändert werden mit einem anderen Programm wie z.b. einem texteditor

Die Datei Größe ist bei größeren Dokumenten noch gewaltig**

*z.z. werden noch keine externe Dateien wie z.b. Grafiken mitgespeichert
**Später sollen Dokumente gepackt werden können.

ich glaube das war es auch schon. die neue Version wird es später geben..
achja ich habe mal eine Datei angelegt was noch alles hinzugefügt werden soll
01-Demakieren von Objekten mit der Schiftaste
02-Parent funktion: jedes objekt soll ein besitzer haben
03-Fenster funktion bei TabSheets
04-Menus soll sich aktiveren und Deaktiveren je nach dem welche verfügbar sind

05-Beim verschieben und vergrößern soll ein Dummy objekt
erzeugt werden und erst wenn die maustaste losgelassen
wird soll das gewünschte objekt dort gezeichnet werden

06-OI soll mehre objekte aufnhemen können

07-Neue Objekt eigenschaften zur bases klasse:
ImageListb, imagelistbindex, imagelistbVisible
CanChangeSize: kann der benutezr die komponenten verschieben ?

08-Start parameter
--------------------------------------------------------------------------------------------------
09-Tastertursteuerung
10-Draq points sollen objekte werden(die auch icon annehmen sollen)
11-Popupmenus bei rechtsklick
12-Farbverläufe, Dreieck, Poligone und Klassendiagramm-Objekt,Kleine Tabbelen(Listview) erstellen
13-bestimmte eigenschaften speeren lassen, so das sie sich nicht mehr ändern lassen
14-Projekt unterstützung, geöffnete Dateien zu sammen fasen

15-Makierungs gruppen funktion:
man drück eine Zahl und schon werden die Objekte makiert
die dieser zahl zu geordnet sind(so wie bei aom)

16-In der VST soll, bei doppelt klick auf die anklickte
komponenten gesprungen werden auf der Scrollbox

17-Minikarte vom Buffer
18-Speicherfunktion erweitern: als Archiv speichern
19-Zusätzliche Dateien die zu einem Document gehöheren als 7Bit format abspeichern
20-DB format entferfen und einführen
21-Toolbar vom user konfiguieren
22-Fehlermeldung-log
23-Eigene Canvasn funktionen zum Zeichnen von 2D objekten
24-Objekt-Vorlagen unterstütung
25-Suchfunktion um objekte zu finden/suchen

27-Automaitsche farb erkennung:
Wenn die farben zu dunkel sind sollen sie heller werden
z.b. clBlack auf clblack bringt wenig sinn

28-Das Documenten format soll gepackt werden können
29-Tasten soll frei konfiguirbar sein.
30-RTF funktion beim Text Objekt

31-Beim Anklicken eines objektes soll
das vorgesehen vom user passieren z.b.
ein Programm soll gestartet werden oder aber auch
ein Text soll geöffnet werden

32-Animationen: die objekte sollen sich auto. bewegen können
und es soll vorlagen geben für animations vorlagen

33-die Eigenschafst Editoren für brush und pen in den OI einbinden
so das sie per klick auf dem button angezeigt werden

34-Programm soll nur einmal gestartet werden können (auf wunsch abschaltbar vom user)
35-Close Buttone auf dem Tabsheets
36-bestimmte Punkte beim rahmen sollen nicht verschieb bar sein z.b. der linke mittlere
MFG
Michael Springwald

Antworten