Entwickler-Ecke
Sonstiges (Delphi) - Refresh!
Trialtom - Mi 20.11.02 22:52
Titel: Refresh!
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 - Mi 20.11.02 23:35
Titel: Re: Refresh!
| 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 :nixweiss:
Würde Dir gernen genauere Lösungen geben aber leider... wie schon oben gepostet: verstehen ich fast keinen Satz!
Gruß
TINO
Trialtom - 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 :-D
tschau und danke, das ihr euch die mühe gemacht habt, meinen langen text durchzulesen :)
Delete - 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 - 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
Delete - Do 21.11.02 00:48
Ach du meine Güte. Es gibt doch tatsächlich noch Leute die so was unterstützen. Und das auch noch von meiner Freundin.
OK, machen wir einen zwei Zeiler raus.:
Quelltext
1: 2: 3: 4: 5:
| procedure TForm1.FormCreate(Sender: TObject); begin ListBox1.Clear; // Dieser Code Listbox1.Items.LoadFromFile('c:\test.txt'); // kann überall stehen end; |
Quelltext
1: 2: 3: 4:
| procedure TForm1.ListBox1Click(Sender: TObject); begin ShowMessage(Listbox1.Items.Strings[Listbox1.Itemindex]); end; |
Aya - 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? ;)
Delete - 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 - 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*
Delete - 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.
|
Aya - 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 - 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 :-D
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
Delete - Do 21.11.02 09:52
Ich sehe schon, Männer denken doch vernünftiger, in solchen Fällen. :mrgreen: Kleiner Scherz Seiya, nicht übel nehmen. :oops:
Desweiteren:
Interface Hall of Shame [
http://iarchitect.com/mshame.htm] 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 - Do 21.11.02 14:01
ok eine listbox hat ein OnClick-Ereignis. :idea: 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 - 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 - Fr 22.11.02 08:43
ok, danke nochmal.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!