![]() |
Im memo ne tabelle
Hi delphianer
ich bin an ner konsole und da will ich ne hilfe reinmachen also wenn einer help eingiebt soll ne tabelle kommen in der links der befehl und rechts die beschreibung steht Jetzt meine frage Wie mach ich ne tabelle in nem memo??? Danke im vorraus Axxus |
Re: Im memo ne tabelle
Willst du wirklich ne tabelle, wie:
Code:
oder tuts auch ne einfache anordnung nach tabulator-prinzip?
-------|-------
befehl1|beschreibung befehl2|beschreibung Etwa:
Code:
khasklgal klsdfblag
aksbjkasjkaa hasgjbag asdjf asdllasgh ksfjas asdgasgadha |
Re: Im memo ne tabelle
Handelt es sich jetzt um eine Konsolenanwendung oder ein Memo?
|
Re: Im memo ne tabelle
Hallo Axxus,
setze die Eigenschaft WantTabs deines Memos auf True, Wrap auf False und führe folgenden Code aus:
Delphi-Quellcode:
Jetzt hast du einen horizontalen Tabulator in deinem Memo und kannst Text zweispaltig ausgeben:
const
COLWIDTH = 20; var TabWidth: Integer; begin TabWidth := ColWidth shl 2; Memo.Perform(EM_SETTABSTOPS, 1, Integer(@TabWidth)); end;
Delphi-Quellcode:
Mit einem Font fester Breite kannst du sogar Semigraphik-Zeichen einsetzen.
begin
with Memo do begin Clear; Lines.Add('Links'#9'Rechts kommt jetzt'); Lines.Add(''#9'ein zweizeiliger Text'); end; end; Grüße vom marabu |
Re: Im memo ne tabelle
ok luete es handelt sich um eine konsole die ich mir aus einem form einem memo einem edit und einem butto zusammengebastelt hab
es is beides ok tabstopp und tabelle tabstopp reicht zwar es is aber gut beides zu wissen ich probier morgen aus heut hab ich keine zeit mehr und sag euch dann bescheid Falls ihr noch irgentwelche tipps hab für so ne konsole algemien oder wie man so was besser machen kann als mit nem memo... dann sagt bescheid Kritik ist zur verbesserung notwendig Danke Axxus |
Re: Im memo ne tabelle
Unter Konsole verstand ich (und sicherlich aucha ndere) eine Konsolenanwendung.
|
Re: Im memo ne tabelle
Zitat:
![]() |
Re: Im memo ne tabelle
Sorry das das unklar war hatte leider immer noch keine zeit das auszuprobieren aber jetzt is es ja klar
@ marabu wieso ist zeischen dem Text in der linken spalte und dem in der rechten ein #9 und kannst du das ma bitte erklären was da gemacht wird ich benutz ungern was was ich ent verstehe
Delphi-Quellcode:
Sorry das sind denk ich noobfragen aber ich versteh manches net und ich will es ja verstehen damit ich es anwenden kann sonst bringt es mir ja für später nichts
const
COLWIDTH = 20; {COLWIDTH is ne konstante aber wieso muss ide 20 sein und was gibt sie an} var TabWidth: Integer; begin TabWidth := ColWidth shl 2; {was bedeuted shl und wieso schreibst du für colwidth net gleich 20} Memo.Perform(EM_SETTABSTOPS, 1, Integer(@TabWidth)); {was genau wird hier gemacht} end; Axxus |
Re: Im memo ne tabelle
Hallo Axxus,
fangen wir hinten an: Windows basiert auf Nachrichten und ein multiline edit control (TMemo ist eine Delphi-Kapselung dafür) versteht unter anderem die Nachricht ![]() Die Methode Perform() übergibt die Nachricht und wartet solange, bis sie verarbeitet wurde. Ich setze der Einfachheit halber eine einheitliche Tabulatorweite, da ja eh nur zwei Spalten benötigt werden - deshalb die 1 im Aufruf von Perform(). Als letzter Parameter muss die Adresse einer Tabelle mit den Tab-Positionen übergeben werden. Mir genügt ja ein einzelnes DWORD (TabWidth, hätte ich auch als DWORD oder Cardinal deklarieren können, aber da ich nie in die Nähe des Vorzeichenbits kommen werde ...). Da die Einheit für die Tab-Positionen sogenannte dialog template units sind und diese mit vier multipliziert die mittlere Zeichenbreite des aktuellen Font ergeben, bedeutet 20 * 4 dass ich etwa 20 Zeichen für die erste Spalte ansetze. SHL 2 ist dasselbe wie "mal 2 hoch 2" also "mal 4". Und dass ich ColWidth als Konstante definiert habe ist eine Angewohnheit von mir. Sie erlaubt mir die Trennung von Steuerung und Ausführung und erleichtert damit die Wiederverwendung meines Codes an vielen Stellen. Grüße vom marabu |
Re: Im memo ne tabelle
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:28 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz