Taschenrechner

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Karolus
********
Beiträge: 7438
Registriert: Mo, 02.01.2006 19:48

Re: Taschenrechner

Beitrag von Karolus »

Hallo

Und du bist nicht zufällig verwand, verschwägert, befreundet oder identisch mit dem Initiator dieser Anfrage???
Zuletzt geändert von Karolus am Sa, 11.09.2021 20:38, insgesamt 1-mal geändert.
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Karolus
********
Beiträge: 7438
Registriert: Mo, 02.01.2006 19:48

Re: Taschenrechner

Beitrag von Karolus »

Ist ja nichts verbotenes dran.
Es ist zumindest unhöflich es nicht zu erwähnen das du die gleiche Frage woanders gestellt hast!
Und du hast dort eine Antwort auf deine konkrete Frage bekommen
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Taschenrechner

Beitrag von Stephan »

Doc_Boom hat geschrieben: Sa, 11.09.2021 20:37 Guten Abend,

doch bin ich :lol:

Da ich in dem anderen Forum keine erfolg hatte bzw. keine antwort auf eine folge frage erhalten habe, habe ich gedacht,dass ich probiere hier mein glück probiere.

Vielleicht erreiche ich hier andere User. Ist ja nichts verbotenes dran.


Beste Grüße
und Du hättest hier, und im andern Forum, jeweils wechselseitig einen Link setzen können - und schon wären ale Beteiligten (in Beiden Foren) über das Geschehen in beiden Threads informiert.


Gruß
Stephan
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Taschenrechner

Beitrag von Stephan »

Könnte mir ein/e Fachmann/frau einen Tipp geben ?
z.B. für 2:

Code: Alles auswählen

Sub Zwei
oCell = ThisComponent.CurrentSelection
if ocell.supportsservice("com.sun.star.sheet.SheetCell") then

oCell.Value = oCell.string & 2       
endif
(Eigentlich wäre mir oCell.Value = VAL(oCell.string & 2) sympatischer, aber das Vorstehende funktioniert.)


Gruß
Stephan
Karolus
********
Beiträge: 7438
Registriert: Mo, 02.01.2006 19:48

Re: Taschenrechner

Beitrag von Karolus »

Hier wäre mal eine allgemein für alle (Ziffer)buttons anwendbare Funktion (wenn du das Feld 'Name' der Schaltfläche entsprechend ausfüllst):

Code: Alles auswählen

def add_digit(event):
    try:
        value = int(event.Source.Model.Label)
        doc = XSCRIPTCONTEXT.getDocument()
        sel = doc.CurrentSelection
        sel.Value *= 10
        sel.Value += value
    except:
        return
@enter-Taste: beschreib doch erstmal was der Enter-button tun soll…

