BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!

❤️ DANKE >><< DANKE ❤️

> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

[gelöst] Grafikelemente fixieren

Alles zur Programmierung im LibreOffice.
Antworten
Luftschraube
Beiträge: 39
Registriert: So 5. Mai 2019, 09:20

[gelöst] Grafikelemente fixieren

Beitrag von Luftschraube » Do 4. Mär 2021, 13:09

Guten Tag

Bin gerade an einer Anwendung bei der allerlei Grafikelemente mittels 'Drawpage' in Sheets(0) eingebettet sind. Während der fortwährenden Weiterprogrammierung und Ausprobe verschieben sich die Grafikelemente aber ständig.
Wie lässt sich das verhindern ?
Verankerung an einer Zelle hat nichts gebracht falls ich das richtig gemacht habe. Der einzige Weg der mir einfällt wäre die Notierung der xy-Pos der einzelnen Elemente und deren immer wiederkehrende Neupositionierung im Prg.
Geht das auch einfacher bitte ?

vielen Dank
Luftschraube

Bild
Dateianhänge
Bildschirmfoto zu 2021-03-04 12-51-28.png
Bildschirmfoto zu 2021-03-04 12-51-28.png (25.98 KiB) 1563 mal betrachtet
Zuletzt geändert von Luftschraube am So 7. Mär 2021, 21:43, insgesamt 1-mal geändert.

nitja
Beiträge: 123
Registriert: Di 20. Okt 2020, 15:55

Re: Grafikelemente fixieren

Beitrag von nitja » Fr 5. Mär 2021, 10:59

Annahme: Sowohl die Pfeile als auch die Kreise gehören zu de angesprochenen Grafikelementen und bilden jeweils Paare, die einen gemeinsame Mittelpunkt haben/behalten sollen, korrekt?

edit nach Deiner Ergänzung: Die Kreise sollen fixiert werden, die Pfeile einzeln zu drehen ist schwierig, da deren relativer "Positions-Punkt" sich mit dem Winkel ändert.

Hast Du schon ausprobiert, Pfeil und Kreis in einer Gruppe zusammen zu fassen und deren Ausrichtung dann per Makro zu ändern - und ggf. die Position danach auf den vorher ausgelesenen Wert zurück zu setzen?
LO 24.2.0.3 (X86_64) auf Linux 6.6.19-1-MANJARO, gnome 45.4, (gtk 4) gtk3 für LO

nitja
Beiträge: 123
Registriert: Di 20. Okt 2020, 15:55

Re: Grafikelemente fixieren

Beitrag von nitja » Fr 5. Mär 2021, 18:17

probier mal das hier:
für Propeller.ods
(12.31 KiB) 111-mal heruntergeladen
Die meisten Fragen sollte der (etwas rohe) Code da drin beantworten.
LO 24.2.0.3 (X86_64) auf Linux 6.6.19-1-MANJARO, gnome 45.4, (gtk 4) gtk3 für LO

Luftschraube
Beiträge: 39
Registriert: So 5. Mai 2019, 09:20

Re: Grafikelemente fixieren

Beitrag von Luftschraube » Sa 6. Mär 2021, 20:53

Hallo
Erst mal vielen Dank ! Es ging mir eigentlich nur um das Problem, dass sich die Grafiken selbständig auf Wanderschaft begeben.
Ja, ein Kreis und ein Pfeil gehören zusammen und sie sollten auch da bleiben wo ich sie positioniert habe, habe sie aber nicht in Gruppen erstellt, wüsste nicht wie das geht, aber danke für den Hinweis !!
Da du die Drehbewegung der Pfeile ansprichst, das hab ich schon realisiert, allerdings anders, dein Beispiel ist da schon ein etwas höheres Level, nur mal mein Grundgerüst-Listing auf dem ich das aufgebaut habe, anbei(Var.deklaration hab ich mal weggelassen).
Auch ein paar Bilder anbei, ich habe für jeden Pfeil einen beigen Button kreiert(gesamt 16Stück), wenn ich einen anklicke werden z.B. in einem Sub Poti3 ein paar Einstellungen aktiviert(z.B. PfeilPos in der Drawpageliste) und ich kann den Pfeil drehen lassen.
Pfeil und Kreis in Gruppen anlegen muss ich mal schauen ob ich das hinkriege !
Gruss Luftschraube (LM20, LO 6.4.6.2)

Code: Alles auswählen

option explicit
sub Startsheet1
'''''''''beige schaltfläche anlegen für Prgstart
TC = thiscomponent
Schritt     = 90        'Beim Start Zeiger senkrecht auf 0Grad
Waitzeit    = 50       'Wartezeit von Schritt zu Schritt
Gradzaehler = 0   
GradMin     = 0           'oder z.B. -90
GradMax     = 359      'oder z.B. +90
Gradanzeige = "H6"
cmbBox03Links  = false     'linker gelber Button ausgeschaltet zum Start
cmbBox02Rechts = false   'rechter gelber Button ausgeschaltet zum Start
'
TC.Sheets(0).Drawpage(0).RotateAngle = Schritt * 100                  		' 9000/100 = 90 Grad
TC.Sheets(0).getCellRangeByName(Gradanzeige).string = Gradzaehler           'Schritt
'
cmbBox02 = TC.Sheets(0).getDrawPage().getForms().getByName("Formular").getByName("Schaltfläche02") 
cmbBox03 = TC.Sheets(0).getDrawPage().getForms().getByName("Formular").getByName("Schaltfläche03") 
'
cmbBox02.Label = "+"
cmbBox03.Label = "-"
end sub
'----------
sub MaustastePlus
'''''''''''beige Schaltfläche für rechtsdrehung
cmbBox03Links      = false
cmbBox02Rechts     = true
MaustasteGedrueckt = true
call DoLoop
end sub
'----------
sub MaustasteMinus
'''''''''''beige Schaltfläche für linksdrehung
cmbBox0[attachment=1]Bildschirmfoto zu 2021-03-06 13-51-25.png[/attachment][attachment=0]Bildschirmfoto zu 2021-03-06 20-44-48.png[/attachment]3Links      = true
cmbBox02Rechts     = false
MaustasteGedrueckt = true
call DoLoop
end sub
'----------
sub MaustasteStop
MaustasteGedrueckt = false
end sub
'----------
sub Doloop
Do
  if cmbBox03Links  = true and Gradzaehler > GradMin then 
    Schritt = Schritt + 1
    Gradzaehler = Gradzaehler - 1
  end if  
  if cmbBox02Rechts = true and Gradzaehler <= GradMax then 
    Schritt = Schritt - 1
    Gradzaehler = Gradzaehler + 1
  end if
  call Zeigerbewegung
  Wait(Waitzeit)  '100=0,1sekunde
Loop until MaustasteGedrueckt = false
end sub
'----------
sub Zeigerbewegung
TC.Sheets(0).getCellRangeByName(Gradanzeige).string = Gradzaehler
TC.Sheets(0).Drawpage(0).RotateAngle = Schritt * 100  ' 9000/100 = 90 Grad  
end sub
'----------
Dateianhänge
Bildschirmfoto zu 2021-03-06 20-44-48.png
Bildschirmfoto zu 2021-03-06 20-44-48.png (57.88 KiB) 1112 mal betrachtet
Bildschirmfoto zu 2021-03-06 13-51-25.png
Bildschirmfoto zu 2021-03-06 13-51-25.png (56.58 KiB) 1112 mal betrachtet

nitja
Beiträge: 123
Registriert: Di 20. Okt 2020, 15:55

Re: Grafikelemente fixieren

Beitrag von nitja » So 7. Mär 2021, 12:07

Dann ist das also erfolgreich erledigt?
Heißt: Du solltest noch mal Deinen ersten Post hier drin, die Threaderöffnung editieren und darin die Überschrift - ein [gelöst] vor den derzeitigen Titel stellen.
LO 24.2.0.3 (X86_64) auf Linux 6.6.19-1-MANJARO, gnome 45.4, (gtk 4) gtk3 für LO

An alle, die das LibreOffice-Forum nutzen:


Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.

❤️ Vielen lieben Dank für Ihre Unterstützung ❤️

Antworten