Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Button.Click für Listview mal anders (https://www.delphipraxis.net/198597-button-click-fuer-listview-mal-anders.html)

Amenovis 16. Nov 2018 19:23

Button.Click für Listview mal anders
 
Ich kann im Quellcode einem Button ZB den Befehl geben einen anderen Button zu Clicken

Beispiel:

Delphi-Quellcode:
procedure TMainFRM.Button1Click(Sender: TObject);
Begin
Button2.Click;
End;
End.
Bei Listview hab ich das "OnClick" Ereigniss....dort kann ich zb das selbe mit dem Button 2 tun

Beispiel:
Delphi-Quellcode:
procedure TMainFRM.ListView1Click(Sender: TObject);
Begin
Button2.Click;
End;
End.
Meine Frage ist nun wie sage ich der Listview das er am Ende nochmal auf die Listview clicken soll um andere Werte zu aktualisieren?

Beispiel:
Delphi-Quellcode:
procedure TMainFRM.ListView1Click(Sender: TObject);
Begin
Listview1.Click; //Den Befehl kennt er nicht :( 
End;
End.

DieDolly 16. Nov 2018 19:33

AW: Button.Click für Listview mal anders
 
Vielleicht solltest du nochmal erklären was dein Ziel ist denn das erschließt sich mir nicht so ganz.

Amenovis 16. Nov 2018 19:42

AW: Button.Click für Listview mal anders
 
ok ich hab eine listview dort gebe ich arbeitsdaten an

Mitarbeiter x start 8 uhr ende 17 uhr gearbeitet 9Std
Mitarbeiter y start 8 uhr ende 17 uhr gearbeitet 9Std

Die Aktualisierung die gearbeiteten Stunden Rechnet und Aktualisiert er mir super schön in der Listview.

Nun hab ich unten Drunter ein EditFeld und jedesmal wenn ich auf die Listview clicke rechnet er mir zusammen wieviel alle Mitarbeiter zusammen an dem Tag gearbeitet haben

Sprich im Editfeld sollte nun 18 stehen
leider steht nur 9 std drin erst wenn ich manuel per maus nochmal auf die Listview clicke aktualisiert er das Edit Feld.

Daher der Gedanke wie ich das per Befehl realisieren könnte sprich am Ende des scripts click nochmal auf die Listview ... so wie er es zb auch mit button.Click macht

mhh hoffe es ist zu verstehen was ich meine


EDIT: Hab ne Idee vielleicht finde ich ja nen Befehl um die Letzte ID einfach nochmal zu selecten alla listview1.select.line where id=Editfeld1.text (Sinngemäss) mhh

DieDolly 16. Nov 2018 20:22

AW: Button.Click für Listview mal anders
 
Vergiss deine ganzen Befehle und Click-Zeugs. Das ist nix Halbes und nix Ganzes.
In der Programmierung ist es nun mal so, dass man nicht immer alles mit einer Zeile Code erledigt hat. Daran wird sich hoffentlich auch nie was ändern.

Du musst deine ListView Zeile für Zeile durchgehen und alles manuell ausrechnen. Wenn deine Daten von der GUI getrennt sind, wie man es normalerweise macht, ist es noch leichter.

Zu deinem EDIT.
In ganz frühen Kriegen wurden Krieger mit Stichen direkt in die Brust getötet.
Dein EDIT ist in etwa so, als ob man einem Krieger das Schwert in den Rücken sticht, es sich dann auf wundersame Art und Weise verbiegt und dann nochmal von vorne in die Brust sticht.
Kurz gesagt: lass es sein und mach es lieber richtig.

Amenovis 16. Nov 2018 20:36

AW: Button.Click für Listview mal anders
 
Lach och ich hab doch erst 1960 Zeilen ggggg und ich zeig euch das nicht ... Richtige Programmierer (was ich nun mal nicht bin) würden die Hände übern Kopf zusammen werfen hehehehehe. Und hätten meinen Kram wohl in 300 bis 500 Zeilen abgearbeitet aber hey eigentlich läufts...

Das eine Problem bekomme ich auch noch hin.. werde die Spalte wohl in die DB einfügen in der Listview nicht anzeigen und einfach via
Delphi-Quellcode:
RQuery1.SQL.Text:='Select SUM(WorkH) as blabla FROM Shift1';
RQuery1.Open;
Edit17.Text:=RQuery1.FieldByName('blabla').asString;
RQuery1.Close;
Einbetten... Dachte nur bei dem einen gibts das vielleicht bei dem anderen auch

Trotzdem vielen Dank für deine Zeit :)

Edit: Um etwas richtig zu tun muss man wissen wir es Richtig geht... ich Bin Froh wenn etwas Funktioniert :)

DieDolly 16. Nov 2018 20:43

AW: Button.Click für Listview mal anders
 
Dann nimm dir die paar Minuten oder Stunden und lerne immer mal wieder die Sachen richtig, die du gerade brauchst. Aber einfach wild irgendwelche .Click() auszuführen ist ganz schlecht.

- GUI von Daten trennen (lagere deine Daten in Klasseninstanzen aus und die dann alle in eine [generische] ObjectListe)
- iteriere durch die Klasseninstanzen statt durch die GUI
- Problem gelöst und sauberer Code ist es am Ende auch

KodeZwerg 16. Nov 2018 21:54

AW: Button.Click für Listview mal anders
 
Zitat:

Zitat von DieDolly (Beitrag 1418274)
Dann nimm dir die paar Minuten oder Stunden und lerne immer mal wieder die Sachen richtig, die du gerade brauchst. Aber einfach wild irgendwelche .Click() auszuführen ist ganz schlecht.

- GUI von Daten trennen (lagere deine Daten in Klasseninstanzen aus und die dann alle in eine [generische] ObjectListe)
- iteriere durch die Klasseninstanzen statt durch die GUI
- Problem gelöst und sauberer Code ist es am Ende auch

Das sollte man echt beherzen. Gut gesprochen DieDolly, ich ertappe mich auch immer wieder dabei :/

DieDolly 16. Nov 2018 22:14

AW: Button.Click für Listview mal anders
 
Ich muss gestehen, dass ich das früher auch nie gemacht habe. Aber als irgendwann Threading dazukam und ich immer Synchronize() brauchte, war der Vorteil Threads auch dahin.

Daten in Klassen und die Klassen in eine ObjectList auslagern hat enorme Vorteile beim Laden, Zugriff, Bearbeiten und Speichern. Ich möchte es nicht mehr missen. Lass es je nach Projekt 1 bis 10 Stunden Aufwand sein alles umzubauen. Aber es lohnt sich.

EWeiss 16. Nov 2018 22:49

AW: Button.Click für Listview mal anders
 
Zitat:

war der Vorteil Threads auch dahin.
Nun ja mitunter kommt man aber nicht dran vorbei.
Vor allem dann wenn du eine fremde Datei DLL oder was auch immer verwendest wo ein Thread Voraussetzung ist damit es überhaupt funktioniert.
Solange du nur innerhalb der eigenen Anwendung bleibst ist es nicht zwingend vorgeschrieben.

gruss

Amenovis 16. Nov 2018 23:28

AW: Button.Click für Listview mal anders
 
Wie Geil

Von den letzten 4 Postings hab ich zu 99,9% nichts verstanden wie gut das mein klein kram einfach nur funktionieren soll und ich kein neues Windows oder Photoshop programmieren muss :)

DieDolly 16. Nov 2018 23:32

AW: Button.Click für Listview mal anders
 
Das waren nur gut gemeinte Tipps. Das mit den Klassen und der Liste kann man in 1 bis 2 Stunden lernen. Der Nutzen davon für die Zukunft ist unbezahlbar und dein Kleinkram der jetzt schon Probleme macht und wo du dich rumtricksen musst wird dann sehr viel einfacher.

p80286 16. Nov 2018 23:45

AW: Button.Click für Listview mal anders
 
Wenn Du Arbeitszeiten addieren willst, dann solltest Du das mit den entsprechenden Datensätzen tun.
Was Du vor hast, ist, aus Darstellung von Daten einen Teil zu extrahieren und zu addieren.

Das ist ein wenig umständlich und fehleranfällig.

Gruß
K-H

DP-Maintenance 17. Nov 2018 00:14

Dieses Thema wurde am "17. Nov 2018, 01:14 Uhr" von "Luckie" aus dem Forum "Programmieren allgemein" in das Forum "Algorithmen, Datenstrukturen und Klassendesign" verschoben.

Hobbycoder 17. Nov 2018 14:34

AW: Button.Click für Listview mal anders
 
Zitat:

Zitat von DieDolly (Beitrag 1418279)
Das waren nur gut gemeinte Tipps. Das mit den Klassen und der Liste kann man in 1 bis 2 Stunden lernen. Der Nutzen davon für die Zukunft ist unbezahlbar und dein Kleinkram der jetzt schon Probleme macht und wo du dich rumtricksen musst wird dann sehr viel einfacher.

Eigentlich muss man es lediglich verstanden habe, wie es schematisch funktioniert und eine grobe, bildliche Vorstellung davon haben. Wie es dann im einzelnen funktioniert, welche Methoden sinnvoll sind ergibt sich dann schon recht schnell durch die Code-Vervollständigung.

Der Vorteil, den der TE hoffentlich noch erkennt, ist am Ende: Wesentlich übersichtlicher und lesberer Code, wesentlich weniger logische Fehler, wesentlich einfacheres Debugging, wesentlich schnelleres Programmieren (die IDE nimmt einem ja hier viel ab), dank Shift-Strg-C ist auch so eine Klasse in Sekunden geschrieben, usw.

Jeder, der zum ersten mal mit Klassen und Listen arbeitet, und vorher alles Spagettimäßig zusammengeklöppelt hat, erkennt sofort die Vorteile und fragt sich schnell, warum er/sie sich vorher immer so viel Arbeit gemacht hat.

DieDolly 17. Nov 2018 14:35

AW: Button.Click für Listview mal anders
 
Zitat:

usw.
und auch keine doppelte Datenpflege mehr.

Hier habe ich mal ein kleines Beispiel beschrieben, wie man Vokabeln verwalten kann. Nur setzen und auslesen.
Vielleicht hilft das ja beim Verständnis.

https://www.delphipraxis.net/1418315-post21.html

Im Prinzip ist es mit einer ListView am ende gleich. Man erstellt Klasseninstanzen von seiner Klassendeklaration, füllt sie mit Daten, fügt sie einer Liste hinzu.
Am Ende ließt die ListView die Daten aus der Liste.

freimatz 19. Nov 2018 10:38

AW: Button.Click für Listview mal anders
 
Zitat:

Zitat von Hobbycoder (Beitrag 1418318)
Jeder, der zum ersten mal mit Klassen und Listen arbeitet, und vorher alles Spagettimäßig zusammengeklöppelt hat, erkennt sofort die Vorteile und fragt sich schnell, warum er/sie sich vorher immer so viel Arbeit gemacht hat.

Jeder? Leider Nein. Es gibt da welche die können oder wollen das nicht sehen.
SCNR

hoika 19. Nov 2018 10:49

AW: Button.Click für Listview mal anders
 
Hallo,
als Anfänger würde ich das erst mal so machen.
Delphi-Quellcode:
type
  TForm1
    protected
      // hat Delphi bereits angelegt
      procedure Button1Click(Sender...);
    private
      procedure HandleButton1Click; // eigene Methode
    public
    published
  end;

procedure TForm1.Button1Click(Sender...);
begin
  HandleButton1Click; // eigene Methode
end;

procedure TForm1.Button2Click(Sender...);
begin
  HandleButton2Click; // eigene Methode
end;

procedure TForm1.ListView1Click(Sender...);
begin
  HandleListView1Click;
end;

procedure TFrm1.HandleButton1Click;
begin
  // hier kommt Dein ganzer Code rein, der auf Button1-Click erfolgen soll
end;
Damit trennst Du erst mal die GUI (Button1.Click) vom Code (HandleButton1Click) beim Klicken.
Später kannst Du das HandleButton1Click so ändern, dass gar nicht mehr auf GUI-Elemente zugegriffen wird.

Hobbycoder 19. Nov 2018 17:51

AW: Button.Click für Listview mal anders
 
Zitat:

Zitat von freimatz (Beitrag 1418408)
Zitat:

Zitat von Hobbycoder (Beitrag 1418318)
Jeder, der zum ersten mal mit Klassen und Listen arbeitet, und vorher alles Spagettimäßig zusammengeklöppelt hat, erkennt sofort die Vorteile und fragt sich schnell, warum er/sie sich vorher immer so viel Arbeit gemacht hat.

Jeder? Leider Nein. Es gibt da welche die können oder wollen das nicht sehen.
SCNR

Ja, aber dann haben sie das Prinzip eben auch noch nicht verstanden. Wenn die dann natürlich nicht den Anspruch haben das jemals verstehen zu wollen...ja, dann kannst du nichts machen. Dann wird aber auch aus den ganzen Projekten, die diese Leute erstellen, leider auch nicht dolles werden.

DieDolly 19. Nov 2018 17:54

AW: Button.Click für Listview mal anders
 
Das ist halt Schulniveau. Da wird nichts erwartet außer, dass es funktioniert.
Leute wie Maverick oder Uwe sollten die als Lehrer haben. Dann gehts rund glaube ich.

Amenovis 19. Nov 2018 18:14

AW: Button.Click für Listview mal anders
 
Also langsam reicht es... Ich wende mich an euch weil ihr die Profis seit... Mein Leben besteht nicht nur aus Programmieren. Ich habe mich als kleiner Arbeiter hochgearbeitet das was ich hier gerade Versuche ist auch nicht für mich, es ist dafür es anderen Kollegen leichter zu machen.. Nebenbei hab ich eine Frau die Pflegegrad 2 ist und um die ich mich neben meiner Arbeit kümmer... Mein leben hat mit Sicherheit nichts mit Faulheit zu tun

Mir ist bewusst das es faule, vor allem aus dem Bereich der Schüler gibt die einfach ne Lösung wollen ohne zu Denken aber zu denen gehöre ich nicht und die Arroganz dieses einfach anzunehmen ohne mich auch nur einen Millimeter zu kennen ist armseelig !

Edit: Danke Hoika ich schau mir das am WE noch genau an und versuche es zu verstehen.

DieDolly 19. Nov 2018 18:37

AW: Button.Click für Listview mal anders
 
Zitat:

Das ist halt Schulniveau.
Ich habe mich im Thread verklickt. Ich wollte das eigentlich im Hausaufgabenthread schreiben :wall:

Ein Tipp von mir. Verbreite niemals dein Privatleben im Internet.

Amenovis 19. Nov 2018 18:47

AW: Button.Click für Listview mal anders
 
Mhh ist ok ich will nicht streiten.. Ich versuche halt mit meinen beschränkten Möglichkeiten etwas zu erreichen... meine wege etwas umzusetzen scheinen umständlich zu sein vielleicht 5 mal länger als eine kurze anweisung mit 2 oder 3 variablen aber sie gehen und meistens ist das auch vollkommen ausreichend :)

freimatz 20. Nov 2018 07:40

AW: Button.Click für Listview mal anders
 
Es tut mir leid falls das falsch verstanden worden ist. :oops:
Mit "Es gibt da welche die können oder wollen das nicht sehen." meinte ich nicht Dich Amenovis, sondern Kollegen die schon teilweise seit über 20 Jahren hauptberuflich Softwareentwicklung betreiben.

haentschman 20. Nov 2018 07:50

AW: Button.Click für Listview mal anders
 
Hallöle...8-)
Zitat:

sondern Kollegen die schon teilweise seit über 20 Jahren hauptberuflich Softwareentwicklung betreiben.
...da kenn ich auch einige die absolut lernresistent sind. :stupid:
@Amenovis: Das fällt mal unter Mißverständnis. Sorry. :wink: Denn die DP ist ja bekannt dafür, das hier nicht üblich ist. :thumb:

hoika 20. Nov 2018 08:40

AW: Button.Click für Listview mal anders
 
Hallo,
Delphi-Quellcode:
erkennt sofort die Vorteile
Äh, nein, aus der Praxis.
"Kapselung" -> Dazu habe ich doch schon eine separate Unit.
"Information Hiding" -> Wieso verstecken?
"Vererbung" -> Dazu sage ich nichts.

Was ich meine.
Das sind alles Vorteile, die an einem prozedural Programmierenden aber erst mal möglichst an Beispielen erklären muss.

Hobbycoder 20. Nov 2018 09:47

AW: Button.Click für Listview mal anders
 
Zitat:

Zitat von hoika (Beitrag 1418510)
Hallo,
Delphi-Quellcode:
erkennt sofort die Vorteile
Äh, nein, aus der Praxis.
"Kapselung" -> Dazu habe ich doch schon eine separate Unit.
"Information Hiding" -> Wieso verstecken?
"Vererbung" -> Dazu sage ich nichts.

Was ich meine.
Das sind alles Vorteile, die an einem prozedural Programmierenden aber erst mal möglichst an Beispielen erklären muss.

Bitte nicht aus dem Zusammenhang reißen.
Natürlich sind nicht alle Prinzipien von Klassen/Objekte sofort verständlich. Was ich damit sagen wollte war, dass man durch die Code-Vervollständigung relativ schnell damit umgehen kann, bzw. die einfachen Grundlagen erkennen kann. Auch die Lesbarkeit des eigenen Codes wird plötzlich besser. Und diese Erkenntnis mach halt (manchmal) neugierig und eröffnet einem dann auch neue Möglichkeiten. Sicherlich muss man sich trotzdem noch weiteres Wissen anlesen und Begriffe verdeutlichen. Beispiele, die gut nachvollziehbar sind gibt es im Internet zu hauf -> Delphi-Treff/Tutorials

Zitat:

Zitat von Amenovis (Beitrag 1418278)
Wie Geil

Von den letzten 4 Postings hab ich zu 99,9% nichts verstanden wie gut das mein klein kram einfach nur funktionieren soll und ich kein neues Windows oder Photoshop programmieren muss :)

Natürlich will dem TE hier keiner unterstellen, er würde sein Vorhaben nicht ernst nehmen. Allerdings sind solche Sätze schon problematisch. Du kannst nicht einen Fachmann nach einem Lösungsvorschlag für ein technisches Problem fragen, und erwarten, dass du eine Bastelanleitung bekommt. Sondern, so wie in diesem Fall, die Hinweise, dass die Vorgehensweise nicht sinnvoll ist, und welche Maßnehmen sinnvoll sind.

Wenn du dein Auto wegen eines Lecks im Kühlerschlauch, welches du bereits mit Panzerband notdürftig geflickt hast, in die Fachwerkstatt bringst und den Meister fragst, was da besser tun kannst, weil es nicht ganz dicht ist, dann wird er dir wohl auch nur raten einen neuen Kühlerschlauch zu verbauten und nicht ein besseres Klebeband zu nehmen. Beim Einbau stellst du dann fest, dass dieser nicht so ganz trivial ist, denn du musst noch ein paar andere Dinge abhauen und den Schlauch richtig montieren. Also liest du noch etwas mehr um diesen Vorgang zu verstehen und es dann auch selbst halbwegs fachmännisch zu erledigen.
Allerdings musst du für die Umsetzung nicht die exakte Zusammensetzung der Kühlflüssigkeit kennen.

So ist es hier auch. Äquivalent zum obigen Beispiel wäre als die Antwort an den Meister: "Ich nehme erstmal besseres Klebeband, das wird schon gehen. Ist ja nur ein Kühlerschlauch". Die Quittung kommt später, wenn während der Fahrt die nächsten Probleme auftreten.

Zitat:

Zitat von Amenovis (Beitrag 1418470)
Mhh ist ok ich will nicht streiten.. Ich versuche halt mit meinen beschränkten Möglichkeiten etwas zu erreichen... meine wege etwas umzusetzen scheinen umständlich zu sein vielleicht 5 mal länger als eine kurze anweisung mit 2 oder 3 variablen aber sie gehen und meistens ist das auch vollkommen ausreichend :)

meistens ist das auch vollkommen ausreichend??? Ist das eine Erkenntnis aus langjähriger Erfahrung?:roll:

Amenovis 20. Nov 2018 12:34

AW: Button.Click für Listview mal anders
 
ja mit einem klebenband von mir haben andere 4 jahre gearbeitet und es geliebt...es könnte dort vielleicht heute noch in betrieb sein, das weis ich jedoch nicht


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:22 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz