| Autor |
Beitrag |
Trialtom
      
Beiträge: 38
|
Verfasst: Mi 20.11.02 22:52
Hallo,
Der Anwender meines Programm kann per Wunsch Datenbanken erstellen, die unter einem Namen abgespeichert werden. Diesen Namen lasse ich im Formular auch anzeigen, es erstellt einen Label, der anklickbar ist und dann auf die gewünschte Datenbank verweist.
Beim Hinzufügen einer Datenbank wird wiederum der neue Name erstellt und erscheint im Programm (auf dem Bildschirm) - FormCreate(Form1); ---> ein befehl der alle Namen die es gibt auf dem bildschirm auflistet uind somit auch den neuen. Aber beim Löschen funktioniert dieser befehl nicht und der name bleib immer noch angezeigt. wenn ich aber vorher ein rechteck zeichne zum beispiel an der stelle wo der name war, geht es, ist auch klar. aber dann habe ich komische linien, die ich nicht will. ich finde einfach keinen refresh befehl, der mir das programm wie neu startet und den alten namen bei der löschung auch verschwinden lässt.
Könnt ihr mir helfen?
|
|
Tino
      

Beiträge: 9839
Erhaltene Danke: 45
Windows 8.1
Delphi XE4
|
Verfasst: Mi 20.11.02 23:35
| Trialtom hat folgendes geschrieben: | | Könnt ihr mir helfen? |
Wenn ich ehrlich bin... ich nicht! Ich habe nämlich kein Wort verstanden.
| Trialtom hat folgendes geschrieben: | | Diesen Namen lasse ich im Formular auch anzeigen, es erstellt einen Label, der anklickbar ist und dann auf die gewünschte Datenbank verweist. |
Warum erstellst Du ein Label welches anklickbar ist? Wie wäre es mit einer Listbox?
| Trialtom hat folgendes geschrieben: | | Beim Hinzufügen einer Datenbank wird wiederum der neue Name erstellt |
Also genau das gleiche Prinzip wie oben schon beschrieben, oder?
| Trialtom hat folgendes geschrieben: | | und erscheint im Programm (auf dem Bildschirm) - FormCreate(Form1); ---> ein befehl der alle Namen die es gibt auf dem bildschirm auflistet uind somit auch den neuen. |
Bitte noch mal genau erklären
Würde Dir gernen genauere Lösungen geben aber leider... wie schon oben gepostet: verstehen ich fast keinen Satz!
Gruß
TINO
|
|
Trialtom 
      
Beiträge: 38
|
Verfasst: Mi 20.11.02 23:58
ok, sorry wenn es nicht verständlich war.
na ok: ich versuche es leicht verständlich zu machen.
bei jedem start des formulars (oder form1.oncreate....), werden labels erstellt, die aus einer memo geladen werde, welche die namen enthält, die in einer textdatei gespeichert sind.
wenn der anwender ein neuen namen erstellen will, klickt er einen button, jetzt wird der memo, bzw. der textdatei der neue name hinzugefügt und ees wird das formular neu gestartet (oncreate), wo jetzt wieder alle labels geladen werden, die in der memo enthalten sind. jetzt also mit dem neuen name. dieses label ist anklickbar, weil ich gerne möchte das wenn man den namen anklickt man in ein anderes formular kommt. eine listbox macht sich für mich hier nicht gut, weil man nix anklicken kann und die zeile nur blau betont wird. die namen die neu erstellt worden oder schon erstellt worden sind werden untereinander aufgelistet. erstellt man einen neuen namen, so erscheint er als neuer label unter den letzten label (namen). ich hoffe bis hier hin ist es verständlich!
ich habe noch einen anderen button mit dem man einen namen löschen kann. löscht man nun den namen, so löscht man den namen auch aus der memo und aus der textdatei und das formular wird wieder neu gestartet (oncreate). aber nix hat sich auf dem formular verändert, der name steht noch da obwohl er ja nicht mehr existiert. das hat den grund, da die bildfläche oder das formular nicht "aktualisiert" wurde. es ist wie im internet explorer, man guckt sich seine homepage an, lässt die seite offen, lädt was hoch (updated sie), guckt sich die seite wieder an und nix hat sich verändert. dann klickt man Aktualisieren oder Refresh, jenachdem welche sprache man eingestellt hat und die überarbeiteten daten erscheinen...
wie in dem program.
so nun meine frage: gibt es einen befehl mit dem man das formular "aktualisieren" kann?
ich hoffe ich werde jetzt verstanden und ihr wisst was ich meine. ich konnte mich noch nie gut ausdrücken, aufsätze waren nie mein ding. mathe und physik, fremdsprachen, etc. sprechen mir eher zu, aber nicht die meine muttersprache
tschau und danke, das ihr euch die mühe gemacht habt, meinen langen text durchzulesen 
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 21.11.02 00:17
| Trialtom hat folgendes geschrieben: | ok, sorry wenn es nicht verständlich war.
na ok: ich versuche es leicht verständlich zu machen.
|
Dann hoffen wir mal das beste.
| Zitat: |
bei jedem start des formulars (oder form1.oncreate....), werden labels erstellt, die aus einer memo geladen werde, welche die namen enthält, die in einer textdatei gespeichert sind.
|
Ok. Verstanden.
| Zitat: |
wenn der anwender ein neuen namen erstellen will, klickt er einen button, jetzt wird der memo, bzw. der textdatei der neue name hinzugefügt und ees wird das formular neu gestartet (oncreate), wo jetzt wieder alle labels geladen werden, die in der memo enthalten sind. jetzt also mit dem neuen name.
|
Hm.
| Zitat: |
dieses label ist anklickbar, weil ich gerne möchte das wenn man den namen anklickt man in ein anderes formular kommt. eine listbox macht sich für mich hier nicht gut, weil man nix anklicken kann und die zeile nur blau betont wird.
|
Komisch meine Listbox hat aber ein OnClick-Ereignis.
| Zitat: |
die namen die neu erstellt worden oder schon erstellt worden sind werden untereinander aufgelistet. erstellt man einen neuen namen, so erscheint er als neuer label unter den letzten label (namen). ich hoffe bis hier hin ist es verständlich!
|
Hast du. Und dein Vorhaben schreit immer lauter nach einer Listbox.
| Zitat: |
ich habe noch einen anderen button mit dem man einen namen löschen kann. löscht man nun den namen, so löscht man den namen auch aus der memo und aus der textdatei und das formular wird wieder neu gestartet (oncreate).
|
Gleich muß ich mir die Ohren zuhalten.
| Zitat: |
aber nix hat sich auf dem formular verändert, der name steht noch da obwohl er ja nicht mehr existiert. das hat den grund, da die bildfläche oder das formular nicht "aktualisiert" wurde. es ist wie im internet explorer, man guckt sich seine homepage an, lässt die seite offen, lädt was hoch (updated sie), guckt sich die seite wieder an und nix hat sich verändert. dann klickt man Aktualisieren oder Refresh, jenachdem welche sprache man eingestellt hat und die überarbeiteten daten erscheinen...
wie in dem program.
|
All das hättest du nicht, wenn du das passende Kontroll zu deiner Aufgabestellung nehmen würdest.
| Zitat: |
so nun meine frage: gibt es einen befehl mit dem man das formular "aktualisieren" kann?
|
Ich weigere mich darauf zu Antworten. Nachher macht man mich dafür verantwortlich, dass ich so was unterstützt habe.
|
|
Aya
      
Beiträge: 1964
Erhaltene Danke: 15
MacOSX 10.6.7
Xcode / C++
|
Verfasst: Do 21.11.02 00:30
Hi
nachdem mir Luckie eben mal kurz und knapp erklärt hat was du wohl machen willst... *g* mal mein Lösungsvorschlag
Also, nehmen wir an in der Memo/Textdatei sind 5 einträge...
als erstes mal eine Globale Variable
Quelltext 1: 2:
| var Labels: Array of TLabel; |
jetzt eine funktion in der die Labels erstellt werden...
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| procedure CreateLabel; var i: Integer; begin [...] if Length(Labels)>0 then for i:=0 to Length(Labels)-1 do Labels[i].Free; SetLength(Labels,Memo1.Lines.Count); for i:=0 to Length(Labels)-1 do begin Labels[i]:=TLabel.Create(Form1); Labels[i].Caption:=Memo1.Strings[i]; Labels[i].Parent:=Form1; Labels[i].Top:=i*Labels[i].Height; Labels[i].OnClick:=[...] end; [...] end; |
So, und die funktion rufst du nun einmal im OnCreate ereigniss auf, und jedesmal wenn die liste aktualisiert werden soll...
Au'revoir,
Aya
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 21.11.02 00:48
|
|
Aya
      
Beiträge: 1964
Erhaltene Danke: 15
MacOSX 10.6.7
Xcode / C++
|
Verfasst: Do 21.11.02 00:50
*g* Er wollte aber Labels.. also hab ich ihm Labels gegeben
PS: Du willst garnich wissen wie mein aller erstes Programm damals aussah... *gg* ListBox? Was ist das? 
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 21.11.02 00:55
| Aya hat folgendes geschrieben: | *g* Er wollte aber Labels.. also hab ich ihm Labels gegeben  |
Aber nur weil er sich die Hilfe zur Listbox nicht richtig angekuckt hat.
| Zitat: |
eine listbox macht sich für mich hier nicht gut, weil man nix anklicken kann
|
|
|
Aya
      
Beiträge: 1964
Erhaltene Danke: 15
MacOSX 10.6.7
Xcode / C++
|
Verfasst: Do 21.11.02 00:58
| Luckieleinchen hat folgendes geschrieben: | | Aber nur weil er sich die Hilfe zur Listbox nicht richtig angekuckt hat. |
Vieleicht gefällt ihm das aussehen der ListBox ja nicht.. und, vieleicht sind ihm die einträge darin zu dicht aneinander, oder sowas... *gg*
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 21.11.02 01:02
*Grrrr* eine OwnerDraw-Listbox poste ich ihm aber hier jetzt nicht.
| Zitat: |
Vieleicht gefällt ihm das aussehen der ListBox ja nicht.. und, vieleicht sind ihm die einträge darin zu dicht aneinander, oder sowas... *gg*
|
Typisch Frau. Keinen Sinn für das Praktische.
Noch nie von Bauhaus gehört:
| Zitat: |
Form Follows Function.
Oder auch: Der Zweck bestimmt die Form.
|
Zuletzt bearbeitet von Luckie am Do 21.11.02 01:06, insgesamt 1-mal bearbeitet
|
|
Aya
      
Beiträge: 1964
Erhaltene Danke: 15
MacOSX 10.6.7
Xcode / C++
|
Verfasst: Do 21.11.02 01:05
Kennen sie wohl...
Aber wenn mich jemand dannach fragt wie man das mit Labels macht, sag ich ihm wie man es mit Labels macht...
hätte er gefragt "Wie mach ich das mit Labels, oder gibt es ne bessere methode?" hätte ich ihn auf die ListBox verwiesen...
Au'revoir,
Aya~
PS: Dumme angewohnheit von mir *g* Nur auf das Antworten was gefragt wurde.
|
|
Tino
      

Beiträge: 9839
Erhaltene Danke: 45
Windows 8.1
Delphi XE4
|
Verfasst: Do 21.11.02 09:20
| Aya hat folgendes geschrieben: | | Dumme angewohnheit von mir *g* Nur auf das Antworten was gefragt wurde. |
Das ist bestimmt keine dumme Angewohnheit
Aber mit einer ListBox ist einfacher und für den User letztendlich vertrauter und logischer anstatt auf irgendwelche Labels zu klicken! Und wenn ein Programmierer so ein Designfehler verursachen will dann kann man ihn ja darauf hinweisen das sein Lösungsansatz nicht ganz der richtige ist!
Gruß
TINO
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 21.11.02 09:52
Ich sehe schon, Männer denken doch vernünftiger, in solchen Fällen.  Kleiner Scherz Seiya, nicht übel nehmen.
Desweiteren: Interface Hall of Shame hier mal kucken, ist echt interessant diese Seite.
Das ganze mit den Lables hat mich an das erinnert:
Auch zu finden auf der Seite.
|
|
Trialtom 
      
Beiträge: 38
|
Verfasst: Do 21.11.02 14:01
ok eine listbox hat ein OnClick-Ereignis.  darann habe ich im fernsten nicht dran gedacht mhhhh, *pein*
es lohnt sich wirklich eher eine listbox zu nehmen.
danke wie man labels erstellt wusste ich. mhhh immer die sinnlosen dinge, die man vergisst.
na ok
nur interesse halber: gibt es nun ein akutualisierungs-befehl?
|
|
Aya
      
Beiträge: 1964
Erhaltene Danke: 15
MacOSX 10.6.7
Xcode / C++
|
Verfasst: Do 21.11.02 22:39
Das hat mit Aktualisieren nix zu tun.... du mußt nur bevor du neue Labels machst die alten alle löschen mit .free und ich denke mal das hast du nicht gemacht.
|
|
Trialtom 
      
Beiträge: 38
|
Verfasst: Fr 22.11.02 08:43
|
|