TL;DR Visual Studio, Xamarin, C#, php, mySQL, Mac, REST, MVC, (HTML, CSS)

Für ein App, welche auf Android und iOS laufen soll, kann man Xamarin mit Visual Studio verwenden. Die Programmiersprache wäre hier C#.

Dazu brauchst man auf jeden Fall einen Mac, mindestens zum kompilieren. Wir haben hier aber die Erfahrung gemacht, dass man besser gleich auf dem Mac entwickelt. Da läuft auch Visual Studio.

Benutzerinteraktion setzt immer eine Serverfunktionalität vorraus. Wir verwenden php7 als Serversprache und mySQL als Datenbank. Auf ein Web-Frontend kann man verzichten, sonst wäre hier noch HTML und CSS zu erlernen.

Der Server sollte, wie hier schon erwähnt, mit dem MVC Pattern einen REST Service bereitstellen. Keine Angst, dass sind nur ein paar Richtlinien, wie man sowas richtig aufzieht. =)

viel Erfolg!

...zur Antwort

check mal bitte deine installierten Komponenten.

Windows Taste > Programm und Features > VS Doppelklick > Anpassen

...zur Antwort

wegen Bild als neue Antwort....

du must den Rechtsklick im Projektmappenexplorer machen. siehe Screenshot.

...zur Antwort

Rechtsklick aufs Projekt > Ansicht > Klassendiagramm anzeigen

...zur Antwort

Am einfachsten geht es indem du eine Klasse für deine Drucker definierst und die Items Eigenschaft der Combobox benutzt. Dafür musst du die ToString() Methode in deiner Drucker Klasse überschreiben und eine sinnvolle Bezeichnung für deine Drucker zurückgeben. Wenn der Knopf gedrückt wird kannst du das selektierte Item anfragen (dein Drucker Objekt), das in deine Druckerklasse casten und damit weiterarbeiten.

Ich poste dir mal ein simples Programm als Beispiel. Dieses verwendet eine Combobox (combobox), einen Button (button) und ein Label (label).

using System;
using System.Collections.Generic;
using System.Windows.Forms;

namespace Combobox
{
public partial class Form1 : Form
{
public class Drucker
{
public string Name { get; set; }
public string IP { get; set; }
public string LableCaption => string.Format("{0} ({1})", Name, IP);
public Drucker(string Name, string IP)
{
this.Name = Name;
this.IP = IP;
}

public override string ToString()
{
return Name;
}
}

List DruckerListe;
public Form1()
{
InitializeComponent();
DruckerListe = new List();

DruckerListe.Add(new Drucker("Drucker A", "192.168.0.1"));
DruckerListe.Add(new Drucker("Drucker B", "192.168.0.2"));
DruckerListe.Add(new Drucker("Drucker C", "192.168.0.3"));
DruckerListe.Add(new Drucker("Drucker D", "192.168.0.4"));
DruckerListe.Add(new Drucker("Drucker E", "192.168.0.5"));
DruckerListe.Add(new Drucker("Drucker F", "192.168.0.6"));

comboBox.Items.AddRange(DruckerListe.ToArray());
}

private void button_Click(object sender, EventArgs e)
{
if (comboBox.SelectedItem is Drucker)
{
label.Text = ((Drucker)comboBox.SelectedItem).LableCaption;
}
}
}
}

viel Erfolg,

gruss dj

...zur Antwort
Hey, habe ein problem, unzwar soll ich nächste woche in informatik eine Caesar verschlüsselung programmieren, aber es funktioniert aus irgendeinen grund nicht?

import java.util.Scanner;

public class Caesar {

public static void main (String[] args) {

    Scanner scanner = new Scanner (System.in);

    System.out.println("Zu verschlüsselnden Text eingeben:");

    String text = scanner.nextLine(); // Text eingeben

    System.out.println("Um wieviele Stellen soll verschoben werden? (1-26)");

    int offset = scanner.nextInt(); 
    // Offset (Verschiebung) wählen

    if (offset >= 1 && offset <= 25) {

    char [] meinArray = text.toCharArray();
    // den Text in ein Char Array laden

    char [] meinNeuesArray = verschluesseln(offset, meinArray);
    // mit der Methode (siehe unten) "verschluesseln" ein neues 
    // Char Array mit dem verschlüsselten Text erstellen

    // verschlüsselten Text wieder ausgeben:

        System.out.println("\nSo sieht der Text verschlüsselt aus:");

    for (int i = 0; i < meinNeuesArray.length; i++) {

        System.out.print(meinNeuesArray[i]);
    }
        System.out.println("\n");

    scanner.close();
}
    else System.out.println("Die Verschiebung muss zwischen 1 und 127 liegen!");
}

// hier die Methode zum verschlüsseln

public static char[] verschluesseln(int offset, char[] charArray) {

    char[] cryptArray = new char[charArray.length];
    // erstmal ein leeres Char Array erstellen

    for (int i = 0; i < charArray.length; i++) {

                int verschiebung = (charArray[i] + offset)%26;
                // ursprüngliches Zeichen plus Offset modulo 128

                cryptArray[i] = (char) (verschiebung);

    }
    return cryptArray;

}

}

...zur Frage


int verschiebung = (charArray[i] + offset)%26;


Damit verschiebst du alle chars auf 0 bis 25. Du musst den den offset von A auf das Ergebnis des modulo addieren.
Ausserdem gehst du von 26 Buchstaben aus, garantierst aber nirgends Gross -oder Kleinschreibung. Nimm besser ein Konstantenarray für dein zu verschlüsselnden Zeichenvorrat.

...und noch nen Tip: man erkennt eindeutig, dass du den code kopiert und abgeändert hast. gib den besser nicht so ab.

gruss, dj

...zur Antwort

Konvergierende Reihen oder Funktionen haben einen Wert an den sie sich annähern, ..also einen Grenzwert.

siehe https://de.wikipedia.org/wiki/Grenzwert_(Funktion)

Programme, welche einen Grenzwert berechnen, lässt man normalerweile solange laufen bis die Abweichung zum vorigen Wert kleiner als ein vorher festgelegter Wert ist. (meistens heisst der Epsilon)

Für die erste Funktion muss der User X und Epsilon (e), für die zweite Funktion nur Epsilon festlegen.

Du programmierst also eine Schleife mit der Kopfbedingung (e0 < e). In der Schleife zählst du k (int k = 0) hoch und berechnest das Ergebnis fk mit der Formel. fk musst du dir in einer 2. Variablen (zB lastfk) merken. Dann berechnest du e0 als abs(lastfk - fk).

das sollte dich auf den richtigen Weg bringen.

viel Glück, grus dj

...zur Antwort

hi,

du gehst mit einer Schleife von Anfang bis Ende des Textes und inkrementierst eine Variable wenn das geprüfte Zeichen ein "u" ist.

pseudocode:

definiere c als zahl mit 0
für i von 0 bis Länge des Textes
prüfe i'tes Zeichen auf gleich "u"
wenn Prüfung ok dann erhöhe c um 1

viel Erfolg,

gruss dj

...zur Antwort

Hi,

für die Animation brauchst du eine Schleife, in welcher du die Koordinaten des Bildes veränderst. Als Funktion könntest du einen Sinus verwenden.

Ich habe das Mal ausprobiert. In meinem Beispiel ist PnSky ein Panel und darauf ist ein Panel PnSun.

procedure TfrmMain.BtStartClick(Sender: TObject);
var
x, y, i, w, h : Integer;
b : Extended;
begin
w := PnSky.Width - PnSun.Width -1;
h := PnSky.Height;

for x := 0 to w
do begin
//sin(0..PI) > (0..1)

//Breite auf PI normieren
b := x * PI / w;
//Höhe berechnen
y := h - Round(Sin(b) * h);

//Ergebnis zuweisen
PnSun.Left := X;
PnSun.Top := Y;

//bisschen warten
for i := 0 to 10
do begin
Application.ProcessMessages;
sleep(1);
end;//for
end;//for
end;

hoffe das hilft,

viel Erfolg, gruss dj

...zur Antwort

Die Zukunft von Delphi ist leider ungewiss. Ich empfehle hier keine Zeit und Mühe mehr zu investieren. Zu Python kann ich nicht viel sagen. Ich selber schwenke um auf C#.

gruss, dj

...zur Antwort

Hi,

Du brauchst dafür eine eigene Komponente welche vom Button ableitet und den Controlstyle umdefiniert.

so gehts:

  • füge deinem Projekt eine neue Klasse hinzu
  • gib ihr einen hübschen Namen, zB Speedbutton
  • setze den Controlstyle im Konstruktor auf Selectable = false
  • Speichern
  • jetzt findest du in deiner Toolbox den Speedbutton und kannst diesen wie einen normalen Button verwenden.

Kontruktor Codeschnipsel:

    public partial class SpeedButton : System.Windows.Forms.Button
{
public SpeedButton()
: base()
{
base.SetStyle(System.Windows.Forms.ControlStyles.Selectable, false);
}
}

Viel Spass beim Ausprobieren,

Gruss dj

...zur Antwort

ja, dein Formular ist nichts weiter als eine Klasse. Darin kannst du eine statitc-public-Variable erstellen, ..welche du in jeder anderen Klasse deines Namesspace benutzen kannst.