@Stephan Ich würde zunächst ausschliesslich mit .String arbeiten, dann kann man auch Operatoren wie +-/* auf die gleiche Weise einpflegen.
Das Umwandeln in eine …FormulaLocal könnte man dann dem bereits angefragtem 'enter'-button überlasssen.
Zuletzt geändert von Karolus am Mo, 01.11.2021 09:03, insgesamt 3-mal geändert.
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Karolus
********
Beiträge: 7438
Registriert: Mo, 02.01.2006 19:48

Re: Taschenrechner

Beitrag von Karolus »

Ich hoffe du hast realisiert daß das python ist, in Basic musst du da schon die eine oder andere Stelle anpassen.
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Karolus
********
Beiträge: 7438
Registriert: Mo, 02.01.2006 19:48

Re: Taschenrechner

Beitrag von Karolus »

Nicht unbedingt schwierig, aber du lernst doch nix wenn wir dir alles wohlgeformt hinschreiben, fehlen deinem ```Taschenrechner``` nicht ein paar Tasten zum Rechnen…? (oder zumindest um + - * / , ( ) in die Zelle einzugeben)
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Taschenrechner

Beitrag von Stephan »

@Stephan Ich würde zunächst ausschliesslich mit .String arbeiten, dann kann man auch Operatoren wie +-/* auf die gleiche Weise einpflegen.
Das Umwandeln in eine …FormulaLocal könnte man dann dem bereits angefragtem 'enter'-button überlasssen.
mmh ... Die Operatoren würde ich mir lieber merken, aber für ein Komma wäre Dein Rat sinnvoll ... andererseits ... ich weiß garnicht was der Frager genau vorhat, das aber würde entscheiden ob, oder ob nicht, Operatoren in der Zelle sichtbar sein sollen.

Anmerkung: Es gelingt mir im Übrigen nicht die Zelle in den Edit-Modus zu bringen und dann alle Eingaben anzuhängen bis ENTER kommt.


Gruß
Stephan
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Taschenrechner

Beitrag von Stephan »

Haben sie eventuell Noch eine Idee bezüglich der "Enter" Taste wie man das regeln könnte ?
einfach per Makrorekorder aufzeichnen:

Code: Alles auswählen

sub enter()
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:JumpToNextCell", "", 0, Array())

end sub
im KOnkreten hat dass auch den Vorteil das die Einstellung wohin der Fokus bei Enter springen soll (Extras-OPtionen-OpenOffice-Calc-Allgemein-"Eingabebestätigung setzt die SElection navh") automatisch richtig umgesetzt wird.


Gruß
Stephan
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Taschenrechner

Beitrag von Stephan »

Ich hoffe du hast realisiert daß das python ist, in Basic musst du da schon die eine oder andere Stelle anpassen.
in Basic ginge das z.B. so:

Code: Alles auswählen

Sub Ziffer(event)
	With ThisComponent.CurrentSelection
		.FormulaLocal = .string & event.source.model.label		
	End With
End Sub

Gruß
Stephan
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Taschenrechner

Beitrag von Stephan »

Doc_Boom hat geschrieben: Sa, 11.09.2021 22:16 da hast du recht. alles vorgesagt ist wirklich nicht das wahre. ich versuche soweit alles selber zu schaffen und habe bis jetzt nicht wenig erfolge, nur die sachen mit denen ich mich ans forum wenden, habe ich gar keine ahnung wo ich anfangen soll. ich bin fleißig am lesen und sachen aneignen, aber dazu konnte ich noch nichts finden
In StarBasic ist mir kein fertiges Programm für einen Tascherechner bekannt, hier ist eine Anleitung für VBA:
https://web.archive.org/web/20041015231 ... ds/VBA.pdf

Karolus weiß bestimmt wo man einen Taschenrechner in Python findet.


Gruß
Stephan
Karolus
********
Beiträge: 7438
Registriert: Mo, 02.01.2006 19:48

Re: Taschenrechner

Beitrag von Karolus »

Hallo

mh… das sind IHMO ziemlich schlechte Beispiele, jede Menge copy&paste-Code, Global sollte man vermeiden und eval sowieso.

Ich finde den Ansatz hier im Thema eigentlich interessant, es müssten halt nur ein paar Buttons für Komma … Klammern und Operatoren eingebaut werden, und ja, das hässliche 'eval' vermeiden wir indem wir es Calc überlassen den Ausdruck auszuwerten.
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Taschenrechner

Beitrag von Stephan »

Ob die Beispiele besonders gut sind, habe ich nicht geprüft. Mir ist auch nicht völlig klar was der Frager letztendlich erreichen will.

Die Taschenrechner-Beispiele habe ich deshalb verlinkt weil ich annehme es könnte Sinn machen die Eingabe-Buttons nicht auf dem Tabellenblatt zu haben, sondern auf einem Dialog den man bei Bedarf einblendet (in passender Position zur gerade markierten Zelle) und ein solcher Dialog wäre, verkürzt gesagt, ein Taschenrechner minus dessen Anzeigefeld.


Letztlich müsste der Threadsrtarter sagen was er insgesamt will, dann könnte man gezielter Ratschläge geben.


Gruß
Stephan
Hiker
******
Beiträge: 590
Registriert: Mo, 08.09.2014 21:34
Wohnort: Berlin

Re: Taschenrechner

Beitrag von Hiker »

Stephan hat geschrieben: So, 12.09.2021 21:09 Letztlich müsste der Threadsrtarter sagen was er insgesamt will, dann könnte man gezielter Ratschläge geben.
Aus einer PN/dem von Karolus verlinkten Thread:
da ich aber ein windows tablet habe würde ich das gerne portable machen indem in LO Calc in einer ecke das integriete Numpad ist damit man es per touch eingeben kann
siehe: https://www.libreoffice-forum.de/viewto ... 12&t=36467
Libre Office 6.3.1 (Win 10 Pro) / Libre Office 6.0.7 (Win8.1 Pro, Win 7 Pro) / AOO (Win 7)
Antworten