z.B. Deklaration in Klasse MyClass

public static int MyInt = 20;

Aufruf

MyClass.MyInt = 30;
int otherInt = 12 + MyClass.MyInt;

das geht natürlich auch als nicht static. Dann brauchst du aber eine Instanz deiner Klasse.

viel Erfolg, dj

...zur Antwort

Ich bin in unserem Unternehmen für die Bewerber der Entwicklungsabteilung zuständig, ..aber als alter Revoluzer bestimmt nicht der Maßstab, wenn es um Dresscodes geht. Selber bevorzuge ich Zipper, Cargohose, Chucks und Nerd-shirt. Um Leute nicht zu verunsichern, welche total verkleidet auflaufen, tausche ich Zipper gegen Jacket.

Wenn bei mir ein Bewerber auch so aufläuft, hat er sofort nen Bonuspunkt eingesammelt. Warum? Weil er mir damit klar macht, er lägt auf Sein mehr wert als auf Schein!

Generell kann ich dir nur einen Tip geben. Verkleide dich nicht! Steck dich nicht in einen Anzug, wenn du dich nicht darin wohl fühlst! Ich persönlich lege nur darauf wert, dass die Sachen sauber und nicht kaputt sind. Ein sauberes und gepflegtes Äusseres ist mit jedem Look möglich und auch nötig.

Und sieh es mal so: Wenn du wegen nem fehlenden Anzug abgelehnt wirst, ..willst du dann da überhaubt arbeiten?

Viel Erfolg, dj

...zur Antwort

Hi,

du kannst Zeilenumbrüche genauso verwenden wie "normalen" Text. Das sind auch nur Zeichen; eben Steuerzeichen.

Beispiel für deine #13:

needle := '#13'; //kommt aus der DB;
myText := 'mein Text in welchem zB #13 ersetzt wird';
pattern := #13;

StringReplace(myText, needle, pattern, [rfReplaceAll]);

hoffe das hilft,

viel Erfolg, dj

...zur Antwort

Chip ist als Downloadquelle nicht mehr vertrauenswürdig. Ist leider zur Viren- und Bloatware Schleuder verkommen.

http://www.openoffice.org/de/downloads/index.html

...zur Antwort

Hi,

die Funktion Show ändert nur die Eigenschaft visible. Ist das Formular also schon sichtbar passiert gar nichts.

Suchst du eine Möglichkeit das Formular in den Vordergrund zu schieben? Dann musst du die Methode BringToFront verwenden.

Ich benutze dafür immer eine eigene Methode, welche das Formular auch anzeigt, wenn es zB minimiert ist.

hier der Code:

   procedure ForceShow(const frm: TForm);
   begin
      if frm.WindowState = wsMinimized then
         ShowWindow(frm.Handle, SW_RESTORE);
      if not frm.Visible then
         frm.Show
      else
         frm.BringToFront;
   end;

Aufruf zB : ForceShow(Form1)

viel Erfolg , gruss dj

...zur Antwort

hi, das Handling von transparenten Bildern war in Delphi schon immer ein Problem. Es hängt von deiner Delphi Version ab, in wie weit Transparenz unterstützt wird.

Es gibt zB 32bit BMPs, welche einen Alpha-Channel, alsoTransparenz, unterstützen. Diese kann man in Delphi XE zwar nicht direkt im Objektinspektor auswählen, aber per Code einem Image zuweisen.

PNGs kann man mit Delphi XE im Objektinspektor für Images als Picture auswählen. Du hast dann wohl eine niedrigere Version. Wenn du ungebingt PNGs verwenden möchtest, könntest du versuchen eine Instanz der Klasse TPngImage zu erzeugen und dem Image zuzuweisen. Bei mir ist die in der unit Vcl.Imaging.pngimage zu finden. Sonst gibt es für deine Delphiversion sicher Free-Komponenten dafür.

Als letzte Möglichkeit bleibt dann nur noch, ein normales BMP zu verwenden. Beim Image machst du ein Haken bei "Transparent" im Objektinspektor und Delphi verwendet die Farbe welche sich beim Pixel 0,0 befindet als Transparenzfarbe.

ich hoffe ich konnte helfen, gruss dj

...zur Antwort

Hi,

ich würde es so machen:

Du erstellst das 2. Formular, zeigst es an und startest im OnShow des 2. Formulars einen Timer. Bei Ende des Timers wird Formular 1 geschlossen. Du solltest mit einem FirstShow-Flag dafür sorgen, dass das nur beim ersten Anzeigen von Formular2 passiert.

Gruss, dj

...zur Antwort
Weitere Inhalte können nur Nutzer sehen, die bei uns eingeloggt sind.